commit 8c48f611045dc7e6281fffcf0f71f20857adc266 Author: Lobstervova Date: Fri Jan 30 12:25:18 2026 +0300 изначальный коммит diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3b41682 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..667aaef --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..8dea6c2 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..7c8044f --- /dev/null +++ b/compose.yaml @@ -0,0 +1,9 @@ +services: + postgres: + image: 'postgres:latest' + environment: + - 'POSTGRES_DB=mydatabase' + - 'POSTGRES_PASSWORD=secret' + - 'POSTGRES_USER=myuser' + ports: + - '5432' diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..bd8896b --- /dev/null +++ b/mvnw @@ -0,0 +1,295 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.4 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..92450f9 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..f2a24b7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,254 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.2 + + + com.example + DatePlanner + 0.0.1-SNAPSHOT + DatePlanner + DatePlanner + + + + + + + + + + + + + + + 17 + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + org.springframework.boot + spring-boot-starter-flyway + + + org.springframework.boot + spring-boot-starter-integration + + + org.springframework.boot + spring-boot-starter-mail + + + org.springframework.boot + spring-boot-starter-r2dbc + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-session-jdbc + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-webclient + + + org.springframework.boot + spring-boot-starter-webflux + + + org.flywaydb + flyway-database-postgresql + + + org.springframework.integration + spring-integration-jpa + + + org.springframework.integration + spring-integration-mail + + + org.springframework.integration + spring-integration-r2dbc + + + org.springframework.integration + spring-integration-webflux + + + org.springframework.security + spring-security-messaging + + + org.thymeleaf.extras + thymeleaf-extras-springsecurity6 + + + io.jsonwebtoken + jjwt-api + 0.11.2 + + + io.jsonwebtoken + jjwt-impl + 0.11.2 + runtime + + + io.jsonwebtoken + jjwt-jackson + 0.11.2 + runtime + + + io.minio + minio + 8.5.2 + + + org.sejda.imageio + webp-imageio + 0.1.6 + + + commons-io + commons-io + 2.11.0 + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.postgresql + postgresql + runtime + + + org.postgresql + r2dbc-postgresql + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-actuator-test + test + + + org.springframework.boot + spring-boot-starter-data-jpa-test + test + + + org.springframework.boot + spring-boot-starter-data-r2dbc-test + test + + + org.springframework.boot + spring-boot-starter-flyway-test + test + + + org.springframework.boot + spring-boot-starter-mail-test + test + + + org.springframework.boot + spring-boot-starter-r2dbc-test + test + + + org.springframework.boot + spring-boot-starter-security-test + test + + + org.springframework.boot + spring-boot-starter-session-jdbc-test + test + + + org.springframework.boot + spring-boot-starter-thymeleaf-test + test + + + org.springframework.boot + spring-boot-starter-webclient-test + test + + + org.springframework.boot + spring-boot-starter-webflux-test + test + + + org.springframework.integration + spring-integration-test + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/src/main/java/com/example/dateplanner/DatePlannerApplication.java b/src/main/java/com/example/dateplanner/DatePlannerApplication.java new file mode 100644 index 0000000..f01e777 --- /dev/null +++ b/src/main/java/com/example/dateplanner/DatePlannerApplication.java @@ -0,0 +1,13 @@ +package com.example.dateplanner; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DatePlannerApplication { + + public static void main(String[] args) { + SpringApplication.run(DatePlannerApplication.class, args); + } + +} diff --git a/src/main/java/com/example/dateplanner/controllers/web/HomeController.java b/src/main/java/com/example/dateplanner/controllers/web/HomeController.java new file mode 100644 index 0000000..3f22515 --- /dev/null +++ b/src/main/java/com/example/dateplanner/controllers/web/HomeController.java @@ -0,0 +1,28 @@ +package com.example.dateplanner.controllers.web; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.reactive.result.view.Rendering; +import reactor.core.publisher.Mono; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +@Controller +@RequiredArgsConstructor +public class HomeController { + @GetMapping("/") + public Mono home() { + Map model = new HashMap<>(); + model.put("title", "Home"); + model.put("index", "home"); + return Mono.just( + Rendering.view("all-html") + .model(model) + .build() + ); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..10c935d --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=DatePlanner diff --git a/src/main/resources/static/css/fonts.css b/src/main/resources/static/css/fonts.css new file mode 100644 index 0000000..f885954 --- /dev/null +++ b/src/main/resources/static/css/fonts.css @@ -0,0 +1,38 @@ +@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Dela+Gothic+One&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Days+One&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&display=swap'); + +body { + font-family: "Roboto Condensed", sans-serif !important; + font-optical-sizing: auto !important; + font-weight: 400 !important; + font-style: normal !important; +} + +.roboto-condensed { + font-family: "Roboto Condensed", sans-serif !important; + font-optical-sizing: auto !important; + font-weight: 400 !important; + font-style: normal !important; +} + +.dela-gothic-one-regular { + font-family: "Dela Gothic One", sans-serif !important; + font-weight: 400 !important; + font-style: normal !important; +} + +.days-one-regular { + font-family: "Days One", sans-serif !important; + font-weight: 400 !important; + font-style: normal !important; +} + +.merriweather { + font-family: "Merriweather", serif !important; + font-optical-sizing: auto !important; + font-weight: 400 !important; + font-style: normal !important; + font-variation-settings: "wdth" 100 !important; +} diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css new file mode 100644 index 0000000..6cf7746 --- /dev/null +++ b/src/main/resources/static/css/style.css @@ -0,0 +1 @@ +@import "fonts.css"; diff --git a/src/main/resources/static/js/fw/apexcharts/apex.js b/src/main/resources/static/js/fw/apexcharts/apex.js new file mode 100644 index 0000000..200015b --- /dev/null +++ b/src/main/resources/static/js/fw/apexcharts/apex.js @@ -0,0 +1,16279 @@ +/*! + * ApexCharts v5.3.6 + * (c) 2018-2025 ApexCharts + */ +!function (t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).ApexCharts = e() +}(this, (function () { + "use strict"; + + function t(t, e) { + (null == e || e > t.length) && (e = t.length); + for (var i = 0, a = Array(e); i < e; i++) a[i] = t[i]; + return a + } + + function e(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t + } + + function i(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + } + + function a(t, e) { + for (var i = 0; i < e.length; i++) { + var a = e[i]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(t, x(a.key), a) + } + } + + function s(t, e, i) { + return e && a(t.prototype, e), i && a(t, i), Object.defineProperty(t, "prototype", {writable: !1}), t + } + + function r(t, e) { + var i = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; + if (!i) { + if (Array.isArray(t) || (i = m(t)) || e && t && "number" == typeof t.length) { + i && (t = i); + var a = 0, s = function () { + }; + return { + s: s, n: function () { + return a >= t.length ? {done: !0} : {done: !1, value: t[a++]} + }, e: function (t) { + throw t + }, f: s + } + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") + } + var r, n = !0, o = !1; + return { + s: function () { + i = i.call(t) + }, n: function () { + var t = i.next(); + return n = t.done, t + }, e: function (t) { + o = !0, r = t + }, f: function () { + try { + n || null == i.return || i.return() + } finally { + if (o) throw r + } + } + } + } + + function n(t) { + var i = c(); + return function () { + var a, s = l(t); + if (i) { + var r = l(this).constructor; + a = Reflect.construct(s, arguments, r) + } else a = s.apply(this, arguments); + return function (t, i) { + if (i && ("object" == typeof i || "function" == typeof i)) return i; + if (void 0 !== i) throw new TypeError("Derived constructors may only return object or undefined"); + return e(t) + }(this, a) + } + } + + function o(t, e, i) { + return (e = x(e)) in t ? Object.defineProperty(t, e, { + value: i, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = i, t + } + + function l(t) { + return l = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { + return t.__proto__ || Object.getPrototypeOf(t) + }, l(t) + } + + function h(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + writable: !0, + configurable: !0 + } + }), Object.defineProperty(t, "prototype", {writable: !1}), e && g(t, e) + } + + function c() { + try { + var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { + }))) + } catch (t) { + } + return (c = function () { + return !!t + })() + } + + function d(t, e) { + var i = Object.keys(t); + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(t); + e && (a = a.filter((function (e) { + return Object.getOwnPropertyDescriptor(t, e).enumerable + }))), i.push.apply(i, a) + } + return i + } + + function u(t) { + for (var e = 1; e < arguments.length; e++) { + var i = null != arguments[e] ? arguments[e] : {}; + e % 2 ? d(Object(i), !0).forEach((function (e) { + o(t, e, i[e]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : d(Object(i)).forEach((function (e) { + Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e)) + })) + } + return t + } + + function g(t, e) { + return g = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t + }, g(t, e) + } + + function p(t, e) { + return function (t) { + if (Array.isArray(t)) return t + }(t) || function (t, e) { + var i = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; + if (null != i) { + var a, s, r, n, o = [], l = !0, h = !1; + try { + if (r = (i = i.call(t)).next, 0 === e) { + if (Object(i) !== i) return; + l = !1 + } else for (; !(l = (a = r.call(i)).done) && (o.push(a.value), o.length !== e); l = !0) ; + } catch (t) { + h = !0, s = t + } finally { + try { + if (!l && null != i.return && (n = i.return(), Object(n) !== n)) return + } finally { + if (h) throw s + } + } + return o + } + }(t, e) || m(t, e) || function () { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") + }() + } + + function f(e) { + return function (e) { + if (Array.isArray(e)) return t(e) + }(e) || function (t) { + if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t) + }(e) || m(e) || function () { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") + }() + } + + function x(t) { + var e = function (t, e) { + if ("object" != typeof t || !t) return t; + var i = t[Symbol.toPrimitive]; + if (void 0 !== i) { + var a = i.call(t, e || "default"); + if ("object" != typeof a) return a; + throw new TypeError("@@toPrimitive must return a primitive value.") + } + return ("string" === e ? String : Number)(t) + }(t, "string"); + return "symbol" == typeof e ? e : e + "" + } + + function b(t) { + return b = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { + return typeof t + } : function (t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t + }, b(t) + } + + function m(e, i) { + if (e) { + if ("string" == typeof e) return t(e, i); + var a = {}.toString.call(e).slice(8, -1); + return "Object" === a && e.constructor && (a = e.constructor.name), "Map" === a || "Set" === a ? Array.from(e) : "Arguments" === a || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a) ? t(e, i) : void 0 + } + } + + var v = function () { + function t() { + i(this, t) + } + + return s(t, [{ + key: "shadeRGBColor", value: function (t, e) { + var i = e.split(","), a = t < 0 ? 0 : 255, s = t < 0 ? -1 * t : t, r = parseInt(i[0].slice(4), 10), + n = parseInt(i[1], 10), o = parseInt(i[2], 10); + return "rgb(" + (Math.round((a - r) * s) + r) + "," + (Math.round((a - n) * s) + n) + "," + (Math.round((a - o) * s) + o) + ")" + } + }, { + key: "shadeHexColor", value: function (t, e) { + var i = parseInt(e.slice(1), 16), a = t < 0 ? 0 : 255, s = t < 0 ? -1 * t : t, r = i >> 16, + n = i >> 8 & 255, o = 255 & i; + return "#" + (16777216 + 65536 * (Math.round((a - r) * s) + r) + 256 * (Math.round((a - n) * s) + n) + (Math.round((a - o) * s) + o)).toString(16).slice(1) + } + }, { + key: "shadeColor", value: function (e, i) { + return t.isColorHex(i) ? this.shadeHexColor(e, i) : this.shadeRGBColor(e, i) + } + }], [{ + key: "bind", value: function (t, e) { + return function () { + return t.apply(e, arguments) + } + } + }, { + key: "isObject", value: function (t) { + return t && "object" === b(t) && !Array.isArray(t) && null != t + } + }, { + key: "is", value: function (t, e) { + return Object.prototype.toString.call(e) === "[object " + t + "]" + } + }, { + key: "isSafari", value: function () { + return /^((?!chrome|android).)*safari/i.test(navigator.userAgent) + } + }, { + key: "listToArray", value: function (t) { + var e, i = []; + for (e = 0; e < t.length; e++) i[e] = t[e]; + return i + } + }, { + key: "extend", value: function (t, e) { + var i = this; + "function" != typeof Object.assign && (Object.assign = function (t) { + if (null == t) throw new TypeError("Cannot convert undefined or null to object"); + for (var e = Object(t), i = 1; i < arguments.length; i++) { + var a = arguments[i]; + if (null != a) for (var s in a) a.hasOwnProperty(s) && (e[s] = a[s]) + } + return e + }); + var a = Object.assign({}, t); + return this.isObject(t) && this.isObject(e) && Object.keys(e).forEach((function (s) { + i.isObject(e[s]) && s in t ? a[s] = i.extend(t[s], e[s]) : Object.assign(a, o({}, s, e[s])) + })), a + } + }, { + key: "extendArray", value: function (e, i) { + var a = []; + return e.map((function (e) { + a.push(t.extend(i, e)) + })), e = a + } + }, { + key: "monthMod", value: function (t) { + return t % 12 + } + }, { + key: "clone", value: function (t) { + var e, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new WeakMap; + if (null === t || "object" !== b(t)) return t; + if (i.has(t)) return i.get(t); + if (Array.isArray(t)) { + e = [], i.set(t, e); + for (var a = 0; a < t.length; a++) e[a] = this.clone(t[a], i) + } else if (t instanceof Date) e = new Date(t.getTime()); else for (var s in e = {}, i.set(t, e), t) t.hasOwnProperty(s) && (e[s] = this.clone(t[s], i)); + return e + } + }, { + key: "log10", value: function (t) { + return Math.log(t) / Math.LN10 + } + }, { + key: "roundToBase10", value: function (t) { + return Math.pow(10, Math.floor(Math.log10(t))) + } + }, { + key: "roundToBase", value: function (t, e) { + return Math.pow(e, Math.floor(Math.log(t) / Math.log(e))) + } + }, { + key: "parseNumber", value: function (t) { + return "number" == typeof t || null === t ? t : parseFloat(t) + } + }, { + key: "stripNumber", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2; + return Number.isInteger(t) ? t : parseFloat(t.toPrecision(e)) + } + }, { + key: "randomId", value: function () { + return (Math.random() + 1).toString(36).substring(4) + } + }, { + key: "noExponents", value: function (t) { + return t.toString().includes("e") ? Math.round(t) : t + } + }, { + key: "elementExists", value: function (t) { + return !(!t || !t.isConnected) + } + }, { + key: "isInShadowDOM", value: function (e) { + if (!e || !e.getRootNode) return !1; + var i = e.getRootNode(); + return i && i !== document && t.is("ShadowRoot", i) + } + }, { + key: "getShadowRootHost", value: function (e) { + return t.isInShadowDOM(e) && e.getRootNode().host || null + } + }, { + key: "getDimensions", value: function (t) { + if (!t) return [0, 0]; + var e, i = t.getRootNode && t.getRootNode(); + if (i && i !== document && i.host) { + var a = i.host.getBoundingClientRect(); + return [a.width, a.height] + } + try { + e = getComputedStyle(t, null) + } catch (e) { + return [t.clientWidth || 0, t.clientHeight || 0] + } + var s = t.clientHeight, r = t.clientWidth; + return s -= parseFloat(e.paddingTop) + parseFloat(e.paddingBottom), [r -= parseFloat(e.paddingLeft) + parseFloat(e.paddingRight), s] + } + }, { + key: "getBoundingClientRect", value: function (t) { + if (!t) return {top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0, x: 0, y: 0}; + var e = t.getBoundingClientRect(); + return { + top: e.top, + right: e.right, + bottom: e.bottom, + left: e.left, + width: t.clientWidth, + height: t.clientHeight, + x: e.left, + y: e.top + } + } + }, { + key: "getLargestStringFromArr", value: function (t) { + return t.reduce((function (t, e) { + return Array.isArray(e) && (e = e.reduce((function (t, e) { + return t.length > e.length ? t : e + }))), t.length > e.length ? t : e + }), 0) + } + }, { + key: "hexToRgba", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "#999999", + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .6; + "#" !== t.substring(0, 1) && (t = "#999999"); + var i = t.replace("#", ""); + i = i.match(new RegExp("(.{" + i.length / 3 + "})", "g")); + for (var a = 0; a < i.length; a++) i[a] = parseInt(1 === i[a].length ? i[a] + i[a] : i[a], 16); + return void 0 !== e && i.push(e), "rgba(" + i.join(",") + ")" + } + }, { + key: "getOpacityFromRGBA", value: function (t) { + return parseFloat(t.replace(/^.*,(.+)\)/, "$1")) + } + }, { + key: "rgb2hex", value: function (t) { + return (t = t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)) && 4 === t.length ? "#" + ("0" + parseInt(t[1], 10).toString(16)).slice(-2) + ("0" + parseInt(t[2], 10).toString(16)).slice(-2) + ("0" + parseInt(t[3], 10).toString(16)).slice(-2) : "" + } + }, { + key: "isColorHex", value: function (t) { + return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t) + } + }, { + key: "getPolygonPos", value: function (t, e) { + for (var i = [], a = 2 * Math.PI / e, s = 0; s < e; s++) { + var r = {}; + r.x = t * Math.sin(s * a), r.y = -t * Math.cos(s * a), i.push(r) + } + return i + } + }, { + key: "polarToCartesian", value: function (t, e, i, a) { + var s = (a - 90) * Math.PI / 180; + return {x: t + i * Math.cos(s), y: e + i * Math.sin(s)} + } + }, { + key: "escapeString", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "x", i = t.toString().slice(); + return i = i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi, e) + } + }, { + key: "negToZero", value: function (t) { + return t < 0 ? 0 : t + } + }, { + key: "moveIndexInArray", value: function (t, e, i) { + if (i >= t.length) for (var a = i - t.length + 1; a--;) t.push(void 0); + return t.splice(i, 0, t.splice(e, 1)[0]), t + } + }, { + key: "extractNumber", value: function (t) { + return parseFloat(t.replace(/[^\d.]*/g, "")) + } + }, { + key: "findAncestor", value: function (t, e) { + for (; (t = t.parentElement) && !t.classList.contains(e);) ; + return t + } + }, { + key: "setELstyles", value: function (t, e) { + for (var i in e) e.hasOwnProperty(i) && (t.style.key = e[i]) + } + }, { + key: "preciseAddition", value: function (t, e) { + var i = (String(t).split(".")[1] || "").length, a = (String(e).split(".")[1] || "").length, + s = Math.pow(10, Math.max(i, a)); + return (Math.round(t * s) + Math.round(e * s)) / s + } + }, { + key: "isNumber", value: function (t) { + return !isNaN(t) && parseFloat(Number(t)) === t && !isNaN(parseInt(t, 10)) + } + }, { + key: "isFloat", value: function (t) { + return Number(t) === t && t % 1 != 0 + } + }, { + key: "isMsEdge", value: function () { + var t = window.navigator.userAgent, e = t.indexOf("Edge/"); + return e > 0 && parseInt(t.substring(e + 5, t.indexOf(".", e)), 10) + } + }, { + key: "getGCD", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 7, + a = Math.pow(10, i - Math.floor(Math.log10(Math.max(t, e)))); + for (a > 1 ? (t = Math.round(Math.abs(t) * a), e = Math.round(Math.abs(e) * a)) : a = 1; e;) { + var s = e; + e = t % e, t = s + } + return t / a + } + }, { + key: "getPrimeFactors", value: function (t) { + for (var e = [], i = 2; t >= 2;) t % i == 0 ? (e.push(i), t /= i) : i++; + return e + } + }, { + key: "mod", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 7, + a = Math.pow(10, i - Math.floor(Math.log10(Math.max(t, e)))); + return (t = Math.round(Math.abs(t) * a)) % (e = Math.round(Math.abs(e) * a)) / a + } + }]), t + }(), y = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "animateLine", value: function (t, e, i, a) { + t.attr(e).animate(a).attr(i) + } + }, { + key: "animateMarker", value: function (t, e, i, a) { + t.attr({opacity: 0}).animate(e).attr({opacity: 1}).after((function () { + a() + })) + } + }, { + key: "animateRect", value: function (t, e, i, a, s) { + t.attr(e).animate(a).attr(i).after((function () { + return s() + })) + } + }, { + key: "animatePathsGradually", value: function (t) { + var e = t.el, i = t.realIndex, a = t.j, s = t.fill, r = t.pathFrom, n = t.pathTo, o = t.speed, + l = t.delay, h = this.w, c = 0; + h.config.chart.animations.animateGradually.enabled && (c = h.config.chart.animations.animateGradually.delay), h.config.chart.animations.dynamicAnimation.enabled && h.globals.dataChanged && "bar" !== h.config.chart.type && (c = 0), this.morphSVG(e, i, a, "line" !== h.config.chart.type || h.globals.comboCharts ? s : "stroke", r, n, o, l * c) + } + }, { + key: "showDelayedElements", value: function () { + this.w.globals.delayedElements.forEach((function (t) { + var e = t.el; + e.classList.remove("apexcharts-element-hidden"), e.classList.add("apexcharts-hidden-element-shown") + })) + } + }, { + key: "animationCompleted", value: function (t) { + var e = this.w; + e.globals.animationEnded || (e.globals.animationEnded = !0, this.showDelayedElements(), "function" == typeof e.config.chart.events.animationEnd && e.config.chart.events.animationEnd(this.ctx, { + el: t, + w: e + })) + } + }, { + key: "morphSVG", value: function (t, e, i, a, s, r, n, o) { + var l = this, h = this.w; + s || (s = t.attr("pathFrom")), r || (r = t.attr("pathTo")); + var c = function (t) { + return "radar" === h.config.chart.type && (n = 1), "M 0 ".concat(h.globals.gridHeight) + }; + (!s || s.indexOf("undefined") > -1 || s.indexOf("NaN") > -1) && (s = c()), (!r.trim() || r.indexOf("undefined") > -1 || r.indexOf("NaN") > -1) && (r = c()), h.globals.shouldAnimate || (n = 1), t.plot(s).animate(1, o).plot(s).animate(n, o).plot(r).after((function () { + v.isNumber(i) ? i === h.globals.series[h.globals.maxValsInArrayIndex].length - 2 && h.globals.shouldAnimate && l.animationCompleted(t) : "none" !== a && h.globals.shouldAnimate && (!h.globals.comboCharts && e === h.globals.series.length - 1 || h.globals.comboCharts) && l.animationCompleted(t), l.showDelayedElements() + })) + } + }]), t + }(); + const w = {}, k = []; + + function A(t, e) { + if (Array.isArray(t)) for (const i of t) A(i, e); else if ("object" != typeof t) S(Object.getOwnPropertyNames(e)), w[t] = Object.assign(w[t] || {}, e); else for (const e in t) A(e, t[e]) + } + + function C(t) { + return w[t] || {} + } + + function S(t) { + k.push(...t) + } + + function L(t, e) { + let i; + const a = t.length, s = []; + for (i = 0; i < a; i++) s.push(e(t[i])); + return s + } + + function M(t) { + return t % 360 * Math.PI / 180 + } + + function P(t) { + return t.charAt(0).toUpperCase() + t.slice(1) + } + + function I(t, e, i, a) { + return null != e && null != i || (a = a || t.bbox(), null == e ? e = a.width / a.height * i : null == i && (i = a.height / a.width * e)), { + width: e, + height: i + } + } + + function T(t, e) { + const i = t.origin; + let a = null != t.ox ? t.ox : null != t.originX ? t.originX : "center", + s = null != t.oy ? t.oy : null != t.originY ? t.originY : "center"; + null != i && ([a, s] = Array.isArray(i) ? i : "object" == typeof i ? [i.x, i.y] : [i, i]); + const r = "string" == typeof a, n = "string" == typeof s; + if (r || n) { + const {height: t, width: i, x: o, y: l} = e.bbox(); + r && (a = a.includes("left") ? o : a.includes("right") ? o + i : o + i / 2), n && (s = s.includes("top") ? l : s.includes("bottom") ? l + t : l + t / 2) + } + return [a, s] + } + + const z = new Set(["desc", "metadata", "title"]), X = t => z.has(t.nodeName), R = (t, e, i = {}) => { + const a = {...e}; + for (const t in a) a[t].valueOf() === i[t] && delete a[t]; + Object.keys(a).length ? t.node.setAttribute("data-svgjs", JSON.stringify(a)) : (t.node.removeAttribute("data-svgjs"), t.node.removeAttribute("svgjs:data")) + }, E = "http://www.w3.org/2000/svg", Y = "http://www.w3.org/2000/xmlns/", H = "http://www.w3.org/1999/xlink", O = { + window: "undefined" == typeof window ? null : window, + document: "undefined" == typeof document ? null : document + }; + + function F() { + return O.window + } + + let D = class { + }; + const _ = {}, N = "___SYMBOL___ROOT___"; + + function W(t, e = E) { + return O.document.createElementNS(e, t) + } + + function B(t, e = !1) { + if (t instanceof D) return t; + if ("object" == typeof t) return U(t); + if (null == t) return new _[N]; + if ("string" == typeof t && "<" !== t.charAt(0)) return U(O.document.querySelector(t)); + const i = e ? O.document.createElement("div") : W("svg"); + return i.innerHTML = t, t = U(i.firstChild), i.removeChild(i.firstChild), t + } + + function G(t, e) { + return e && (e instanceof O.window.Node || e.ownerDocument && e instanceof e.ownerDocument.defaultView.Node) ? e : W(t) + } + + function V(t) { + if (!t) return null; + if (t.instance instanceof D) return t.instance; + if ("#document-fragment" === t.nodeName) return new _.Fragment(t); + let e = P(t.nodeName || "Dom"); + return "LinearGradient" === e || "RadialGradient" === e ? e = "Gradient" : _[e] || (e = "Dom"), new _[e](t) + } + + let U = V; + + function q(t, e = t.name, i = !1) { + return _[e] = t, i && (_[N] = t), S(Object.getOwnPropertyNames(t.prototype)), t + } + + let Z = 1e3; + + function $(t) { + return "Svgjs" + P(t) + Z++ + } + + function J(t) { + for (let e = t.children.length - 1; e >= 0; e--) J(t.children[e]); + return t.id ? (t.id = $(t.nodeName), t) : t + } + + function Q(t, e) { + let i, a; + for (a = (t = Array.isArray(t) ? t : [t]).length - 1; a >= 0; a--) for (i in e) t[a].prototype[i] = e[i] + } + + function K(t) { + return function (...e) { + const i = e[e.length - 1]; + return !i || i.constructor !== Object || i instanceof Array ? t.apply(this, e) : t.apply(this, e.slice(0, -1)).attr(i) + } + } + + A("Dom", { + siblings: function () { + return this.parent().children() + }, position: function () { + return this.parent().index(this) + }, next: function () { + return this.siblings()[this.position() + 1] + }, prev: function () { + return this.siblings()[this.position() - 1] + }, forward: function () { + const t = this.position(); + return this.parent().add(this.remove(), t + 1), this + }, backward: function () { + const t = this.position(); + return this.parent().add(this.remove(), t ? t - 1 : 0), this + }, front: function () { + return this.parent().add(this.remove()), this + }, back: function () { + return this.parent().add(this.remove(), 0), this + }, before: function (t) { + (t = B(t)).remove(); + const e = this.position(); + return this.parent().add(t, e), this + }, after: function (t) { + (t = B(t)).remove(); + const e = this.position(); + return this.parent().add(t, e + 1), this + }, insertBefore: function (t) { + return (t = B(t)).before(this), this + }, insertAfter: function (t) { + return (t = B(t)).after(this), this + } + }); + const tt = /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i, et = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, + it = /rgb\((\d+),(\d+),(\d+)\)/, at = /(#[a-z_][a-z0-9\-_]*)/i, st = /\)\s*,?\s*/, rt = /\s/g, + nt = /^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i, ot = /^rgb\(/, lt = /^(\s+)?$/, + ht = /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, ct = /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i, dt = /[\s,]+/, + ut = /[MLHVCSQTAZ]/i; + + function gt(t) { + const e = Math.round(t), i = Math.max(0, Math.min(255, e)).toString(16); + return 1 === i.length ? "0" + i : i + } + + function pt(t, e) { + for (let i = e.length; i--;) if (null == t[e[i]]) return !1; + return !0 + } + + function ft(t, e, i) { + return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t + } + + A("Dom", { + classes: function () { + const t = this.attr("class"); + return null == t ? [] : t.trim().split(dt) + }, hasClass: function (t) { + return -1 !== this.classes().indexOf(t) + }, addClass: function (t) { + if (!this.hasClass(t)) { + const e = this.classes(); + e.push(t), this.attr("class", e.join(" ")) + } + return this + }, removeClass: function (t) { + return this.hasClass(t) && this.attr("class", this.classes().filter((function (e) { + return e !== t + })).join(" ")), this + }, toggleClass: function (t) { + return this.hasClass(t) ? this.removeClass(t) : this.addClass(t) + } + }), A("Dom", { + css: function (t, e) { + const i = {}; + if (0 === arguments.length) return this.node.style.cssText.split(/\s*;\s*/).filter((function (t) { + return !!t.length + })).forEach((function (t) { + const e = t.split(/\s*:\s*/); + i[e[0]] = e[1] + })), i; + if (arguments.length < 2) { + if (Array.isArray(t)) { + for (const e of t) { + const t = e; + i[e] = this.node.style.getPropertyValue(t) + } + return i + } + if ("string" == typeof t) return this.node.style.getPropertyValue(t); + if ("object" == typeof t) for (const e in t) this.node.style.setProperty(e, null == t[e] || lt.test(t[e]) ? "" : t[e]) + } + return 2 === arguments.length && this.node.style.setProperty(t, null == e || lt.test(e) ? "" : e), this + }, show: function () { + return this.css("display", "") + }, hide: function () { + return this.css("display", "none") + }, visible: function () { + return "none" !== this.css("display") + } + }), A("Dom", { + data: function (t, e, i) { + if (null == t) return this.data(L(function (t, e) { + let i; + const a = t.length, s = []; + for (i = 0; i < a; i++) e(t[i]) && s.push(t[i]); + return s + }(this.node.attributes, (t => 0 === t.nodeName.indexOf("data-"))), (t => t.nodeName.slice(5)))); + if (t instanceof Array) { + const e = {}; + for (const i of t) e[i] = this.data(i); + return e + } + if ("object" == typeof t) for (e in t) this.data(e, t[e]); else if (arguments.length < 2) try { + return JSON.parse(this.attr("data-" + t)) + } catch (e) { + return this.attr("data-" + t) + } else this.attr("data-" + t, null === e ? null : !0 === i || "string" == typeof e || "number" == typeof e ? e : JSON.stringify(e)); + return this + } + }), A("Dom", { + remember: function (t, e) { + if ("object" == typeof arguments[0]) for (const e in t) this.remember(e, t[e]); else { + if (1 === arguments.length) return this.memory()[t]; + this.memory()[t] = e + } + return this + }, forget: function () { + if (0 === arguments.length) this._memory = {}; else for (let t = arguments.length - 1; t >= 0; t--) delete this.memory()[arguments[t]]; + return this + }, memory: function () { + return this._memory = this._memory || {} + } + }); + + class xt { + constructor(...t) { + this.init(...t) + } + + static isColor(t) { + return t && (t instanceof xt || this.isRgb(t) || this.test(t)) + } + + static isRgb(t) { + return t && "number" == typeof t.r && "number" == typeof t.g && "number" == typeof t.b + } + + static random(t = "vibrant", e) { + const {random: i, round: a, sin: s, PI: r} = Math; + if ("vibrant" === t) { + const t = 24 * i() + 57, e = 38 * i() + 45, a = 360 * i(); + return new xt(t, e, a, "lch") + } + if ("sine" === t) { + const t = a(80 * s(2 * r * (e = null == e ? i() : e) / .5 + .01) + 150), + n = a(50 * s(2 * r * e / .5 + 4.6) + 200), o = a(100 * s(2 * r * e / .5 + 2.3) + 150); + return new xt(t, n, o) + } + if ("pastel" === t) { + const t = 8 * i() + 86, e = 17 * i() + 9, a = 360 * i(); + return new xt(t, e, a, "lch") + } + if ("dark" === t) { + const t = 10 + 10 * i(), e = 50 * i() + 86, a = 360 * i(); + return new xt(t, e, a, "lch") + } + if ("rgb" === t) { + const t = 255 * i(), e = 255 * i(), a = 255 * i(); + return new xt(t, e, a) + } + if ("lab" === t) { + const t = 100 * i(), e = 256 * i() - 128, a = 256 * i() - 128; + return new xt(t, e, a, "lab") + } + if ("grey" === t) { + const t = 255 * i(); + return new xt(t, t, t) + } + throw new Error("Unsupported random color mode") + } + + static test(t) { + return "string" == typeof t && (nt.test(t) || ot.test(t)) + } + + cmyk() { + const {_a: t, _b: e, _c: i} = this.rgb(), [a, s, r] = [t, e, i].map((t => t / 255)), + n = Math.min(1 - a, 1 - s, 1 - r); + if (1 === n) return new xt(0, 0, 0, 1, "cmyk"); + return new xt((1 - a - n) / (1 - n), (1 - s - n) / (1 - n), (1 - r - n) / (1 - n), n, "cmyk") + } + + hsl() { + const {_a: t, _b: e, _c: i} = this.rgb(), [a, s, r] = [t, e, i].map((t => t / 255)), n = Math.max(a, s, r), + o = Math.min(a, s, r), l = (n + o) / 2, h = n === o, c = n - o; + return new xt(360 * (h ? 0 : n === a ? ((s - r) / c + (s < r ? 6 : 0)) / 6 : n === s ? ((r - a) / c + 2) / 6 : n === r ? ((a - s) / c + 4) / 6 : 0), 100 * (h ? 0 : l > .5 ? c / (2 - n - o) : c / (n + o)), 100 * l, "hsl") + } + + init(t = 0, e = 0, i = 0, a = 0, s = "rgb") { + if (t = t || 0, this.space) for (const t in this.space) delete this[this.space[t]]; + if ("number" == typeof t) s = "string" == typeof a ? a : s, a = "string" == typeof a ? 0 : a, Object.assign(this, { + _a: t, + _b: e, + _c: i, + _d: a, + space: s + }); else if (t instanceof Array) this.space = e || ("string" == typeof t[3] ? t[3] : t[4]) || "rgb", Object.assign(this, { + _a: t[0], + _b: t[1], + _c: t[2], + _d: t[3] || 0 + }); else if (t instanceof Object) { + const i = function (t, e) { + const i = pt(t, "rgb") ? {_a: t.r, _b: t.g, _c: t.b, _d: 0, space: "rgb"} : pt(t, "xyz") ? { + _a: t.x, + _b: t.y, + _c: t.z, + _d: 0, + space: "xyz" + } : pt(t, "hsl") ? {_a: t.h, _b: t.s, _c: t.l, _d: 0, space: "hsl"} : pt(t, "lab") ? { + _a: t.l, + _b: t.a, + _c: t.b, + _d: 0, + space: "lab" + } : pt(t, "lch") ? {_a: t.l, _b: t.c, _c: t.h, _d: 0, space: "lch"} : pt(t, "cmyk") ? { + _a: t.c, + _b: t.m, + _c: t.y, + _d: t.k, + space: "cmyk" + } : {_a: 0, _b: 0, _c: 0, space: "rgb"}; + return i.space = e || i.space, i + }(t, e); + Object.assign(this, i) + } else if ("string" == typeof t) if (ot.test(t)) { + const e = t.replace(rt, ""), [i, a, s] = it.exec(e).slice(1, 4).map((t => parseInt(t))); + Object.assign(this, {_a: i, _b: a, _c: s, _d: 0, space: "rgb"}) + } else { + if (!nt.test(t)) throw Error("Unsupported string format, can't construct Color"); + { + const e = t => parseInt(t, 16), [, i, a, s] = et.exec(function (t) { + return 4 === t.length ? ["#", t.substring(1, 2), t.substring(1, 2), t.substring(2, 3), t.substring(2, 3), t.substring(3, 4), t.substring(3, 4)].join("") : t + }(t)).map(e); + Object.assign(this, {_a: i, _b: a, _c: s, _d: 0, space: "rgb"}) + } + } + const {_a: r, _b: n, _c: o, _d: l} = this, + h = "rgb" === this.space ? {r: r, g: n, b: o} : "xyz" === this.space ? { + x: r, + y: n, + z: o + } : "hsl" === this.space ? {h: r, s: n, l: o} : "lab" === this.space ? { + l: r, + a: n, + b: o + } : "lch" === this.space ? {l: r, c: n, h: o} : "cmyk" === this.space ? {c: r, m: n, y: o, k: l} : {}; + Object.assign(this, h) + } + + lab() { + const {x: t, y: e, z: i} = this.xyz(); + return new xt(116 * e - 16, 500 * (t - e), 200 * (e - i), "lab") + } + + lch() { + const {l: t, a: e, b: i} = this.lab(), a = Math.sqrt(e ** 2 + i ** 2); + let s = 180 * Math.atan2(i, e) / Math.PI; + s < 0 && (s *= -1, s = 360 - s); + return new xt(t, a, s, "lch") + } + + rgb() { + if ("rgb" === this.space) return this; + if ("lab" === (t = this.space) || "xyz" === t || "lch" === t) { + let {x: t, y: e, z: i} = this; + if ("lab" === this.space || "lch" === this.space) { + let {l: a, a: s, b: r} = this; + if ("lch" === this.space) { + const {c: t, h: e} = this, i = Math.PI / 180; + s = t * Math.cos(i * e), r = t * Math.sin(i * e) + } + const n = (a + 16) / 116, o = s / 500 + n, l = n - r / 200, h = 16 / 116, c = .008856, d = 7.787; + t = .95047 * (o ** 3 > c ? o ** 3 : (o - h) / d), e = 1 * (n ** 3 > c ? n ** 3 : (n - h) / d), i = 1.08883 * (l ** 3 > c ? l ** 3 : (l - h) / d) + } + const a = 3.2406 * t + -1.5372 * e + -.4986 * i, s = -.9689 * t + 1.8758 * e + .0415 * i, + r = .0557 * t + -.204 * e + 1.057 * i, n = Math.pow, o = .0031308, + l = a > o ? 1.055 * n(a, 1 / 2.4) - .055 : 12.92 * a, + h = s > o ? 1.055 * n(s, 1 / 2.4) - .055 : 12.92 * s, + c = r > o ? 1.055 * n(r, 1 / 2.4) - .055 : 12.92 * r; + return new xt(255 * l, 255 * h, 255 * c) + } + if ("hsl" === this.space) { + let {h: t, s: e, l: i} = this; + if (t /= 360, e /= 100, i /= 100, 0 === e) { + i *= 255; + return new xt(i, i, i) + } + const a = i < .5 ? i * (1 + e) : i + e - i * e, s = 2 * i - a, r = 255 * ft(s, a, t + 1 / 3), + n = 255 * ft(s, a, t), o = 255 * ft(s, a, t - 1 / 3); + return new xt(r, n, o) + } + if ("cmyk" === this.space) { + const {c: t, m: e, y: i, k: a} = this, s = 255 * (1 - Math.min(1, t * (1 - a) + a)), + r = 255 * (1 - Math.min(1, e * (1 - a) + a)), n = 255 * (1 - Math.min(1, i * (1 - a) + a)); + return new xt(s, r, n) + } + return this; + var t + } + + toArray() { + const {_a: t, _b: e, _c: i, _d: a, space: s} = this; + return [t, e, i, a, s] + } + + toHex() { + const [t, e, i] = this._clamped().map(gt); + return `#${t}${e}${i}` + } + + toRgb() { + const [t, e, i] = this._clamped(); + return `rgb(${t},${e},${i})` + } + + toString() { + return this.toHex() + } + + xyz() { + const {_a: t, _b: e, _c: i} = this.rgb(), [a, s, r] = [t, e, i].map((t => t / 255)), + n = a > .04045 ? Math.pow((a + .055) / 1.055, 2.4) : a / 12.92, + o = s > .04045 ? Math.pow((s + .055) / 1.055, 2.4) : s / 12.92, + l = r > .04045 ? Math.pow((r + .055) / 1.055, 2.4) : r / 12.92, + h = (.4124 * n + .3576 * o + .1805 * l) / .95047, c = (.2126 * n + .7152 * o + .0722 * l) / 1, + d = (.0193 * n + .1192 * o + .9505 * l) / 1.08883, + u = h > .008856 ? Math.pow(h, 1 / 3) : 7.787 * h + 16 / 116, + g = c > .008856 ? Math.pow(c, 1 / 3) : 7.787 * c + 16 / 116, + p = d > .008856 ? Math.pow(d, 1 / 3) : 7.787 * d + 16 / 116; + return new xt(u, g, p, "xyz") + } + + _clamped() { + const {_a: t, _b: e, _c: i} = this.rgb(), {max: a, min: s, round: r} = Math; + return [t, e, i].map((t => a(0, s(r(t), 255)))) + } + } + + class bt { + constructor(...t) { + this.init(...t) + } + + clone() { + return new bt(this) + } + + init(t, e) { + const i = 0, a = 0, + s = Array.isArray(t) ? {x: t[0], y: t[1]} : "object" == typeof t ? {x: t.x, y: t.y} : {x: t, y: e}; + return this.x = null == s.x ? i : s.x, this.y = null == s.y ? a : s.y, this + } + + toArray() { + return [this.x, this.y] + } + + transform(t) { + return this.clone().transformO(t) + } + + transformO(t) { + vt.isMatrixLike(t) || (t = new vt(t)); + const {x: e, y: i} = this; + return this.x = t.a * e + t.c * i + t.e, this.y = t.b * e + t.d * i + t.f, this + } + } + + function mt(t, e, i) { + return Math.abs(e - t) < (i || 1e-6) + } + + class vt { + constructor(...t) { + this.init(...t) + } + + static formatTransforms(t) { + const e = "both" === t.flip || !0 === t.flip, i = t.flip && (e || "x" === t.flip) ? -1 : 1, + a = t.flip && (e || "y" === t.flip) ? -1 : 1, + s = t.skew && t.skew.length ? t.skew[0] : isFinite(t.skew) ? t.skew : isFinite(t.skewX) ? t.skewX : 0, + r = t.skew && t.skew.length ? t.skew[1] : isFinite(t.skew) ? t.skew : isFinite(t.skewY) ? t.skewY : 0, + n = t.scale && t.scale.length ? t.scale[0] * i : isFinite(t.scale) ? t.scale * i : isFinite(t.scaleX) ? t.scaleX * i : i, + o = t.scale && t.scale.length ? t.scale[1] * a : isFinite(t.scale) ? t.scale * a : isFinite(t.scaleY) ? t.scaleY * a : a, + l = t.shear || 0, h = t.rotate || t.theta || 0, + c = new bt(t.origin || t.around || t.ox || t.originX, t.oy || t.originY), d = c.x, u = c.y, + g = new bt(t.position || t.px || t.positionX || NaN, t.py || t.positionY || NaN), p = g.x, f = g.y, + x = new bt(t.translate || t.tx || t.translateX, t.ty || t.translateY), b = x.x, m = x.y, + v = new bt(t.relative || t.rx || t.relativeX, t.ry || t.relativeY); + return { + scaleX: n, + scaleY: o, + skewX: s, + skewY: r, + shear: l, + theta: h, + rx: v.x, + ry: v.y, + tx: b, + ty: m, + ox: d, + oy: u, + px: p, + py: f + } + } + + static fromArray(t) { + return {a: t[0], b: t[1], c: t[2], d: t[3], e: t[4], f: t[5]} + } + + static isMatrixLike(t) { + return null != t.a || null != t.b || null != t.c || null != t.d || null != t.e || null != t.f + } + + static matrixMultiply(t, e, i) { + const a = t.a * e.a + t.c * e.b, s = t.b * e.a + t.d * e.b, r = t.a * e.c + t.c * e.d, + n = t.b * e.c + t.d * e.d, o = t.e + t.a * e.e + t.c * e.f, l = t.f + t.b * e.e + t.d * e.f; + return i.a = a, i.b = s, i.c = r, i.d = n, i.e = o, i.f = l, i + } + + around(t, e, i) { + return this.clone().aroundO(t, e, i) + } + + aroundO(t, e, i) { + const a = t || 0, s = e || 0; + return this.translateO(-a, -s).lmultiplyO(i).translateO(a, s) + } + + clone() { + return new vt(this) + } + + decompose(t = 0, e = 0) { + const i = this.a, a = this.b, s = this.c, r = this.d, n = this.e, o = this.f, l = i * r - a * s, + h = l > 0 ? 1 : -1, c = h * Math.sqrt(i * i + a * a), d = Math.atan2(h * a, h * i), + u = 180 / Math.PI * d, g = Math.cos(d), p = Math.sin(d), f = (i * s + a * r) / l, + x = s * c / (f * i - a) || r * c / (f * a + i); + return { + scaleX: c, + scaleY: x, + shear: f, + rotate: u, + translateX: n - t + t * g * c + e * (f * g * c - p * x), + translateY: o - e + t * p * c + e * (f * p * c + g * x), + originX: t, + originY: e, + a: this.a, + b: this.b, + c: this.c, + d: this.d, + e: this.e, + f: this.f + } + } + + equals(t) { + if (t === this) return !0; + const e = new vt(t); + return mt(this.a, e.a) && mt(this.b, e.b) && mt(this.c, e.c) && mt(this.d, e.d) && mt(this.e, e.e) && mt(this.f, e.f) + } + + flip(t, e) { + return this.clone().flipO(t, e) + } + + flipO(t, e) { + return "x" === t ? this.scaleO(-1, 1, e, 0) : "y" === t ? this.scaleO(1, -1, 0, e) : this.scaleO(-1, -1, t, e || t) + } + + init(t) { + const e = vt.fromArray([1, 0, 0, 1, 0, 0]); + return t = t instanceof Gt ? t.matrixify() : "string" == typeof t ? vt.fromArray(t.split(dt).map(parseFloat)) : Array.isArray(t) ? vt.fromArray(t) : "object" == typeof t && vt.isMatrixLike(t) ? t : "object" == typeof t ? (new vt).transform(t) : 6 === arguments.length ? vt.fromArray([].slice.call(arguments)) : e, this.a = null != t.a ? t.a : e.a, this.b = null != t.b ? t.b : e.b, this.c = null != t.c ? t.c : e.c, this.d = null != t.d ? t.d : e.d, this.e = null != t.e ? t.e : e.e, this.f = null != t.f ? t.f : e.f, this + } + + inverse() { + return this.clone().inverseO() + } + + inverseO() { + const t = this.a, e = this.b, i = this.c, a = this.d, s = this.e, r = this.f, n = t * a - e * i; + if (!n) throw new Error("Cannot invert " + this); + const o = a / n, l = -e / n, h = -i / n, c = t / n, d = -(o * s + h * r), u = -(l * s + c * r); + return this.a = o, this.b = l, this.c = h, this.d = c, this.e = d, this.f = u, this + } + + lmultiply(t) { + return this.clone().lmultiplyO(t) + } + + lmultiplyO(t) { + const e = t instanceof vt ? t : new vt(t); + return vt.matrixMultiply(e, this, this) + } + + multiply(t) { + return this.clone().multiplyO(t) + } + + multiplyO(t) { + const e = t instanceof vt ? t : new vt(t); + return vt.matrixMultiply(this, e, this) + } + + rotate(t, e, i) { + return this.clone().rotateO(t, e, i) + } + + rotateO(t, e = 0, i = 0) { + t = M(t); + const a = Math.cos(t), s = Math.sin(t), {a: r, b: n, c: o, d: l, e: h, f: c} = this; + return this.a = r * a - n * s, this.b = n * a + r * s, this.c = o * a - l * s, this.d = l * a + o * s, this.e = h * a - c * s + i * s - e * a + e, this.f = c * a + h * s - e * s - i * a + i, this + } + + scale() { + return this.clone().scaleO(...arguments) + } + + scaleO(t, e = t, i = 0, a = 0) { + 3 === arguments.length && (a = i, i = e, e = t); + const {a: s, b: r, c: n, d: o, e: l, f: h} = this; + return this.a = s * t, this.b = r * e, this.c = n * t, this.d = o * e, this.e = l * t - i * t + i, this.f = h * e - a * e + a, this + } + + shear(t, e, i) { + return this.clone().shearO(t, e, i) + } + + shearO(t, e = 0, i = 0) { + const {a: a, b: s, c: r, d: n, e: o, f: l} = this; + return this.a = a + s * t, this.c = r + n * t, this.e = o + l * t - i * t, this + } + + skew() { + return this.clone().skewO(...arguments) + } + + skewO(t, e = t, i = 0, a = 0) { + 3 === arguments.length && (a = i, i = e, e = t), t = M(t), e = M(e); + const s = Math.tan(t), r = Math.tan(e), {a: n, b: o, c: l, d: h, e: c, f: d} = this; + return this.a = n + o * s, this.b = o + n * r, this.c = l + h * s, this.d = h + l * r, this.e = c + d * s - a * s, this.f = d + c * r - i * r, this + } + + skewX(t, e, i) { + return this.skew(t, 0, e, i) + } + + skewY(t, e, i) { + return this.skew(0, t, e, i) + } + + toArray() { + return [this.a, this.b, this.c, this.d, this.e, this.f] + } + + toString() { + return "matrix(" + this.a + "," + this.b + "," + this.c + "," + this.d + "," + this.e + "," + this.f + ")" + } + + transform(t) { + if (vt.isMatrixLike(t)) { + return new vt(t).multiplyO(this) + } + const e = vt.formatTransforms(t), {x: i, y: a} = new bt(e.ox, e.oy).transform(this), + s = (new vt).translateO(e.rx, e.ry).lmultiplyO(this).translateO(-i, -a).scaleO(e.scaleX, e.scaleY).skewO(e.skewX, e.skewY).shearO(e.shear).rotateO(e.theta).translateO(i, a); + if (isFinite(e.px) || isFinite(e.py)) { + const t = new bt(i, a).transform(s), r = isFinite(e.px) ? e.px - t.x : 0, + n = isFinite(e.py) ? e.py - t.y : 0; + s.translateO(r, n) + } + return s.translateO(e.tx, e.ty), s + } + + translate(t, e) { + return this.clone().translateO(t, e) + } + + translateO(t, e) { + return this.e += t || 0, this.f += e || 0, this + } + + valueOf() { + return {a: this.a, b: this.b, c: this.c, d: this.d, e: this.e, f: this.f} + } + } + + function yt() { + if (!yt.nodes) { + const t = B().size(2, 0); + t.node.style.cssText = ["opacity: 0", "position: absolute", "left: -100%", "top: -100%", "overflow: hidden"].join(";"), t.attr("focusable", "false"), t.attr("aria-hidden", "true"); + const e = t.path().node; + yt.nodes = {svg: t, path: e} + } + if (!yt.nodes.svg.node.parentNode) { + const t = O.document.body || O.document.documentElement; + yt.nodes.svg.addTo(t) + } + return yt.nodes + } + + function wt(t) { + return !(t.width || t.height || t.x || t.y) + } + + q(vt, "Matrix"); + + class kt { + constructor(...t) { + this.init(...t) + } + + addOffset() { + return this.x += O.window.pageXOffset, this.y += O.window.pageYOffset, new kt(this) + } + + init(t) { + return t = "string" == typeof t ? t.split(dt).map(parseFloat) : Array.isArray(t) ? t : "object" == typeof t ? [null != t.left ? t.left : t.x, null != t.top ? t.top : t.y, t.width, t.height] : 4 === arguments.length ? [].slice.call(arguments) : [0, 0, 0, 0], this.x = t[0] || 0, this.y = t[1] || 0, this.width = this.w = t[2] || 0, this.height = this.h = t[3] || 0, this.x2 = this.x + this.w, this.y2 = this.y + this.h, this.cx = this.x + this.w / 2, this.cy = this.y + this.h / 2, this + } + + isNulled() { + return wt(this) + } + + merge(t) { + const e = Math.min(this.x, t.x), i = Math.min(this.y, t.y), + a = Math.max(this.x + this.width, t.x + t.width) - e, + s = Math.max(this.y + this.height, t.y + t.height) - i; + return new kt(e, i, a, s) + } + + toArray() { + return [this.x, this.y, this.width, this.height] + } + + toString() { + return this.x + " " + this.y + " " + this.width + " " + this.height + } + + transform(t) { + t instanceof vt || (t = new vt(t)); + let e = 1 / 0, i = -1 / 0, a = 1 / 0, s = -1 / 0; + return [new bt(this.x, this.y), new bt(this.x2, this.y), new bt(this.x, this.y2), new bt(this.x2, this.y2)].forEach((function (r) { + r = r.transform(t), e = Math.min(e, r.x), i = Math.max(i, r.x), a = Math.min(a, r.y), s = Math.max(s, r.y) + })), new kt(e, a, i - e, s - a) + } + } + + function At(t, e, i) { + let a; + try { + if (a = e(t.node), wt(a) && ((s = t.node) !== O.document && !(O.document.documentElement.contains || function (t) { + for (; t.parentNode;) t = t.parentNode; + return t === O.document + }).call(O.document.documentElement, s))) throw new Error("Element not in the dom") + } catch (e) { + a = i(t) + } + var s; + return a + } + + A({ + viewbox: { + viewbox(t, e, i, a) { + return null == t ? new kt(this.attr("viewBox")) : this.attr("viewBox", new kt(t, e, i, a)) + }, zoom(t, e) { + let {width: i, height: a} = this.attr(["width", "height"]); + if ((i || a) && "string" != typeof i && "string" != typeof a || (i = this.node.clientWidth, a = this.node.clientHeight), !i || !a) throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element"); + const s = this.viewbox(), r = i / s.width, n = a / s.height, o = Math.min(r, n); + if (null == t) return o; + let l = o / t; + l === 1 / 0 && (l = Number.MAX_SAFE_INTEGER / 100), e = e || new bt(i / 2 / r + s.x, a / 2 / n + s.y); + const h = new kt(s).transform(new vt({scale: l, origin: e})); + return this.viewbox(h) + } + } + }), q(kt, "Box"); + + class Ct extends Array { + constructor(t = [], ...e) { + if (super(t, ...e), "number" == typeof t) return this; + this.length = 0, this.push(...t) + } + } + + Q([Ct], { + each(t, ...e) { + return "function" == typeof t ? this.map(((e, i, a) => t.call(e, e, i, a))) : this.map((i => i[t](...e))) + }, toArray() { + return Array.prototype.concat.apply([], this) + } + }); + const St = ["toArray", "constructor", "each"]; + + function Lt(t, e) { + return new Ct(L((e || O.document).querySelectorAll(t), (function (t) { + return V(t) + }))) + } + + Ct.extend = function (t) { + t = t.reduce(((t, e) => (St.includes(e) || "_" === e[0] || (e in Array.prototype && (t["$" + e] = Array.prototype[e]), t[e] = function (...t) { + return this.each(e, ...t) + }), t)), {}), Q([Ct], t) + }; + let Mt = 0; + const Pt = {}; + + function It(t) { + let e = t.getEventHolder(); + return e === O.window && (e = Pt), e.events || (e.events = {}), e.events + } + + function Tt(t) { + return t.getEventTarget() + } + + function zt(t, e, i, a, s) { + const r = i.bind(a || t), n = B(t), o = It(n), l = Tt(n); + e = Array.isArray(e) ? e : e.split(dt), i._svgjsListenerId || (i._svgjsListenerId = ++Mt), e.forEach((function (t) { + const e = t.split(".")[0], a = t.split(".")[1] || "*"; + o[e] = o[e] || {}, o[e][a] = o[e][a] || {}, o[e][a][i._svgjsListenerId] = r, l.addEventListener(e, r, s || !1) + })) + } + + function Xt(t, e, i, a) { + const s = B(t), r = It(s), n = Tt(s); + ("function" != typeof i || (i = i._svgjsListenerId)) && (e = Array.isArray(e) ? e : (e || "").split(dt)).forEach((function (t) { + const e = t && t.split(".")[0], o = t && t.split(".")[1]; + let l, h; + if (i) r[e] && r[e][o || "*"] && (n.removeEventListener(e, r[e][o || "*"][i], a || !1), delete r[e][o || "*"][i]); else if (e && o) { + if (r[e] && r[e][o]) { + for (h in r[e][o]) Xt(n, [e, o].join("."), h); + delete r[e][o] + } + } else if (o) for (t in r) for (l in r[t]) o === l && Xt(n, [t, o].join(".")); else if (e) { + if (r[e]) { + for (l in r[e]) Xt(n, [e, l].join(".")); + delete r[e] + } + } else { + for (t in r) Xt(n, t); + !function (t) { + let e = t.getEventHolder(); + e === O.window && (e = Pt), e.events && (e.events = {}) + }(s) + } + })) + } + + class Rt extends D { + addEventListener() { + } + + dispatch(t, e, i) { + return function (t, e, i, a) { + const s = Tt(t); + return e instanceof O.window.Event || (e = new O.window.CustomEvent(e, { + detail: i, + cancelable: !0, ...a + })), s.dispatchEvent(e), e + }(this, t, e, i) + } + + dispatchEvent(t) { + const e = this.getEventHolder().events; + if (!e) return !0; + const i = e[t.type]; + for (const e in i) for (const a in i[e]) i[e][a](t); + return !t.defaultPrevented + } + + fire(t, e, i) { + return this.dispatch(t, e, i), this + } + + getEventHolder() { + return this + } + + getEventTarget() { + return this + } + + off(t, e, i) { + return Xt(this, t, e, i), this + } + + on(t, e, i, a) { + return zt(this, t, e, i, a), this + } + + removeEventListener() { + } + } + + function Et() { + } + + q(Rt, "EventTarget"); + const Yt = 400, Ht = ">", Ot = 0, Ft = { + "fill-opacity": 1, + "stroke-opacity": 1, + "stroke-width": 0, + "stroke-linejoin": "miter", + "stroke-linecap": "butt", + fill: "#000000", + stroke: "#000000", + opacity: 1, + x: 0, + y: 0, + cx: 0, + cy: 0, + width: 0, + height: 0, + r: 0, + rx: 0, + ry: 0, + offset: 0, + "stop-opacity": 1, + "stop-color": "#000000", + "text-anchor": "start" + }; + + class Dt extends Array { + constructor(...t) { + super(...t), this.init(...t) + } + + clone() { + return new this.constructor(this) + } + + init(t) { + return "number" == typeof t || (this.length = 0, this.push(...this.parse(t))), this + } + + parse(t = []) { + return t instanceof Array ? t : t.trim().split(dt).map(parseFloat) + } + + toArray() { + return Array.prototype.concat.apply([], this) + } + + toSet() { + return new Set(this) + } + + toString() { + return this.join(" ") + } + + valueOf() { + const t = []; + return t.push(...this), t + } + } + + class _t { + constructor(...t) { + this.init(...t) + } + + convert(t) { + return new _t(this.value, t) + } + + divide(t) { + return t = new _t(t), new _t(this / t, this.unit || t.unit) + } + + init(t, e) { + return e = Array.isArray(t) ? t[1] : e, t = Array.isArray(t) ? t[0] : t, this.value = 0, this.unit = e || "", "number" == typeof t ? this.value = isNaN(t) ? 0 : isFinite(t) ? t : t < 0 ? -34e37 : 34e37 : "string" == typeof t ? (e = t.match(tt)) && (this.value = parseFloat(e[1]), "%" === e[5] ? this.value /= 100 : "s" === e[5] && (this.value *= 1e3), this.unit = e[5]) : t instanceof _t && (this.value = t.valueOf(), this.unit = t.unit), this + } + + minus(t) { + return t = new _t(t), new _t(this - t, this.unit || t.unit) + } + + plus(t) { + return t = new _t(t), new _t(this + t, this.unit || t.unit) + } + + times(t) { + return t = new _t(t), new _t(this * t, this.unit || t.unit) + } + + toArray() { + return [this.value, this.unit] + } + + toJSON() { + return this.toString() + } + + toString() { + return ("%" === this.unit ? ~~(1e8 * this.value) / 1e6 : "s" === this.unit ? this.value / 1e3 : this.value) + this.unit + } + + valueOf() { + return this.value + } + } + + const Nt = new Set(["fill", "stroke", "color", "bgcolor", "stop-color", "flood-color", "lighting-color"]), Wt = []; + + class Bt extends Rt { + constructor(t, e) { + super(), this.node = t, this.type = t.nodeName, e && t !== e && this.attr(e) + } + + add(t, e) { + return (t = B(t)).removeNamespace && this.node instanceof O.window.SVGElement && t.removeNamespace(), null == e ? this.node.appendChild(t.node) : t.node !== this.node.childNodes[e] && this.node.insertBefore(t.node, this.node.childNodes[e]), this + } + + addTo(t, e) { + return B(t).put(this, e) + } + + children() { + return new Ct(L(this.node.children, (function (t) { + return V(t) + }))) + } + + clear() { + for (; this.node.hasChildNodes();) this.node.removeChild(this.node.lastChild); + return this + } + + clone(t = !0, e = !0) { + this.writeDataToDom(); + let i = this.node.cloneNode(t); + return e && (i = J(i)), new this.constructor(i) + } + + each(t, e) { + const i = this.children(); + let a, s; + for (a = 0, s = i.length; a < s; a++) t.apply(i[a], [a, i]), e && i[a].each(t, e); + return this + } + + element(t, e) { + return this.put(new Bt(W(t), e)) + } + + first() { + return V(this.node.firstChild) + } + + get(t) { + return V(this.node.childNodes[t]) + } + + getEventHolder() { + return this.node + } + + getEventTarget() { + return this.node + } + + has(t) { + return this.index(t) >= 0 + } + + html(t, e) { + return this.xml(t, e, "http://www.w3.org/1999/xhtml") + } + + id(t) { + return void 0 !== t || this.node.id || (this.node.id = $(this.type)), this.attr("id", t) + } + + index(t) { + return [].slice.call(this.node.childNodes).indexOf(t.node) + } + + last() { + return V(this.node.lastChild) + } + + matches(t) { + const e = this.node, + i = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector || null; + return i && i.call(e, t) + } + + parent(t) { + let e = this; + if (!e.node.parentNode) return null; + if (e = V(e.node.parentNode), !t) return e; + do { + if ("string" == typeof t ? e.matches(t) : e instanceof t) return e + } while (e = V(e.node.parentNode)); + return e + } + + put(t, e) { + return t = B(t), this.add(t, e), t + } + + putIn(t, e) { + return B(t).add(this, e) + } + + remove() { + return this.parent() && this.parent().removeElement(this), this + } + + removeElement(t) { + return this.node.removeChild(t.node), this + } + + replace(t) { + return t = B(t), this.node.parentNode && this.node.parentNode.replaceChild(t.node, this.node), t + } + + round(t = 2, e = null) { + const i = 10 ** t, a = this.attr(e); + for (const t in a) "number" == typeof a[t] && (a[t] = Math.round(a[t] * i) / i); + return this.attr(a), this + } + + svg(t, e) { + return this.xml(t, e, E) + } + + toString() { + return this.id() + } + + words(t) { + return this.node.textContent = t, this + } + + wrap(t) { + const e = this.parent(); + if (!e) return this.addTo(t); + const i = e.index(this); + return e.put(t, i).put(this) + } + + writeDataToDom() { + return this.each((function () { + this.writeDataToDom() + })), this + } + + xml(t, e, i) { + if ("boolean" == typeof t && (i = e, e = t, t = null), null == t || "function" == typeof t) { + e = null == e || e, this.writeDataToDom(); + let i = this; + if (null != t) { + if (i = V(i.node.cloneNode(!0)), e) { + const e = t(i); + if (i = e || i, !1 === e) return "" + } + i.each((function () { + const e = t(this), i = e || this; + !1 === e ? this.remove() : e && this !== i && this.replace(i) + }), !0) + } + return e ? i.node.outerHTML : i.node.innerHTML + } + e = null != e && e; + const a = W("wrapper", i), s = O.document.createDocumentFragment(); + a.innerHTML = t; + for (let t = a.children.length; t--;) s.appendChild(a.firstElementChild); + const r = this.parent(); + return e ? this.replace(s) && r : this.add(s) + } + } + + Q(Bt, { + attr: function (t, e, i) { + if (null == t) { + t = {}, e = this.node.attributes; + for (const i of e) t[i.nodeName] = ht.test(i.nodeValue) ? parseFloat(i.nodeValue) : i.nodeValue; + return t + } + if (t instanceof Array) return t.reduce(((t, e) => (t[e] = this.attr(e), t)), {}); + if ("object" == typeof t && t.constructor === Object) for (e in t) this.attr(e, t[e]); else if (null === e) this.node.removeAttribute(t); else { + if (null == e) return null == (e = this.node.getAttribute(t)) ? Ft[t] : ht.test(e) ? parseFloat(e) : e; + "number" == typeof (e = Wt.reduce(((e, i) => i(t, e, this)), e)) ? e = new _t(e) : Nt.has(t) && xt.isColor(e) ? e = new xt(e) : e.constructor === Array && (e = new Dt(e)), "leading" === t ? this.leading && this.leading(e) : "string" == typeof i ? this.node.setAttributeNS(i, t, e.toString()) : this.node.setAttribute(t, e.toString()), !this.rebuild || "font-size" !== t && "x" !== t || this.rebuild() + } + return this + }, find: function (t) { + return Lt(t, this.node) + }, findOne: function (t) { + return V(this.node.querySelector(t)) + } + }), q(Bt, "Dom"); + let Gt = class extends Bt { + constructor(t, e) { + super(t, e), this.dom = {}, this.node.instance = this, (t.hasAttribute("data-svgjs") || t.hasAttribute("svgjs:data")) && this.setData(JSON.parse(t.getAttribute("data-svgjs")) ?? JSON.parse(t.getAttribute("svgjs:data")) ?? {}) + } + + center(t, e) { + return this.cx(t).cy(e) + } + + cx(t) { + return null == t ? this.x() + this.width() / 2 : this.x(t - this.width() / 2) + } + + cy(t) { + return null == t ? this.y() + this.height() / 2 : this.y(t - this.height() / 2) + } + + defs() { + const t = this.root(); + return t && t.defs() + } + + dmove(t, e) { + return this.dx(t).dy(e) + } + + dx(t = 0) { + return this.x(new _t(t).plus(this.x())) + } + + dy(t = 0) { + return this.y(new _t(t).plus(this.y())) + } + + getEventHolder() { + return this + } + + height(t) { + return this.attr("height", t) + } + + move(t, e) { + return this.x(t).y(e) + } + + parents(t = this.root()) { + const e = "string" == typeof t; + e || (t = B(t)); + const i = new Ct; + let a = this; + for (; (a = a.parent()) && a.node !== O.document && "#document-fragment" !== a.nodeName && (i.push(a), e || a.node !== t.node) && (!e || !a.matches(t));) if (a.node === this.root().node) return null; + return i + } + + reference(t) { + if (!(t = this.attr(t))) return null; + const e = (t + "").match(at); + return e ? B(e[1]) : null + } + + root() { + const t = this.parent(function (t) { + return _[t] + }(N)); + return t && t.root() + } + + setData(t) { + return this.dom = t, this + } + + size(t, e) { + const i = I(this, t, e); + return this.width(new _t(i.width)).height(new _t(i.height)) + } + + width(t) { + return this.attr("width", t) + } + + writeDataToDom() { + return R(this, this.dom), super.writeDataToDom() + } + + x(t) { + return this.attr("x", t) + } + + y(t) { + return this.attr("y", t) + } + }; + Q(Gt, { + bbox: function () { + const t = At(this, (t => t.getBBox()), (t => { + try { + const e = t.clone().addTo(yt().svg).show(), i = e.node.getBBox(); + return e.remove(), i + } catch (e) { + throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`) + } + })); + return new kt(t) + }, rbox: function (t) { + const e = At(this, (t => t.getBoundingClientRect()), (t => { + throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`) + })), i = new kt(e); + return t ? i.transform(t.screenCTM().inverseO()) : i.addOffset() + }, inside: function (t, e) { + const i = this.bbox(); + return t > i.x && e > i.y && t < i.x + i.width && e < i.y + i.height + }, point: function (t, e) { + return new bt(t, e).transformO(this.screenCTM().inverseO()) + }, ctm: function () { + return new vt(this.node.getCTM()) + }, screenCTM: function () { + try { + if ("function" == typeof this.isRoot && !this.isRoot()) { + const t = this.rect(1, 1), e = t.node.getScreenCTM(); + return t.remove(), new vt(e) + } + return new vt(this.node.getScreenCTM()) + } catch (t) { + return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`), new vt + } + } + }), q(Gt, "Element"); + const jt = { + stroke: ["color", "width", "opacity", "linecap", "linejoin", "miterlimit", "dasharray", "dashoffset"], + fill: ["color", "opacity", "rule"], + prefix: function (t, e) { + return "color" === e ? t : t + "-" + e + } + }; + ["fill", "stroke"].forEach((function (t) { + const e = {}; + let i; + e[t] = function (e) { + if (void 0 === e) return this.attr(t); + if ("string" == typeof e || e instanceof xt || xt.isRgb(e) || e instanceof Gt) this.attr(t, e); else for (i = jt[t].length - 1; i >= 0; i--) null != e[jt[t][i]] && this.attr(jt.prefix(t, jt[t][i]), e[jt[t][i]]); + return this + }, A(["Element", "Runner"], e) + })), A(["Element", "Runner"], { + matrix: function (t, e, i, a, s, r) { + return null == t ? new vt(this) : this.attr("transform", new vt(t, e, i, a, s, r)) + }, rotate: function (t, e, i) { + return this.transform({rotate: t, ox: e, oy: i}, !0) + }, skew: function (t, e, i, a) { + return 1 === arguments.length || 3 === arguments.length ? this.transform({ + skew: t, + ox: e, + oy: i + }, !0) : this.transform({skew: [t, e], ox: i, oy: a}, !0) + }, shear: function (t, e, i) { + return this.transform({shear: t, ox: e, oy: i}, !0) + }, scale: function (t, e, i, a) { + return 1 === arguments.length || 3 === arguments.length ? this.transform({ + scale: t, + ox: e, + oy: i + }, !0) : this.transform({scale: [t, e], ox: i, oy: a}, !0) + }, translate: function (t, e) { + return this.transform({translate: [t, e]}, !0) + }, relative: function (t, e) { + return this.transform({relative: [t, e]}, !0) + }, flip: function (t = "both", e = "center") { + return -1 === "xybothtrue".indexOf(t) && (e = t, t = "both"), this.transform({flip: t, origin: e}, !0) + }, opacity: function (t) { + return this.attr("opacity", t) + } + }), A("radius", { + radius: function (t, e = t) { + return "radialGradient" === (this._element || this).type ? this.attr("r", new _t(t)) : this.rx(t).ry(e) + } + }), A("Path", { + length: function () { + return this.node.getTotalLength() + }, pointAt: function (t) { + return new bt(this.node.getPointAtLength(t)) + } + }), A(["Element", "Runner"], { + font: function (t, e) { + if ("object" == typeof t) { + for (e in t) this.font(e, t[e]); + return this + } + return "leading" === t ? this.leading(e) : "anchor" === t ? this.attr("text-anchor", e) : "size" === t || "family" === t || "weight" === t || "stretch" === t || "variant" === t || "style" === t ? this.attr("font-" + t, e) : this.attr(t, e) + } + }); + A("Element", ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mouseout", "mousemove", "mouseenter", "mouseleave", "touchstart", "touchmove", "touchleave", "touchend", "touchcancel", "contextmenu", "wheel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel"].reduce((function (t, e) { + return t[e] = function (t) { + return null === t ? this.off(e) : this.on(e, t), this + }, t + }), {})), A("Element", { + untransform: function () { + return this.attr("transform", null) + }, matrixify: function () { + const t = (this.attr("transform") || "").split(st).slice(0, -1).map((function (t) { + const e = t.trim().split("("); + return [e[0], e[1].split(dt).map((function (t) { + return parseFloat(t) + }))] + })).reverse().reduce((function (t, e) { + return "matrix" === e[0] ? t.lmultiply(vt.fromArray(e[1])) : t[e[0]].apply(t, e[1]) + }), new vt); + return t + }, toParent: function (t, e) { + if (this === t) return this; + if (X(this.node)) return this.addTo(t, e); + const i = this.screenCTM(), a = t.screenCTM().inverse(); + return this.addTo(t, e).untransform().transform(a.multiply(i)), this + }, toRoot: function (t) { + return this.toParent(this.root(), t) + }, transform: function (t, e) { + if (null == t || "string" == typeof t) { + const e = new vt(this).decompose(); + return null == t ? e : e[t] + } + vt.isMatrixLike(t) || (t = {...t, origin: T(t, this)}); + const i = new vt(!0 === e ? this : e || !1).transform(t); + return this.attr("transform", i) + } + }); + + class Vt extends Gt { + flatten() { + return this.each((function () { + if (this instanceof Vt) return this.flatten().ungroup() + })), this + } + + ungroup(t = this.parent(), e = t.index(this)) { + return e = -1 === e ? t.children().length : e, this.each((function (i, a) { + return a[a.length - i - 1].toParent(t, e) + })), this.remove() + } + } + + q(Vt, "Container"); + + class Ut extends Vt { + constructor(t, e = t) { + super(G("defs", t), e) + } + + flatten() { + return this + } + + ungroup() { + return this + } + } + + q(Ut, "Defs"); + + class qt extends Gt { + } + + function Zt(t) { + return this.attr("rx", t) + } + + function $t(t) { + return this.attr("ry", t) + } + + function Jt(t) { + return null == t ? this.cx() - this.rx() : this.cx(t + this.rx()) + } + + function Qt(t) { + return null == t ? this.cy() - this.ry() : this.cy(t + this.ry()) + } + + function Kt(t) { + return this.attr("cx", t) + } + + function te(t) { + return this.attr("cy", t) + } + + function ee(t) { + return null == t ? 2 * this.rx() : this.rx(new _t(t).divide(2)) + } + + function ie(t) { + return null == t ? 2 * this.ry() : this.ry(new _t(t).divide(2)) + } + + q(qt, "Shape"); + var ae = Object.freeze({__proto__: null, cx: Kt, cy: te, height: ie, rx: Zt, ry: $t, width: ee, x: Jt, y: Qt}); + + class se extends qt { + constructor(t, e = t) { + super(G("ellipse", t), e) + } + + size(t, e) { + const i = I(this, t, e); + return this.rx(new _t(i.width).divide(2)).ry(new _t(i.height).divide(2)) + } + } + + Q(se, ae), A("Container", { + ellipse: K((function (t = 0, e = t) { + return this.put(new se).size(t, e).move(0, 0) + })) + }), q(se, "Ellipse"); + + class re extends Bt { + constructor(t = O.document.createDocumentFragment()) { + super(t) + } + + xml(t, e, i) { + if ("boolean" == typeof t && (i = e, e = t, t = null), null == t || "function" == typeof t) { + const t = new Bt(W("wrapper", i)); + return t.add(this.node.cloneNode(!0)), t.xml(!1, i) + } + return super.xml(t, !1, i) + } + } + + function ne(t, e) { + return "radialGradient" === (this._element || this).type ? this.attr({ + fx: new _t(t), + fy: new _t(e) + }) : this.attr({x1: new _t(t), y1: new _t(e)}) + } + + function oe(t, e) { + return "radialGradient" === (this._element || this).type ? this.attr({ + cx: new _t(t), + cy: new _t(e) + }) : this.attr({x2: new _t(t), y2: new _t(e)}) + } + + q(re, "Fragment"); + var le = Object.freeze({__proto__: null, from: ne, to: oe}); + + class he extends Vt { + constructor(t, e) { + super(G(t + "Gradient", "string" == typeof t ? null : t), e) + } + + attr(t, e, i) { + return "transform" === t && (t = "gradientTransform"), super.attr(t, e, i) + } + + bbox() { + return new kt + } + + targets() { + return Lt("svg [fill*=" + this.id() + "]") + } + + toString() { + return this.url() + } + + update(t) { + return this.clear(), "function" == typeof t && t.call(this, this), this + } + + url() { + return "url(#" + this.id() + ")" + } + } + + Q(he, le), A({ + Container: { + gradient(...t) { + return this.defs().gradient(...t) + } + }, Defs: { + gradient: K((function (t, e) { + return this.put(new he(t)).update(e) + })) + } + }), q(he, "Gradient"); + + class ce extends Vt { + constructor(t, e = t) { + super(G("pattern", t), e) + } + + attr(t, e, i) { + return "transform" === t && (t = "patternTransform"), super.attr(t, e, i) + } + + bbox() { + return new kt + } + + targets() { + return Lt("svg [fill*=" + this.id() + "]") + } + + toString() { + return this.url() + } + + update(t) { + return this.clear(), "function" == typeof t && t.call(this, this), this + } + + url() { + return "url(#" + this.id() + ")" + } + } + + A({ + Container: { + pattern(...t) { + return this.defs().pattern(...t) + } + }, Defs: { + pattern: K((function (t, e, i) { + return this.put(new ce).update(i).attr({ + x: 0, + y: 0, + width: t, + height: e, + patternUnits: "userSpaceOnUse" + }) + })) + } + }), q(ce, "Pattern"); + let de = class extends qt { + constructor(t, e = t) { + super(G("image", t), e) + } + + load(t, e) { + if (!t) return this; + const i = new O.window.Image; + return zt(i, "load", (function (t) { + const a = this.parent(ce); + 0 === this.width() && 0 === this.height() && this.size(i.width, i.height), a instanceof ce && 0 === a.width() && 0 === a.height() && a.size(this.width(), this.height()), "function" == typeof e && e.call(this, t) + }), this), zt(i, "load error", (function () { + Xt(i) + })), this.attr("href", i.src = t, H) + } + }; + var ue; + ue = function (t, e, i) { + return "fill" !== t && "stroke" !== t || ct.test(e) && (e = i.root().defs().image(e)), e instanceof de && (e = i.root().defs().pattern(0, 0, (t => { + t.add(e) + }))), e + }, Wt.push(ue), A({ + Container: { + image: K((function (t, e) { + return this.put(new de).size(0, 0).load(t, e) + })) + } + }), q(de, "Image"); + + class ge extends Dt { + bbox() { + let t = -1 / 0, e = -1 / 0, i = 1 / 0, a = 1 / 0; + return this.forEach((function (s) { + t = Math.max(s[0], t), e = Math.max(s[1], e), i = Math.min(s[0], i), a = Math.min(s[1], a) + })), new kt(i, a, t - i, e - a) + } + + move(t, e) { + const i = this.bbox(); + if (t -= i.x, e -= i.y, !isNaN(t) && !isNaN(e)) for (let i = this.length - 1; i >= 0; i--) this[i] = [this[i][0] + t, this[i][1] + e]; + return this + } + + parse(t = [0, 0]) { + const e = []; + (t = t instanceof Array ? Array.prototype.concat.apply([], t) : t.trim().split(dt).map(parseFloat)).length % 2 != 0 && t.pop(); + for (let i = 0, a = t.length; i < a; i += 2) e.push([t[i], t[i + 1]]); + return e + } + + size(t, e) { + let i; + const a = this.bbox(); + for (i = this.length - 1; i >= 0; i--) a.width && (this[i][0] = (this[i][0] - a.x) * t / a.width + a.x), a.height && (this[i][1] = (this[i][1] - a.y) * e / a.height + a.y); + return this + } + + toLine() { + return {x1: this[0][0], y1: this[0][1], x2: this[1][0], y2: this[1][1]} + } + + toString() { + const t = []; + for (let e = 0, i = this.length; e < i; e++) t.push(this[e].join(",")); + return t.join(" ") + } + + transform(t) { + return this.clone().transformO(t) + } + + transformO(t) { + vt.isMatrixLike(t) || (t = new vt(t)); + for (let e = this.length; e--;) { + const [i, a] = this[e]; + this[e][0] = t.a * i + t.c * a + t.e, this[e][1] = t.b * i + t.d * a + t.f + } + return this + } + } + + const pe = ge; + var fe = Object.freeze({ + __proto__: null, MorphArray: pe, height: function (t) { + const e = this.bbox(); + return null == t ? e.height : this.size(e.width, t) + }, width: function (t) { + const e = this.bbox(); + return null == t ? e.width : this.size(t, e.height) + }, x: function (t) { + return null == t ? this.bbox().x : this.move(t, this.bbox().y) + }, y: function (t) { + return null == t ? this.bbox().y : this.move(this.bbox().x, t) + } + }); + let xe = class extends qt { + constructor(t, e = t) { + super(G("line", t), e) + } + + array() { + return new ge([[this.attr("x1"), this.attr("y1")], [this.attr("x2"), this.attr("y2")]]) + } + + move(t, e) { + return this.attr(this.array().move(t, e).toLine()) + } + + plot(t, e, i, a) { + return null == t ? this.array() : (t = void 0 !== e ? { + x1: t, + y1: e, + x2: i, + y2: a + } : new ge(t).toLine(), this.attr(t)) + } + + size(t, e) { + const i = I(this, t, e); + return this.attr(this.array().size(i.width, i.height).toLine()) + } + }; + Q(xe, fe), A({ + Container: { + line: K((function (...t) { + return xe.prototype.plot.apply(this.put(new xe), null != t[0] ? t : [0, 0, 0, 0]) + })) + } + }), q(xe, "Line"); + let be = class extends Vt { + constructor(t, e = t) { + super(G("marker", t), e) + } + + height(t) { + return this.attr("markerHeight", t) + } + + orient(t) { + return this.attr("orient", t) + } + + ref(t, e) { + return this.attr("refX", t).attr("refY", e) + } + + toString() { + return "url(#" + this.id() + ")" + } + + update(t) { + return this.clear(), "function" == typeof t && t.call(this, this), this + } + + width(t) { + return this.attr("markerWidth", t) + } + }; + + function me(t, e) { + return function (i) { + return null == i ? this[t] : (this[t] = i, e && e.call(this), this) + } + } + + A({ + Container: { + marker(...t) { + return this.defs().marker(...t) + } + }, Defs: { + marker: K((function (t, e, i) { + return this.put(new be).size(t, e).ref(t / 2, e / 2).viewbox(0, 0, t, e).attr("orient", "auto").update(i) + })) + }, marker: { + marker(t, e, i, a) { + let s = ["marker"]; + return "all" !== t && s.push(t), s = s.join("-"), t = arguments[1] instanceof be ? arguments[1] : this.defs().marker(e, i, a), this.attr(s, t) + } + } + }), q(be, "Marker"); + const ve = { + "-": function (t) { + return t + }, "<>": function (t) { + return -Math.cos(t * Math.PI) / 2 + .5 + }, ">": function (t) { + return Math.sin(t * Math.PI / 2) + }, "<": function (t) { + return 1 - Math.cos(t * Math.PI / 2) + }, bezier: function (t, e, i, a) { + return function (s) { + return s < 0 ? t > 0 ? e / t * s : i > 0 ? a / i * s : 0 : s > 1 ? i < 1 ? (1 - a) / (1 - i) * s + (a - i) / (1 - i) : t < 1 ? (1 - e) / (1 - t) * s + (e - t) / (1 - t) : 1 : 3 * s * (1 - s) ** 2 * e + 3 * s ** 2 * (1 - s) * a + s ** 3 + } + }, steps: function (t, e = "end") { + e = e.split("-").reverse()[0]; + let i = t; + return "none" === e ? --i : "both" === e && ++i, (a, s = !1) => { + let r = Math.floor(a * t); + const n = a * r % 1 == 0; + return "start" !== e && "both" !== e || ++r, s && n && --r, a >= 0 && r < 0 && (r = 0), a <= 1 && r > i && (r = i), r / i + } + } + }; + + class ye { + done() { + return !1 + } + } + + class we extends ye { + constructor(t = Ht) { + super(), this.ease = ve[t] || t + } + + step(t, e, i) { + return "number" != typeof t ? i < 1 ? t : e : t + (e - t) * this.ease(i) + } + } + + class ke extends ye { + constructor(t) { + super(), this.stepper = t + } + + done(t) { + return t.done + } + + step(t, e, i, a) { + return this.stepper(t, e, i, a) + } + } + + function Ae() { + const t = (this._duration || 500) / 1e3, e = this._overshoot || 0, i = Math.PI, a = Math.log(e / 100 + 1e-10), + s = -a / Math.sqrt(i * i + a * a), r = 3.9 / (s * t); + this.d = 2 * s * r, this.k = r * r + } + + Q(class extends ke { + constructor(t = 500, e = 0) { + super(), this.duration(t).overshoot(e) + } + + step(t, e, i, a) { + if ("string" == typeof t) return t; + if (a.done = i === 1 / 0, i === 1 / 0) return e; + if (0 === i) return t; + i > 100 && (i = 16), i /= 1e3; + const s = a.velocity || 0, r = -this.d * s - this.k * (t - e), n = t + s * i + r * i * i / 2; + return a.velocity = s + r * i, a.done = Math.abs(e - n) + Math.abs(s) < .002, a.done ? e : n + } + }, {duration: me("_duration", Ae), overshoot: me("_overshoot", Ae)}); + Q(class extends ke { + constructor(t = .1, e = .01, i = 0, a = 1e3) { + super(), this.p(t).i(e).d(i).windup(a) + } + + step(t, e, i, a) { + if ("string" == typeof t) return t; + if (a.done = i === 1 / 0, i === 1 / 0) return e; + if (0 === i) return t; + const s = e - t; + let r = (a.integral || 0) + s * i; + const n = (s - (a.error || 0)) / i, o = this._windup; + return !1 !== o && (r = Math.max(-o, Math.min(r, o))), a.error = s, a.integral = r, a.done = Math.abs(s) < .001, a.done ? e : t + (this.P * s + this.I * r + this.D * n) + } + }, {windup: me("_windup"), p: me("P"), i: me("I"), d: me("D")}); + const Ce = {M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0}, Se = { + M: function (t, e, i) { + return e.x = i.x = t[0], e.y = i.y = t[1], ["M", e.x, e.y] + }, L: function (t, e) { + return e.x = t[0], e.y = t[1], ["L", t[0], t[1]] + }, H: function (t, e) { + return e.x = t[0], ["H", t[0]] + }, V: function (t, e) { + return e.y = t[0], ["V", t[0]] + }, C: function (t, e) { + return e.x = t[4], e.y = t[5], ["C", t[0], t[1], t[2], t[3], t[4], t[5]] + }, S: function (t, e) { + return e.x = t[2], e.y = t[3], ["S", t[0], t[1], t[2], t[3]] + }, Q: function (t, e) { + return e.x = t[2], e.y = t[3], ["Q", t[0], t[1], t[2], t[3]] + }, T: function (t, e) { + return e.x = t[0], e.y = t[1], ["T", t[0], t[1]] + }, Z: function (t, e, i) { + return e.x = i.x, e.y = i.y, ["Z"] + }, A: function (t, e) { + return e.x = t[5], e.y = t[6], ["A", t[0], t[1], t[2], t[3], t[4], t[5], t[6]] + } + }, Le = "mlhvqtcsaz".split(""); + for (let t = 0, e = Le.length; t < e; ++t) Se[Le[t]] = function (t) { + return function (e, i, a) { + if ("H" === t) e[0] = e[0] + i.x; else if ("V" === t) e[0] = e[0] + i.y; else if ("A" === t) e[5] = e[5] + i.x, e[6] = e[6] + i.y; else for (let t = 0, a = e.length; t < a; ++t) e[t] = e[t] + (t % 2 ? i.y : i.x); + return Se[t](e, i, a) + } + }(Le[t].toUpperCase()); + + function Me(t) { + return t.segment.length && t.segment.length - 1 === Ce[t.segment[0].toUpperCase()] + } + + function Pe(t, e) { + t.inNumber && Ie(t, !1); + const i = ut.test(e); + if (i) t.segment = [e]; else { + const e = t.lastCommand, i = e.toLowerCase(), a = e === i; + t.segment = ["m" === i ? a ? "l" : "L" : e] + } + return t.inSegment = !0, t.lastCommand = t.segment[0], i + } + + function Ie(t, e) { + if (!t.inNumber) throw new Error("Parser Error"); + t.number && t.segment.push(parseFloat(t.number)), t.inNumber = e, t.number = "", t.pointSeen = !1, t.hasExponent = !1, Me(t) && Te(t) + } + + function Te(t) { + t.inSegment = !1, t.absolute && (t.segment = function (t) { + const e = t.segment[0]; + return Se[e](t.segment.slice(1), t.p, t.p0) + }(t)), t.segments.push(t.segment) + } + + function ze(t) { + if (!t.segment.length) return !1; + const e = "A" === t.segment[0].toUpperCase(), i = t.segment.length; + return e && (4 === i || 5 === i) + } + + function Xe(t) { + return "E" === t.lastToken.toUpperCase() + } + + const Re = new Set([" ", ",", "\t", "\n", "\r", "\f"]); + + class Ee extends Dt { + bbox() { + return yt().path.setAttribute("d", this.toString()), new kt(yt.nodes.path.getBBox()) + } + + move(t, e) { + const i = this.bbox(); + if (t -= i.x, e -= i.y, !isNaN(t) && !isNaN(e)) for (let i, a = this.length - 1; a >= 0; a--) i = this[a][0], "M" === i || "L" === i || "T" === i ? (this[a][1] += t, this[a][2] += e) : "H" === i ? this[a][1] += t : "V" === i ? this[a][1] += e : "C" === i || "S" === i || "Q" === i ? (this[a][1] += t, this[a][2] += e, this[a][3] += t, this[a][4] += e, "C" === i && (this[a][5] += t, this[a][6] += e)) : "A" === i && (this[a][6] += t, this[a][7] += e); + return this + } + + parse(t = "M0 0") { + return Array.isArray(t) && (t = Array.prototype.concat.apply([], t).toString()), function (t, e = !0) { + let i = 0, a = ""; + const s = { + segment: [], + inNumber: !1, + number: "", + lastToken: "", + inSegment: !1, + segments: [], + pointSeen: !1, + hasExponent: !1, + absolute: e, + p0: new bt, + p: new bt + }; + for (; s.lastToken = a, a = t.charAt(i++);) if (s.inSegment || !Pe(s, a)) if ("." !== a) if (isNaN(parseInt(a))) if (Re.has(a)) s.inNumber && Ie(s, !1); else if ("-" !== a && "+" !== a) if ("E" !== a.toUpperCase()) { + if (ut.test(a)) { + if (s.inNumber) Ie(s, !1); else { + if (!Me(s)) throw new Error("parser Error"); + Te(s) + } + --i + } + } else s.number += a, s.hasExponent = !0; else { + if (s.inNumber && !Xe(s)) { + Ie(s, !1), --i; + continue + } + s.number += a, s.inNumber = !0 + } else { + if ("0" === s.number || ze(s)) { + s.inNumber = !0, s.number = a, Ie(s, !0); + continue + } + s.inNumber = !0, s.number += a + } else { + if (s.pointSeen || s.hasExponent) { + Ie(s, !1), --i; + continue + } + s.inNumber = !0, s.pointSeen = !0, s.number += a + } + return s.inNumber && Ie(s, !1), s.inSegment && Me(s) && Te(s), s.segments + }(t) + } + + size(t, e) { + const i = this.bbox(); + let a, s; + for (i.width = 0 === i.width ? 1 : i.width, i.height = 0 === i.height ? 1 : i.height, a = this.length - 1; a >= 0; a--) s = this[a][0], "M" === s || "L" === s || "T" === s ? (this[a][1] = (this[a][1] - i.x) * t / i.width + i.x, this[a][2] = (this[a][2] - i.y) * e / i.height + i.y) : "H" === s ? this[a][1] = (this[a][1] - i.x) * t / i.width + i.x : "V" === s ? this[a][1] = (this[a][1] - i.y) * e / i.height + i.y : "C" === s || "S" === s || "Q" === s ? (this[a][1] = (this[a][1] - i.x) * t / i.width + i.x, this[a][2] = (this[a][2] - i.y) * e / i.height + i.y, this[a][3] = (this[a][3] - i.x) * t / i.width + i.x, this[a][4] = (this[a][4] - i.y) * e / i.height + i.y, "C" === s && (this[a][5] = (this[a][5] - i.x) * t / i.width + i.x, this[a][6] = (this[a][6] - i.y) * e / i.height + i.y)) : "A" === s && (this[a][1] = this[a][1] * t / i.width, this[a][2] = this[a][2] * e / i.height, this[a][6] = (this[a][6] - i.x) * t / i.width + i.x, this[a][7] = (this[a][7] - i.y) * e / i.height + i.y); + return this + } + + toString() { + return function (t) { + let e = ""; + for (let i = 0, a = t.length; i < a; i++) e += t[i][0], null != t[i][1] && (e += t[i][1], null != t[i][2] && (e += " ", e += t[i][2], null != t[i][3] && (e += " ", e += t[i][3], e += " ", e += t[i][4], null != t[i][5] && (e += " ", e += t[i][5], e += " ", e += t[i][6], null != t[i][7] && (e += " ", e += t[i][7]))))); + return e + " " + }(this) + } + } + + const Ye = t => { + const e = typeof t; + return "number" === e ? _t : "string" === e ? xt.isColor(t) ? xt : dt.test(t) ? ut.test(t) ? Ee : Dt : tt.test(t) ? _t : Oe : Ne.indexOf(t.constructor) > -1 ? t.constructor : Array.isArray(t) ? Dt : "object" === e ? _e : Oe + }; + + class He { + constructor(t) { + this._stepper = t || new we("-"), this._from = null, this._to = null, this._type = null, this._context = null, this._morphObj = null + } + + at(t) { + return this._morphObj.morph(this._from, this._to, t, this._stepper, this._context) + } + + done() { + return this._context.map(this._stepper.done).reduce((function (t, e) { + return t && e + }), !0) + } + + from(t) { + return null == t ? this._from : (this._from = this._set(t), this) + } + + stepper(t) { + return null == t ? this._stepper : (this._stepper = t, this) + } + + to(t) { + return null == t ? this._to : (this._to = this._set(t), this) + } + + type(t) { + return null == t ? this._type : (this._type = t, this) + } + + _set(t) { + this._type || this.type(Ye(t)); + let e = new this._type(t); + return this._type === xt && (e = this._to ? e[this._to[4]]() : this._from ? e[this._from[4]]() : e), this._type === _e && (e = this._to ? e.align(this._to) : this._from ? e.align(this._from) : e), e = e.toConsumable(), this._morphObj = this._morphObj || new this._type, this._context = this._context || Array.apply(null, Array(e.length)).map(Object).map((function (t) { + return t.done = !0, t + })), e + } + } + + class Oe { + constructor(...t) { + this.init(...t) + } + + init(t) { + return t = Array.isArray(t) ? t[0] : t, this.value = t, this + } + + toArray() { + return [this.value] + } + + valueOf() { + return this.value + } + } + + class Fe { + constructor(...t) { + this.init(...t) + } + + init(t) { + return Array.isArray(t) && (t = { + scaleX: t[0], + scaleY: t[1], + shear: t[2], + rotate: t[3], + translateX: t[4], + translateY: t[5], + originX: t[6], + originY: t[7] + }), Object.assign(this, Fe.defaults, t), this + } + + toArray() { + const t = this; + return [t.scaleX, t.scaleY, t.shear, t.rotate, t.translateX, t.translateY, t.originX, t.originY] + } + } + + Fe.defaults = {scaleX: 1, scaleY: 1, shear: 0, rotate: 0, translateX: 0, translateY: 0, originX: 0, originY: 0}; + const De = (t, e) => t[0] < e[0] ? -1 : t[0] > e[0] ? 1 : 0; + + class _e { + constructor(...t) { + this.init(...t) + } + + align(t) { + const e = this.values; + for (let i = 0, a = e.length; i < a; ++i) { + if (e[i + 1] === t[i + 1]) { + if (e[i + 1] === xt && t[i + 7] !== e[i + 7]) { + const e = t[i + 7], a = new xt(this.values.splice(i + 3, 5))[e]().toArray(); + this.values.splice(i + 3, 0, ...a) + } + i += e[i + 2] + 2; + continue + } + if (!t[i + 1]) return this; + const a = (new t[i + 1]).toArray(), s = e[i + 2] + 3; + e.splice(i, s, t[i], t[i + 1], t[i + 2], ...a), i += e[i + 2] + 2 + } + return this + } + + init(t) { + if (this.values = [], Array.isArray(t)) return void (this.values = t.slice()); + t = t || {}; + const e = []; + for (const i in t) { + const a = Ye(t[i]), s = new a(t[i]).toArray(); + e.push([i, a, s.length, ...s]) + } + return e.sort(De), this.values = e.reduce(((t, e) => t.concat(e)), []), this + } + + toArray() { + return this.values + } + + valueOf() { + const t = {}, e = this.values; + for (; e.length;) { + const i = e.shift(), a = e.shift(), s = e.shift(), r = e.splice(0, s); + t[i] = new a(r) + } + return t + } + } + + const Ne = [Oe, Fe, _e]; + + class We extends qt { + constructor(t, e = t) { + super(G("path", t), e) + } + + array() { + return this._array || (this._array = new Ee(this.attr("d"))) + } + + clear() { + return delete this._array, this + } + + height(t) { + return null == t ? this.bbox().height : this.size(this.bbox().width, t) + } + + move(t, e) { + return this.attr("d", this.array().move(t, e)) + } + + plot(t) { + return null == t ? this.array() : this.clear().attr("d", "string" == typeof t ? t : this._array = new Ee(t)) + } + + size(t, e) { + const i = I(this, t, e); + return this.attr("d", this.array().size(i.width, i.height)) + } + + width(t) { + return null == t ? this.bbox().width : this.size(t, this.bbox().height) + } + + x(t) { + return null == t ? this.bbox().x : this.move(t, this.bbox().y) + } + + y(t) { + return null == t ? this.bbox().y : this.move(this.bbox().x, t) + } + } + + We.prototype.MorphArray = Ee, A({ + Container: { + path: K((function (t) { + return this.put(new We).plot(t || new Ee) + })) + } + }), q(We, "Path"); + var Be = Object.freeze({ + __proto__: null, array: function () { + return this._array || (this._array = new ge(this.attr("points"))) + }, clear: function () { + return delete this._array, this + }, move: function (t, e) { + return this.attr("points", this.array().move(t, e)) + }, plot: function (t) { + return null == t ? this.array() : this.clear().attr("points", "string" == typeof t ? t : this._array = new ge(t)) + }, size: function (t, e) { + const i = I(this, t, e); + return this.attr("points", this.array().size(i.width, i.height)) + } + }); + + class Ge extends qt { + constructor(t, e = t) { + super(G("polygon", t), e) + } + } + + A({ + Container: { + polygon: K((function (t) { + return this.put(new Ge).plot(t || new ge) + })) + } + }), Q(Ge, fe), Q(Ge, Be), q(Ge, "Polygon"); + + class je extends qt { + constructor(t, e = t) { + super(G("polyline", t), e) + } + } + + A({ + Container: { + polyline: K((function (t) { + return this.put(new je).plot(t || new ge) + })) + } + }), Q(je, fe), Q(je, Be), q(je, "Polyline"); + + class Ve extends qt { + constructor(t, e = t) { + super(G("rect", t), e) + } + } + + Q(Ve, {rx: Zt, ry: $t}), A({ + Container: { + rect: K((function (t, e) { + return this.put(new Ve).size(t, e) + })) + } + }), q(Ve, "Rect"); + + class Ue { + constructor() { + this._first = null, this._last = null + } + + first() { + return this._first && this._first.value + } + + last() { + return this._last && this._last.value + } + + push(t) { + const e = void 0 !== t.next ? t : {value: t, next: null, prev: null}; + return this._last ? (e.prev = this._last, this._last.next = e, this._last = e) : (this._last = e, this._first = e), e + } + + remove(t) { + t.prev && (t.prev.next = t.next), t.next && (t.next.prev = t.prev), t === this._last && (this._last = t.prev), t === this._first && (this._first = t.next), t.prev = null, t.next = null + } + + shift() { + const t = this._first; + return t ? (this._first = t.next, this._first && (this._first.prev = null), this._last = this._first ? this._last : null, t.value) : null + } + } + + const qe = { + nextDraw: null, + frames: new Ue, + timeouts: new Ue, + immediates: new Ue, + timer: () => O.window.performance || O.window.Date, + transforms: [], + frame(t) { + const e = qe.frames.push({run: t}); + return null === qe.nextDraw && (qe.nextDraw = O.window.requestAnimationFrame(qe._draw)), e + }, + timeout(t, e) { + e = e || 0; + const i = qe.timer().now() + e, a = qe.timeouts.push({run: t, time: i}); + return null === qe.nextDraw && (qe.nextDraw = O.window.requestAnimationFrame(qe._draw)), a + }, + immediate(t) { + const e = qe.immediates.push(t); + return null === qe.nextDraw && (qe.nextDraw = O.window.requestAnimationFrame(qe._draw)), e + }, + cancelFrame(t) { + null != t && qe.frames.remove(t) + }, + clearTimeout(t) { + null != t && qe.timeouts.remove(t) + }, + cancelImmediate(t) { + null != t && qe.immediates.remove(t) + }, + _draw(t) { + let e = null; + const i = qe.timeouts.last(); + for (; (e = qe.timeouts.shift()) && (t >= e.time ? e.run() : qe.timeouts.push(e), e !== i);) ; + let a = null; + const s = qe.frames.last(); + for (; a !== s && (a = qe.frames.shift());) a.run(t); + let r = null; + for (; r = qe.immediates.shift();) r(); + qe.nextDraw = qe.timeouts.first() || qe.frames.first() ? O.window.requestAnimationFrame(qe._draw) : null + } + }, Ze = function (t) { + const e = t.start, i = t.runner.duration(); + return {start: e, duration: i, end: e + i, runner: t.runner} + }, $e = function () { + const t = O.window; + return (t.performance || t.Date).now() + }; + + class Je extends Rt { + constructor(t = $e) { + super(), this._timeSource = t, this.terminate() + } + + active() { + return !!this._nextFrame + } + + finish() { + return this.time(this.getEndTimeOfTimeline() + 1), this.pause() + } + + getEndTime() { + const t = this.getLastRunnerInfo(), e = t ? t.runner.duration() : 0; + return (t ? t.start : this._time) + e + } + + getEndTimeOfTimeline() { + const t = this._runners.map((t => t.start + t.runner.duration())); + return Math.max(0, ...t) + } + + getLastRunnerInfo() { + return this.getRunnerInfoById(this._lastRunnerId) + } + + getRunnerInfoById(t) { + return this._runners[this._runnerIds.indexOf(t)] || null + } + + pause() { + return this._paused = !0, this._continue() + } + + persist(t) { + return null == t ? this._persist : (this._persist = t, this) + } + + play() { + return this._paused = !1, this.updateTime()._continue() + } + + reverse(t) { + const e = this.speed(); + if (null == t) return this.speed(-e); + const i = Math.abs(e); + return this.speed(t ? -i : i) + } + + schedule(t, e, i) { + if (null == t) return this._runners.map(Ze); + let a = 0; + const s = this.getEndTime(); + if (e = e || 0, null == i || "last" === i || "after" === i) a = s; else if ("absolute" === i || "start" === i) a = e, e = 0; else if ("now" === i) a = this._time; else if ("relative" === i) { + const i = this.getRunnerInfoById(t.id); + i && (a = i.start + e, e = 0) + } else { + if ("with-last" !== i) throw new Error('Invalid value for the "when" parameter'); + { + const t = this.getLastRunnerInfo(); + a = t ? t.start : this._time + } + } + t.unschedule(), t.timeline(this); + const r = t.persist(), n = {persist: null === r ? this._persist : r, start: a + e, runner: t}; + return this._lastRunnerId = t.id, this._runners.push(n), this._runners.sort(((t, e) => t.start - e.start)), this._runnerIds = this._runners.map((t => t.runner.id)), this.updateTime()._continue(), this + } + + seek(t) { + return this.time(this._time + t) + } + + source(t) { + return null == t ? this._timeSource : (this._timeSource = t, this) + } + + speed(t) { + return null == t ? this._speed : (this._speed = t, this) + } + + stop() { + return this.time(0), this.pause() + } + + time(t) { + return null == t ? this._time : (this._time = t, this._continue(!0)) + } + + unschedule(t) { + const e = this._runnerIds.indexOf(t.id); + return e < 0 || (this._runners.splice(e, 1), this._runnerIds.splice(e, 1), t.timeline(null)), this + } + + updateTime() { + return this.active() || (this._lastSourceTime = this._timeSource()), this + } + + _continue(t = !1) { + return qe.cancelFrame(this._nextFrame), this._nextFrame = null, t ? this._stepImmediate() : (this._paused || (this._nextFrame = qe.frame(this._step)), this) + } + + _stepFn(t = !1) { + const e = this._timeSource(); + let i = e - this._lastSourceTime; + t && (i = 0); + const a = this._speed * i + (this._time - this._lastStepTime); + this._lastSourceTime = e, t || (this._time += a, this._time = this._time < 0 ? 0 : this._time), this._lastStepTime = this._time, this.fire("time", this._time); + for (let t = this._runners.length; t--;) { + const e = this._runners[t], i = e.runner; + this._time - e.start <= 0 && i.reset() + } + let s = !1; + for (let t = 0, e = this._runners.length; t < e; t++) { + const i = this._runners[t], r = i.runner; + let n = a; + const o = this._time - i.start; + if (o <= 0) { + s = !0; + continue + } + if (o < n && (n = o), !r.active()) continue; + if (r.step(n).done) { + if (!0 !== i.persist) { + r.duration() - r.time() + this._time + i.persist < this._time && (r.unschedule(), --t, --e) + } + } else s = !0 + } + return s && !(this._speed < 0 && 0 === this._time) || this._runnerIds.length && this._speed < 0 && this._time > 0 ? this._continue() : (this.pause(), this.fire("finished")), this + } + + terminate() { + this._startTime = 0, this._speed = 1, this._persist = 0, this._nextFrame = null, this._paused = !0, this._runners = [], this._runnerIds = [], this._lastRunnerId = -1, this._time = 0, this._lastSourceTime = 0, this._lastStepTime = 0, this._step = this._stepFn.bind(this, !1), this._stepImmediate = this._stepFn.bind(this, !0) + } + } + + A({ + Element: { + timeline: function (t) { + return null == t ? (this._timeline = this._timeline || new Je, this._timeline) : (this._timeline = t, this) + } + } + }); + + class Qe extends Rt { + constructor(t) { + super(), this.id = Qe.id++, t = "function" == typeof (t = null == t ? Yt : t) ? new ke(t) : t, this._element = null, this._timeline = null, this.done = !1, this._queue = [], this._duration = "number" == typeof t && t, this._isDeclarative = t instanceof ke, this._stepper = this._isDeclarative ? t : new we, this._history = {}, this.enabled = !0, this._time = 0, this._lastTime = 0, this._reseted = !0, this.transforms = new vt, this.transformId = 1, this._haveReversed = !1, this._reverse = !1, this._loopsDone = 0, this._swing = !1, this._wait = 0, this._times = 1, this._frameId = null, this._persist = !!this._isDeclarative || null + } + + static sanitise(t, e, i) { + let a = 1, s = !1, r = 0; + return e = e ?? Ot, i = i || "last", "object" != typeof (t = t ?? Yt) || t instanceof ye || (e = t.delay ?? e, i = t.when ?? i, s = t.swing || s, a = t.times ?? a, r = t.wait ?? r, t = t.duration ?? Yt), { + duration: t, + delay: e, + swing: s, + times: a, + wait: r, + when: i + } + } + + active(t) { + return null == t ? this.enabled : (this.enabled = t, this) + } + + addTransform(t) { + return this.transforms.lmultiplyO(t), this + } + + after(t) { + return this.on("finished", t) + } + + animate(t, e, i) { + const a = Qe.sanitise(t, e, i), s = new Qe(a.duration); + return this._timeline && s.timeline(this._timeline), this._element && s.element(this._element), s.loop(a).schedule(a.delay, a.when) + } + + clearTransform() { + return this.transforms = new vt, this + } + + clearTransformsFromQueue() { + this.done && this._timeline && this._timeline._runnerIds.includes(this.id) || (this._queue = this._queue.filter((t => !t.isTransform))) + } + + delay(t) { + return this.animate(0, t) + } + + duration() { + return this._times * (this._wait + this._duration) - this._wait + } + + during(t) { + return this.queue(null, t) + } + + ease(t) { + return this._stepper = new we(t), this + } + + element(t) { + return null == t ? this._element : (this._element = t, t._prepareRunner(), this) + } + + finish() { + return this.step(1 / 0) + } + + loop(t, e, i) { + return "object" == typeof t && (e = t.swing, i = t.wait, t = t.times), this._times = t || 1 / 0, this._swing = e || !1, this._wait = i || 0, !0 === this._times && (this._times = 1 / 0), this + } + + loops(t) { + const e = this._duration + this._wait; + if (null == t) { + const t = Math.floor(this._time / e), i = (this._time - t * e) / this._duration; + return Math.min(t + i, this._times) + } + const i = t % 1, a = e * Math.floor(t) + this._duration * i; + return this.time(a) + } + + persist(t) { + return null == t ? this._persist : (this._persist = t, this) + } + + position(t) { + const e = this._time, i = this._duration, a = this._wait, s = this._times, r = this._swing, + n = this._reverse; + let o; + if (null == t) { + const t = function (t) { + const e = r * Math.floor(t % (2 * (a + i)) / (a + i)), s = e && !n || !e && n, + o = Math.pow(-1, s) * (t % (a + i)) / i + s; + return Math.max(Math.min(o, 1), 0) + }, l = s * (a + i) - a; + return o = e <= 0 ? Math.round(t(1e-5)) : e < l ? t(e) : Math.round(t(l - 1e-5)), o + } + const l = Math.floor(this.loops()), h = r && l % 2 == 0; + return o = l + (h && !n || n && h ? t : 1 - t), this.loops(o) + } + + progress(t) { + return null == t ? Math.min(1, this._time / this.duration()) : this.time(t * this.duration()) + } + + queue(t, e, i, a) { + this._queue.push({ + initialiser: t || Et, + runner: e || Et, + retarget: i, + isTransform: a, + initialised: !1, + finished: !1 + }); + return this.timeline() && this.timeline()._continue(), this + } + + reset() { + return this._reseted || (this.time(0), this._reseted = !0), this + } + + reverse(t) { + return this._reverse = null == t ? !this._reverse : t, this + } + + schedule(t, e, i) { + if (t instanceof Je || (i = e, e = t, t = this.timeline()), !t) throw Error("Runner cannot be scheduled without timeline"); + return t.schedule(this, e, i), this + } + + step(t) { + if (!this.enabled) return this; + t = null == t ? 16 : t, this._time += t; + const e = this.position(), i = this._lastPosition !== e && this._time >= 0; + this._lastPosition = e; + const a = this.duration(), s = this._lastTime <= 0 && this._time > 0, + r = this._lastTime < a && this._time >= a; + this._lastTime = this._time, s && this.fire("start", this); + const n = this._isDeclarative; + this.done = !n && !r && this._time >= a, this._reseted = !1; + let o = !1; + return (i || n) && (this._initialise(i), this.transforms = new vt, o = this._run(n ? t : e), this.fire("step", this)), this.done = this.done || o && n, r && this.fire("finished", this), this + } + + time(t) { + if (null == t) return this._time; + const e = t - this._time; + return this.step(e), this + } + + timeline(t) { + return void 0 === t ? this._timeline : (this._timeline = t, this) + } + + unschedule() { + const t = this.timeline(); + return t && t.unschedule(this), this + } + + _initialise(t) { + if (t || this._isDeclarative) for (let e = 0, i = this._queue.length; e < i; ++e) { + const i = this._queue[e], a = this._isDeclarative || !i.initialised && t; + t = !i.finished, a && t && (i.initialiser.call(this), i.initialised = !0) + } + } + + _rememberMorpher(t, e) { + if (this._history[t] = {morpher: e, caller: this._queue[this._queue.length - 1]}, this._isDeclarative) { + const t = this.timeline(); + t && t.play() + } + } + + _run(t) { + let e = !0; + for (let i = 0, a = this._queue.length; i < a; ++i) { + const a = this._queue[i], s = a.runner.call(this, t); + a.finished = a.finished || !0 === s, e = e && a.finished + } + return e + } + + _tryRetarget(t, e, i) { + if (this._history[t]) { + if (!this._history[t].caller.initialised) { + const e = this._queue.indexOf(this._history[t].caller); + return this._queue.splice(e, 1), !1 + } + this._history[t].caller.retarget ? this._history[t].caller.retarget.call(this, e, i) : this._history[t].morpher.to(e), this._history[t].caller.finished = !1; + const a = this.timeline(); + return a && a.play(), !0 + } + return !1 + } + } + + Qe.id = 0; + + class Ke { + constructor(t = new vt, e = -1, i = !0) { + this.transforms = t, this.id = e, this.done = i + } + + clearTransformsFromQueue() { + } + } + + Q([Qe, Ke], { + mergeWith(t) { + return new Ke(t.transforms.lmultiply(this.transforms), t.id) + } + }); + const ti = (t, e) => t.lmultiplyO(e), ei = t => t.transforms; + + function ii() { + const t = this._transformationRunners.runners.map(ei).reduce(ti, new vt); + this.transform(t), this._transformationRunners.merge(), 1 === this._transformationRunners.length() && (this._frameId = null) + } + + class ai { + constructor() { + this.runners = [], this.ids = [] + } + + add(t) { + if (this.runners.includes(t)) return; + const e = t.id + 1; + return this.runners.push(t), this.ids.push(e), this + } + + clearBefore(t) { + const e = this.ids.indexOf(t + 1) || 1; + return this.ids.splice(0, e, 0), this.runners.splice(0, e, new Ke).forEach((t => t.clearTransformsFromQueue())), this + } + + edit(t, e) { + const i = this.ids.indexOf(t + 1); + return this.ids.splice(i, 1, t + 1), this.runners.splice(i, 1, e), this + } + + getByID(t) { + return this.runners[this.ids.indexOf(t + 1)] + } + + length() { + return this.ids.length + } + + merge() { + let t = null; + for (let e = 0; e < this.runners.length; ++e) { + const i = this.runners[e]; + if (t && i.done && t.done && (!i._timeline || !i._timeline._runnerIds.includes(i.id)) && (!t._timeline || !t._timeline._runnerIds.includes(t.id))) { + this.remove(i.id); + const a = i.mergeWith(t); + this.edit(t.id, a), t = a, --e + } else t = i + } + return this + } + + remove(t) { + const e = this.ids.indexOf(t + 1); + return this.ids.splice(e, 1), this.runners.splice(e, 1), this + } + } + + A({ + Element: { + animate(t, e, i) { + const a = Qe.sanitise(t, e, i), s = this.timeline(); + return new Qe(a.duration).loop(a).element(this).timeline(s.play()).schedule(a.delay, a.when) + }, delay(t, e) { + return this.animate(0, t, e) + }, _clearTransformRunnersBefore(t) { + this._transformationRunners.clearBefore(t.id) + }, _currentTransform(t) { + return this._transformationRunners.runners.filter((e => e.id <= t.id)).map(ei).reduce(ti, new vt) + }, _addRunner(t) { + this._transformationRunners.add(t), qe.cancelImmediate(this._frameId), this._frameId = qe.immediate(ii.bind(this)) + }, _prepareRunner() { + null == this._frameId && (this._transformationRunners = (new ai).add(new Ke(new vt(this)))) + } + } + }); + Q(Qe, { + attr(t, e) { + return this.styleAttr("attr", t, e) + }, css(t, e) { + return this.styleAttr("css", t, e) + }, styleAttr(t, e, i) { + if ("string" == typeof e) return this.styleAttr(t, {[e]: i}); + let a = e; + if (this._tryRetarget(t, a)) return this; + let s = new He(this._stepper).to(a), r = Object.keys(a); + return this.queue((function () { + s = s.from(this.element()[t](r)) + }), (function (e) { + return this.element()[t](s.at(e).valueOf()), s.done() + }), (function (e) { + const i = Object.keys(e), n = (o = r, i.filter((t => !o.includes(t)))); + var o; + if (n.length) { + const e = this.element()[t](n), i = new _e(s.from()).valueOf(); + Object.assign(i, e), s.from(i) + } + const l = new _e(s.to()).valueOf(); + Object.assign(l, e), s.to(l), r = i, a = e + })), this._rememberMorpher(t, s), this + }, zoom(t, e) { + if (this._tryRetarget("zoom", t, e)) return this; + let i = new He(this._stepper).to(new _t(t)); + return this.queue((function () { + i = i.from(this.element().zoom()) + }), (function (t) { + return this.element().zoom(i.at(t), e), i.done() + }), (function (t, a) { + e = a, i.to(t) + })), this._rememberMorpher("zoom", i), this + }, transform(t, e, i) { + if (e = t.relative || e, this._isDeclarative && !e && this._tryRetarget("transform", t)) return this; + const a = vt.isMatrixLike(t); + i = null != t.affine ? t.affine : null != i ? i : !a; + const s = new He(this._stepper).type(i ? Fe : vt); + let r, n, o, l, h; + return this.queue((function () { + n = n || this.element(), r = r || T(t, n), h = new vt(e ? void 0 : n), n._addRunner(this), e || n._clearTransformRunnersBefore(this) + }), (function (c) { + e || this.clearTransform(); + const {x: d, y: u} = new bt(r).transform(n._currentTransform(this)); + let g = new vt({...t, origin: [d, u]}), p = this._isDeclarative && o ? o : h; + if (i) { + g = g.decompose(d, u), p = p.decompose(d, u); + const t = g.rotate, e = p.rotate, i = [t - 360, t, t + 360], a = i.map((t => Math.abs(t - e))), + s = Math.min(...a), r = a.indexOf(s); + g.rotate = i[r] + } + e && (a || (g.rotate = t.rotate || 0), this._isDeclarative && l && (p.rotate = l)), s.from(p), s.to(g); + const f = s.at(c); + return l = f.rotate, o = new vt(f), this.addTransform(o), n._addRunner(this), s.done() + }), (function (e) { + (e.origin || "center").toString() !== (t.origin || "center").toString() && (r = T(e, n)), t = { + ...e, + origin: r + } + }), !0), this._isDeclarative && this._rememberMorpher("transform", s), this + }, x(t) { + return this._queueNumber("x", t) + }, y(t) { + return this._queueNumber("y", t) + }, ax(t) { + return this._queueNumber("ax", t) + }, ay(t) { + return this._queueNumber("ay", t) + }, dx(t = 0) { + return this._queueNumberDelta("x", t) + }, dy(t = 0) { + return this._queueNumberDelta("y", t) + }, dmove(t, e) { + return this.dx(t).dy(e) + }, _queueNumberDelta(t, e) { + if (e = new _t(e), this._tryRetarget(t, e)) return this; + const i = new He(this._stepper).to(e); + let a = null; + return this.queue((function () { + a = this.element()[t](), i.from(a), i.to(a + e) + }), (function (e) { + return this.element()[t](i.at(e)), i.done() + }), (function (t) { + i.to(a + new _t(t)) + })), this._rememberMorpher(t, i), this + }, _queueObject(t, e) { + if (this._tryRetarget(t, e)) return this; + const i = new He(this._stepper).to(e); + return this.queue((function () { + i.from(this.element()[t]()) + }), (function (e) { + return this.element()[t](i.at(e)), i.done() + })), this._rememberMorpher(t, i), this + }, _queueNumber(t, e) { + return this._queueObject(t, new _t(e)) + }, cx(t) { + return this._queueNumber("cx", t) + }, cy(t) { + return this._queueNumber("cy", t) + }, move(t, e) { + return this.x(t).y(e) + }, amove(t, e) { + return this.ax(t).ay(e) + }, center(t, e) { + return this.cx(t).cy(e) + }, size(t, e) { + let i; + return t && e || (i = this._element.bbox()), t || (t = i.width / i.height * e), e || (e = i.height / i.width * t), this.width(t).height(e) + }, width(t) { + return this._queueNumber("width", t) + }, height(t) { + return this._queueNumber("height", t) + }, plot(t, e, i, a) { + if (4 === arguments.length) return this.plot([t, e, i, a]); + if (this._tryRetarget("plot", t)) return this; + const s = new He(this._stepper).type(this._element.MorphArray).to(t); + return this.queue((function () { + s.from(this._element.array()) + }), (function (t) { + return this._element.plot(s.at(t)), s.done() + })), this._rememberMorpher("plot", s), this + }, leading(t) { + return this._queueNumber("leading", t) + }, viewbox(t, e, i, a) { + return this._queueObject("viewbox", new kt(t, e, i, a)) + }, update(t) { + return "object" != typeof t ? this.update({ + offset: arguments[0], + color: arguments[1], + opacity: arguments[2] + }) : (null != t.opacity && this.attr("stop-opacity", t.opacity), null != t.color && this.attr("stop-color", t.color), null != t.offset && this.attr("offset", t.offset), this) + } + }), Q(Qe, {rx: Zt, ry: $t, from: ne, to: oe}), q(Qe, "Runner"); + + class si extends Vt { + constructor(t, e = t) { + super(G("svg", t), e), this.namespace() + } + + defs() { + return this.isRoot() ? V(this.node.querySelector("defs")) || this.put(new Ut) : this.root().defs() + } + + isRoot() { + return !this.node.parentNode || !(this.node.parentNode instanceof O.window.SVGElement) && "#document-fragment" !== this.node.parentNode.nodeName + } + + namespace() { + return this.isRoot() ? this.attr({ + xmlns: E, + version: "1.1" + }).attr("xmlns:xlink", H, Y) : this.root().namespace() + } + + removeNamespace() { + return this.attr({xmlns: null, version: null}).attr("xmlns:xlink", null, Y).attr("xmlns:svgjs", null, Y) + } + + root() { + return this.isRoot() ? this : super.root() + } + } + + A({ + Container: { + nested: K((function () { + return this.put(new si) + })) + } + }), q(si, "Svg", !0); + let ri = class extends Vt { + constructor(t, e = t) { + super(G("symbol", t), e) + } + }; + A({ + Container: { + symbol: K((function () { + return this.put(new ri) + })) + } + }), q(ri, "Symbol"); + var ni = Object.freeze({ + __proto__: null, amove: function (t, e) { + return this.ax(t).ay(e) + }, ax: function (t) { + return this.attr("x", t) + }, ay: function (t) { + return this.attr("y", t) + }, build: function (t) { + return this._build = !!t, this + }, center: function (t, e, i = this.bbox()) { + return this.cx(t, i).cy(e, i) + }, cx: function (t, e = this.bbox()) { + return null == t ? e.cx : this.attr("x", this.attr("x") + t - e.cx) + }, cy: function (t, e = this.bbox()) { + return null == t ? e.cy : this.attr("y", this.attr("y") + t - e.cy) + }, length: function () { + return this.node.getComputedTextLength() + }, move: function (t, e, i = this.bbox()) { + return this.x(t, i).y(e, i) + }, plain: function (t) { + return !1 === this._build && this.clear(), this.node.appendChild(O.document.createTextNode(t)), this + }, x: function (t, e = this.bbox()) { + return null == t ? e.x : this.attr("x", this.attr("x") + t - e.x) + }, y: function (t, e = this.bbox()) { + return null == t ? e.y : this.attr("y", this.attr("y") + t - e.y) + } + }); + + class oi extends qt { + constructor(t, e = t) { + super(G("text", t), e), this.dom.leading = this.dom.leading ?? new _t(1.3), this._rebuild = !0, this._build = !1 + } + + leading(t) { + return null == t ? this.dom.leading : (this.dom.leading = new _t(t), this.rebuild()) + } + + rebuild(t) { + if ("boolean" == typeof t && (this._rebuild = t), this._rebuild) { + const t = this; + let e = 0; + const i = this.dom.leading; + this.each((function (a) { + if (X(this.node)) return; + const s = O.window.getComputedStyle(this.node).getPropertyValue("font-size"), r = i * new _t(s); + this.dom.newLined && (this.attr("x", t.attr("x")), "\n" === this.text() ? e += r : (this.attr("dy", a ? r + e : 0), e = 0)) + })), this.fire("rebuild") + } + return this + } + + setData(t) { + return this.dom = t, this.dom.leading = new _t(t.leading || 1.3), this + } + + writeDataToDom() { + return R(this, this.dom, {leading: 1.3}), this + } + + text(t) { + if (void 0 === t) { + const e = this.node.childNodes; + let i = 0; + t = ""; + for (let a = 0, s = e.length; a < s; ++a) "textPath" === e[a].nodeName || X(e[a]) ? 0 === a && (i = a + 1) : (a !== i && 3 !== e[a].nodeType && !0 === V(e[a]).dom.newLined && (t += "\n"), t += e[a].textContent); + return t + } + if (this.clear().build(!0), "function" == typeof t) t.call(this, this); else for (let e = 0, i = (t = (t + "").split("\n")).length; e < i; e++) this.newLine(t[e]); + return this.build(!1).rebuild() + } + } + + Q(oi, ni), A({ + Container: { + text: K((function (t = "") { + return this.put(new oi).text(t) + })), plain: K((function (t = "") { + return this.put(new oi).plain(t) + })) + } + }), q(oi, "Text"); + + class li extends qt { + constructor(t, e = t) { + super(G("tspan", t), e), this._build = !1 + } + + dx(t) { + return this.attr("dx", t) + } + + dy(t) { + return this.attr("dy", t) + } + + newLine() { + this.dom.newLined = !0; + const t = this.parent(); + if (!(t instanceof oi)) return this; + const e = t.index(this), i = O.window.getComputedStyle(this.node).getPropertyValue("font-size"), + a = t.dom.leading * new _t(i); + return this.dy(e ? a : 0).attr("x", t.x()) + } + + text(t) { + return null == t ? this.node.textContent + (this.dom.newLined ? "\n" : "") : ("function" == typeof t ? (this.clear().build(!0), t.call(this, this), this.build(!1)) : this.plain(t), this) + } + } + + Q(li, ni), A({ + Tspan: { + tspan: K((function (t = "") { + const e = new li; + return this._build || this.clear(), this.put(e).text(t) + })) + }, Text: { + newLine: function (t = "") { + return this.tspan(t).newLine() + } + } + }), q(li, "Tspan"); + + class hi extends qt { + constructor(t, e = t) { + super(G("circle", t), e) + } + + radius(t) { + return this.attr("r", t) + } + + rx(t) { + return this.attr("r", t) + } + + ry(t) { + return this.rx(t) + } + + size(t) { + return this.radius(new _t(t).divide(2)) + } + } + + Q(hi, {x: Jt, y: Qt, cx: Kt, cy: te, width: ee, height: ie}), A({ + Container: { + circle: K((function (t = 0) { + return this.put(new hi).size(t).move(0, 0) + })) + } + }), q(hi, "Circle"); + + class ci extends Vt { + constructor(t, e = t) { + super(G("clipPath", t), e) + } + + remove() { + return this.targets().forEach((function (t) { + t.unclip() + })), super.remove() + } + + targets() { + return Lt("svg [clip-path*=" + this.id() + "]") + } + } + + A({ + Container: { + clip: K((function () { + return this.defs().put(new ci) + })) + }, Element: { + clipper() { + return this.reference("clip-path") + }, clipWith(t) { + const e = t instanceof ci ? t : this.parent().clip().add(t); + return this.attr("clip-path", "url(#" + e.id() + ")") + }, unclip() { + return this.attr("clip-path", null) + } + } + }), q(ci, "ClipPath"); + + class di extends Gt { + constructor(t, e = t) { + super(G("foreignObject", t), e) + } + } + + A({ + Container: { + foreignObject: K((function (t, e) { + return this.put(new di).size(t, e) + })) + } + }), q(di, "ForeignObject"); + var ui = Object.freeze({ + __proto__: null, dmove: function (t, e) { + return this.children().forEach((i => { + let a; + try { + a = i.node instanceof F().SVGSVGElement ? new kt(i.attr(["x", "y", "width", "height"])) : i.bbox() + } catch (t) { + return + } + const s = new vt(i), r = s.translate(t, e).transform(s.inverse()), n = new bt(a.x, a.y).transform(r); + i.move(n.x, n.y) + })), this + }, dx: function (t) { + return this.dmove(t, 0) + }, dy: function (t) { + return this.dmove(0, t) + }, height: function (t, e = this.bbox()) { + return null == t ? e.height : this.size(e.width, t, e) + }, move: function (t = 0, e = 0, i = this.bbox()) { + const a = t - i.x, s = e - i.y; + return this.dmove(a, s) + }, size: function (t, e, i = this.bbox()) { + const a = I(this, t, e, i), s = a.width / i.width, r = a.height / i.height; + return this.children().forEach((t => { + const e = new bt(i).transform(new vt(t).inverse()); + t.scale(s, r, e.x, e.y) + })), this + }, width: function (t, e = this.bbox()) { + return null == t ? e.width : this.size(t, e.height, e) + }, x: function (t, e = this.bbox()) { + return null == t ? e.x : this.move(t, e.y, e) + }, y: function (t, e = this.bbox()) { + return null == t ? e.y : this.move(e.x, t, e) + } + }); + + class gi extends Vt { + constructor(t, e = t) { + super(G("g", t), e) + } + } + + Q(gi, ui), A({ + Container: { + group: K((function () { + return this.put(new gi) + })) + } + }), q(gi, "G"); + + class pi extends Vt { + constructor(t, e = t) { + super(G("a", t), e) + } + + target(t) { + return this.attr("target", t) + } + + to(t) { + return this.attr("href", t, H) + } + } + + Q(pi, ui), A({ + Container: { + link: K((function (t) { + return this.put(new pi).to(t) + })) + }, Element: { + unlink() { + const t = this.linker(); + if (!t) return this; + const e = t.parent(); + if (!e) return this.remove(); + const i = e.index(t); + return e.add(this, i), t.remove(), this + }, linkTo(t) { + let e = this.linker(); + return e || (e = new pi, this.wrap(e)), "function" == typeof t ? t.call(e, e) : e.to(t), this + }, linker() { + const t = this.parent(); + return t && "a" === t.node.nodeName.toLowerCase() ? t : null + } + } + }), q(pi, "A"); + + class fi extends Vt { + constructor(t, e = t) { + super(G("mask", t), e) + } + + remove() { + return this.targets().forEach((function (t) { + t.unmask() + })), super.remove() + } + + targets() { + return Lt("svg [mask*=" + this.id() + "]") + } + } + + A({ + Container: { + mask: K((function () { + return this.defs().put(new fi) + })) + }, Element: { + masker() { + return this.reference("mask") + }, maskWith(t) { + const e = t instanceof fi ? t : this.parent().mask().add(t); + return this.attr("mask", "url(#" + e.id() + ")") + }, unmask() { + return this.attr("mask", null) + } + } + }), q(fi, "Mask"); + + class xi extends Gt { + constructor(t, e = t) { + super(G("stop", t), e) + } + + update(t) { + return ("number" == typeof t || t instanceof _t) && (t = { + offset: arguments[0], + color: arguments[1], + opacity: arguments[2] + }), null != t.opacity && this.attr("stop-opacity", t.opacity), null != t.color && this.attr("stop-color", t.color), null != t.offset && this.attr("offset", new _t(t.offset)), this + } + } + + A({ + Gradient: { + stop: function (t, e, i) { + return this.put(new xi).update(t, e, i) + } + } + }), q(xi, "Stop"); + + class bi extends Gt { + constructor(t, e = t) { + super(G("style", t), e) + } + + addText(t = "") { + return this.node.textContent += t, this + } + + font(t, e, i = {}) { + return this.rule("@font-face", {fontFamily: t, src: e, ...i}) + } + + rule(t, e) { + return this.addText(function (t, e) { + if (!t) return ""; + if (!e) return t; + let i = t + "{"; + for (const t in e) i += t.replace(/([A-Z])/g, (function (t, e) { + return "-" + e.toLowerCase() + })) + ":" + e[t] + ";"; + return i += "}", i + }(t, e)) + } + } + + A("Dom", { + style(t, e) { + return this.put(new bi).rule(t, e) + }, fontface(t, e, i) { + return this.put(new bi).font(t, e, i) + } + }), q(bi, "Style"); + + class mi extends oi { + constructor(t, e = t) { + super(G("textPath", t), e) + } + + array() { + const t = this.track(); + return t ? t.array() : null + } + + plot(t) { + const e = this.track(); + let i = null; + return e && (i = e.plot(t)), null == t ? i : this + } + + track() { + return this.reference("href") + } + } + + A({ + Container: { + textPath: K((function (t, e) { + return t instanceof oi || (t = this.text(t)), t.path(e) + })) + }, Text: { + path: K((function (t, e = !0) { + const i = new mi; + let a; + if (t instanceof We || (t = this.defs().path(t)), i.attr("href", "#" + t, H), e) for (; a = this.node.firstChild;) i.node.appendChild(a); + return this.put(i) + })), textPath() { + return this.findOne("textPath") + } + }, Path: { + text: K((function (t) { + return t instanceof oi || (t = (new oi).addTo(this.parent()).text(t)), t.path(this) + })), targets() { + return Lt("svg textPath").filter((t => (t.attr("href") || "").includes(this.id()))) + } + } + }), mi.prototype.MorphArray = Ee, q(mi, "TextPath"); + + class vi extends qt { + constructor(t, e = t) { + super(G("use", t), e) + } + + use(t, e) { + return this.attr("href", (e || "") + "#" + t, H) + } + } + + A({ + Container: { + use: K((function (t, e) { + return this.put(new vi).use(t, e) + })) + } + }), q(vi, "Use"); + const yi = B; + Q([si, ri, de, ce, be], C("viewbox")), Q([xe, je, Ge, We], C("marker")), Q(oi, C("Text")), Q(We, C("Path")), Q(Ut, C("Defs")), Q([oi, li], C("Tspan")), Q([Ve, se, he, Qe], C("radius")), Q(Rt, C("EventTarget")), Q(Bt, C("Dom")), Q(Gt, C("Element")), Q(qt, C("Shape")), Q([Vt, re], C("Container")), Q(he, C("Gradient")), Q(Qe, C("Runner")), Ct.extend([...new Set(k)]), function (t = []) { + Ne.push(...[].concat(t)) + }([_t, xt, kt, vt, Dt, ge, Ee, bt]), Q(Ne, { + to(t) { + return (new He).type(this.constructor).from(this.toArray()).to(t) + }, fromArray(t) { + return this.init(t), this + }, toConsumable() { + return this.toArray() + }, morph(t, e, i, a, s) { + return this.fromArray(t.map((function (t, r) { + return a.step(t, e[r], i, s[r], s) + }))) + } + }); + + class wi extends Gt { + constructor(t) { + super(G("filter", t), t), this.$source = "SourceGraphic", this.$sourceAlpha = "SourceAlpha", this.$background = "BackgroundImage", this.$backgroundAlpha = "BackgroundAlpha", this.$fill = "FillPaint", this.$stroke = "StrokePaint", this.$autoSetIn = !0 + } + + put(t, e) { + return !(t = super.put(t, e)).attr("in") && this.$autoSetIn && t.attr("in", this.$source), t.attr("result") || t.attr("result", t.id()), t + } + + remove() { + return this.targets().each("unfilter"), super.remove() + } + + targets() { + return Lt('svg [filter*="' + this.id() + '"]') + } + + toString() { + return "url(#" + this.id() + ")" + } + } + + class ki extends Gt { + constructor(t, e) { + super(t, e), this.result(this.id()) + } + + in(t) { + if (null == t) { + const t = this.attr("in"); + return this.parent() && this.parent().find(`[result="${t}"]`)[0] || t + } + return this.attr("in", t) + } + + result(t) { + return this.attr("result", t) + } + + toString() { + return this.result() + } + } + + const Ai = t => function (...e) { + for (let i = t.length; i--;) null != e[i] && this.attr(t[i], e[i]) + }, Ci = { + blend: Ai(["in", "in2", "mode"]), + colorMatrix: Ai(["type", "values"]), + composite: Ai(["in", "in2", "operator"]), + convolveMatrix: function (t) { + t = new Dt(t).toString(), this.attr({order: Math.sqrt(t.split(" ").length), kernelMatrix: t}) + }, + diffuseLighting: Ai(["surfaceScale", "lightingColor", "diffuseConstant", "kernelUnitLength"]), + displacementMap: Ai(["in", "in2", "scale", "xChannelSelector", "yChannelSelector"]), + dropShadow: Ai(["in", "dx", "dy", "stdDeviation"]), + flood: Ai(["flood-color", "flood-opacity"]), + gaussianBlur: function (t = 0, e = t) { + this.attr("stdDeviation", t + " " + e) + }, + image: function (t) { + this.attr("href", t, H) + }, + morphology: Ai(["operator", "radius"]), + offset: Ai(["dx", "dy"]), + specularLighting: Ai(["surfaceScale", "lightingColor", "diffuseConstant", "specularExponent", "kernelUnitLength"]), + tile: Ai([]), + turbulence: Ai(["baseFrequency", "numOctaves", "seed", "stitchTiles", "type"]) + }; + ["blend", "colorMatrix", "componentTransfer", "composite", "convolveMatrix", "diffuseLighting", "displacementMap", "dropShadow", "flood", "gaussianBlur", "image", "merge", "morphology", "offset", "specularLighting", "tile", "turbulence"].forEach((t => { + const e = P(t), i = Ci[t]; + wi[e + "Effect"] = class extends ki { + constructor(t) { + super(G("fe" + e, t), t) + } + + update(t) { + return i.apply(this, t), this + } + }, wi.prototype[t] = K((function (t, ...i) { + const a = new wi[e + "Effect"]; + return null == t ? this.put(a) : ("function" == typeof t ? t.call(a, a) : i.unshift(t), this.put(a).update(i)) + })) + })), Q(wi, { + merge(t) { + const e = this.put(new wi.MergeEffect); + if ("function" == typeof t) return t.call(e, e), e; + return (t instanceof Array ? t : [...arguments]).forEach((t => { + t instanceof wi.MergeNode ? e.put(t) : e.mergeNode(t) + })), e + }, componentTransfer(t = {}) { + const e = this.put(new wi.ComponentTransferEffect); + if ("function" == typeof t) return t.call(e, e), e; + if (!(t.r || t.g || t.b || t.a)) { + t = {r: t, g: t, b: t, a: t} + } + for (const i in t) e.add(new (wi["Func" + i.toUpperCase()])(t[i])); + return e + } + }); + ["distantLight", "pointLight", "spotLight", "mergeNode", "FuncR", "FuncG", "FuncB", "FuncA"].forEach((t => { + const e = P(t); + wi[e] = class extends ki { + constructor(t) { + super(G("fe" + e, t), t) + } + } + })); + ["funcR", "funcG", "funcB", "funcA"].forEach((function (t) { + const e = wi[P(t)], i = K((function () { + return this.put(new e) + })); + wi.ComponentTransferEffect.prototype[t] = i + })); + ["distantLight", "pointLight", "spotLight"].forEach((t => { + const e = wi[P(t)], i = K((function () { + return this.put(new e) + })); + wi.DiffuseLightingEffect.prototype[t] = i, wi.SpecularLightingEffect.prototype[t] = i + })), Q(wi.MergeEffect, { + mergeNode(t) { + return this.put(new wi.MergeNode).attr("in", t) + } + }), Q(Ut, { + filter: function (t) { + const e = this.put(new wi); + return "function" == typeof t && t.call(e, e), e + } + }), Q(Vt, { + filter: function (t) { + return this.defs().filter(t) + } + }), Q(Gt, { + filterWith: function (t) { + const e = t instanceof wi ? t : this.defs().filter(t); + return this.attr("filter", e) + }, unfilter: function (t) { + return this.attr("filter", null) + }, filterer() { + return this.reference("filter") + } + }); + const Si = { + blend: function (t, e) { + return this.parent() && this.parent().blend(this, t, e) + }, colorMatrix: function (t, e) { + return this.parent() && this.parent().colorMatrix(t, e).in(this) + }, componentTransfer: function (t) { + return this.parent() && this.parent().componentTransfer(t).in(this) + }, composite: function (t, e) { + return this.parent() && this.parent().composite(this, t, e) + }, convolveMatrix: function (t) { + return this.parent() && this.parent().convolveMatrix(t).in(this) + }, diffuseLighting: function (t, e, i, a) { + return this.parent() && this.parent().diffuseLighting(t, i, a).in(this) + }, displacementMap: function (t, e, i, a) { + return this.parent() && this.parent().displacementMap(this, t, e, i, a) + }, dropShadow: function (t, e, i) { + return this.parent() && this.parent().dropShadow(this, t, e, i).in(this) + }, flood: function (t, e) { + return this.parent() && this.parent().flood(t, e) + }, gaussianBlur: function (t, e) { + return this.parent() && this.parent().gaussianBlur(t, e).in(this) + }, image: function (t) { + return this.parent() && this.parent().image(t) + }, merge: function (t) { + return t = t instanceof Array ? t : [...t], this.parent() && this.parent().merge(this, ...t) + }, morphology: function (t, e) { + return this.parent() && this.parent().morphology(t, e).in(this) + }, offset: function (t, e) { + return this.parent() && this.parent().offset(t, e).in(this) + }, specularLighting: function (t, e, i, a, s) { + return this.parent() && this.parent().specularLighting(t, i, a, s).in(this) + }, tile: function () { + return this.parent() && this.parent().tile().in(this) + }, turbulence: function (t, e, i, a, s) { + return this.parent() && this.parent().turbulence(t, e, i, a, s).in(this) + } + }; + Q(ki, Si), Q(wi.MergeEffect, { + in: function (t) { + return t instanceof wi.MergeNode ? this.add(t, 0) : this.add((new wi.MergeNode).in(t), 0), this + } + }), Q([wi.CompositeEffect, wi.BlendEffect, wi.DisplacementMapEffect], { + in2: function (t) { + if (null == t) { + const t = this.attr("in2"); + return this.parent() && this.parent().find(`[result="${t}"]`)[0] || t + } + return this.attr("in2", t) + } + }), wi.filter = {sepiatone: [.343, .669, .119, 0, 0, .249, .626, .13, 0, 0, .172, .334, .111, 0, 0, 0, 0, 0, 1, 0]}; + var Li = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "getDefaultFilter", value: function (t, e) { + var i = this.w; + t.unfilter(!0), (new wi).size("120%", "180%", "-5%", "-40%"), i.config.chart.dropShadow.enabled && this.dropShadow(t, i.config.chart.dropShadow, e) + } + }, { + key: "applyFilter", value: function (t, e, i) { + var a, s = this, r = this.w; + if (t.unfilter(!0), "none" !== i) { + var n, o, l = r.config.chart.dropShadow, h = "lighten" === i ? 2 : .3; + if (t.filterWith((function (t) { + t.colorMatrix({ + type: "matrix", + values: "\n ".concat(h, " 0 0 0 0\n 0 ").concat(h, " 0 0 0\n 0 0 ").concat(h, " 0 0\n 0 0 0 1 0\n "), + in: "SourceGraphic", + result: "brightness" + }), l.enabled && s.addShadow(t, e, l, "brightness") + })), !l.noUserSpaceOnUse) null === (n = t.filterer()) || void 0 === n || null === (o = n.node) || void 0 === o || o.setAttribute("filterUnits", "userSpaceOnUse"); + this._scaleFilterSize(null === (a = t.filterer()) || void 0 === a ? void 0 : a.node) + } else this.getDefaultFilter(t, e) + } + }, { + key: "addShadow", value: function (t, e, i, a) { + var s, r = this.w, n = i.blur, o = i.top, l = i.left, h = i.color, c = i.opacity; + if (h = Array.isArray(h) ? h[e] : h, (null === (s = r.config.chart.dropShadow.enabledOnSeries) || void 0 === s ? void 0 : s.length) > 0 && -1 === r.config.chart.dropShadow.enabledOnSeries.indexOf(e)) return t; + t.offset({in: a, dx: l, dy: o, result: "offset"}), t.gaussianBlur({ + in: "offset", + stdDeviation: n, + result: "blur" + }), t.flood({"flood-color": h, "flood-opacity": c, result: "flood"}), t.composite({ + in: "flood", + in2: "blur", + operator: "in", + result: "shadow" + }), t.merge(["shadow", a]) + } + }, { + key: "dropShadow", value: function (t, e) { + var i, a, s, r, n, o = this, l = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, + h = this.w; + if (t.unfilter(!0), v.isMsEdge() && "radialBar" === h.config.chart.type) return t; + if ((null === (i = h.config.chart.dropShadow.enabledOnSeries) || void 0 === i ? void 0 : i.length) > 0 && -1 === (null === (s = h.config.chart.dropShadow.enabledOnSeries) || void 0 === s ? void 0 : s.indexOf(l))) return t; + (t.filterWith((function (t) { + o.addShadow(t, l, e, "SourceGraphic") + })), e.noUserSpaceOnUse) || (null === (r = t.filterer()) || void 0 === r || null === (n = r.node) || void 0 === n || n.setAttribute("filterUnits", "userSpaceOnUse")); + return this._scaleFilterSize(null === (a = t.filterer()) || void 0 === a ? void 0 : a.node), t + } + }, { + key: "setSelectionFilter", value: function (t, e, i) { + var a = this.w; + if (void 0 !== a.globals.selectedDataPoints[e] && a.globals.selectedDataPoints[e].indexOf(i) > -1) { + t.node.setAttribute("selected", !0); + var s = a.config.states.active.filter; + "none" !== s && this.applyFilter(t, e, s.type) + } + } + }, { + key: "_scaleFilterSize", value: function (t) { + if (t) { + !function (e) { + for (var i in e) e.hasOwnProperty(i) && t.setAttribute(i, e[i]) + }({width: "200%", height: "200%", x: "-50%", y: "-50%"}) + } + } + }]), t + }(), Mi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "roundPathCorners", value: function (t, e) { + function i(t, e, i) { + var s = e.x - t.x, r = e.y - t.y, n = Math.sqrt(s * s + r * r); + return a(t, e, Math.min(1, i / n)) + } + + function a(t, e, i) { + return {x: t.x + (e.x - t.x) * i, y: t.y + (e.y - t.y) * i} + } + + function s(t, e) { + t.length > 2 && (t[t.length - 2] = e.x, t[t.length - 1] = e.y) + } + + function r(t) { + return {x: parseFloat(t[t.length - 2]), y: parseFloat(t[t.length - 1])} + } + + t.indexOf("NaN") > -1 && (t = ""); + var n = t.split(/[,\s]/).reduce((function (t, e) { + var i = e.match(/^([a-zA-Z])(.+)/); + return i ? (t.push(i[1]), t.push(i[2])) : t.push(e), t + }), []).reduce((function (t, e) { + return parseFloat(e) == e && t.length ? t[t.length - 1].push(e) : t.push([e]), t + }), []), o = []; + if (n.length > 1) { + var l = r(n[0]), h = null; + "Z" == n[n.length - 1][0] && n[0].length > 2 && (h = ["L", l.x, l.y], n[n.length - 1] = h), o.push(n[0]); + for (var c = 1; c < n.length; c++) { + var d = o[o.length - 1], u = n[c], g = u == h ? n[1] : n[c + 1]; + if (g && d && d.length > 2 && "L" == u[0] && g.length > 2 && "L" == g[0]) { + var p, f, x = r(d), b = r(u), m = r(g); + p = i(b, x, e), f = i(b, m, e), s(u, p), u.origPoint = b, o.push(u); + var v = a(p, b, .5), y = a(b, f, .5), w = ["C", v.x, v.y, y.x, y.y, f.x, f.y]; + w.origPoint = b, o.push(w) + } else o.push(u) + } + if (h) { + var k = r(o[o.length - 1]); + o.push(["Z"]), s(o[0], k) + } + } else o = n; + return o.reduce((function (t, e) { + return t + e.join(" ") + " " + }), "") + } + }, { + key: "drawLine", value: function (t, e, i, a) { + var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : "#a8a8a8", + r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, + n = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, + o = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : "butt"; + return this.w.globals.dom.Paper.line().attr({ + x1: t, + y1: e, + x2: i, + y2: a, + stroke: s, + "stroke-dasharray": r, + "stroke-width": n, + "stroke-linecap": o + }) + } + }, { + key: "drawRect", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, + s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, + r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "#fefefe", + n = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 1, + o = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null, + l = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : null, + h = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, + c = this.w.globals.dom.Paper.rect(); + return c.attr({ + x: t, + y: e, + width: i > 0 ? i : 0, + height: a > 0 ? a : 0, + rx: s, + ry: s, + opacity: n, + "stroke-width": null !== o ? o : 0, + stroke: null !== l ? l : "none", + "stroke-dasharray": h + }), c.node.setAttribute("fill", r), c + } + }, { + key: "drawPolygon", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "#e1e1e1", + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "none"; + return this.w.globals.dom.Paper.polygon(t).attr({fill: a, stroke: e, "stroke-width": i}) + } + }, { + key: "drawCircle", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + t < 0 && (t = 0); + var i = this.w.globals.dom.Paper.circle(2 * t); + return null !== e && i.attr(e), i + } + }, { + key: "drawPath", value: function (t) { + var e = t.d, i = void 0 === e ? "" : e, a = t.stroke, s = void 0 === a ? "#a8a8a8" : a, + r = t.strokeWidth, n = void 0 === r ? 1 : r, o = t.fill, l = t.fillOpacity, + h = void 0 === l ? 1 : l, c = t.strokeOpacity, d = void 0 === c ? 1 : c, u = t.classes, + g = t.strokeLinecap, p = void 0 === g ? null : g, f = t.strokeDashArray, x = void 0 === f ? 0 : f, + b = this.w; + return null === p && (p = b.config.stroke.lineCap), (i.indexOf("undefined") > -1 || i.indexOf("NaN") > -1) && (i = "M 0 ".concat(b.globals.gridHeight)), b.globals.dom.Paper.path(i).attr({ + fill: o, + "fill-opacity": h, + stroke: s, + "stroke-opacity": d, + "stroke-linecap": p, + "stroke-width": n, + "stroke-dasharray": x, + class: u + }) + } + }, { + key: "group", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, + e = this.w.globals.dom.Paper.group(); + return null !== t && e.attr(t), e + } + }, { + key: "move", value: function (t, e) { + var i = ["M", t, e].join(" "); + return i + } + }, { + key: "line", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = null; + return null === i ? a = [" L", t, e].join(" ") : "H" === i ? a = [" H", t].join(" ") : "V" === i && (a = [" V", e].join(" ")), a + } + }, { + key: "curve", value: function (t, e, i, a, s, r) { + var n = ["C", t, e, i, a, s, r].join(" "); + return n + } + }, { + key: "quadraticCurve", value: function (t, e, i, a) { + return ["Q", t, e, i, a].join(" ") + } + }, { + key: "arc", value: function (t, e, i, a, s, r, n) { + var o = "A"; + arguments.length > 7 && void 0 !== arguments[7] && arguments[7] && (o = "a"); + var l = [o, t, e, i, a, s, r, n].join(" "); + return l + } + }, { + key: "renderPaths", value: function (t) { + var e, i = t.j, a = t.realIndex, s = t.pathFrom, r = t.pathTo, n = t.stroke, o = t.strokeWidth, + l = t.strokeLinecap, h = t.fill, c = t.animationDelay, d = t.initialSpeed, g = t.dataChangeSpeed, + p = t.className, f = t.chartType, x = t.shouldClipToGrid, b = void 0 === x || x, + m = t.bindEventsOnPaths, v = void 0 === m || m, w = t.drawShadow, k = void 0 === w || w, A = this.w, + C = new Li(this.ctx), S = new y(this.ctx), L = this.w.config.chart.animations.enabled, + M = L && this.w.config.chart.animations.dynamicAnimation.enabled; + if (s && s.startsWith("M 0 0") && r) { + var P = r.match(/^M\s+[\d.-]+\s+[\d.-]+/); + P && (s = s.replace(/^M\s+0\s+0/, P[0])) + } + var I = !!(L && !A.globals.resized || M && A.globals.dataChanged && A.globals.shouldAnimate); + I ? e = s : (e = r, A.globals.animationEnded = !0); + var T = A.config.stroke.dashArray, z = 0; + z = Array.isArray(T) ? T[a] : A.config.stroke.dashArray; + var X = this.drawPath({ + d: e, + stroke: n, + strokeWidth: o, + fill: h, + fillOpacity: 1, + classes: p, + strokeLinecap: l, + strokeDashArray: z + }); + X.attr("index", a), b && ("bar" === f && !A.globals.isHorizontal || A.globals.comboCharts ? X.attr({"clip-path": "url(#gridRectBarMask".concat(A.globals.cuid, ")")}) : X.attr({"clip-path": "url(#gridRectMask".concat(A.globals.cuid, ")")})), A.config.chart.dropShadow.enabled && k && C.dropShadow(X, A.config.chart.dropShadow, a), v && (X.node.addEventListener("mouseenter", this.pathMouseEnter.bind(this, X)), X.node.addEventListener("mouseleave", this.pathMouseLeave.bind(this, X)), X.node.addEventListener("mousedown", this.pathMouseDown.bind(this, X))), X.attr({ + pathTo: r, + pathFrom: s + }); + var R = {el: X, j: i, realIndex: a, pathFrom: s, pathTo: r, fill: h, strokeWidth: o, delay: c}; + return !L || A.globals.resized || A.globals.dataChanged ? !A.globals.resized && A.globals.dataChanged || S.showDelayedElements() : S.animatePathsGradually(u(u({}, R), {}, {speed: d})), A.globals.dataChanged && M && I && S.animatePathsGradually(u(u({}, R), {}, {speed: g})), X + } + }, { + key: "drawPattern", value: function (t, e, i) { + var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "#a8a8a8", + s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0; + return this.w.globals.dom.Paper.pattern(e, i, (function (r) { + "horizontalLines" === t ? r.line(0, 0, i, 0).stroke({ + color: a, + width: s + 1 + }) : "verticalLines" === t ? r.line(0, 0, 0, e).stroke({ + color: a, + width: s + 1 + }) : "slantedLines" === t ? r.line(0, 0, e, i).stroke({ + color: a, + width: s + }) : "squares" === t ? r.rect(e, i).fill("none").stroke({ + color: a, + width: s + }) : "circles" === t && r.circle(e).fill("none").stroke({color: a, width: s}) + })) + } + }, { + key: "drawGradient", value: function (t, e, i, a, s) { + var r, n = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, + o = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, + l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : [], + h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, c = this.w; + e.length < 9 && 0 === e.indexOf("#") && (e = v.hexToRgba(e, a)), i.length < 9 && 0 === i.indexOf("#") && (i = v.hexToRgba(i, s)); + var d = 0, u = 1, g = 1, p = null; + null !== o && (d = void 0 !== o[0] ? o[0] / 100 : 0, u = void 0 !== o[1] ? o[1] / 100 : 1, g = void 0 !== o[2] ? o[2] / 100 : 1, p = void 0 !== o[3] ? o[3] / 100 : null); + var f = !("donut" !== c.config.chart.type && "pie" !== c.config.chart.type && "polarArea" !== c.config.chart.type && "bubble" !== c.config.chart.type); + if (r = l && 0 !== l.length ? c.globals.dom.Paper.gradient(f ? "radial" : "linear", (function (t) { + (Array.isArray(l[h]) ? l[h] : l).forEach((function (e) { + t.stop(e.offset / 100, e.color, e.opacity) + })) + })) : c.globals.dom.Paper.gradient(f ? "radial" : "linear", (function (t) { + t.stop(d, e, a), t.stop(u, i, s), t.stop(g, i, s), null !== p && t.stop(p, e, a) + })), f) { + var x = c.globals.gridWidth / 2, b = c.globals.gridHeight / 2; + "bubble" !== c.config.chart.type ? r.attr({ + gradientUnits: "userSpaceOnUse", + cx: x, + cy: b, + r: n + }) : r.attr({cx: .5, cy: .5, r: .8, fx: .2, fy: .2}) + } else "vertical" === t ? r.from(0, 0).to(0, 1) : "diagonal" === t ? r.from(0, 0).to(1, 1) : "horizontal" === t ? r.from(0, 1).to(1, 1) : "diagonal2" === t && r.from(1, 0).to(0, 1); + return r + } + }, { + key: "getTextBasedOnMaxWidth", value: function (t) { + var e = t.text, i = t.maxWidth, a = t.fontSize, s = t.fontFamily, r = this.getTextRects(e, a, s), + n = r.width / e.length, o = Math.floor(i / n); + return i < r.width ? e.slice(0, o - 3) + "..." : e + } + }, { + key: "drawText", value: function (t) { + var e = this, i = t.x, a = t.y, s = t.text, r = t.textAnchor, n = t.fontSize, o = t.fontFamily, + l = t.fontWeight, h = t.foreColor, c = t.opacity, d = t.maxWidth, g = t.cssClass, + p = void 0 === g ? "" : g, f = t.isPlainText, x = void 0 === f || f, b = t.dominantBaseline, + m = void 0 === b ? "auto" : b, v = this.w; + void 0 === s && (s = ""); + var y = s; + r || (r = "start"), h && h.length || (h = v.config.chart.foreColor), o = o || v.config.chart.fontFamily, l = l || "regular"; + var w, k = {maxWidth: d, fontSize: n = n || "11px", fontFamily: o}; + return Array.isArray(s) ? w = v.globals.dom.Paper.text((function (t) { + for (var i = 0; i < s.length; i++) y = s[i], d && (y = e.getTextBasedOnMaxWidth(u({text: s[i]}, k))), 0 === i ? t.tspan(y) : t.tspan(y).newLine() + })) : (d && (y = this.getTextBasedOnMaxWidth(u({text: s}, k))), w = x ? v.globals.dom.Paper.plain(s) : v.globals.dom.Paper.text((function (t) { + return t.tspan(y) + }))), w.attr({ + x: i, + y: a, + "text-anchor": r, + "dominant-baseline": m, + "font-size": n, + "font-family": o, + "font-weight": l, + fill: h, + class: "apexcharts-text " + p + }), w.node.style.fontFamily = o, w.node.style.opacity = c, w + } + }, { + key: "getMarkerPath", value: function (t, e, i, a) { + var s = ""; + switch (i) { + case"cross": + s = "M ".concat(t - (a /= 1.4), " ").concat(e - a, " L ").concat(t + a, " ").concat(e + a, " M ").concat(t - a, " ").concat(e + a, " L ").concat(t + a, " ").concat(e - a); + break; + case"plus": + s = "M ".concat(t - (a /= 1.12), " ").concat(e, " L ").concat(t + a, " ").concat(e, " M ").concat(t, " ").concat(e - a, " L ").concat(t, " ").concat(e + a); + break; + case"star": + case"sparkle": + var r = 5; + a *= 1.15, "sparkle" === i && (a /= 1.1, r = 4); + for (var n = Math.PI / r, o = 0; o <= 2 * r; o++) { + var l = o * n, h = o % 2 == 0 ? a : a / 2; + s += (0 === o ? "M" : "L") + (t + h * Math.sin(l)) + "," + (e - h * Math.cos(l)) + } + s += "Z"; + break; + case"triangle": + s = "M ".concat(t, " ").concat(e - a, " \n L ").concat(t + a, " ").concat(e + a, " \n L ").concat(t - a, " ").concat(e + a, " \n Z"); + break; + case"square": + case"rect": + s = "M ".concat(t - (a /= 1.125), " ").concat(e - a, " \n L ").concat(t + a, " ").concat(e - a, " \n L ").concat(t + a, " ").concat(e + a, " \n L ").concat(t - a, " ").concat(e + a, " \n Z"); + break; + case"diamond": + a *= 1.05, s = "M ".concat(t, " ").concat(e - a, " \n L ").concat(t + a, " ").concat(e, " \n L ").concat(t, " ").concat(e + a, " \n L ").concat(t - a, " ").concat(e, " \n Z"); + break; + case"line": + s = "M ".concat(t - (a /= 1.1), " ").concat(e, " \n L ").concat(t + a, " ").concat(e); + break; + default: + a *= 2, s = "M ".concat(t, ", ").concat(e, " \n m -").concat(a / 2, ", 0 \n a ").concat(a / 2, ",").concat(a / 2, " 0 1,0 ").concat(a, ",0 \n a ").concat(a / 2, ",").concat(a / 2, " 0 1,0 -").concat(a, ",0") + } + return s + } + }, { + key: "drawMarkerShape", value: function (t, e, i, a, s) { + var r = this.drawPath({ + d: this.getMarkerPath(t, e, i, a, s), + stroke: s.pointStrokeColor, + strokeDashArray: s.pointStrokeDashArray, + strokeWidth: s.pointStrokeWidth, + fill: s.pointFillColor, + fillOpacity: s.pointFillOpacity, + strokeOpacity: s.pointStrokeOpacity + }); + return r.attr({cx: t, cy: e, shape: s.shape, class: s.class ? s.class : ""}), r + } + }, { + key: "drawMarker", value: function (t, e, i) { + t = t || 0; + var a = i.pSize || 0; + return v.isNumber(e) || (a = 0, e = 0), this.drawMarkerShape(t, e, null == i ? void 0 : i.shape, a, u(u({}, i), "line" === i.shape || "plus" === i.shape || "cross" === i.shape ? { + pointStrokeColor: i.pointFillColor, + pointStrokeOpacity: i.pointFillOpacity + } : {})) + } + }, { + key: "pathMouseEnter", value: function (t, e) { + var i = this.w, a = new Li(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), + r = parseInt(t.node.getAttribute("j"), 10); + if ("function" == typeof i.config.chart.events.dataPointMouseEnter && i.config.chart.events.dataPointMouseEnter(e, this.ctx, { + seriesIndex: s, + dataPointIndex: r, + w: i + }), this.ctx.events.fireEvent("dataPointMouseEnter", [e, this.ctx, { + seriesIndex: s, + dataPointIndex: r, + w: i + }]), ("none" === i.config.states.active.filter.type || "true" !== t.node.getAttribute("selected")) && "none" !== i.config.states.hover.filter.type && !i.globals.isTouchDevice) { + var n = i.config.states.hover.filter; + a.applyFilter(t, s, n.type) + } + } + }, { + key: "pathMouseLeave", value: function (t, e) { + var i = this.w, a = new Li(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), + r = parseInt(t.node.getAttribute("j"), 10); + "function" == typeof i.config.chart.events.dataPointMouseLeave && i.config.chart.events.dataPointMouseLeave(e, this.ctx, { + seriesIndex: s, + dataPointIndex: r, + w: i + }), this.ctx.events.fireEvent("dataPointMouseLeave", [e, this.ctx, { + seriesIndex: s, + dataPointIndex: r, + w: i + }]), "none" !== i.config.states.active.filter.type && "true" === t.node.getAttribute("selected") || "none" !== i.config.states.hover.filter.type && a.getDefaultFilter(t, s) + } + }, { + key: "pathMouseDown", value: function (t, e) { + var i = this.w, a = new Li(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), + r = parseInt(t.node.getAttribute("j"), 10), n = "false"; + if ("true" === t.node.getAttribute("selected")) { + if (t.node.setAttribute("selected", "false"), i.globals.selectedDataPoints[s].indexOf(r) > -1) { + var o = i.globals.selectedDataPoints[s].indexOf(r); + i.globals.selectedDataPoints[s].splice(o, 1) + } + } else { + if (!i.config.states.active.allowMultipleDataPointsSelection && i.globals.selectedDataPoints.length > 0) { + i.globals.selectedDataPoints = []; + var l = i.globals.dom.Paper.find(".apexcharts-series path:not(.apexcharts-decoration-element)"), + h = i.globals.dom.Paper.find(".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"), + c = function (t) { + Array.prototype.forEach.call(t, (function (t) { + t.node.setAttribute("selected", "false"), a.getDefaultFilter(t, s) + })) + }; + c(l), c(h) + } + t.node.setAttribute("selected", "true"), n = "true", void 0 === i.globals.selectedDataPoints[s] && (i.globals.selectedDataPoints[s] = []), i.globals.selectedDataPoints[s].push(r) + } + if ("true" === n) { + var d = i.config.states.active.filter; + if ("none" !== d) a.applyFilter(t, s, d.type); else if ("none" !== i.config.states.hover.filter && !i.globals.isTouchDevice) { + var u = i.config.states.hover.filter; + a.applyFilter(t, s, u.type) + } + } else if ("none" !== i.config.states.active.filter.type) if ("none" === i.config.states.hover.filter.type || i.globals.isTouchDevice) a.getDefaultFilter(t, s); else { + u = i.config.states.hover.filter; + a.applyFilter(t, s, u.type) + } + "function" == typeof i.config.chart.events.dataPointSelection && i.config.chart.events.dataPointSelection(e, this.ctx, { + selectedDataPoints: i.globals.selectedDataPoints, + seriesIndex: s, + dataPointIndex: r, + w: i + }), e && this.ctx.events.fireEvent("dataPointSelection", [e, this.ctx, { + selectedDataPoints: i.globals.selectedDataPoints, + seriesIndex: s, + dataPointIndex: r, + w: i + }]) + } + }, { + key: "rotateAroundCenter", value: function (t) { + var e = {}; + return t && "function" == typeof t.getBBox && (e = t.getBBox()), { + x: e.x + e.width / 2, + y: e.y + e.height / 2 + } + } + }, { + key: "getTextRects", value: function (t, e, i, a) { + var s = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], r = this.w, + n = this.drawText({ + x: -200, + y: -200, + text: t, + textAnchor: "start", + fontSize: e, + fontFamily: i, + foreColor: "#fff", + opacity: 0 + }); + a && n.attr("transform", a), r.globals.dom.Paper.add(n); + var o = n.bbox(); + return s || (o = n.node.getBoundingClientRect()), n.remove(), {width: o.width, height: o.height} + } + }, { + key: "placeTextWithEllipsis", value: function (t, e, i) { + if ("function" == typeof t.getComputedTextLength && (t.textContent = e, e.length > 0 && t.getComputedTextLength() >= i / 1.1)) { + for (var a = e.length - 3; a > 0; a -= 3) if (t.getSubStringLength(0, a) <= i / 1.1) return void (t.textContent = e.substring(0, a) + "..."); + t.textContent = "." + } + } + }], [{ + key: "setAttrs", value: function (t, e) { + for (var i in e) e.hasOwnProperty(i) && t.setAttribute(i, e[i]) + } + }]), t + }(), Pi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "getStackedSeriesTotals", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e = this.w, i = []; + if (0 === e.globals.series.length) return i; + for (var a = 0; a < e.globals.series[e.globals.maxValsInArrayIndex].length; a++) { + for (var s = 0, r = 0; r < e.globals.series.length; r++) void 0 !== e.globals.series[r][a] && -1 === t.indexOf(r) && (s += e.globals.series[r][a]); + i.push(s) + } + return i + } + }, { + key: "getSeriesTotalByIndex", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; + return null === t ? this.w.config.series.reduce((function (t, e) { + return t + e + }), 0) : this.w.globals.series[t].reduce((function (t, e) { + return t + e + }), 0) + } + }, { + key: "getStackedSeriesTotalsByGroups", value: function () { + var t = this, e = this.w, i = []; + return e.globals.seriesGroups.forEach((function (a) { + var s = []; + e.config.series.forEach((function (t, i) { + a.indexOf(e.globals.seriesNames[i]) > -1 && s.push(i) + })); + var r = e.globals.series.map((function (t, e) { + return -1 === s.indexOf(e) ? e : -1 + })).filter((function (t) { + return -1 !== t + })); + i.push(t.getStackedSeriesTotals(r)) + })), i + } + }, { + key: "setSeriesYAxisMappings", value: function () { + var t = this.w.globals, e = this.w.config, i = [], a = [], s = [], + r = t.series.length > e.yaxis.length || e.yaxis.some((function (t) { + return Array.isArray(t.seriesName) + })); + e.series.forEach((function (t, e) { + s.push(e), a.push(null) + })), e.yaxis.forEach((function (t, e) { + i[e] = [] + })); + var n = []; + e.yaxis.forEach((function (t, a) { + var o = !1; + if (t.seriesName) { + var l = []; + Array.isArray(t.seriesName) ? l = t.seriesName : l.push(t.seriesName), l.forEach((function (t) { + e.series.forEach((function (e, n) { + if (e.name === t) { + var l = n; + a === n || r ? !r || s.indexOf(n) > -1 ? i[a].push([a, n]) : console.warn("Series '" + e.name + "' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes.") : (i[n].push([n, a]), l = a), o = !0, -1 !== (l = s.indexOf(l)) && s.splice(l, 1) + } + })) + })) + } + o || n.push(a) + })), i = i.map((function (t, e) { + var i = []; + return t.forEach((function (t) { + a[t[1]] = t[0], i.push(t[1]) + })), i + })); + for (var o = e.yaxis.length - 1, l = 0; l < n.length && (o = n[l], i[o] = [], s); l++) { + var h = s[0]; + s.shift(), i[o].push(h), a[h] = o + } + s.forEach((function (t) { + i[o].push(t), a[t] = o + })), t.seriesYAxisMap = i.map((function (t) { + return t + })), t.seriesYAxisReverseMap = a.map((function (t) { + return t + })), t.seriesYAxisMap.forEach((function (t, i) { + t.forEach((function (t) { + e.series[t] && void 0 === e.series[t].group && (e.series[t].group = "apexcharts-axis-".concat(i.toString())) + })) + })) + } + }, { + key: "isSeriesNull", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; + return 0 === (null === t ? this.w.config.series.filter((function (t) { + return null !== t + })) : this.w.config.series[t].data.filter((function (t) { + return null !== t + }))).length + } + }, { + key: "seriesHaveSameValues", value: function (t) { + return this.w.globals.series[t].every((function (t, e, i) { + return t === i[0] + })) + } + }, { + key: "getCategoryLabels", value: function (t) { + var e = this.w, i = t.slice(); + return e.config.xaxis.convertedCatToNumeric && (i = t.map((function (t, i) { + return e.config.xaxis.labels.formatter(t - e.globals.minX + 1) + }))), i + } + }, { + key: "getLargestSeries", value: function () { + var t = this.w; + t.globals.maxValsInArrayIndex = t.globals.series.map((function (t) { + return t.length + })).indexOf(Math.max.apply(Math, t.globals.series.map((function (t) { + return t.length + })))) + } + }, { + key: "getLargestMarkerSize", value: function () { + var t = this.w, e = 0; + return t.globals.markers.size.forEach((function (t) { + e = Math.max(e, t) + })), t.config.markers.discrete && t.config.markers.discrete.length && t.config.markers.discrete.forEach((function (t) { + e = Math.max(e, t.size) + })), e > 0 && (t.config.markers.hover.size > 0 ? e = t.config.markers.hover.size : e += t.config.markers.hover.sizeOffset), t.globals.markers.largestSize = e, e + } + }, { + key: "getSeriesTotals", value: function () { + var t = this.w; + t.globals.seriesTotals = t.globals.series.map((function (t, e) { + var i = 0; + if (Array.isArray(t)) for (var a = 0; a < t.length; a++) i += t[a]; else i += t; + return i + })) + } + }, { + key: "getSeriesTotalsXRange", value: function (t, e) { + var i = this.w; + return i.globals.series.map((function (a, s) { + for (var r = 0, n = 0; n < a.length; n++) i.globals.seriesX[s][n] > t && i.globals.seriesX[s][n] < e && (r += a[n]); + return r + })) + } + }, { + key: "getPercentSeries", value: function () { + var t = this.w; + t.globals.seriesPercent = t.globals.series.map((function (e, i) { + var a = []; + if (Array.isArray(e)) for (var s = 0; s < e.length; s++) { + var r = t.globals.stackedSeriesTotals[s], n = 0; + r && (n = 100 * e[s] / r), a.push(n) + } else { + var o = 100 * e / t.globals.seriesTotals.reduce((function (t, e) { + return t + e + }), 0); + a.push(o) + } + return a + })) + } + }, { + key: "getCalculatedRatios", value: function () { + var t, e, i, a = this, s = this.w, r = s.globals, n = [], o = 0, l = [], h = .1, c = 0; + if (r.yRange = [], r.isMultipleYAxis) for (var d = 0; d < r.minYArr.length; d++) r.yRange.push(Math.abs(r.minYArr[d] - r.maxYArr[d])), l.push(0); else r.yRange.push(Math.abs(r.minY - r.maxY)); + r.xRange = Math.abs(r.maxX - r.minX), r.zRange = Math.abs(r.maxZ - r.minZ); + for (var u = 0; u < r.yRange.length; u++) n.push(r.yRange[u] / r.gridHeight); + if (e = r.xRange / r.gridWidth, t = r.yRange / r.gridWidth, i = r.xRange / r.gridHeight, (o = r.zRange / r.gridHeight * 16) || (o = 1), r.minY !== Number.MIN_VALUE && 0 !== Math.abs(r.minY) && (r.hasNegs = !0), s.globals.seriesYAxisReverseMap.length > 0) { + var g = function (t, e) { + var i = s.config.yaxis[s.globals.seriesYAxisReverseMap[e]], r = t < 0 ? -1 : 1; + return t = Math.abs(t), i.logarithmic && (t = a.getBaseLog(i.logBase, t)), -r * t / n[e] + }; + if (r.isMultipleYAxis) { + l = []; + for (var p = 0; p < n.length; p++) l.push(g(r.minYArr[p], p)) + } else (l = []).push(g(r.minY, 0)), r.minY !== Number.MIN_VALUE && 0 !== Math.abs(r.minY) && (h = -r.minY / t, c = r.minX / e) + } else (l = []).push(0), h = 0, c = 0; + return { + yRatio: n, + invertedYRatio: t, + zRatio: o, + xRatio: e, + invertedXRatio: i, + baseLineInvertedY: h, + baseLineY: l, + baseLineX: c + } + } + }, { + key: "getLogSeries", value: function (t) { + var e = this, i = this.w; + return i.globals.seriesLog = t.map((function (t, a) { + var s = i.globals.seriesYAxisReverseMap[a]; + return i.config.yaxis[s] && i.config.yaxis[s].logarithmic ? t.map((function (t) { + return null === t ? null : e.getLogVal(i.config.yaxis[s].logBase, t, a) + })) : t + })), i.globals.invalidLogScale ? t : i.globals.seriesLog + } + }, { + key: "getLogValAtSeriesIndex", value: function (t, e) { + if (null === t) return null; + var i = this.w, a = i.globals.seriesYAxisReverseMap[e]; + return i.config.yaxis[a] && i.config.yaxis[a].logarithmic ? this.getLogVal(i.config.yaxis[a].logBase, t, e) : t + } + }, { + key: "getBaseLog", value: function (t, e) { + return Math.log(e) / Math.log(t) + } + }, { + key: "getLogVal", value: function (t, e, i) { + if (e <= 0) return 0; + var a = this.w, s = 0 === a.globals.minYArr[i] ? -1 : this.getBaseLog(t, a.globals.minYArr[i]), + r = (0 === a.globals.maxYArr[i] ? 0 : this.getBaseLog(t, a.globals.maxYArr[i])) - s; + return e < 1 ? e / r : (this.getBaseLog(t, e) - s) / r + } + }, { + key: "getLogYRatios", value: function (t) { + var e = this, i = this.w, a = this.w.globals; + return a.yLogRatio = t.slice(), a.logYRange = a.yRange.map((function (t, s) { + var r = i.globals.seriesYAxisReverseMap[s]; + if (i.config.yaxis[r] && e.w.config.yaxis[r].logarithmic) { + var n, o = -Number.MAX_VALUE, l = Number.MIN_VALUE; + return a.seriesLog.forEach((function (t, e) { + t.forEach((function (t) { + i.config.yaxis[e] && i.config.yaxis[e].logarithmic && (o = Math.max(t, o), l = Math.min(t, l)) + })) + })), n = Math.pow(a.yRange[s], Math.abs(l - o) / a.yRange[s]), a.yLogRatio[s] = n / a.gridHeight, n + } + })), a.invalidLogScale ? t.slice() : a.yLogRatio + } + }, { + key: "drawSeriesByGroup", value: function (t, e, i, a) { + var s = this.w, r = []; + return t.series.length > 0 && e.forEach((function (e) { + var n = [], o = []; + t.i.forEach((function (i, a) { + s.config.series[i].group === e && (n.push(t.series[a]), o.push(i)) + })), n.length > 0 && r.push(a.draw(n, i, o)) + })), r + } + }], [{ + key: "checkComboSeries", value: function (t, e) { + var i = !1, a = 0, s = 0; + return void 0 === e && (e = "line"), t.length && void 0 !== t[0].type && t.forEach((function (t) { + "bar" !== t.type && "column" !== t.type && "candlestick" !== t.type && "boxPlot" !== t.type || a++, void 0 !== t.type && t.type !== e && s++ + })), s > 0 && (i = !0), {comboBarCount: a, comboCharts: i} + } + }, { + key: "extendArrayProps", value: function (t, e, i) { + var a, s, r, n, o, l; + (null !== (a = e) && void 0 !== a && a.yaxis && (e = t.extendYAxis(e, i)), null !== (s = e) && void 0 !== s && s.annotations) && (e.annotations.yaxis && (e = t.extendYAxisAnnotations(e)), null !== (r = e) && void 0 !== r && null !== (n = r.annotations) && void 0 !== n && n.xaxis && (e = t.extendXAxisAnnotations(e)), null !== (o = e) && void 0 !== o && null !== (l = o.annotations) && void 0 !== l && l.points && (e = t.extendPointAnnotations(e))); + return e + } + }]), t + }(), Ii = function () { + function t(e) { + i(this, t), this.w = e.w, this.annoCtx = e + } + + return s(t, [{ + key: "setOrientations", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i = this.w; + if ("vertical" === t.label.orientation) { + var a = null !== e ? e : 0, + s = i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a, "']")); + if (null !== s) { + var r = s.getBoundingClientRect(); + s.setAttribute("x", parseFloat(s.getAttribute("x")) - r.height + 4); + var n = "top" === t.label.position ? r.width : -r.width; + s.setAttribute("y", parseFloat(s.getAttribute("y")) + n); + var o = this.annoCtx.graphics.rotateAroundCenter(s), l = o.x, h = o.y; + s.setAttribute("transform", "rotate(-90 ".concat(l, " ").concat(h, ")")) + } + } + } + }, { + key: "addBackgroundToAnno", value: function (t, e) { + var i = this.w; + if (!t || !e.label.text || !String(e.label.text).trim()) return null; + var a = i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(), + s = t.getBoundingClientRect(), r = e.label.style.padding, n = r.left, o = r.right, l = r.top, + h = r.bottom; + if ("vertical" === e.label.orientation) { + var c = [n, o, l, h]; + l = c[0], h = c[1], n = c[2], o = c[3] + } + var d = s.left - a.left - n, u = s.top - a.top - l, + g = this.annoCtx.graphics.drawRect(d - i.globals.barPadForNumericAxis, u, s.width + n + o, s.height + l + h, e.label.borderRadius, e.label.style.background, 1, e.label.borderWidth, e.label.borderColor, 0); + return e.id && g.node.classList.add(e.id), g + } + }, { + key: "annotationsBackground", value: function () { + var t = this, e = this.w, i = function (i, a, s) { + var r = e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations .apexcharts-").concat(s, "-annotation-label[rel='").concat(a, "']")); + if (r) { + var n = r.parentNode, o = t.addBackgroundToAnno(r, i); + o && (n.insertBefore(o.node, r), i.label.mouseEnter && o.node.addEventListener("mouseenter", i.label.mouseEnter.bind(t, i)), i.label.mouseLeave && o.node.addEventListener("mouseleave", i.label.mouseLeave.bind(t, i)), i.label.click && o.node.addEventListener("click", i.label.click.bind(t, i))) + } + }; + e.config.annotations.xaxis.forEach((function (t, e) { + return i(t, e, "xaxis") + })), e.config.annotations.yaxis.forEach((function (t, e) { + return i(t, e, "yaxis") + })), e.config.annotations.points.forEach((function (t, e) { + return i(t, e, "point") + })) + } + }, { + key: "getY1Y2", value: function (t, e) { + var i, a = this.w, s = "y1" === t ? e.y : e.y2, r = !1; + if (this.annoCtx.invertAxis) { + var n = a.config.xaxis.convertedCatToNumeric ? a.globals.categoryLabels : a.globals.labels, + o = n.indexOf(s), + l = a.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child(".concat(o + 1, ")")); + i = l ? parseFloat(l.getAttribute("y")) : (a.globals.gridHeight / n.length - 1) * (o + 1) - a.globals.barHeight, void 0 !== e.seriesIndex && a.globals.barHeight && (i -= a.globals.barHeight / 2 * (a.globals.series.length - 1) - a.globals.barHeight * e.seriesIndex) + } else { + var h, c = a.globals.seriesYAxisMap[e.yAxisIndex][0], + d = a.config.yaxis[e.yAxisIndex].logarithmic ? new Pi(this.annoCtx.ctx).getLogVal(a.config.yaxis[e.yAxisIndex].logBase, s, c) / a.globals.yLogRatio[c] : (s - a.globals.minYArr[c]) / (a.globals.yRange[c] / a.globals.gridHeight); + i = a.globals.gridHeight - Math.min(Math.max(d, 0), a.globals.gridHeight), r = d > a.globals.gridHeight || d < 0, !e.marker || void 0 !== e.y && null !== e.y || (i = 0), null !== (h = a.config.yaxis[e.yAxisIndex]) && void 0 !== h && h.reversed && (i = d) + } + return "string" == typeof s && s.includes("px") && (i = parseFloat(s)), {yP: i, clipped: r} + } + }, { + key: "getX1X2", value: function (t, e) { + var i = this.w, a = "x1" === t ? e.x : e.x2, + s = this.annoCtx.invertAxis ? i.globals.minY : i.globals.minX, + r = this.annoCtx.invertAxis ? i.globals.maxY : i.globals.maxX, + n = this.annoCtx.invertAxis ? i.globals.yRange[0] : i.globals.xRange, o = !1, + l = this.annoCtx.inversedReversedAxis ? (r - a) / (n / i.globals.gridWidth) : (a - s) / (n / i.globals.gridWidth); + return "category" !== i.config.xaxis.type && !i.config.xaxis.convertedCatToNumeric || this.annoCtx.invertAxis || i.globals.dataFormatXNumeric || i.config.chart.sparkline.enabled || (l = this.getStringX(a)), "string" == typeof a && a.includes("px") && (l = parseFloat(a)), null == a && e.marker && (l = i.globals.gridWidth), void 0 !== e.seriesIndex && i.globals.barWidth && !this.annoCtx.invertAxis && (l -= i.globals.barWidth / 2 * (i.globals.series.length - 1) - i.globals.barWidth * e.seriesIndex), "number" != typeof l && (l = 0, o = !0), parseFloat(l.toFixed(10)) > parseFloat(i.globals.gridWidth.toFixed(10)) ? (l = i.globals.gridWidth, o = !0) : l < 0 && (l = 0, o = !0), { + x: l, + clipped: o + } + } + }, { + key: "getStringX", value: function (t) { + var e = this.w, i = t; + e.config.xaxis.convertedCatToNumeric && e.globals.categoryLabels.length && (t = e.globals.categoryLabels.indexOf(t) + 1); + var a = e.globals.labels.map((function (t) { + return Array.isArray(t) ? t.join(" ") : t + })).indexOf(t), + s = e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child(".concat(a + 1, ")")); + return s && (i = parseFloat(s.getAttribute("x"))), i + } + }]), t + }(), Ti = function () { + function t(e) { + i(this, t), this.w = e.w, this.annoCtx = e, this.invertAxis = this.annoCtx.invertAxis, this.helpers = new Ii(this.annoCtx) + } + + return s(t, [{ + key: "addXaxisAnnotation", value: function (t, e, i) { + var a, s = this.w, r = this.helpers.getX1X2("x1", t), n = r.x, o = r.clipped, l = !0, h = t.label.text, + c = t.strokeDashArray; + if (v.isNumber(n)) { + if (null === t.x2 || void 0 === t.x2) { + if (!o) { + var d = this.annoCtx.graphics.drawLine(n + t.offsetX, 0 + t.offsetY, n + t.offsetX, s.globals.gridHeight + t.offsetY, t.borderColor, c, t.borderWidth); + e.appendChild(d.node), t.id && d.node.classList.add(t.id) + } + } else { + var u = this.helpers.getX1X2("x2", t); + if (a = u.x, l = u.clipped, a < n) { + var g = n; + n = a, a = g + } + var p = this.annoCtx.graphics.drawRect(n + t.offsetX, 0 + t.offsetY, a - n, s.globals.gridHeight + t.offsetY, 0, t.fillColor, t.opacity, 1, t.borderColor, c); + p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(s.globals.cuid, ")")), e.appendChild(p.node), t.id && p.node.classList.add(t.id) + } + if (!o || !l) { + var f = this.annoCtx.graphics.getTextRects(h, parseFloat(t.label.style.fontSize)), + x = "top" === t.label.position ? 4 : "center" === t.label.position ? s.globals.gridHeight / 2 + ("vertical" === t.label.orientation ? f.width / 2 : 0) : s.globals.gridHeight, + b = this.annoCtx.graphics.drawText({ + x: n + t.label.offsetX, + y: x + t.label.offsetY - ("vertical" === t.label.orientation ? "top" === t.label.position ? f.width / 2 - 12 : -f.width / 2 : 0), + text: h, + textAnchor: t.label.textAnchor, + fontSize: t.label.style.fontSize, + fontFamily: t.label.style.fontFamily, + fontWeight: t.label.style.fontWeight, + foreColor: t.label.style.color, + cssClass: "apexcharts-xaxis-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") + }); + b.attr({rel: i}), e.appendChild(b.node), this.annoCtx.helpers.setOrientations(t, i) + } + } + } + }, { + key: "drawXAxisAnnotations", value: function () { + var t = this, e = this.w, i = this.annoCtx.graphics.group({class: "apexcharts-xaxis-annotations"}); + return e.config.annotations.xaxis.map((function (e, a) { + t.addXaxisAnnotation(e, i.node, a) + })), i + } + }]), t + }(), zi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.months31 = [1, 3, 5, 7, 8, 10, 12], this.months30 = [2, 4, 6, 9, 11], this.daysCntOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334] + } + + return s(t, [{ + key: "isValidDate", value: function (t) { + return "number" != typeof t && !isNaN(this.parseDate(t)) + } + }, { + key: "getTimeStamp", value: function (t) { + return Date.parse(t) ? this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toISOString().substr(0, 25)).getTime() : new Date(t).getTime() : t + } + }, { + key: "getDate", value: function (t) { + return this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toUTCString()) : new Date(t) + } + }, { + key: "parseDate", value: function (t) { + var e = Date.parse(t); + if (!isNaN(e)) return this.getTimeStamp(t); + var i = Date.parse(t.replace(/-/g, "/").replace(/[a-z]+/gi, " ")); + return i = this.getTimeStamp(i) + } + }, { + key: "parseDateWithTimezone", value: function (t) { + return Date.parse(t.replace(/-/g, "/").replace(/[a-z]+/gi, " ")) + } + }, { + key: "formatDate", value: function (t, e) { + var i = this.w.globals.locale, a = this.w.config.xaxis.labels.datetimeUTC, + s = ["\0"].concat(f(i.months)), r = ["\x01"].concat(f(i.shortMonths)), + n = ["\x02"].concat(f(i.days)), o = ["\x03"].concat(f(i.shortDays)); + + function l(t, e) { + var i = t + ""; + for (e = e || 2; i.length < e;) i = "0" + i; + return i + } + + var h = a ? t.getUTCFullYear() : t.getFullYear(); + e = (e = (e = e.replace(/(^|[^\\])yyyy+/g, "$1" + h)).replace(/(^|[^\\])yy/g, "$1" + h.toString().substr(2, 2))).replace(/(^|[^\\])y/g, "$1" + h); + var c = (a ? t.getUTCMonth() : t.getMonth()) + 1; + e = (e = (e = (e = e.replace(/(^|[^\\])MMMM+/g, "$1" + s[0])).replace(/(^|[^\\])MMM/g, "$1" + r[0])).replace(/(^|[^\\])MM/g, "$1" + l(c))).replace(/(^|[^\\])M/g, "$1" + c); + var d = a ? t.getUTCDate() : t.getDate(); + e = (e = (e = (e = e.replace(/(^|[^\\])dddd+/g, "$1" + n[0])).replace(/(^|[^\\])ddd/g, "$1" + o[0])).replace(/(^|[^\\])dd/g, "$1" + l(d))).replace(/(^|[^\\])d/g, "$1" + d); + var u = a ? t.getUTCHours() : t.getHours(), g = u > 12 ? u - 12 : 0 === u ? 12 : u; + e = (e = (e = (e = e.replace(/(^|[^\\])HH+/g, "$1" + l(u))).replace(/(^|[^\\])H/g, "$1" + u)).replace(/(^|[^\\])hh+/g, "$1" + l(g))).replace(/(^|[^\\])h/g, "$1" + g); + var p = a ? t.getUTCMinutes() : t.getMinutes(); + e = (e = e.replace(/(^|[^\\])mm+/g, "$1" + l(p))).replace(/(^|[^\\])m/g, "$1" + p); + var x = a ? t.getUTCSeconds() : t.getSeconds(); + e = (e = e.replace(/(^|[^\\])ss+/g, "$1" + l(x))).replace(/(^|[^\\])s/g, "$1" + x); + var b = a ? t.getUTCMilliseconds() : t.getMilliseconds(); + e = e.replace(/(^|[^\\])fff+/g, "$1" + l(b, 3)), b = Math.round(b / 10), e = e.replace(/(^|[^\\])ff/g, "$1" + l(b)), b = Math.round(b / 10); + var m = u < 12 ? "AM" : "PM"; + e = (e = (e = e.replace(/(^|[^\\])f/g, "$1" + b)).replace(/(^|[^\\])TT+/g, "$1" + m)).replace(/(^|[^\\])T/g, "$1" + m.charAt(0)); + var v = m.toLowerCase(); + e = (e = e.replace(/(^|[^\\])tt+/g, "$1" + v)).replace(/(^|[^\\])t/g, "$1" + v.charAt(0)); + var y = -t.getTimezoneOffset(), w = a || !y ? "Z" : y > 0 ? "+" : "-"; + if (!a) { + var k = (y = Math.abs(y)) % 60; + w += l(Math.floor(y / 60)) + ":" + l(k) + } + e = e.replace(/(^|[^\\])K/g, "$1" + w); + var A = (a ? t.getUTCDay() : t.getDay()) + 1; + return e = (e = (e = (e = (e = e.replace(new RegExp(n[0], "g"), n[A])).replace(new RegExp(o[0], "g"), o[A])).replace(new RegExp(s[0], "g"), s[c])).replace(new RegExp(r[0], "g"), r[c])).replace(/\\(.)/g, "$1") + } + }, { + key: "getTimeUnitsfromTimestamp", value: function (t, e, i) { + var a = this.w; + void 0 !== a.config.xaxis.min && (t = a.config.xaxis.min), void 0 !== a.config.xaxis.max && (e = a.config.xaxis.max); + var s = this.getDate(t), r = this.getDate(e), + n = this.formatDate(s, "yyyy MM dd HH mm ss fff").split(" "), + o = this.formatDate(r, "yyyy MM dd HH mm ss fff").split(" "); + return { + minMillisecond: parseInt(n[6], 10), + maxMillisecond: parseInt(o[6], 10), + minSecond: parseInt(n[5], 10), + maxSecond: parseInt(o[5], 10), + minMinute: parseInt(n[4], 10), + maxMinute: parseInt(o[4], 10), + minHour: parseInt(n[3], 10), + maxHour: parseInt(o[3], 10), + minDate: parseInt(n[2], 10), + maxDate: parseInt(o[2], 10), + minMonth: parseInt(n[1], 10) - 1, + maxMonth: parseInt(o[1], 10) - 1, + minYear: parseInt(n[0], 10), + maxYear: parseInt(o[0], 10) + } + } + }, { + key: "isLeapYear", value: function (t) { + return t % 4 == 0 && t % 100 != 0 || t % 400 == 0 + } + }, { + key: "calculcateLastDaysOfMonth", value: function (t, e, i) { + return this.determineDaysOfMonths(t, e) - i + } + }, { + key: "determineDaysOfYear", value: function (t) { + var e = 365; + return this.isLeapYear(t) && (e = 366), e + } + }, { + key: "determineRemainingDaysOfYear", value: function (t, e, i) { + var a = this.daysCntOfYear[e] + i; + return e > 1 && this.isLeapYear() && a++, a + } + }, { + key: "determineDaysOfMonths", value: function (t, e) { + var i = 30; + switch (t = v.monthMod(t), !0) { + case this.months30.indexOf(t) > -1: + 2 === t && (i = this.isLeapYear(e) ? 29 : 28); + break; + case this.months31.indexOf(t) > -1: + default: + i = 31 + } + return i + } + }]), t + }(), Xi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.tooltipKeyFormat = "dd MMM" + } + + return s(t, [{ + key: "xLabelFormat", value: function (t, e, i, a) { + var s = this.w; + if ("datetime" === s.config.xaxis.type && void 0 === s.config.xaxis.labels.formatter && void 0 === s.config.tooltip.x.formatter) { + var r = new zi(this.ctx); + return r.formatDate(r.getDate(e), s.config.tooltip.x.format) + } + return t(e, i, a) + } + }, { + key: "defaultGeneralFormatter", value: function (t) { + return Array.isArray(t) ? t.map((function (t) { + return t + })) : t + } + }, { + key: "defaultYFormatter", value: function (t, e, i) { + var a = this.w; + if (v.isNumber(t)) if (0 !== a.globals.yValueDecimal) t = t.toFixed(void 0 !== e.decimalsInFloat ? e.decimalsInFloat : a.globals.yValueDecimal); else { + var s = t.toFixed(0); + t = t == s ? s : t.toFixed(1) + } + return t + } + }, { + key: "setLabelFormatters", value: function () { + var t = this, e = this.w; + return e.globals.xaxisTooltipFormatter = function (e) { + return t.defaultGeneralFormatter(e) + }, e.globals.ttKeyFormatter = function (e) { + return t.defaultGeneralFormatter(e) + }, e.globals.ttZFormatter = function (t) { + return t + }, e.globals.legendFormatter = function (e) { + return t.defaultGeneralFormatter(e) + }, void 0 !== e.config.xaxis.labels.formatter ? e.globals.xLabelFormatter = e.config.xaxis.labels.formatter : e.globals.xLabelFormatter = function (t) { + if (v.isNumber(t)) { + if (!e.config.xaxis.convertedCatToNumeric && "numeric" === e.config.xaxis.type) { + if (v.isNumber(e.config.xaxis.decimalsInFloat)) return t.toFixed(e.config.xaxis.decimalsInFloat); + var i = e.globals.maxX - e.globals.minX; + return i > 0 && i < 100 ? t.toFixed(1) : t.toFixed(0) + } + if (e.globals.isBarHorizontal) if (e.globals.maxY - e.globals.minYArr < 4) return t.toFixed(1); + return t.toFixed(0) + } + return t + }, "function" == typeof e.config.tooltip.x.formatter ? e.globals.ttKeyFormatter = e.config.tooltip.x.formatter : e.globals.ttKeyFormatter = e.globals.xLabelFormatter, "function" == typeof e.config.xaxis.tooltip.formatter && (e.globals.xaxisTooltipFormatter = e.config.xaxis.tooltip.formatter), (Array.isArray(e.config.tooltip.y) || void 0 !== e.config.tooltip.y.formatter) && (e.globals.ttVal = e.config.tooltip.y), void 0 !== e.config.tooltip.z.formatter && (e.globals.ttZFormatter = e.config.tooltip.z.formatter), void 0 !== e.config.legend.formatter && (e.globals.legendFormatter = e.config.legend.formatter), e.config.yaxis.forEach((function (i, a) { + void 0 !== i.labels.formatter ? e.globals.yLabelFormatters[a] = i.labels.formatter : e.globals.yLabelFormatters[a] = function (s) { + return e.globals.xyCharts ? Array.isArray(s) ? s.map((function (e) { + return t.defaultYFormatter(e, i, a) + })) : t.defaultYFormatter(s, i, a) : s + } + })), e.globals + } + }, { + key: "heatmapLabelFormatters", value: function () { + var t = this.w; + if ("heatmap" === t.config.chart.type) { + t.globals.yAxisScale[0].result = t.globals.seriesNames.slice(); + var e = t.globals.seriesNames.reduce((function (t, e) { + return t.length > e.length ? t : e + }), 0); + t.globals.yAxisScale[0].niceMax = e, t.globals.yAxisScale[0].niceMin = e + } + } + }]), t + }(), Ri = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "getLabel", value: function (t, e, i, a) { + var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : [], + r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "12px", + n = !(arguments.length > 6 && void 0 !== arguments[6]) || arguments[6], o = this.w, + l = void 0 === t[a] ? "" : t[a], h = l, c = o.globals.xLabelFormatter, + d = o.config.xaxis.labels.formatter, u = !1, g = new Xi(this.ctx), p = l; + n && (h = g.xLabelFormat(c, l, p, { + i: a, + dateFormatter: new zi(this.ctx).formatDate, + w: o + }), void 0 !== d && (h = d(l, t[a], {i: a, dateFormatter: new zi(this.ctx).formatDate, w: o}))); + var f, x; + e.length > 0 ? (f = e[a].unit, x = null, e.forEach((function (t) { + "month" === t.unit ? x = "year" : "day" === t.unit ? x = "month" : "hour" === t.unit ? x = "day" : "minute" === t.unit && (x = "hour") + })), u = x === f, i = e[a].position, h = e[a].value) : "datetime" === o.config.xaxis.type && void 0 === d && (h = ""), void 0 === h && (h = ""), h = Array.isArray(h) ? h : h.toString(); + var b = new Mi(this.ctx), m = {}; + m = o.globals.rotateXLabels && n ? b.getTextRects(h, parseInt(r, 10), null, "rotate(".concat(o.config.xaxis.labels.rotate, " 0 0)"), !1) : b.getTextRects(h, parseInt(r, 10)); + var v = !o.config.xaxis.labels.showDuplicates && this.ctx.timeScale; + return !Array.isArray(h) && ("NaN" === String(h) || s.indexOf(h) >= 0 && v) && (h = ""), { + x: i, + text: h, + textRect: m, + isBold: u + } + } + }, { + key: "checkLabelBasedOnTickamount", value: function (t, e, i) { + var a = this.w, s = a.config.xaxis.tickAmount; + return "dataPoints" === s && (s = Math.round(a.globals.gridWidth / 120)), s > i || t % Math.round(i / (s + 1)) == 0 || (e.text = ""), e + } + }, { + key: "checkForOverflowingLabels", value: function (t, e, i, a, s) { + var r = this.w; + if (0 === t && r.globals.skipFirstTimelinelabel && (e.text = ""), t === i - 1 && r.globals.skipLastTimelinelabel && (e.text = ""), r.config.xaxis.labels.hideOverlappingLabels && a.length > 0) { + var n = s[s.length - 1]; + if (r.config.xaxis.labels.trim && "datetime" !== r.config.xaxis.type) return e; + e.x < n.textRect.width / (r.globals.rotateXLabels ? Math.abs(r.config.xaxis.labels.rotate) / 12 : 1.01) + n.x && (e.text = "") + } + return e + } + }, { + key: "checkForReversedLabels", value: function (t, e) { + var i = this.w; + return i.config.yaxis[t] && i.config.yaxis[t].reversed && e.reverse(), e + } + }, { + key: "yAxisAllSeriesCollapsed", value: function (t) { + var e = this.w.globals; + return !e.seriesYAxisMap[t].some((function (t) { + return -1 === e.collapsedSeriesIndices.indexOf(t) + })) + } + }, { + key: "translateYAxisIndex", value: function (t) { + var e = this.w, i = e.globals, a = e.config.yaxis; + return i.series.length > a.length || a.some((function (t) { + return Array.isArray(t.seriesName) + })) ? t : i.seriesYAxisReverseMap[t] + } + }, { + key: "isYAxisHidden", value: function (t) { + var e = this.w, i = e.config.yaxis[t]; + if (!i.show || this.yAxisAllSeriesCollapsed(t)) return !0; + if (!i.showForNullSeries) { + var a = e.globals.seriesYAxisMap[t], s = new Pi(this.ctx); + return a.every((function (t) { + return s.isSeriesNull(t) + })) + } + return !1 + } + }, { + key: "getYAxisForeColor", value: function (t, e) { + var i = this.w; + return Array.isArray(t) && i.globals.yAxisScale[e] && this.ctx.theme.pushExtraColors(t, i.globals.yAxisScale[e].result.length, !1), t + } + }, { + key: "drawYAxisTicks", value: function (t, e, i, a, s, r, n) { + var o = this.w, l = new Mi(this.ctx), h = o.globals.translateY + o.config.yaxis[s].labels.offsetY; + if (o.globals.isBarHorizontal ? h = 0 : "heatmap" === o.config.chart.type && (h += r / 2), a.show && e > 0) { + !0 === o.config.yaxis[s].opposite && (t += a.width); + for (var c = e; c >= 0; c--) { + var d = l.drawLine(t + i.offsetX - a.width + a.offsetX, h + a.offsetY, t + i.offsetX + a.offsetX, h + a.offsetY, a.color); + n.add(d), h += r + } + } + } + }]), t + }(), Ei = function () { + function t(e) { + i(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new Ii(this.annoCtx), this.axesUtils = new Ri(this.annoCtx) + } + + return s(t, [{ + key: "addYaxisAnnotation", value: function (t, e, i) { + var a, s = this.w, r = t.strokeDashArray, n = this.helpers.getY1Y2("y1", t), o = n.yP, l = n.clipped, + h = !0, c = !1, d = t.label.text; + if (null === t.y2 || void 0 === t.y2) { + if (!l) { + c = !0; + var u = this.annoCtx.graphics.drawLine(0 + t.offsetX, o + t.offsetY, this._getYAxisAnnotationWidth(t), o + t.offsetY, t.borderColor, r, t.borderWidth); + e.appendChild(u.node), t.id && u.node.classList.add(t.id) + } + } else { + if (a = (n = this.helpers.getY1Y2("y2", t)).yP, h = n.clipped, a > o) { + var g = o; + o = a, a = g + } + if (!l || !h) { + c = !0; + var p = this.annoCtx.graphics.drawRect(0 + t.offsetX, a + t.offsetY, this._getYAxisAnnotationWidth(t), o - a, 0, t.fillColor, t.opacity, 1, t.borderColor, r); + p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(s.globals.cuid, ")")), e.appendChild(p.node), t.id && p.node.classList.add(t.id) + } + } + if (c) { + var f = "right" === t.label.position ? s.globals.gridWidth : "center" === t.label.position ? s.globals.gridWidth / 2 : 0, + x = this.annoCtx.graphics.drawText({ + x: f + t.label.offsetX, + y: (null != a ? a : o) + t.label.offsetY - 3, + text: d, + textAnchor: t.label.textAnchor, + fontSize: t.label.style.fontSize, + fontFamily: t.label.style.fontFamily, + fontWeight: t.label.style.fontWeight, + foreColor: t.label.style.color, + cssClass: "apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") + }); + x.attr({rel: i}), e.appendChild(x.node) + } + } + }, { + key: "_getYAxisAnnotationWidth", value: function (t) { + var e = this.w; + e.globals.gridWidth; + return (t.width.indexOf("%") > -1 ? e.globals.gridWidth * parseInt(t.width, 10) / 100 : parseInt(t.width, 10)) + t.offsetX + } + }, { + key: "drawYAxisAnnotations", value: function () { + var t = this, e = this.w, i = this.annoCtx.graphics.group({class: "apexcharts-yaxis-annotations"}); + return e.config.annotations.yaxis.forEach((function (e, a) { + e.yAxisIndex = t.axesUtils.translateYAxisIndex(e.yAxisIndex), t.axesUtils.isYAxisHidden(e.yAxisIndex) && t.axesUtils.yAxisAllSeriesCollapsed(e.yAxisIndex) || t.addYaxisAnnotation(e, i.node, a) + })), i + } + }]), t + }(), Yi = function () { + function t(e) { + i(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new Ii(this.annoCtx) + } + + return s(t, [{ + key: "addPointAnnotation", value: function (t, e, i) { + if (!(this.w.globals.collapsedSeriesIndices.indexOf(t.seriesIndex) > -1)) { + var a = this.helpers.getX1X2("x1", t), s = a.x, r = a.clipped, + n = (a = this.helpers.getY1Y2("y1", t)).yP, o = a.clipped; + if (v.isNumber(s) && !o && !r) { + var l = { + pSize: t.marker.size, + pointStrokeWidth: t.marker.strokeWidth, + pointFillColor: t.marker.fillColor, + pointStrokeColor: t.marker.strokeColor, + shape: t.marker.shape, + pRadius: t.marker.radius, + class: "apexcharts-point-annotation-marker ".concat(t.marker.cssClass, " ").concat(t.id ? t.id : "") + }, h = this.annoCtx.graphics.drawMarker(s + t.marker.offsetX, n + t.marker.offsetY, l); + e.appendChild(h.node); + var c = t.label.text ? t.label.text : "", d = this.annoCtx.graphics.drawText({ + x: s + t.label.offsetX, + y: n + t.label.offsetY - t.marker.size - parseFloat(t.label.style.fontSize) / 1.6, + text: c, + textAnchor: t.label.textAnchor, + fontSize: t.label.style.fontSize, + fontFamily: t.label.style.fontFamily, + fontWeight: t.label.style.fontWeight, + foreColor: t.label.style.color, + cssClass: "apexcharts-point-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") + }); + if (d.attr({rel: i}), e.appendChild(d.node), t.customSVG.SVG) { + var u = this.annoCtx.graphics.group({class: "apexcharts-point-annotations-custom-svg " + t.customSVG.cssClass}); + u.attr({transform: "translate(".concat(s + t.customSVG.offsetX, ", ").concat(n + t.customSVG.offsetY, ")")}), u.node.innerHTML = t.customSVG.SVG, e.appendChild(u.node) + } + if (t.image.path) { + var g = t.image.width ? t.image.width : 20, p = t.image.height ? t.image.height : 20; + h = this.annoCtx.addImage({ + x: s + t.image.offsetX - g / 2, + y: n + t.image.offsetY - p / 2, + width: g, + height: p, + path: t.image.path, + appendTo: ".apexcharts-point-annotations" + }) + } + t.mouseEnter && h.node.addEventListener("mouseenter", t.mouseEnter.bind(this, t)), t.mouseLeave && h.node.addEventListener("mouseleave", t.mouseLeave.bind(this, t)), t.click && h.node.addEventListener("click", t.click.bind(this, t)) + } + } + } + }, { + key: "drawPointAnnotations", value: function () { + var t = this, e = this.w, i = this.annoCtx.graphics.group({class: "apexcharts-point-annotations"}); + return e.config.annotations.points.map((function (e, a) { + t.addPointAnnotation(e, i.node, a) + })), i + } + }]), t + }(); + var Hi = { + name: "en", + options: { + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + toolbar: { + exportToSVG: "Download SVG", + exportToPNG: "Download PNG", + exportToCSV: "Download CSV", + menu: "Menu", + selection: "Selection", + selectionZoom: "Selection Zoom", + zoomIn: "Zoom In", + zoomOut: "Zoom Out", + pan: "Panning", + reset: "Reset Zoom" + } + } + }, Oi = function () { + function t() { + i(this, t), this.yAxis = { + show: !0, + showAlways: !1, + showForNullSeries: !0, + seriesName: void 0, + opposite: !1, + reversed: !1, + logarithmic: !1, + logBase: 10, + tickAmount: void 0, + stepSize: void 0, + forceNiceScale: !1, + max: void 0, + min: void 0, + floating: !1, + decimalsInFloat: void 0, + labels: { + show: !0, + showDuplicates: !1, + minWidth: 0, + maxWidth: 160, + offsetX: 0, + offsetY: 0, + align: void 0, + rotate: 0, + padding: 20, + style: {colors: [], fontSize: "11px", fontWeight: 400, fontFamily: void 0, cssClass: ""}, + formatter: void 0 + }, + axisBorder: {show: !1, color: "#e0e0e0", width: 1, offsetX: 0, offsetY: 0}, + axisTicks: {show: !1, color: "#e0e0e0", width: 6, offsetX: 0, offsetY: 0}, + title: { + text: void 0, + rotate: -90, + offsetY: 0, + offsetX: 0, + style: {color: void 0, fontSize: "11px", fontWeight: 900, fontFamily: void 0, cssClass: ""} + }, + tooltip: {enabled: !1, offsetX: 0}, + crosshairs: {show: !0, position: "front", stroke: {color: "#b6b6b6", width: 1, dashArray: 0}} + }, this.pointAnnotation = { + id: void 0, + x: 0, + y: null, + yAxisIndex: 0, + seriesIndex: void 0, + mouseEnter: void 0, + mouseLeave: void 0, + click: void 0, + marker: { + size: 4, + fillColor: "#fff", + strokeWidth: 2, + strokeColor: "#333", + shape: "circle", + offsetX: 0, + offsetY: 0, + cssClass: "" + }, + label: { + borderColor: "#c2c2c2", + borderWidth: 1, + borderRadius: 2, + text: void 0, + textAnchor: "middle", + offsetX: 0, + offsetY: 0, + mouseEnter: void 0, + mouseLeave: void 0, + click: void 0, + style: { + background: "#fff", + color: void 0, + fontSize: "11px", + fontFamily: void 0, + fontWeight: 400, + cssClass: "", + padding: {left: 5, right: 5, top: 2, bottom: 2} + } + }, + customSVG: {SVG: void 0, cssClass: void 0, offsetX: 0, offsetY: 0}, + image: {path: void 0, width: 20, height: 20, offsetX: 0, offsetY: 0} + }, this.yAxisAnnotation = { + id: void 0, + y: 0, + y2: null, + strokeDashArray: 1, + fillColor: "#c2c2c2", + borderColor: "#c2c2c2", + borderWidth: 1, + opacity: .3, + offsetX: 0, + offsetY: 0, + width: "100%", + yAxisIndex: 0, + label: { + borderColor: "#c2c2c2", + borderWidth: 1, + borderRadius: 2, + text: void 0, + textAnchor: "end", + position: "right", + offsetX: 0, + offsetY: -3, + mouseEnter: void 0, + mouseLeave: void 0, + click: void 0, + style: { + background: "#fff", + color: void 0, + fontSize: "11px", + fontFamily: void 0, + fontWeight: 400, + cssClass: "", + padding: {left: 5, right: 5, top: 2, bottom: 2} + } + } + }, this.xAxisAnnotation = { + id: void 0, + x: 0, + x2: null, + strokeDashArray: 1, + fillColor: "#c2c2c2", + borderColor: "#c2c2c2", + borderWidth: 1, + opacity: .3, + offsetX: 0, + offsetY: 0, + label: { + borderColor: "#c2c2c2", + borderWidth: 1, + borderRadius: 2, + text: void 0, + textAnchor: "middle", + orientation: "vertical", + position: "top", + offsetX: 0, + offsetY: 0, + mouseEnter: void 0, + mouseLeave: void 0, + click: void 0, + style: { + background: "#fff", + color: void 0, + fontSize: "11px", + fontFamily: void 0, + fontWeight: 400, + cssClass: "", + padding: {left: 5, right: 5, top: 2, bottom: 2} + } + } + }, this.text = { + x: 0, + y: 0, + text: "", + textAnchor: "start", + foreColor: void 0, + fontSize: "13px", + fontFamily: void 0, + fontWeight: 400, + appendTo: ".apexcharts-annotations", + backgroundColor: "transparent", + borderColor: "#c2c2c2", + borderRadius: 0, + borderWidth: 0, + paddingLeft: 4, + paddingRight: 4, + paddingTop: 2, + paddingBottom: 2 + } + } + + return s(t, [{ + key: "init", value: function () { + return { + annotations: { + yaxis: [this.yAxisAnnotation], + xaxis: [this.xAxisAnnotation], + points: [this.pointAnnotation], + texts: [], + images: [], + shapes: [] + }, + chart: { + animations: { + enabled: !0, + speed: 800, + animateGradually: {delay: 150, enabled: !0}, + dynamicAnimation: {enabled: !0, speed: 350} + }, + background: "", + locales: [Hi], + defaultLocale: "en", + dropShadow: { + enabled: !1, + enabledOnSeries: void 0, + top: 2, + left: 2, + blur: 4, + color: "#000", + opacity: .7 + }, + events: { + animationEnd: void 0, + beforeMount: void 0, + mounted: void 0, + updated: void 0, + click: void 0, + mouseMove: void 0, + mouseLeave: void 0, + xAxisLabelClick: void 0, + legendClick: void 0, + markerClick: void 0, + selection: void 0, + dataPointSelection: void 0, + dataPointMouseEnter: void 0, + dataPointMouseLeave: void 0, + beforeZoom: void 0, + beforeResetZoom: void 0, + zoomed: void 0, + scrolled: void 0, + brushScrolled: void 0 + }, + foreColor: "#373d3f", + fontFamily: "Helvetica, Arial, sans-serif", + height: "auto", + parentHeightOffset: 15, + redrawOnParentResize: !0, + redrawOnWindowResize: !0, + id: void 0, + group: void 0, + nonce: void 0, + offsetX: 0, + offsetY: 0, + injectStyleSheet: !0, + selection: { + enabled: !1, + type: "x", + fill: {color: "#24292e", opacity: .1}, + stroke: {width: 1, color: "#24292e", opacity: .4, dashArray: 3}, + xaxis: {min: void 0, max: void 0}, + yaxis: {min: void 0, max: void 0} + }, + sparkline: {enabled: !1}, + brush: {enabled: !1, autoScaleYaxis: !0, target: void 0, targets: void 0}, + stacked: !1, + stackOnlyBar: !0, + stackType: "normal", + toolbar: { + show: !0, + offsetX: 0, + offsetY: 0, + tools: { + download: !0, + selection: !0, + zoom: !0, + zoomin: !0, + zoomout: !0, + pan: !0, + reset: !0, + customIcons: [] + }, + export: { + csv: { + filename: void 0, + columnDelimiter: ",", + headerCategory: "category", + headerValue: "value", + categoryFormatter: void 0, + valueFormatter: void 0 + }, png: {filename: void 0}, svg: {filename: void 0}, scale: void 0, width: void 0 + }, + autoSelected: "zoom" + }, + type: "line", + width: "100%", + zoom: { + enabled: !0, + type: "x", + autoScaleYaxis: !1, + allowMouseWheelZoom: !0, + zoomedArea: { + fill: {color: "#90CAF9", opacity: .4}, + stroke: {color: "#0D47A1", opacity: .4, width: 1} + } + } + }, + parsing: {x: void 0, y: void 0}, + plotOptions: { + line: { + isSlopeChart: !1, + colors: {threshold: 0, colorAboveThreshold: void 0, colorBelowThreshold: void 0} + }, + area: {fillTo: "origin"}, + bar: { + horizontal: !1, + columnWidth: "70%", + barHeight: "70%", + distributed: !1, + borderRadius: 0, + borderRadiusApplication: "around", + borderRadiusWhenStacked: "last", + rangeBarOverlap: !0, + rangeBarGroupRows: !1, + hideZeroBarsWhenGrouped: !1, + isDumbbell: !1, + dumbbellColors: void 0, + isFunnel: !1, + isFunnel3d: !0, + colors: { + ranges: [], + backgroundBarColors: [], + backgroundBarOpacity: 1, + backgroundBarRadius: 0 + }, + dataLabels: { + position: "top", + maxItems: 100, + hideOverflowingLabels: !0, + orientation: "horizontal", + total: { + enabled: !1, + formatter: void 0, + offsetX: 0, + offsetY: 0, + style: {color: "#373d3f", fontSize: "12px", fontFamily: void 0, fontWeight: 600} + } + } + }, + bubble: {zScaling: !0, minBubbleRadius: void 0, maxBubbleRadius: void 0}, + candlestick: {colors: {upward: "#00B746", downward: "#EF403C"}, wick: {useFillColor: !0}}, + boxPlot: {colors: {upper: "#00E396", lower: "#008FFB"}}, + heatmap: { + radius: 2, + enableShades: !0, + shadeIntensity: .5, + reverseNegativeShade: !1, + distributed: !1, + useFillColorAsStroke: !1, + colorScale: {inverse: !1, ranges: [], min: void 0, max: void 0} + }, + treemap: { + enableShades: !0, + shadeIntensity: .5, + distributed: !1, + reverseNegativeShade: !1, + useFillColorAsStroke: !1, + borderRadius: 4, + dataLabels: {format: "scale"}, + colorScale: {inverse: !1, ranges: [], min: void 0, max: void 0}, + seriesTitle: { + show: !0, + offsetY: 1, + offsetX: 1, + borderColor: "#000", + borderWidth: 1, + borderRadius: 2, + style: { + background: "rgba(0, 0, 0, 0.6)", + color: "#fff", + fontSize: "12px", + fontFamily: void 0, + fontWeight: 400, + cssClass: "", + padding: {left: 6, right: 6, top: 2, bottom: 2} + } + } + }, + radialBar: { + inverseOrder: !1, + startAngle: 0, + endAngle: 360, + offsetX: 0, + offsetY: 0, + hollow: { + margin: 5, + size: "50%", + background: "transparent", + image: void 0, + imageWidth: 150, + imageHeight: 150, + imageOffsetX: 0, + imageOffsetY: 0, + imageClipped: !0, + position: "front", + dropShadow: {enabled: !1, top: 0, left: 0, blur: 3, color: "#000", opacity: .5} + }, + track: { + show: !0, + startAngle: void 0, + endAngle: void 0, + background: "#f2f2f2", + strokeWidth: "97%", + opacity: 1, + margin: 5, + dropShadow: {enabled: !1, top: 0, left: 0, blur: 3, color: "#000", opacity: .5} + }, + dataLabels: { + show: !0, + name: { + show: !0, + fontSize: "16px", + fontFamily: void 0, + fontWeight: 600, + color: void 0, + offsetY: 0, + formatter: function (t) { + return t + } + }, + value: { + show: !0, + fontSize: "14px", + fontFamily: void 0, + fontWeight: 400, + color: void 0, + offsetY: 16, + formatter: function (t) { + return t + "%" + } + }, + total: { + show: !1, + label: "Total", + fontSize: "16px", + fontWeight: 600, + fontFamily: void 0, + color: void 0, + formatter: function (t) { + return t.globals.seriesTotals.reduce((function (t, e) { + return t + e + }), 0) / t.globals.series.length + "%" + } + } + }, + barLabels: { + enabled: !1, + offsetX: 0, + offsetY: 0, + useSeriesColors: !0, + fontFamily: void 0, + fontWeight: 600, + fontSize: "16px", + formatter: function (t) { + return t + }, + onClick: void 0 + } + }, + pie: { + customScale: 1, + offsetX: 0, + offsetY: 0, + startAngle: 0, + endAngle: 360, + expandOnClick: !0, + dataLabels: {offset: 0, minAngleToShowLabel: 10}, + donut: { + size: "65%", + background: "transparent", + labels: { + show: !1, + name: { + show: !0, + fontSize: "16px", + fontFamily: void 0, + fontWeight: 600, + color: void 0, + offsetY: -10, + formatter: function (t) { + return t + } + }, + value: { + show: !0, + fontSize: "20px", + fontFamily: void 0, + fontWeight: 400, + color: void 0, + offsetY: 10, + formatter: function (t) { + return t + } + }, + total: { + show: !1, + showAlways: !1, + label: "Total", + fontSize: "16px", + fontWeight: 400, + fontFamily: void 0, + color: void 0, + formatter: function (t) { + return t.globals.seriesTotals.reduce((function (t, e) { + return t + e + }), 0) + } + } + } + } + }, + polarArea: { + rings: {strokeWidth: 1, strokeColor: "#e8e8e8"}, + spokes: {strokeWidth: 1, connectorColors: "#e8e8e8"} + }, + radar: { + size: void 0, + offsetX: 0, + offsetY: 0, + polygons: { + strokeWidth: 1, + strokeColors: "#e8e8e8", + connectorColors: "#e8e8e8", + fill: {colors: void 0} + } + } + }, + colors: void 0, + dataLabels: { + enabled: !0, + enabledOnSeries: void 0, + formatter: function (t) { + return null !== t ? t : "" + }, + textAnchor: "middle", + distributed: !1, + offsetX: 0, + offsetY: 0, + style: {fontSize: "12px", fontFamily: void 0, fontWeight: 600, colors: void 0}, + background: { + enabled: !0, + foreColor: "#fff", + backgroundColor: void 0, + borderRadius: 2, + padding: 4, + opacity: .9, + borderWidth: 1, + borderColor: "#fff", + dropShadow: {enabled: !1, top: 1, left: 1, blur: 1, color: "#000", opacity: .8} + }, + dropShadow: {enabled: !1, top: 1, left: 1, blur: 1, color: "#000", opacity: .8} + }, + fill: { + type: "solid", + colors: void 0, + opacity: .85, + gradient: { + shade: "dark", + type: "horizontal", + shadeIntensity: .5, + gradientToColors: void 0, + inverseColors: !0, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 50, 100], + colorStops: [] + }, + image: {src: [], width: void 0, height: void 0}, + pattern: {style: "squares", width: 6, height: 6, strokeWidth: 2} + }, + forecastDataPoints: {count: 0, fillOpacity: .5, strokeWidth: void 0, dashArray: 4}, + grid: { + show: !0, + borderColor: "#e0e0e0", + strokeDashArray: 0, + position: "back", + xaxis: {lines: {show: !1}}, + yaxis: {lines: {show: !0}}, + row: {colors: void 0, opacity: .5}, + column: {colors: void 0, opacity: .5}, + padding: {top: 0, right: 10, bottom: 0, left: 12} + }, + labels: [], + legend: { + show: !0, + showForSingleSeries: !1, + showForNullSeries: !0, + showForZeroSeries: !0, + floating: !1, + position: "bottom", + horizontalAlign: "center", + inverseOrder: !1, + fontSize: "12px", + fontFamily: void 0, + fontWeight: 400, + width: void 0, + height: void 0, + formatter: void 0, + tooltipHoverFormatter: void 0, + offsetX: -20, + offsetY: 4, + customLegendItems: [], + clusterGroupedSeries: !0, + clusterGroupedSeriesOrientation: "vertical", + labels: {colors: void 0, useSeriesColors: !1}, + markers: { + size: 7, + fillColors: void 0, + strokeWidth: 1, + shape: void 0, + offsetX: 0, + offsetY: 0, + customHTML: void 0, + onClick: void 0 + }, + itemMargin: {horizontal: 5, vertical: 4}, + onItemClick: {toggleDataSeries: !0}, + onItemHover: {highlightDataSeries: !0} + }, + markers: { + discrete: [], + size: 0, + colors: void 0, + strokeColors: "#fff", + strokeWidth: 2, + strokeOpacity: .9, + strokeDashArray: 0, + fillOpacity: 1, + shape: "circle", + offsetX: 0, + offsetY: 0, + showNullDataPoints: !0, + onClick: void 0, + onDblClick: void 0, + hover: {size: void 0, sizeOffset: 3} + }, + noData: { + text: void 0, + align: "center", + verticalAlign: "middle", + offsetX: 0, + offsetY: 0, + style: {color: void 0, fontSize: "14px", fontFamily: void 0} + }, + responsive: [], + series: void 0, + states: { + hover: {filter: {type: "lighten"}}, + active: {allowMultipleDataPointsSelection: !1, filter: {type: "darken"}} + }, + title: { + text: void 0, + align: "left", + margin: 5, + offsetX: 0, + offsetY: 0, + floating: !1, + style: {fontSize: "14px", fontWeight: 900, fontFamily: void 0, color: void 0} + }, + subtitle: { + text: void 0, + align: "left", + margin: 5, + offsetX: 0, + offsetY: 30, + floating: !1, + style: {fontSize: "12px", fontWeight: 400, fontFamily: void 0, color: void 0} + }, + stroke: { + show: !0, + curve: "smooth", + lineCap: "butt", + width: 2, + colors: void 0, + dashArray: 0, + fill: { + type: "solid", + colors: void 0, + opacity: .85, + gradient: { + shade: "dark", + type: "horizontal", + shadeIntensity: .5, + gradientToColors: void 0, + inverseColors: !0, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 50, 100], + colorStops: [] + } + } + }, + tooltip: { + enabled: !0, + enabledOnSeries: void 0, + shared: !0, + hideEmptySeries: !1, + followCursor: !1, + intersect: !1, + inverseOrder: !1, + custom: void 0, + fillSeriesColor: !1, + theme: "light", + cssClass: "", + style: {fontSize: "12px", fontFamily: void 0}, + onDatasetHover: {highlightDataSeries: !1}, + x: {show: !0, format: "dd MMM", formatter: void 0}, + y: { + formatter: void 0, title: { + formatter: function (t) { + return t ? t + ": " : "" + } + } + }, + z: {formatter: void 0, title: "Size: "}, + marker: {show: !0, fillColors: void 0}, + items: {display: "flex"}, + fixed: {enabled: !1, position: "topRight", offsetX: 0, offsetY: 0} + }, + xaxis: { + type: "category", + categories: [], + convertedCatToNumeric: !1, + offsetX: 0, + offsetY: 0, + overwriteCategories: void 0, + labels: { + show: !0, + rotate: -45, + rotateAlways: !1, + hideOverlappingLabels: !0, + trim: !1, + minHeight: void 0, + maxHeight: 120, + showDuplicates: !0, + style: {colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: ""}, + offsetX: 0, + offsetY: 0, + format: void 0, + formatter: void 0, + datetimeUTC: !0, + datetimeFormatter: { + year: "yyyy", + month: "MMM 'yy", + day: "dd MMM", + hour: "HH:mm", + minute: "HH:mm:ss", + second: "HH:mm:ss" + } + }, + group: { + groups: [], + style: {colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: ""} + }, + axisBorder: {show: !0, color: "#e0e0e0", width: "100%", height: 1, offsetX: 0, offsetY: 0}, + axisTicks: {show: !0, color: "#e0e0e0", height: 6, offsetX: 0, offsetY: 0}, + stepSize: void 0, + tickAmount: void 0, + tickPlacement: "on", + min: void 0, + max: void 0, + range: void 0, + floating: !1, + decimalsInFloat: void 0, + position: "bottom", + title: { + text: void 0, + offsetX: 0, + offsetY: 0, + style: {color: void 0, fontSize: "12px", fontWeight: 900, fontFamily: void 0, cssClass: ""} + }, + crosshairs: { + show: !0, + width: 1, + position: "back", + opacity: .9, + stroke: {color: "#b6b6b6", width: 1, dashArray: 3}, + fill: { + type: "solid", + color: "#B1B9C4", + gradient: { + colorFrom: "#D8E3F0", + colorTo: "#BED1E6", + stops: [0, 100], + opacityFrom: .4, + opacityTo: .5 + } + }, + dropShadow: {enabled: !1, left: 0, top: 0, blur: 1, opacity: .8} + }, + tooltip: { + enabled: !0, + offsetY: 0, + formatter: void 0, + style: {fontSize: "12px", fontFamily: void 0} + } + }, + yaxis: this.yAxis, + theme: { + mode: "", + palette: "palette1", + monochrome: {enabled: !1, color: "#008FFB", shadeTo: "light", shadeIntensity: .65} + } + } + } + }]), t + }(), Fi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.graphics = new Mi(this.ctx), this.w.globals.isBarHorizontal && (this.invertAxis = !0), this.helpers = new Ii(this), this.xAxisAnnotations = new Ti(this), this.yAxisAnnotations = new Ei(this), this.pointsAnnotations = new Yi(this), this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed && (this.inversedReversedAxis = !0), this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints + } + + return s(t, [{ + key: "drawAxesAnnotations", value: function () { + var t = this.w; + if (t.globals.axisCharts && t.globals.dataPoints) { + for (var e = this.yAxisAnnotations.drawYAxisAnnotations(), i = this.xAxisAnnotations.drawXAxisAnnotations(), a = this.pointsAnnotations.drawPointAnnotations(), s = t.config.chart.animations.enabled, r = [e, i, a], n = [i.node, e.node, a.node], o = 0; o < 3; o++) t.globals.dom.elGraphical.add(r[o]), !s || t.globals.resized || t.globals.dataChanged || "scatter" !== t.config.chart.type && "bubble" !== t.config.chart.type && t.globals.dataPoints > 1 && n[o].classList.add("apexcharts-element-hidden"), t.globals.delayedElements.push({ + el: n[o], + index: 0 + }); + this.helpers.annotationsBackground() + } + } + }, { + key: "drawImageAnnos", value: function () { + var t = this; + this.w.config.annotations.images.map((function (e, i) { + t.addImage(e, i) + })) + } + }, { + key: "drawTextAnnos", value: function () { + var t = this; + this.w.config.annotations.texts.map((function (e, i) { + t.addText(e, i) + })) + } + }, { + key: "addXaxisAnnotation", value: function (t, e, i) { + this.xAxisAnnotations.addXaxisAnnotation(t, e, i) + } + }, { + key: "addYaxisAnnotation", value: function (t, e, i) { + this.yAxisAnnotations.addYaxisAnnotation(t, e, i) + } + }, { + key: "addPointAnnotation", value: function (t, e, i) { + this.pointsAnnotations.addPointAnnotation(t, e, i) + } + }, { + key: "addText", value: function (t, e) { + var i = t.x, a = t.y, s = t.text, r = t.textAnchor, n = t.foreColor, o = t.fontSize, l = t.fontFamily, + h = t.fontWeight, c = t.cssClass, d = t.backgroundColor, u = t.borderWidth, g = t.strokeDashArray, + p = t.borderRadius, f = t.borderColor, x = t.appendTo, b = void 0 === x ? ".apexcharts-svg" : x, + m = t.paddingLeft, v = void 0 === m ? 4 : m, y = t.paddingRight, w = void 0 === y ? 4 : y, + k = t.paddingBottom, A = void 0 === k ? 2 : k, C = t.paddingTop, S = void 0 === C ? 2 : C, + L = this.w, M = this.graphics.drawText({ + x: i, + y: a, + text: s, + textAnchor: r || "start", + fontSize: o || "12px", + fontWeight: h || "regular", + fontFamily: l || L.config.chart.fontFamily, + foreColor: n || L.config.chart.foreColor, + cssClass: c + }), P = L.globals.dom.baseEl.querySelector(b); + P && P.appendChild(M.node); + var I = M.bbox(); + if (s) { + var T = this.graphics.drawRect(I.x - v, I.y - S, I.width + v + w, I.height + A + S, p, d || "transparent", 1, u, f, g); + P.insertBefore(T.node, M.node) + } + } + }, { + key: "addImage", value: function (t, e) { + var i = this.w, a = t.path, s = t.x, r = void 0 === s ? 0 : s, n = t.y, o = void 0 === n ? 0 : n, + l = t.width, h = void 0 === l ? 20 : l, c = t.height, d = void 0 === c ? 20 : c, u = t.appendTo, + g = void 0 === u ? ".apexcharts-svg" : u, p = i.globals.dom.Paper.image(a); + p.size(h, d).move(r, o); + var f = i.globals.dom.baseEl.querySelector(g); + return f && f.appendChild(p.node), p + } + }, { + key: "addXaxisAnnotationExternal", value: function (t, e, i) { + return this.addAnnotationExternal({ + params: t, + pushToMemory: e, + context: i, + type: "xaxis", + contextMethod: i.addXaxisAnnotation + }), i + } + }, { + key: "addYaxisAnnotationExternal", value: function (t, e, i) { + return this.addAnnotationExternal({ + params: t, + pushToMemory: e, + context: i, + type: "yaxis", + contextMethod: i.addYaxisAnnotation + }), i + } + }, { + key: "addPointAnnotationExternal", value: function (t, e, i) { + return void 0 === this.invertAxis && (this.invertAxis = i.w.globals.isBarHorizontal), this.addAnnotationExternal({ + params: t, + pushToMemory: e, + context: i, + type: "point", + contextMethod: i.addPointAnnotation + }), i + } + }, { + key: "addAnnotationExternal", value: function (t) { + var e = t.params, i = t.pushToMemory, a = t.context, s = t.type, r = t.contextMethod, n = a, o = n.w, + l = o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations")), + h = l.childNodes.length + 1, c = new Oi, + d = Object.assign({}, "xaxis" === s ? c.xAxisAnnotation : "yaxis" === s ? c.yAxisAnnotation : c.pointAnnotation), + u = v.extend(d, e); + switch (s) { + case"xaxis": + this.addXaxisAnnotation(u, l, h); + break; + case"yaxis": + this.addYaxisAnnotation(u, l, h); + break; + case"point": + this.addPointAnnotation(u, l, h) + } + var g = o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations .apexcharts-").concat(s, "-annotation-label[rel='").concat(h, "']")), + p = this.helpers.addBackgroundToAnno(g, u); + return p && l.insertBefore(p.node, g), i && o.globals.memory.methodsToExec.push({ + context: n, + id: u.id ? u.id : v.randomId(), + method: r, + label: "addAnnotation", + params: e + }), a + } + }, { + key: "clearAnnotations", value: function (t) { + for (var e = t.w, i = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations"), a = e.globals.memory.methodsToExec.length - 1; a >= 0; a--) "addText" !== e.globals.memory.methodsToExec[a].label && "addAnnotation" !== e.globals.memory.methodsToExec[a].label || e.globals.memory.methodsToExec.splice(a, 1); + i = v.listToArray(i), Array.prototype.forEach.call(i, (function (t) { + for (; t.firstChild;) t.removeChild(t.firstChild) + })) + } + }, { + key: "removeAnnotation", value: function (t, e) { + var i = t.w, a = i.globals.dom.baseEl.querySelectorAll(".".concat(e)); + a && (i.globals.memory.methodsToExec.map((function (t, a) { + t.id === e && i.globals.memory.methodsToExec.splice(a, 1) + })), Object.keys(i.config.annotations).forEach((function (t) { + var a = i.config.annotations[t]; + Array.isArray(a) && (i.config.annotations[t] = a.filter((function (t) { + return t.id !== e + }))) + })), Array.prototype.forEach.call(a, (function (t) { + t.parentElement.removeChild(t) + }))) + } + }]), t + }(), Di = function (t) { + var e, i = t.isTimeline, a = t.ctx, s = t.seriesIndex, r = t.dataPointIndex, n = t.y1, o = t.y2, l = t.w, + h = l.globals.seriesRangeStart[s][r], c = l.globals.seriesRangeEnd[s][r], d = l.globals.labels[r], + u = l.config.series[s].name ? l.config.series[s].name : "", g = l.globals.ttKeyFormatter, + p = l.config.tooltip.y.title.formatter, f = {w: l, seriesIndex: s, dataPointIndex: r, start: h, end: c}; + ("function" == typeof p && (u = p(u, f)), null !== (e = l.config.series[s].data[r]) && void 0 !== e && e.x && (d = l.config.series[s].data[r].x), i) || "datetime" === l.config.xaxis.type && (d = new Xi(a).xLabelFormat(l.globals.ttKeyFormatter, d, d, { + i: void 0, + dateFormatter: new zi(a).formatDate, + w: l + })); + "function" == typeof g && (d = g(d, f)), Number.isFinite(n) && Number.isFinite(o) && (h = n, c = o); + var x = "", b = "", m = l.globals.colors[s]; + if (void 0 === l.config.tooltip.x.formatter) if ("datetime" === l.config.xaxis.type) { + var v = new zi(a); + x = v.formatDate(v.getDate(h), l.config.tooltip.x.format), b = v.formatDate(v.getDate(c), l.config.tooltip.x.format) + } else x = h, b = c; else x = l.config.tooltip.x.formatter(h), b = l.config.tooltip.x.formatter(c); + return {start: h, end: c, startVal: x, endVal: b, ylabel: d, color: m, seriesName: u} + }, _i = function (t) { + var e = t.color, i = t.seriesName, a = t.ylabel, s = t.start, r = t.end, n = t.seriesIndex, + o = t.dataPointIndex, l = t.ctx.tooltip.tooltipLabels.getFormatters(n); + s = l.yLbFormatter(s), r = l.yLbFormatter(r); + var h = l.yLbFormatter(t.w.globals.series[n][o]), + c = '\n '.concat(s, '\n - \n ').concat(r, "\n "); + return '
' + (i || "") + '
' + a + ": " + (t.w.globals.comboCharts ? "rangeArea" === t.w.config.series[n].type || "rangeBar" === t.w.config.series[n].type ? c : "".concat(h, "") : c) + "
" + }, Ni = function () { + function t(e) { + i(this, t), this.opts = e + } + + return s(t, [{ + key: "hideYAxis", value: function () { + this.opts.yaxis[0].show = !1, this.opts.yaxis[0].title.text = "", this.opts.yaxis[0].axisBorder.show = !1, this.opts.yaxis[0].axisTicks.show = !1, this.opts.yaxis[0].floating = !0 + } + }, { + key: "line", value: function () { + return { + dataLabels: {enabled: !1}, + stroke: {width: 5, curve: "straight"}, + markers: {size: 0, hover: {sizeOffset: 6}}, + xaxis: {crosshairs: {width: 1}} + } + } + }, { + key: "sparkline", value: function (t) { + this.hideYAxis(); + return v.extend(t, { + grid: {show: !1, padding: {left: 0, right: 0, top: 0, bottom: 0}}, + legend: {show: !1}, + xaxis: {labels: {show: !1}, tooltip: {enabled: !1}, axisBorder: {show: !1}, axisTicks: {show: !1}}, + chart: {toolbar: {show: !1}, zoom: {enabled: !1}}, + dataLabels: {enabled: !1} + }) + } + }, { + key: "slope", value: function () { + return this.hideYAxis(), { + chart: {toolbar: {show: !1}, zoom: {enabled: !1}}, + dataLabels: { + enabled: !0, formatter: function (t, e) { + var i = e.w.config.series[e.seriesIndex].name; + return null !== t ? i + ": " + t : "" + }, background: {enabled: !1}, offsetX: -5 + }, + grid: {xaxis: {lines: {show: !0}}, yaxis: {lines: {show: !1}}}, + xaxis: { + position: "top", + labels: {style: {fontSize: 14, fontWeight: 900}}, + tooltip: {enabled: !1}, + crosshairs: {show: !1} + }, + markers: {size: 8, hover: {sizeOffset: 1}}, + legend: {show: !1}, + tooltip: {shared: !1, intersect: !0, followCursor: !0}, + stroke: {width: 5, curve: "straight"} + } + } + }, { + key: "bar", value: function () { + return { + chart: {stacked: !1}, + plotOptions: {bar: {dataLabels: {position: "center"}}}, + dataLabels: {style: {colors: ["#fff"]}, background: {enabled: !1}}, + stroke: {width: 0, lineCap: "square"}, + fill: {opacity: .85}, + legend: {markers: {shape: "square"}}, + tooltip: {shared: !1, intersect: !0}, + xaxis: { + tooltip: {enabled: !1}, + tickPlacement: "between", + crosshairs: { + width: "barWidth", + position: "back", + fill: {type: "gradient"}, + dropShadow: {enabled: !1}, + stroke: {width: 0} + } + } + } + } + }, { + key: "funnel", value: function () { + return this.hideYAxis(), u(u({}, this.bar()), {}, { + chart: { + animations: { + speed: 800, + animateGradually: {enabled: !1} + } + }, + plotOptions: { + bar: { + horizontal: !0, + borderRadiusApplication: "around", + borderRadius: 0, + dataLabels: {position: "center"} + } + }, + grid: {show: !1, padding: {left: 0, right: 0}}, + xaxis: {labels: {show: !1}, tooltip: {enabled: !1}, axisBorder: {show: !1}, axisTicks: {show: !1}} + }) + } + }, { + key: "candlestick", value: function () { + var t = this; + return { + stroke: {width: 1}, + fill: {opacity: 1}, + dataLabels: {enabled: !1}, + tooltip: { + shared: !0, custom: function (e) { + var i = e.seriesIndex, a = e.dataPointIndex, s = e.w; + return t._getBoxTooltip(s, i, a, ["Open", "High", "", "Low", "Close"], "candlestick") + } + }, + states: {active: {filter: {type: "none"}}}, + xaxis: {crosshairs: {width: 1}} + } + } + }, { + key: "boxPlot", value: function () { + var t = this; + return { + chart: {animations: {dynamicAnimation: {enabled: !1}}}, + stroke: {width: 1, colors: ["#24292e"]}, + dataLabels: {enabled: !1}, + tooltip: { + shared: !0, custom: function (e) { + var i = e.seriesIndex, a = e.dataPointIndex, s = e.w; + return t._getBoxTooltip(s, i, a, ["Minimum", "Q1", "Median", "Q3", "Maximum"], "boxPlot") + } + }, + markers: {size: 7, strokeWidth: 1, strokeColors: "#111"}, + xaxis: {crosshairs: {width: 1}} + } + } + }, { + key: "rangeBar", value: function () { + return { + chart: {animations: {animateGradually: !1}}, + stroke: {width: 0, lineCap: "square"}, + plotOptions: {bar: {borderRadius: 0, dataLabels: {position: "center"}}}, + dataLabels: { + enabled: !1, formatter: function (t, e) { + e.ctx; + var i = e.seriesIndex, a = e.dataPointIndex, s = e.w, r = function () { + var t = s.globals.seriesRangeStart[i][a]; + return s.globals.seriesRangeEnd[i][a] - t + }; + return s.globals.comboCharts ? "rangeBar" === s.config.series[i].type || "rangeArea" === s.config.series[i].type ? r() : t : r() + }, background: {enabled: !1}, style: {colors: ["#fff"]} + }, + markers: {size: 10}, + tooltip: { + shared: !1, followCursor: !0, custom: function (t) { + return t.w.config.plotOptions && t.w.config.plotOptions.bar && t.w.config.plotOptions.bar.horizontal ? function (t) { + var e = Di(u(u({}, t), {}, {isTimeline: !0})), i = e.color, a = e.seriesName, + s = e.ylabel, r = e.startVal, n = e.endVal; + return _i(u(u({}, t), {}, {color: i, seriesName: a, ylabel: s, start: r, end: n})) + }(t) : function (t) { + var e = Di(t), i = e.color, a = e.seriesName, s = e.ylabel, r = e.start, n = e.end; + return _i(u(u({}, t), {}, {color: i, seriesName: a, ylabel: s, start: r, end: n})) + }(t) + } + }, + xaxis: {tickPlacement: "between", tooltip: {enabled: !1}, crosshairs: {stroke: {width: 0}}} + } + } + }, { + key: "dumbbell", value: function (t) { + var e, i; + return null !== (e = t.plotOptions.bar) && void 0 !== e && e.barHeight || (t.plotOptions.bar.barHeight = 2), null !== (i = t.plotOptions.bar) && void 0 !== i && i.columnWidth || (t.plotOptions.bar.columnWidth = 2), t + } + }, { + key: "area", value: function () { + return { + stroke: { + width: 4, + fill: { + type: "solid", + gradient: { + inverseColors: !1, + shade: "light", + type: "vertical", + opacityFrom: .65, + opacityTo: .5, + stops: [0, 100, 100] + } + } + }, + fill: { + type: "gradient", + gradient: { + inverseColors: !1, + shade: "light", + type: "vertical", + opacityFrom: .65, + opacityTo: .5, + stops: [0, 100, 100] + } + }, + markers: {size: 0, hover: {sizeOffset: 6}}, + tooltip: {followCursor: !1} + } + } + }, { + key: "rangeArea", value: function () { + return { + stroke: {curve: "straight", width: 0}, + fill: {type: "solid", opacity: .6}, + markers: {size: 0}, + states: {hover: {filter: {type: "none"}}, active: {filter: {type: "none"}}}, + tooltip: { + intersect: !1, shared: !0, followCursor: !0, custom: function (t) { + return function (t) { + var e = Di(t), i = e.color, a = e.seriesName, s = e.ylabel, r = e.start, n = e.end; + return _i(u(u({}, t), {}, {color: i, seriesName: a, ylabel: s, start: r, end: n})) + }(t) + } + } + } + } + }, { + key: "brush", value: function (t) { + return v.extend(t, { + chart: {toolbar: {autoSelected: "selection", show: !1}, zoom: {enabled: !1}}, + dataLabels: {enabled: !1}, + stroke: {width: 1}, + tooltip: {enabled: !1}, + xaxis: {tooltip: {enabled: !1}} + }) + } + }, { + key: "stacked100", value: function (t) { + t.dataLabels = t.dataLabels || {}, t.dataLabels.formatter = t.dataLabels.formatter || void 0; + var e = t.dataLabels.formatter; + return t.yaxis.forEach((function (e, i) { + t.yaxis[i].min = 0, t.yaxis[i].max = 100 + })), "bar" === t.chart.type && (t.dataLabels.formatter = e || function (t) { + return "number" == typeof t && t ? t.toFixed(0) + "%" : t + }), t + } + }, { + key: "stackedBars", value: function () { + var t = this.bar(); + return u(u({}, t), {}, { + plotOptions: u(u({}, t.plotOptions), {}, { + bar: u(u({}, t.plotOptions.bar), {}, { + borderRadiusApplication: "end", + borderRadiusWhenStacked: "last" + }) + }) + }) + } + }, { + key: "convertCatToNumeric", value: function (t) { + return t.xaxis.convertedCatToNumeric = !0, t + } + }, { + key: "convertCatToNumericXaxis", value: function (t, e, i) { + t.xaxis.type = "numeric", t.xaxis.labels = t.xaxis.labels || {}, t.xaxis.labels.formatter = t.xaxis.labels.formatter || function (t) { + return v.isNumber(t) ? Math.floor(t) : t + }; + var a = t.xaxis.labels.formatter, + s = t.xaxis.categories && t.xaxis.categories.length ? t.xaxis.categories : t.labels; + return i && i.length && (s = i.map((function (t) { + return Array.isArray(t) ? t : String(t) + }))), s && s.length && (t.xaxis.labels.formatter = function (t) { + return v.isNumber(t) ? a(s[Math.floor(t) - 1]) : a(t) + }), t.xaxis.categories = [], t.labels = [], t.xaxis.tickAmount = t.xaxis.tickAmount || "dataPoints", t + } + }, { + key: "bubble", value: function () { + return { + dataLabels: {style: {colors: ["#fff"]}}, + tooltip: {shared: !1, intersect: !0}, + xaxis: {crosshairs: {width: 0}}, + fill: { + type: "solid", + gradient: {shade: "light", inverse: !0, shadeIntensity: .55, opacityFrom: .4, opacityTo: .8} + } + } + } + }, { + key: "scatter", value: function () { + return { + dataLabels: {enabled: !1}, + tooltip: {shared: !1, intersect: !0}, + markers: {size: 6, strokeWidth: 1, hover: {sizeOffset: 2}} + } + } + }, { + key: "heatmap", value: function () { + return { + chart: {stacked: !1}, + fill: {opacity: 1}, + dataLabels: {style: {colors: ["#fff"]}}, + stroke: {colors: ["#fff"]}, + tooltip: {followCursor: !0, marker: {show: !1}, x: {show: !1}}, + legend: {position: "top", markers: {shape: "square"}}, + grid: {padding: {right: 20}} + } + } + }, { + key: "treemap", value: function () { + return { + chart: {zoom: {enabled: !1}}, + dataLabels: {style: {fontSize: 14, fontWeight: 600, colors: ["#fff"]}}, + stroke: {show: !0, width: 2, colors: ["#fff"]}, + legend: {show: !1}, + fill: {opacity: 1, gradient: {stops: [0, 100]}}, + tooltip: {followCursor: !0, x: {show: !1}}, + grid: {padding: {left: 0, right: 0}}, + xaxis: {crosshairs: {show: !1}, tooltip: {enabled: !1}} + } + } + }, { + key: "pie", value: function () { + return { + chart: {toolbar: {show: !1}}, + plotOptions: {pie: {donut: {labels: {show: !1}}}}, + dataLabels: { + formatter: function (t) { + return t.toFixed(1) + "%" + }, style: {colors: ["#fff"]}, background: {enabled: !1}, dropShadow: {enabled: !0} + }, + stroke: {colors: ["#fff"]}, + fill: {opacity: 1, gradient: {shade: "light", stops: [0, 100]}}, + tooltip: {theme: "dark", fillSeriesColor: !0}, + legend: {position: "right"}, + grid: {padding: {left: 0, right: 0, top: 0, bottom: 0}} + } + } + }, { + key: "donut", value: function () { + return { + chart: {toolbar: {show: !1}}, + dataLabels: { + formatter: function (t) { + return t.toFixed(1) + "%" + }, style: {colors: ["#fff"]}, background: {enabled: !1}, dropShadow: {enabled: !0} + }, + stroke: {colors: ["#fff"]}, + fill: { + opacity: 1, + gradient: {shade: "light", shadeIntensity: .35, stops: [80, 100], opacityFrom: 1, opacityTo: 1} + }, + tooltip: {theme: "dark", fillSeriesColor: !0}, + legend: {position: "right"}, + grid: {padding: {left: 0, right: 0, top: 0, bottom: 0}} + } + } + }, { + key: "polarArea", value: function () { + return { + chart: {toolbar: {show: !1}}, + dataLabels: { + formatter: function (t) { + return t.toFixed(1) + "%" + }, enabled: !1 + }, + stroke: {show: !0, width: 2}, + fill: {opacity: .7}, + tooltip: {theme: "dark", fillSeriesColor: !0}, + legend: {position: "right"}, + grid: {padding: {left: 0, right: 0, top: 0, bottom: 0}} + } + } + }, { + key: "radar", value: function () { + return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6, { + dataLabels: { + enabled: !1, + style: {fontSize: "11px"} + }, + stroke: {width: 2}, + markers: {size: 5, strokeWidth: 1, strokeOpacity: 1}, + fill: {opacity: .2}, + tooltip: {shared: !1, intersect: !0, followCursor: !0}, + grid: {show: !1, padding: {left: 0, right: 0, top: 0, bottom: 0}}, + xaxis: { + labels: { + formatter: function (t) { + return t + }, style: {colors: ["#a8a8a8"], fontSize: "11px"} + }, tooltip: {enabled: !1}, crosshairs: {show: !1} + } + } + } + }, { + key: "radialBar", value: function () { + return { + chart: {animations: {dynamicAnimation: {enabled: !0, speed: 800}}, toolbar: {show: !1}}, + fill: { + gradient: { + shade: "dark", + shadeIntensity: .4, + inverseColors: !1, + type: "diagonal2", + opacityFrom: 1, + opacityTo: 1, + stops: [70, 98, 100] + } + }, + legend: {show: !1, position: "right"}, + tooltip: {enabled: !1, fillSeriesColor: !0}, + grid: {padding: {left: 0, right: 0, top: 0, bottom: 0}} + } + } + }, { + key: "_getBoxTooltip", value: function (t, e, i, a, s) { + var r = t.globals.seriesCandleO[e][i], n = t.globals.seriesCandleH[e][i], + o = t.globals.seriesCandleM[e][i], l = t.globals.seriesCandleL[e][i], + h = t.globals.seriesCandleC[e][i]; + return t.config.series[e].type && t.config.series[e].type !== s ? '
\n '.concat(t.config.series[e].name ? t.config.series[e].name : "series-" + (e + 1), ": ").concat(t.globals.series[e][i], "\n
") : '
') + "
".concat(a[0], ': ') + r + "
" + "
".concat(a[1], ': ') + n + "
" + (o ? "
".concat(a[2], ': ') + o + "
" : "") + "
".concat(a[3], ': ') + l + "
" + "
".concat(a[4], ': ') + h + "
" + } + }]), t + }(), Wi = function () { + function t(e) { + i(this, t), this.opts = e + } + + return s(t, [{ + key: "init", value: function (t) { + var e = t.responsiveOverride, i = this.opts, a = new Oi, s = new Ni(i); + this.chartType = i.chart.type, i = this.extendYAxis(i), i = this.extendAnnotations(i); + var r = a.init(), n = {}; + if (i && "object" === b(i)) { + var o, l, h, c, d, u, g, p, f, x, m = {}; + m = -1 !== ["line", "area", "bar", "candlestick", "boxPlot", "rangeBar", "rangeArea", "bubble", "scatter", "heatmap", "treemap", "pie", "polarArea", "donut", "radar", "radialBar"].indexOf(i.chart.type) ? s[i.chart.type]() : s.line(), null !== (o = i.plotOptions) && void 0 !== o && null !== (l = o.bar) && void 0 !== l && l.isFunnel && (m = s.funnel()), i.chart.stacked && "bar" === i.chart.type && (m = s.stackedBars()), null !== (h = i.chart.brush) && void 0 !== h && h.enabled && (m = s.brush(m)), null !== (c = i.plotOptions) && void 0 !== c && null !== (d = c.line) && void 0 !== d && d.isSlopeChart && (m = s.slope()), i.chart.stacked && "100%" === i.chart.stackType && (i = s.stacked100(i)), null !== (u = i.plotOptions) && void 0 !== u && null !== (g = u.bar) && void 0 !== g && g.isDumbbell && (i = s.dumbbell(i)), this.checkForDarkTheme(window.Apex), this.checkForDarkTheme(i), i.xaxis = i.xaxis || window.Apex.xaxis || {}, e || (i.xaxis.convertedCatToNumeric = !1), (null !== (p = (i = this.checkForCatToNumericXAxis(this.chartType, m, i)).chart.sparkline) && void 0 !== p && p.enabled || null !== (f = window.Apex.chart) && void 0 !== f && null !== (x = f.sparkline) && void 0 !== x && x.enabled) && (m = s.sparkline(m)), n = v.extend(r, m) + } + var y = v.extend(n, window.Apex); + return r = v.extend(y, i), r = this.handleUserInputErrors(r) + } + }, { + key: "checkForCatToNumericXAxis", value: function (t, e, i) { + var a, s, r = new Ni(i), + n = ("bar" === t || "boxPlot" === t) && (null === (a = i.plotOptions) || void 0 === a || null === (s = a.bar) || void 0 === s ? void 0 : s.horizontal), + o = "pie" === t || "polarArea" === t || "donut" === t || "radar" === t || "radialBar" === t || "heatmap" === t, + l = "datetime" !== i.xaxis.type && "numeric" !== i.xaxis.type, + h = i.xaxis.tickPlacement ? i.xaxis.tickPlacement : e.xaxis && e.xaxis.tickPlacement; + return n || o || !l || "between" === h || (i = r.convertCatToNumeric(i)), i + } + }, { + key: "extendYAxis", value: function (t, e) { + var i = new Oi; + (void 0 === t.yaxis || !t.yaxis || Array.isArray(t.yaxis) && 0 === t.yaxis.length) && (t.yaxis = {}), t.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array && (t.yaxis = v.extend(t.yaxis, window.Apex.yaxis)), t.yaxis.constructor !== Array ? t.yaxis = [v.extend(i.yAxis, t.yaxis)] : t.yaxis = v.extendArray(t.yaxis, i.yAxis); + var a = !1; + t.yaxis.forEach((function (t) { + t.logarithmic && (a = !0) + })); + var s = t.series; + return e && !s && (s = e.config.series), a && s.length !== t.yaxis.length && s.length && (t.yaxis = s.map((function (e, a) { + if (e.name || (s[a].name = "series-".concat(a + 1)), t.yaxis[a]) return t.yaxis[a].seriesName = s[a].name, t.yaxis[a]; + var r = v.extend(i.yAxis, t.yaxis[0]); + return r.show = !1, r + }))), a && s.length > 1 && s.length !== t.yaxis.length && console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"), t + } + }, { + key: "extendAnnotations", value: function (t) { + return void 0 === t.annotations && (t.annotations = {}, t.annotations.yaxis = [], t.annotations.xaxis = [], t.annotations.points = []), t = this.extendYAxisAnnotations(t), t = this.extendXAxisAnnotations(t), t = this.extendPointAnnotations(t) + } + }, { + key: "extendYAxisAnnotations", value: function (t) { + var e = new Oi; + return t.annotations.yaxis = v.extendArray(void 0 !== t.annotations.yaxis ? t.annotations.yaxis : [], e.yAxisAnnotation), t + } + }, { + key: "extendXAxisAnnotations", value: function (t) { + var e = new Oi; + return t.annotations.xaxis = v.extendArray(void 0 !== t.annotations.xaxis ? t.annotations.xaxis : [], e.xAxisAnnotation), t + } + }, { + key: "extendPointAnnotations", value: function (t) { + var e = new Oi; + return t.annotations.points = v.extendArray(void 0 !== t.annotations.points ? t.annotations.points : [], e.pointAnnotation), t + } + }, { + key: "checkForDarkTheme", value: function (t) { + t.theme && "dark" === t.theme.mode && (t.tooltip || (t.tooltip = {}), "light" !== t.tooltip.theme && (t.tooltip.theme = "dark"), t.chart.foreColor || (t.chart.foreColor = "#f6f7f8"), t.theme.palette || (t.theme.palette = "palette4")) + } + }, { + key: "handleUserInputErrors", value: function (t) { + var e = t; + if (e.tooltip.shared && e.tooltip.intersect) throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false."); + if ("bar" === e.chart.type && e.plotOptions.bar.horizontal) { + if (e.yaxis.length > 1) throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false"); + e.yaxis[0].reversed && (e.yaxis[0].opposite = !0), e.xaxis.tooltip.enabled = !1, e.yaxis[0].tooltip.enabled = !1, e.chart.zoom.enabled = !1 + } + return "bar" !== e.chart.type && "rangeBar" !== e.chart.type || e.tooltip.shared && "barWidth" === e.xaxis.crosshairs.width && e.series.length > 1 && (e.xaxis.crosshairs.width = "tickWidth"), "candlestick" !== e.chart.type && "boxPlot" !== e.chart.type || e.yaxis[0].reversed && (console.warn("Reversed y-axis in ".concat(e.chart.type, " chart is not supported.")), e.yaxis[0].reversed = !1), e + } + }]), t + }(), Bi = function () { + function t() { + i(this, t) + } + + return s(t, [{ + key: "initGlobalVars", value: function (t) { + t.series = [], t.seriesCandleO = [], t.seriesCandleH = [], t.seriesCandleM = [], t.seriesCandleL = [], t.seriesCandleC = [], t.seriesRangeStart = [], t.seriesRangeEnd = [], t.seriesRange = [], t.seriesPercent = [], t.seriesGoals = [], t.seriesX = [], t.seriesZ = [], t.seriesNames = [], t.seriesTotals = [], t.seriesLog = [], t.seriesColors = [], t.stackedSeriesTotals = [], t.seriesXvalues = [], t.seriesYvalues = [], t.dataWasParsed = !1, t.originalSeries = null, t.labels = [], t.hasXaxisGroups = !1, t.groups = [], t.barGroups = [], t.lineGroups = [], t.areaGroups = [], t.hasSeriesGroups = !1, t.seriesGroups = [], t.categoryLabels = [], t.timescaleLabels = [], t.noLabelsProvided = !1, t.resizeTimer = null, t.selectionResizeTimer = null, t.lastWheelExecution = 0, t.delayedElements = [], t.pointsArray = [], t.dataLabelsRects = [], t.isXNumeric = !1, t.skipLastTimelinelabel = !1, t.skipFirstTimelinelabel = !1, t.isDataXYZ = !1, t.isMultiLineX = !1, t.isMultipleYAxis = !1, t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE, t.minYArr = [], t.maxYArr = [], t.maxX = -Number.MAX_VALUE, t.minX = Number.MAX_VALUE, t.initialMaxX = -Number.MAX_VALUE, t.initialMinX = Number.MAX_VALUE, t.maxDate = 0, t.minDate = Number.MAX_VALUE, t.minZ = Number.MAX_VALUE, t.maxZ = -Number.MAX_VALUE, t.minXDiff = Number.MAX_VALUE, t.yAxisScale = [], t.xAxisScale = null, t.xAxisTicksPositions = [], t.yLabelsCoords = [], t.yTitleCoords = [], t.barPadForNumericAxis = 0, t.padHorizontal = 0, t.xRange = 0, t.yRange = [], t.zRange = 0, t.dataPoints = 0, t.xTickAmount = 0, t.multiAxisTickAmount = 0 + } + }, { + key: "globalVars", value: function (t) { + return { + chartID: null, + cuid: null, + events: { + beforeMount: [], + mounted: [], + updated: [], + clicked: [], + selection: [], + dataPointSelection: [], + zoomed: [], + scrolled: [] + }, + colors: [], + clientX: null, + clientY: null, + fill: {colors: []}, + stroke: {colors: []}, + dataLabels: {style: {colors: []}}, + radarPolygons: {fill: {colors: []}}, + markers: {colors: [], size: t.markers.size, largestSize: 0}, + animationEnded: !1, + isTouchDevice: "ontouchstart" in window || navigator.msMaxTouchPoints, + isDirty: !1, + isExecCalled: !1, + initialConfig: null, + initialSeries: [], + lastXAxis: [], + lastYAxis: [], + columnSeries: null, + labels: [], + timescaleLabels: [], + noLabelsProvided: !1, + allSeriesCollapsed: !1, + collapsedSeries: [], + collapsedSeriesIndices: [], + ancillaryCollapsedSeries: [], + ancillaryCollapsedSeriesIndices: [], + risingSeries: [], + dataFormatXNumeric: !1, + capturedSeriesIndex: -1, + capturedDataPointIndex: -1, + selectedDataPoints: [], + invalidLogScale: !1, + ignoreYAxisIndexes: [], + maxValsInArrayIndex: 0, + radialSize: 0, + selection: void 0, + zoomEnabled: "zoom" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.zoom && t.chart.zoom.enabled, + panEnabled: "pan" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.pan, + selectionEnabled: "selection" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.selection, + yaxis: null, + mousedown: !1, + lastClientPosition: {}, + visibleXRange: void 0, + yValueDecimal: 0, + total: 0, + SVGNS: "http://www.w3.org/2000/svg", + svgWidth: 0, + svgHeight: 0, + noData: !1, + locale: {}, + dom: {}, + memory: {methodsToExec: []}, + shouldAnimate: !0, + skipLastTimelinelabel: !1, + skipFirstTimelinelabel: !1, + delayedElements: [], + axisCharts: !0, + isDataXYZ: !1, + isSlopeChart: t.plotOptions.line.isSlopeChart, + resized: !1, + resizeTimer: null, + comboCharts: !1, + dataChanged: !1, + previousPaths: [], + allSeriesHasEqualX: !0, + pointsArray: [], + dataLabelsRects: [], + lastDrawnDataLabelsIndexes: [], + hasNullValues: !1, + zoomed: !1, + gridWidth: 0, + gridHeight: 0, + rotateXLabels: !1, + defaultLabels: !1, + xLabelFormatter: void 0, + yLabelFormatters: [], + xaxisTooltipFormatter: void 0, + ttKeyFormatter: void 0, + ttVal: void 0, + ttZFormatter: void 0, + LINE_HEIGHT_RATIO: 1.618, + xAxisLabelsHeight: 0, + xAxisGroupLabelsHeight: 0, + xAxisLabelsWidth: 0, + yAxisLabelsWidth: 0, + scaleX: 1, + scaleY: 1, + translateX: 0, + translateY: 0, + translateYAxisX: [], + yAxisWidths: [], + translateXAxisY: 0, + translateXAxisX: 0, + tooltip: null, + niceScaleAllowedMagMsd: [[1, 1, 2, 5, 5, 5, 10, 10, 10, 10, 10], [1, 1, 2, 5, 5, 5, 10, 10, 10, 10, 10]], + niceScaleDefaultTicks: [1, 2, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 24], + seriesYAxisMap: [], + seriesYAxisReverseMap: [] + } + } + }, { + key: "init", value: function (t) { + var e = this.globalVars(t); + return this.initGlobalVars(e), e.initialConfig = v.extend({}, t), e.initialSeries = v.clone(t.series), e.lastXAxis = v.clone(e.initialConfig.xaxis), e.lastYAxis = v.clone(e.initialConfig.yaxis), e + } + }]), t + }(), Gi = function () { + function t(e) { + i(this, t), this.opts = e + } + + return s(t, [{ + key: "init", value: function () { + var t = new Wi(this.opts).init({responsiveOverride: !1}); + return {config: t, globals: (new Bi).init(t)} + } + }]), t + }(), ji = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.opts = null, this.seriesIndex = 0, this.patternIDs = [] + } + + return s(t, [{ + key: "clippedImgArea", value: function (t) { + var e = this.w, i = e.config, a = parseInt(e.globals.gridWidth, 10), + s = parseInt(e.globals.gridHeight, 10), r = a > s ? a : s, n = t.image, o = 0, l = 0; + void 0 === t.width && void 0 === t.height ? void 0 !== i.fill.image.width && void 0 !== i.fill.image.height ? (o = i.fill.image.width + 1, l = i.fill.image.height) : (o = r + 1, l = r) : (o = t.width, l = t.height); + var h = document.createElementNS(e.globals.SVGNS, "pattern"); + Mi.setAttrs(h, { + id: t.patternID, + patternUnits: t.patternUnits ? t.patternUnits : "userSpaceOnUse", + width: o + "px", + height: l + "px" + }); + var c = document.createElementNS(e.globals.SVGNS, "image"); + h.appendChild(c), c.setAttributeNS(window.SVG.xlink, "href", n), Mi.setAttrs(c, { + x: 0, + y: 0, + preserveAspectRatio: "none", + width: o + "px", + height: l + "px" + }), c.style.opacity = t.opacity, e.globals.dom.elDefs.node.appendChild(h) + } + }, { + key: "getSeriesIndex", value: function (t) { + var e = this.w, i = e.config.chart.type; + return ("bar" === i || "rangeBar" === i) && e.config.plotOptions.bar.distributed || "heatmap" === i || "treemap" === i ? this.seriesIndex = t.seriesNumber : this.seriesIndex = t.seriesNumber % e.globals.series.length, this.seriesIndex + } + }, { + key: "computeColorStops", value: function (t, e) { + var i, a = this.w, s = null, n = null, o = r(t); + try { + for (o.s(); !(i = o.n()).done;) { + var l = i.value; + l >= e.threshold ? (null === s || l > s) && (s = l) : (null === n || l < n) && (n = l) + } + } catch (t) { + o.e(t) + } finally { + o.f() + } + null === s && (s = e.threshold), null === n && (n = e.threshold); + var h = s - e.threshold + (e.threshold - n); + 0 === h && (h = 1); + var c = 100 - (e.threshold - n) / h * 100; + return [{ + offset: c = Math.max(0, Math.min(c, 100)), + color: e.colorAboveThreshold, + opacity: a.config.fill.opacity + }, {offset: 0, color: e.colorBelowThreshold, opacity: a.config.fill.opacity}] + } + }, { + key: "fillPath", value: function (t) { + var e, i, a, s = this.w; + this.opts = t; + var r, n, o, l = this.w.config; + this.seriesIndex = this.getSeriesIndex(t); + var h = l.plotOptions.line.colors.colorAboveThreshold && l.plotOptions.line.colors.colorBelowThreshold, + c = this.getFillColors()[this.seriesIndex]; + void 0 !== s.globals.seriesColors[this.seriesIndex] && (c = s.globals.seriesColors[this.seriesIndex]), "function" == typeof c && (c = c({ + seriesIndex: this.seriesIndex, + dataPointIndex: t.dataPointIndex, + value: t.value, + w: s + })); + var d, u, g, p = t.fillType ? t.fillType : this.getFillType(this.seriesIndex), + x = Array.isArray(l.fill.opacity) ? l.fill.opacity[this.seriesIndex] : l.fill.opacity, + b = "gradient" === p || h; + (t.color && (c = t.color), null !== (e = s.config.series[this.seriesIndex]) && void 0 !== e && null !== (i = e.data) && void 0 !== i && null !== (a = i[t.dataPointIndex]) && void 0 !== a && a.fillColor) && (c = null === (d = s.config.series[this.seriesIndex]) || void 0 === d || null === (u = d.data) || void 0 === u || null === (g = u[t.dataPointIndex]) || void 0 === g ? void 0 : g.fillColor); + c || (c = "#fff", console.warn("undefined color - ApexCharts")); + var m = c; + if (-1 === c.indexOf("rgb") ? -1 === c.indexOf("#") ? m = c : c.length < 9 && (m = v.hexToRgba(c, x)) : c.indexOf("rgba") > -1 ? x = v.getOpacityFromRGBA(c) : m = v.hexToRgba(v.rgb2hex(c), x), t.opacity && (x = t.opacity), "pattern" === p && (n = this.handlePatternFill({ + fillConfig: t.fillConfig, + patternFill: n, + fillColor: c, + fillOpacity: x, + defaultColor: m + })), b) { + var y = f(l.fill.gradient.colorStops) || [], w = l.fill.gradient.type; + h && (y[this.seriesIndex] = this.computeColorStops(s.globals.series[this.seriesIndex], l.plotOptions.line.colors), w = "vertical"), o = this.handleGradientFill({ + type: w, + fillConfig: t.fillConfig, + fillColor: c, + fillOpacity: x, + colorStops: y, + i: this.seriesIndex + }) + } + if ("image" === p) { + var k = l.fill.image.src, A = t.patternID ? t.patternID : "", + C = "pattern".concat(s.globals.cuid).concat(t.seriesNumber + 1).concat(A); + -1 === this.patternIDs.indexOf(C) && (this.clippedImgArea({ + opacity: x, + image: Array.isArray(k) ? t.seriesNumber < k.length ? k[t.seriesNumber] : k[0] : k, + width: t.width ? t.width : void 0, + height: t.height ? t.height : void 0, + patternUnits: t.patternUnits, + patternID: C + }), this.patternIDs.push(C)), r = "url(#".concat(C, ")") + } else r = b ? o : "pattern" === p ? n : m; + return t.solid && (r = m), r + } + }, { + key: "getFillType", value: function (t) { + var e = this.w; + return Array.isArray(e.config.fill.type) ? e.config.fill.type[t] : e.config.fill.type + } + }, { + key: "getFillColors", value: function () { + var t = this.w, e = t.config, i = this.opts, a = []; + return t.globals.comboCharts ? "line" === t.config.series[this.seriesIndex].type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors) : "line" === e.chart.type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors), void 0 !== i.fillColors && (a = [], Array.isArray(i.fillColors) ? a = i.fillColors.slice() : a.push(i.fillColors)), a + } + }, { + key: "handlePatternFill", value: function (t) { + var e = t.fillConfig, i = t.patternFill, a = t.fillColor, s = t.fillOpacity, r = t.defaultColor, + n = this.w.config.fill; + e && (n = e); + var o = this.opts, l = new Mi(this.ctx), + h = Array.isArray(n.pattern.strokeWidth) ? n.pattern.strokeWidth[this.seriesIndex] : n.pattern.strokeWidth, + c = a; + Array.isArray(n.pattern.style) ? i = void 0 !== n.pattern.style[o.seriesNumber] ? l.drawPattern(n.pattern.style[o.seriesNumber], n.pattern.width, n.pattern.height, c, h, s) : r : i = l.drawPattern(n.pattern.style, n.pattern.width, n.pattern.height, c, h, s); + return i + } + }, { + key: "handleGradientFill", value: function (t) { + var e = t.type, i = t.fillColor, a = t.fillOpacity, s = t.fillConfig, r = t.colorStops, n = t.i, + o = this.w.config.fill; + s && (o = u(u({}, o), s)); + var l = this.opts, h = new Mi(this.ctx), c = new v; + e = e || o.gradient.type; + var d, g = i, + p = void 0 === o.gradient.opacityFrom ? a : Array.isArray(o.gradient.opacityFrom) ? o.gradient.opacityFrom[n] : o.gradient.opacityFrom; + g.indexOf("rgba") > -1 && (p = v.getOpacityFromRGBA(g)); + var f = void 0 === o.gradient.opacityTo ? a : Array.isArray(o.gradient.opacityTo) ? o.gradient.opacityTo[n] : o.gradient.opacityTo; + if (void 0 === o.gradient.gradientToColors || 0 === o.gradient.gradientToColors.length) d = "dark" === o.gradient.shade ? c.shadeColor(-1 * parseFloat(o.gradient.shadeIntensity), i.indexOf("rgb") > -1 ? v.rgb2hex(i) : i) : c.shadeColor(parseFloat(o.gradient.shadeIntensity), i.indexOf("rgb") > -1 ? v.rgb2hex(i) : i); else if (o.gradient.gradientToColors[l.seriesNumber]) { + var x = o.gradient.gradientToColors[l.seriesNumber]; + d = x, x.indexOf("rgba") > -1 && (f = v.getOpacityFromRGBA(x)) + } else d = i; + if (o.gradient.gradientFrom && (g = o.gradient.gradientFrom), o.gradient.gradientTo && (d = o.gradient.gradientTo), o.gradient.inverseColors) { + var b = g; + g = d, d = b + } + return g.indexOf("rgb") > -1 && (g = v.rgb2hex(g)), d.indexOf("rgb") > -1 && (d = v.rgb2hex(d)), h.drawGradient(e, g, d, p, f, l.size, o.gradient.stops, r, n) + } + }]), t + }(), Vi = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "setGlobalMarkerSize", value: function () { + var t = this.w; + if (t.globals.markers.size = Array.isArray(t.config.markers.size) ? t.config.markers.size : [t.config.markers.size], t.globals.markers.size.length > 0) { + if (t.globals.markers.size.length < t.globals.series.length + 1) for (var e = 0; e <= t.globals.series.length; e++) void 0 === t.globals.markers.size[e] && t.globals.markers.size.push(t.globals.markers.size[0]) + } else t.globals.markers.size = t.config.series.map((function (e) { + return t.config.markers.size + })) + } + }, { + key: "plotChartMarkers", value: function (t) { + var e = t.pointsPos, i = t.seriesIndex, a = t.j, s = t.pSize, r = t.alwaysDrawMarker, + n = void 0 !== r && r, o = t.isVirtualPoint, l = void 0 !== o && o, h = this.w, c = i, d = e, + u = null, g = new Mi(this.ctx), p = h.config.markers.discrete && h.config.markers.discrete.length; + if (Array.isArray(d.x)) for (var f = 0; f < d.x.length; f++) { + var x = void 0, b = a, m = !v.isNumber(d.y[f]); + 0 === h.globals.markers.largestSize && h.globals.hasNullValues && null !== h.globals.series[c][a + 1] && !l && (m = !0), 1 === a && 0 === f && (b = 0), 1 === a && 1 === f && (b = 1); + var y = "apexcharts-marker"; + if ("line" !== h.config.chart.type && "area" !== h.config.chart.type || h.globals.comboCharts || h.config.tooltip.intersect || (y += " no-pointer-events"), (Array.isArray(h.config.markers.size) ? h.globals.markers.size[i] > 0 : h.config.markers.size > 0) || n || p) { + m || (y += " w".concat(v.randomId())); + var w = this.getMarkerConfig({cssClass: y, seriesIndex: i, dataPointIndex: b}); + if (h.config.series[c].data[b] && (h.config.series[c].data[b].fillColor && (w.pointFillColor = h.config.series[c].data[b].fillColor), h.config.series[c].data[b].strokeColor && (w.pointStrokeColor = h.config.series[c].data[b].strokeColor)), void 0 !== s && (w.pSize = s), (d.x[f] < -h.globals.markers.largestSize || d.x[f] > h.globals.gridWidth + h.globals.markers.largestSize || d.y[f] < -h.globals.markers.largestSize || d.y[f] > h.globals.gridHeight + h.globals.markers.largestSize) && (w.pSize = 0), !m) (h.globals.markers.size[i] > 0 || n || p) && !u && (u = g.group({class: n || p ? "" : "apexcharts-series-markers"})).attr("clip-path", "url(#gridRectMarkerMask".concat(h.globals.cuid, ")")), (x = g.drawMarker(d.x[f], d.y[f], w)).attr("rel", b), x.attr("j", b), x.attr("index", i), x.node.setAttribute("default-marker-size", w.pSize), new Li(this.ctx).setSelectionFilter(x, i, b), this.addEvents(x), u && u.add(x) + } else void 0 === h.globals.pointsArray[i] && (h.globals.pointsArray[i] = []), h.globals.pointsArray[i].push([d.x[f], d.y[f]]) + } + return u + } + }, { + key: "getMarkerConfig", value: function (t) { + var e = t.cssClass, i = t.seriesIndex, a = t.dataPointIndex, s = void 0 === a ? null : a, r = t.radius, + n = void 0 === r ? null : r, o = t.size, l = void 0 === o ? null : o, h = t.strokeWidth, + c = void 0 === h ? null : h, d = this.w, u = this.getMarkerStyle(i), + g = null === l ? d.globals.markers.size[i] : l, p = d.config.markers; + return null !== s && p.discrete.length && p.discrete.map((function (t) { + t.seriesIndex === i && t.dataPointIndex === s && (u.pointStrokeColor = t.strokeColor, u.pointFillColor = t.fillColor, g = t.size, u.pointShape = t.shape) + })), { + pSize: null === n ? g : n, + pRadius: null !== n ? n : p.radius, + pointStrokeWidth: null !== c ? c : Array.isArray(p.strokeWidth) ? p.strokeWidth[i] : p.strokeWidth, + pointStrokeColor: u.pointStrokeColor, + pointFillColor: u.pointFillColor, + shape: u.pointShape || (Array.isArray(p.shape) ? p.shape[i] : p.shape), + class: e, + pointStrokeOpacity: Array.isArray(p.strokeOpacity) ? p.strokeOpacity[i] : p.strokeOpacity, + pointStrokeDashArray: Array.isArray(p.strokeDashArray) ? p.strokeDashArray[i] : p.strokeDashArray, + pointFillOpacity: Array.isArray(p.fillOpacity) ? p.fillOpacity[i] : p.fillOpacity, + seriesIndex: i + } + } + }, { + key: "addEvents", value: function (t) { + var e = this.w, i = new Mi(this.ctx); + t.node.addEventListener("mouseenter", i.pathMouseEnter.bind(this.ctx, t)), t.node.addEventListener("mouseleave", i.pathMouseLeave.bind(this.ctx, t)), t.node.addEventListener("mousedown", i.pathMouseDown.bind(this.ctx, t)), t.node.addEventListener("click", e.config.markers.onClick), t.node.addEventListener("dblclick", e.config.markers.onDblClick), t.node.addEventListener("touchstart", i.pathMouseDown.bind(this.ctx, t), {passive: !0}) + } + }, { + key: "getMarkerStyle", value: function (t) { + var e = this.w, i = e.globals.markers.colors, + a = e.config.markers.strokeColor || e.config.markers.strokeColors; + return {pointStrokeColor: Array.isArray(a) ? a[t] : a, pointFillColor: Array.isArray(i) ? i[t] : i} + } + }]), t + }(), Ui = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.initialAnim = this.w.config.chart.animations.enabled + } + + return s(t, [{ + key: "draw", value: function (t, e, i) { + var a = this.w, s = new Mi(this.ctx), r = i.realIndex, n = i.pointsPos, o = i.zRatio, l = i.elParent, + h = s.group({class: "apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)}); + if (h.attr("clip-path", "url(#gridRectMarkerMask".concat(a.globals.cuid, ")")), Array.isArray(n.x)) for (var c = 0; c < n.x.length; c++) { + var d = e + 1, u = !0; + 0 === e && 0 === c && (d = 0), 0 === e && 1 === c && (d = 1); + var g = a.globals.markers.size[r]; + if (o !== 1 / 0) { + var p = a.config.plotOptions.bubble; + g = a.globals.seriesZ[r][d], p.zScaling && (g /= o), p.minBubbleRadius && g < p.minBubbleRadius && (g = p.minBubbleRadius), p.maxBubbleRadius && g > p.maxBubbleRadius && (g = p.maxBubbleRadius) + } + var f = n.x[c], x = n.y[c]; + if (g = g || 0, null !== x && void 0 !== a.globals.series[r][d] || (u = !1), u) { + var b = this.drawPoint(f, x, g, r, d, e); + h.add(b) + } + l.add(h) + } + } + }, { + key: "drawPoint", value: function (t, e, i, a, s, r) { + var n = this.w, o = a, l = new y(this.ctx), h = new Li(this.ctx), c = new ji(this.ctx), + d = new Vi(this.ctx), u = new Mi(this.ctx), g = d.getMarkerConfig({ + cssClass: "apexcharts-marker", + seriesIndex: o, + dataPointIndex: s, + radius: "bubble" === n.config.chart.type || n.globals.comboCharts && n.config.series[a] && "bubble" === n.config.series[a].type ? i : null + }), p = c.fillPath({ + seriesNumber: a, + dataPointIndex: s, + color: g.pointFillColor, + patternUnits: "objectBoundingBox", + value: n.globals.series[a][r] + }), f = u.drawMarker(t, e, g); + if (n.config.series[o].data[s] && n.config.series[o].data[s].fillColor && (p = n.config.series[o].data[s].fillColor), f.attr({fill: p}), n.config.chart.dropShadow.enabled) { + var x = n.config.chart.dropShadow; + h.dropShadow(f, x, a) + } + if (!this.initialAnim || n.globals.dataChanged || n.globals.resized) n.globals.animationEnded = !0; else { + var b = n.config.chart.animations.speed; + l.animateMarker(f, b, n.globals.easing, (function () { + window.setTimeout((function () { + l.animationCompleted(f) + }), 100) + })) + } + return f.attr({ + rel: s, + j: s, + index: a, + "default-marker-size": g.pSize + }), h.setSelectionFilter(f, a, s), d.addEvents(f), f.node.classList.add("apexcharts-marker"), f + } + }, { + key: "centerTextInBubble", value: function (t) { + var e = this.w; + return {y: t += parseInt(e.config.dataLabels.style.fontSize, 10) / 4} + } + }]), t + }(), qi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "dataLabelsCorrection", value: function (t, e, i, a, s, r, n) { + var o = this.w, l = !1, h = new Mi(this.ctx).getTextRects(i, n), c = h.width, d = h.height; + e < 0 && (e = 0), e > o.globals.gridHeight + d && (e = o.globals.gridHeight + d / 2), void 0 === o.globals.dataLabelsRects[a] && (o.globals.dataLabelsRects[a] = []), o.globals.dataLabelsRects[a].push({ + x: t, + y: e, + width: c, + height: d + }); + var u = o.globals.dataLabelsRects[a].length - 2, + g = void 0 !== o.globals.lastDrawnDataLabelsIndexes[a] ? o.globals.lastDrawnDataLabelsIndexes[a][o.globals.lastDrawnDataLabelsIndexes[a].length - 1] : 0; + if (void 0 !== o.globals.dataLabelsRects[a][u]) { + var p = o.globals.dataLabelsRects[a][g]; + (t > p.x + p.width || e > p.y + p.height || e + d < p.y || t + c < p.x) && (l = !0) + } + return (0 === s || r) && (l = !0), {x: t, y: e, textRects: h, drawnextLabel: l} + } + }, { + key: "drawDataLabel", value: function (t) { + var e = this, i = t.type, a = t.pos, s = t.i, r = t.j, n = t.isRangeStart, o = t.strokeWidth, + l = void 0 === o ? 2 : o, h = this.w, c = new Mi(this.ctx), d = h.config.dataLabels, u = 0, g = 0, + p = r, f = null; + if (-1 !== h.globals.collapsedSeriesIndices.indexOf(s) || !d.enabled || !Array.isArray(a.x)) return f; + f = c.group({class: "apexcharts-data-labels"}); + for (var x = 0; x < a.x.length; x++) if (u = a.x[x] + d.offsetX, g = a.y[x] + d.offsetY + l, !isNaN(u)) { + 1 === r && 0 === x && (p = 0), 1 === r && 1 === x && (p = 1); + var b = h.globals.series[s][p]; + "rangeArea" === i && (b = n ? h.globals.seriesRangeStart[s][p] : h.globals.seriesRangeEnd[s][p]); + var m = "", v = function (t) { + return h.config.dataLabels.formatter(t, {ctx: e.ctx, seriesIndex: s, dataPointIndex: p, w: h}) + }; + if ("bubble" === h.config.chart.type) m = v(b = h.globals.seriesZ[s][p]), g = a.y[x], g = new Ui(this.ctx).centerTextInBubble(g, s, p).y; else void 0 !== b && (m = v(b)); + var y = h.config.dataLabels.textAnchor; + h.globals.isSlopeChart && (y = 0 === p ? "end" : p === h.config.series[s].data.length - 1 ? "start" : "middle"), this.plotDataLabelsText({ + x: u, + y: g, + text: m, + i: s, + j: p, + parent: f, + offsetCorrection: !0, + dataLabelsConfig: h.config.dataLabels, + textAnchor: y + }) + } + return f + } + }, { + key: "plotDataLabelsText", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = t.x, s = t.y, r = t.i, n = t.j, o = t.text, l = t.textAnchor, + h = t.fontSize, c = t.parent, d = t.dataLabelsConfig, u = t.color, g = t.alwaysDrawDataLabel, + p = t.offsetCorrection, f = t.className, x = null; + if (Array.isArray(e.config.dataLabels.enabledOnSeries) && e.config.dataLabels.enabledOnSeries.indexOf(r) < 0) return x; + var b = {x: a, y: s, drawnextLabel: !0, textRects: null}; + p && (b = this.dataLabelsCorrection(a, s, o, r, n, g, parseInt(d.style.fontSize, 10))), e.globals.zoomed || (a = b.x, s = b.y), b.textRects && (a < -20 - b.textRects.width || a > e.globals.gridWidth + b.textRects.width + 30) && (o = ""); + var m = e.globals.dataLabels.style.colors[r]; + (("bar" === e.config.chart.type || "rangeBar" === e.config.chart.type) && e.config.plotOptions.bar.distributed || e.config.dataLabels.distributed) && (m = e.globals.dataLabels.style.colors[n]), "function" == typeof m && (m = m({ + series: e.globals.series, + seriesIndex: r, + dataPointIndex: n, + w: e + })), u && (m = u); + var v = d.offsetX, y = d.offsetY; + if ("bar" !== e.config.chart.type && "rangeBar" !== e.config.chart.type || (v = 0, y = 0), e.globals.isSlopeChart && (0 !== n && (v = -2 * d.offsetX + 5), 0 !== n && n !== e.config.series[r].data.length - 1 && (v = 0)), b.drawnextLabel) { + if ("middle" === l && a === e.globals.gridWidth && (l = "end"), (x = i.drawText({ + width: 100, + height: parseInt(d.style.fontSize, 10), + x: a + v, + y: s + y, + foreColor: m, + textAnchor: l || d.textAnchor, + text: o, + fontSize: h || d.style.fontSize, + fontFamily: d.style.fontFamily, + fontWeight: d.style.fontWeight || "normal" + })).attr({class: f || "apexcharts-datalabel", cx: a, cy: s}), d.dropShadow.enabled) { + var w = d.dropShadow; + new Li(this.ctx).dropShadow(x, w) + } + c.add(x), void 0 === e.globals.lastDrawnDataLabelsIndexes[r] && (e.globals.lastDrawnDataLabelsIndexes[r] = []), e.globals.lastDrawnDataLabelsIndexes[r].push(n) + } + return x + } + }, { + key: "addBackgroundToDataLabel", value: function (t, e) { + var i = this.w, a = i.config.dataLabels.background, s = a.padding, r = a.padding / 2, n = e.width, + o = e.height, + l = new Mi(this.ctx).drawRect(e.x - s, e.y - r / 2, n + 2 * s, o + r, a.borderRadius, "transparent" !== i.config.chart.background && i.config.chart.background ? i.config.chart.background : "#fff", a.opacity, a.borderWidth, a.borderColor); + a.dropShadow.enabled && new Li(this.ctx).dropShadow(l, a.dropShadow); + return l + } + }, { + key: "dataLabelsBackground", value: function () { + var t = this.w; + if ("bubble" !== t.config.chart.type) for (var e = t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"), i = 0; i < e.length; i++) { + var a = e[i], s = a.getBBox(), r = null; + if (s.width && s.height && (r = this.addBackgroundToDataLabel(a, s)), r) { + a.parentNode.insertBefore(r.node, a); + var n = t.config.dataLabels.background.backgroundColor || a.getAttribute("fill"); + t.config.chart.animations.enabled && !t.globals.resized && !t.globals.dataChanged ? r.animate().attr({fill: n}) : r.attr({fill: n}), a.setAttribute("fill", t.config.dataLabels.background.foreColor) + } + } + } + }, { + key: "bringForward", value: function () { + for (var t = this.w, e = t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels"), i = t.globals.dom.baseEl.querySelector(".apexcharts-plot-series:last-child"), a = 0; a < e.length; a++) i && i.insertBefore(e[a], i.nextSibling) + } + }]), t + }(), + Zi = ".apexcharts-flip-y {\n transform: scaleY(-1) translateY(-100%);\n transform-origin: top;\n transform-box: fill-box;\n}\n.apexcharts-flip-x {\n transform: scaleX(-1);\n transform-origin: center;\n transform-box: fill-box;\n}\n.apexcharts-legend {\n display: flex;\n overflow: auto;\n padding: 0 10px;\n}\n.apexcharts-legend.apexcharts-legend-group-horizontal {\n flex-direction: column;\n}\n.apexcharts-legend-group {\n display: flex;\n}\n.apexcharts-legend-group-vertical {\n flex-direction: column-reverse;\n}\n.apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\n flex-wrap: wrap\n}\n.apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n flex-direction: column;\n bottom: 0;\n}\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n justify-content: flex-start;\n align-items: flex-start;\n}\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\n justify-content: center;\n align-items: center;\n}\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\n justify-content: flex-end;\n align-items: flex-end;\n}\n.apexcharts-legend-series {\n cursor: pointer;\n line-height: normal;\n display: flex;\n align-items: center;\n}\n.apexcharts-legend-text {\n position: relative;\n font-size: 14px;\n}\n.apexcharts-legend-text *, .apexcharts-legend-marker * {\n pointer-events: none;\n}\n.apexcharts-legend-marker {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n margin-right: 1px;\n}\n\n.apexcharts-legend-series.apexcharts-no-click {\n cursor: auto;\n}\n.apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\n display: none !important;\n}\n.apexcharts-inactive-legend {\n opacity: 0.45;\n} ", + $i = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.legendInactiveClass = "legend-mouseover-inactive" + } + + return s(t, [{ + key: "getAllSeriesEls", value: function () { + return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series") + } + }, { + key: "getSeriesByName", value: function (t) { + return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(v.escapeString(t), "']")) + } + }, { + key: "isSeriesHidden", value: function (t) { + var e = this.getSeriesByName(t), i = parseInt(e.getAttribute("data:realIndex"), 10); + return {isHidden: e.classList.contains("apexcharts-series-collapsed"), realIndex: i} + } + }, { + key: "addCollapsedClassToSeries", value: function (t, e) { + var i = this.w; + + function a(i) { + for (var a = 0; a < i.length; a++) i[a].index === e && t.node.classList.add("apexcharts-series-collapsed") + } + + a(i.globals.collapsedSeries), a(i.globals.ancillaryCollapsedSeries) + } + }, { + key: "toggleSeries", value: function (t) { + var e = this.isSeriesHidden(t); + return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, e.isHidden), e.isHidden + } + }, { + key: "showSeries", value: function (t) { + var e = this.isSeriesHidden(t); + e.isHidden && this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !0) + } + }, { + key: "hideSeries", value: function (t) { + var e = this.isSeriesHidden(t); + e.isHidden || this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !1) + } + }, { + key: "resetSeries", value: function () { + var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], + e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], a = this.w, + s = v.clone(a.globals.initialSeries); + a.globals.previousPaths = [], i ? (a.globals.collapsedSeries = [], a.globals.ancillaryCollapsedSeries = [], a.globals.collapsedSeriesIndices = [], a.globals.ancillaryCollapsedSeriesIndices = []) : s = this.emptyCollapsedSeries(s), a.config.series = s, t && (e && (a.globals.zoomed = !1, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled)) + } + }, { + key: "emptyCollapsedSeries", value: function (t) { + for (var e = this.w, i = 0; i < t.length; i++) e.globals.collapsedSeriesIndices.indexOf(i) > -1 && (t[i].data = []); + return t + } + }, { + key: "highlightSeries", value: function (t) { + var e = this.w, i = this.getSeriesByName(t), + a = parseInt(null == i ? void 0 : i.getAttribute("data:realIndex"), 10), + s = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"), + r = null, n = null, o = null; + if (e.globals.axisCharts || "radialBar" === e.config.chart.type) if (e.globals.axisCharts) { + r = e.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(a, "']")), n = e.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(a, "']")); + var l = e.globals.seriesYAxisReverseMap[a]; + o = e.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(l, "']")) + } else r = e.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a + 1, "']")); else r = e.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a + 1, "'] path")); + for (var h = 0; h < s.length; h++) s[h].classList.add(this.legendInactiveClass); + if (r) e.globals.axisCharts || r.parentNode.classList.remove(this.legendInactiveClass), r.classList.remove(this.legendInactiveClass), null !== n && n.classList.remove(this.legendInactiveClass), null !== o && o.classList.remove(this.legendInactiveClass); else for (var c = 0; c < s.length; c++) s[c].classList.remove(this.legendInactiveClass) + } + }, { + key: "toggleSeriesOnHover", value: function (t, e) { + var i = this.w; + e || (e = t.target); + var a = i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"); + if ("mousemove" === t.type) { + var s = parseInt(e.getAttribute("rel"), 10) - 1; + this.highlightSeries(i.globals.seriesNames[s]) + } else if ("mouseout" === t.type) for (var r = 0; r < a.length; r++) a[r].classList.remove(this.legendInactiveClass) + } + }, { + key: "highlightRangeInSeries", value: function (t, e) { + var i = this, a = this.w, + s = a.globals.dom.baseEl.getElementsByClassName("apexcharts-heatmap-rect"), r = function (t) { + for (var e = 0; e < s.length; e++) s[e].classList[t](i.legendInactiveClass) + }; + if ("mousemove" === t.type) { + var n = parseInt(e.getAttribute("rel"), 10) - 1; + r("add"); + var o = a.config.plotOptions.heatmap.colorScale.ranges; + !function (t, e) { + for (var a = 0; a < s.length; a++) { + var r = Number(s[a].getAttribute("val")); + r >= t.from && (r < t.to || t.to === e && r === e) && s[a].classList.remove(i.legendInactiveClass) + } + }(o[n], o.reduce((function (t, e) { + return Math.max(t, e.to) + }), 0)) + } else "mouseout" === t.type && r("remove") + } + }, { + key: "getActiveConfigSeriesIndex", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "asc", + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], i = this.w, a = 0; + if (i.config.series.length > 1) for (var s = i.config.series.map((function (t, a) { + return t.data && t.data.length > 0 && -1 === i.globals.collapsedSeriesIndices.indexOf(a) && (!i.globals.comboCharts || 0 === e.length || e.length && e.indexOf(i.config.series[a].type) > -1) ? a : -1 + })), r = "asc" === t ? 0 : s.length - 1; "asc" === t ? r < s.length : r >= 0; "asc" === t ? r++ : r--) if (-1 !== s[r]) { + a = s[r]; + break + } + return a + } + }, { + key: "getBarSeriesIndices", value: function () { + return this.w.globals.comboCharts ? this.w.config.series.map((function (t, e) { + return "bar" === t.type || "column" === t.type ? e : -1 + })).filter((function (t) { + return -1 !== t + })) : this.w.config.series.map((function (t, e) { + return e + })) + } + }, { + key: "getPreviousPaths", value: function () { + var t = this.w; + + function e(e, i, a) { + for (var s = e[i].childNodes, r = { + type: a, + paths: [], + realIndex: e[i].getAttribute("data:realIndex") + }, n = 0; n < s.length; n++) if (s[n].hasAttribute("pathTo")) { + var o = s[n].getAttribute("pathTo"); + r.paths.push({d: o}) + } + t.globals.previousPaths.push(r) + } + + t.globals.previousPaths = []; + ["line", "area", "bar", "rangebar", "rangeArea", "candlestick", "radar"].forEach((function (i) { + for (var a, s = (a = i, t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(a, "-series .apexcharts-series"))), r = 0; r < s.length; r++) e(s, r, i) + })); + var i = t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type, " .apexcharts-series")); + if (i.length > 0) for (var a = function (e) { + for (var i = t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type, " .apexcharts-series[data\\:realIndex='").concat(e, "'] rect")), a = [], s = function (t) { + var e = function (e) { + return i[t].getAttribute(e) + }, s = { + x: parseFloat(e("x")), + y: parseFloat(e("y")), + width: parseFloat(e("width")), + height: parseFloat(e("height")) + }; + a.push({rect: s, color: i[t].getAttribute("color")}) + }, r = 0; r < i.length; r++) s(r); + t.globals.previousPaths.push(a) + }, s = 0; s < i.length; s++) a(s); + t.globals.axisCharts || (t.globals.previousPaths = t.globals.series) + } + }, { + key: "clearPreviousPaths", value: function () { + var t = this.w; + t.globals.previousPaths = [], t.globals.allSeriesCollapsed = !1 + } + }, { + key: "handleNoData", value: function () { + var t = this.w, e = t.config.noData, i = new Mi(this.ctx), a = t.globals.svgWidth / 2, + s = t.globals.svgHeight / 2, r = "middle"; + if (t.globals.noData = !0, t.globals.animationEnded = !0, "left" === e.align ? (a = 10, r = "start") : "right" === e.align && (a = t.globals.svgWidth - 10, r = "end"), "top" === e.verticalAlign ? s = 50 : "bottom" === e.verticalAlign && (s = t.globals.svgHeight - 50), a += e.offsetX, s = s + parseInt(e.style.fontSize, 10) + 2 + e.offsetY, void 0 !== e.text && "" !== e.text) { + var n = i.drawText({ + x: a, + y: s, + text: e.text, + textAnchor: r, + fontSize: e.style.fontSize, + fontFamily: e.style.fontFamily, + foreColor: e.style.color, + opacity: 1, + class: "apexcharts-text-nodata" + }); + t.globals.dom.Paper.add(n) + } + } + }, { + key: "setNullSeriesToZeroValues", value: function (t) { + for (var e = this.w, i = 0; i < t.length; i++) if (0 === t[i].length) for (var a = 0; a < t[e.globals.maxValsInArrayIndex].length; a++) t[i].push(0); + return t + } + }, { + key: "hasAllSeriesEqualX", value: function () { + for (var t = !0, e = this.w, i = this.filteredSeriesX(), a = 0; a < i.length - 1; a++) if (i[a][0] !== i[a + 1][0]) { + t = !1; + break + } + return e.globals.allSeriesHasEqualX = t, t + } + }, { + key: "filteredSeriesX", value: function () { + var t = this.w.globals.seriesX.map((function (t) { + return t.length > 0 ? t : [] + })); + return t + } + }]), t + }(), Ji = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.seriesGoals = [], this.coreUtils = new Pi(this.ctx) + } + + return s(t, [{ + key: "isMultiFormat", value: function () { + return this.isFormatXY() || this.isFormat2DArray() + } + }, { + key: "isFormatXY", value: function () { + var t = this.w.config.series.slice(), e = new $i(this.ctx); + if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && null !== t[this.activeSeriesIndex].data[0] && void 0 !== t[this.activeSeriesIndex].data[0].x && null !== t[this.activeSeriesIndex].data[0]) return !0 + } + }, { + key: "isFormat2DArray", value: function () { + var t = this.w.config.series.slice(), e = new $i(this.ctx); + if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && void 0 !== t[this.activeSeriesIndex].data[0] && null !== t[this.activeSeriesIndex].data[0] && t[this.activeSeriesIndex].data[0].constructor === Array) return !0 + } + }, { + key: "handleFormat2DArray", value: function (t, e) { + for (var i = this.w.config, a = this.w.globals, s = "boxPlot" === i.chart.type || "boxPlot" === i.series[e].type, r = 0; r < t[e].data.length; r++) if (void 0 !== t[e].data[r][1] && (Array.isArray(t[e].data[r][1]) && 4 === t[e].data[r][1].length && !s ? this.twoDSeries.push(v.parseNumber(t[e].data[r][1][3])) : t[e].data[r].length >= 5 ? this.twoDSeries.push(v.parseNumber(t[e].data[r][4])) : this.twoDSeries.push(v.parseNumber(t[e].data[r][1])), a.dataFormatXNumeric = !0), "datetime" === i.xaxis.type) { + var n = new Date(t[e].data[r][0]); + n = new Date(n).getTime(), this.twoDSeriesX.push(n) + } else this.twoDSeriesX.push(t[e].data[r][0]); + for (var o = 0; o < t[e].data.length; o++) void 0 !== t[e].data[o][2] && (this.threeDSeries.push(t[e].data[o][2]), a.isDataXYZ = !0) + } + }, { + key: "handleFormatXY", value: function (t, e) { + var i = this.w.config, a = this.w.globals, s = new zi(this.ctx), r = e; + a.collapsedSeriesIndices.indexOf(e) > -1 && (r = this.activeSeriesIndex); + for (var n = 0; n < t[e].data.length; n++) void 0 !== t[e].data[n].y && (Array.isArray(t[e].data[n].y) ? this.twoDSeries.push(v.parseNumber(t[e].data[n].y[t[e].data[n].y.length - 1])) : this.twoDSeries.push(v.parseNumber(t[e].data[n].y))), void 0 !== t[e].data[n].goals && Array.isArray(t[e].data[n].goals) ? (void 0 === this.seriesGoals[e] && (this.seriesGoals[e] = []), this.seriesGoals[e].push(t[e].data[n].goals)) : (void 0 === this.seriesGoals[e] && (this.seriesGoals[e] = []), this.seriesGoals[e].push(null)); + for (var o = 0; o < t[r].data.length; o++) { + var l = "string" == typeof t[r].data[o].x, h = Array.isArray(t[r].data[o].x), + c = !h && !!s.isValidDate(t[r].data[o].x); + if (l || c) if (l || i.xaxis.convertedCatToNumeric) { + var d = a.isBarHorizontal && a.isRangeData; + "datetime" !== i.xaxis.type || d ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[o].x), isNaN(t[r].data[o].x) || "category" === this.w.config.xaxis.type || "string" == typeof t[r].data[o].x || (a.isXNumeric = !0)) : this.twoDSeriesX.push(s.parseDate(t[r].data[o].x)) + } else "datetime" === i.xaxis.type ? this.twoDSeriesX.push(s.parseDate(t[r].data[o].x.toString())) : (a.dataFormatXNumeric = !0, a.isXNumeric = !0, this.twoDSeriesX.push(parseFloat(t[r].data[o].x))); else h ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[o].x)) : (a.isXNumeric = !0, a.dataFormatXNumeric = !0, this.twoDSeriesX.push(t[r].data[o].x)) + } + if (t[e].data[0] && void 0 !== t[e].data[0].z) { + for (var u = 0; u < t[e].data.length; u++) this.threeDSeries.push(t[e].data[u].z); + a.isDataXYZ = !0 + } + } + }, { + key: "handleRangeData", value: function (t, e) { + var i = this.w.globals, a = {}; + return this.isFormat2DArray() ? a = this.handleRangeDataFormat("array", t, e) : this.isFormatXY() && (a = this.handleRangeDataFormat("xy", t, e)), i.seriesRangeStart[e] = void 0 === a.start ? [] : a.start, i.seriesRangeEnd[e] = void 0 === a.end ? [] : a.end, i.seriesRange[e] = a.rangeUniques, i.seriesRange.forEach((function (t, e) { + t && t.forEach((function (t, e) { + t.y.forEach((function (e, i) { + for (var a = 0; a < t.y.length; a++) if (i !== a) { + var s = e.y1, r = e.y2, n = t.y[a].y1; + s <= t.y[a].y2 && n <= r && (t.overlaps.indexOf(e.rangeName) < 0 && t.overlaps.push(e.rangeName), t.overlaps.indexOf(t.y[a].rangeName) < 0 && t.overlaps.push(t.y[a].rangeName)) + } + })) + })) + })), a + } + }, { + key: "handleCandleStickBoxData", value: function (t, e) { + var i = this.w.globals, a = {}; + return this.isFormat2DArray() ? a = this.handleCandleStickBoxDataFormat("array", t, e) : this.isFormatXY() && (a = this.handleCandleStickBoxDataFormat("xy", t, e)), i.seriesCandleO[e] = a.o, i.seriesCandleH[e] = a.h, i.seriesCandleM[e] = a.m, i.seriesCandleL[e] = a.l, i.seriesCandleC[e] = a.c, a + } + }, { + key: "handleRangeDataFormat", value: function (t, e, i) { + var a = [], s = [], r = e[i].data.filter((function (t, e, i) { + return e === i.findIndex((function (e) { + return e.x === t.x + })) + })).map((function (t, e) { + return {x: t.x, overlaps: [], y: []} + })); + if ("array" === t) for (var n = 0; n < e[i].data.length; n++) Array.isArray(e[i].data[n]) ? (a.push(e[i].data[n][1][0]), s.push(e[i].data[n][1][1])) : (a.push(e[i].data[n]), s.push(e[i].data[n])); else if ("xy" === t) for (var o = function (t) { + var n = Array.isArray(e[i].data[t].y), o = v.randomId(), l = e[i].data[t].x, h = { + y1: n ? e[i].data[t].y[0] : e[i].data[t].y, + y2: n ? e[i].data[t].y[1] : e[i].data[t].y, + rangeName: o + }; + e[i].data[t].rangeName = o; + var c = r.findIndex((function (t) { + return t.x === l + })); + r[c].y.push(h), a.push(h.y1), s.push(h.y2) + }, l = 0; l < e[i].data.length; l++) o(l); + return {start: a, end: s, rangeUniques: r} + } + }, { + key: "handleCandleStickBoxDataFormat", value: function (t, e, i) { + var a = this.w, s = "boxPlot" === a.config.chart.type || "boxPlot" === a.config.series[i].type, r = [], + n = [], o = [], l = [], h = []; + if ("array" === t) if (s && 6 === e[i].data[0].length || !s && 5 === e[i].data[0].length) for (var c = 0; c < e[i].data.length; c++) r.push(e[i].data[c][1]), n.push(e[i].data[c][2]), s ? (o.push(e[i].data[c][3]), l.push(e[i].data[c][4]), h.push(e[i].data[c][5])) : (l.push(e[i].data[c][3]), h.push(e[i].data[c][4])); else for (var d = 0; d < e[i].data.length; d++) Array.isArray(e[i].data[d][1]) && (r.push(e[i].data[d][1][0]), n.push(e[i].data[d][1][1]), s ? (o.push(e[i].data[d][1][2]), l.push(e[i].data[d][1][3]), h.push(e[i].data[d][1][4])) : (l.push(e[i].data[d][1][2]), h.push(e[i].data[d][1][3]))); else if ("xy" === t) for (var u = 0; u < e[i].data.length; u++) Array.isArray(e[i].data[u].y) && (r.push(e[i].data[u].y[0]), n.push(e[i].data[u].y[1]), s ? (o.push(e[i].data[u].y[2]), l.push(e[i].data[u].y[3]), h.push(e[i].data[u].y[4])) : (l.push(e[i].data[u].y[2]), h.push(e[i].data[u].y[3]))); + return {o: r, h: n, m: o, l: l, c: h} + } + }, { + key: "parseDataAxisCharts", value: function (t) { + var e = this, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.ctx, + a = this.w.config, s = this.w.globals, r = new zi(i), + n = a.labels.length > 0 ? a.labels.slice() : a.xaxis.categories.slice(); + s.isRangeBar = "rangeBar" === a.chart.type && s.isBarHorizontal, s.hasXaxisGroups = "category" === a.xaxis.type && a.xaxis.group.groups.length > 0, s.hasXaxisGroups && (s.groups = a.xaxis.group.groups), t.forEach((function (t, e) { + void 0 !== t.name ? s.seriesNames.push(t.name) : s.seriesNames.push("series-" + parseInt(e + 1, 10)) + })), this.coreUtils.setSeriesYAxisMappings(); + var o = [], l = f(new Set(a.series.map((function (t) { + return t.group + })))); + a.series.forEach((function (t, e) { + var i = l.indexOf(t.group); + o[i] || (o[i] = []), o[i].push(s.seriesNames[e]) + })), s.seriesGroups = o; + for (var h = function () { + for (var t = 0; t < n.length; t++) if ("string" == typeof n[t]) { + if (!r.isValidDate(n[t])) throw new Error("You have provided invalid Date format. Please provide a valid JavaScript Date"); + e.twoDSeriesX.push(r.parseDate(n[t])) + } else e.twoDSeriesX.push(n[t]) + }, c = 0; c < t.length; c++) { + if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], void 0 === t[c].data) return void console.error("It is a possibility that you may have not included 'data' property in series."); + if ("rangeBar" !== a.chart.type && "rangeArea" !== a.chart.type && "rangeBar" !== t[c].type && "rangeArea" !== t[c].type || (s.isRangeData = !0, this.handleRangeData(t, c)), this.isMultiFormat()) this.isFormat2DArray() ? this.handleFormat2DArray(t, c) : this.isFormatXY() && this.handleFormatXY(t, c), "candlestick" !== a.chart.type && "candlestick" !== t[c].type && "boxPlot" !== a.chart.type && "boxPlot" !== t[c].type || this.handleCandleStickBoxData(t, c), s.series.push(this.twoDSeries), s.labels.push(this.twoDSeriesX), s.seriesX.push(this.twoDSeriesX), s.seriesGoals = this.seriesGoals, c !== this.activeSeriesIndex || this.fallbackToCategory || (s.isXNumeric = !0); else { + "datetime" === a.xaxis.type ? (s.isXNumeric = !0, h(), s.seriesX.push(this.twoDSeriesX)) : "numeric" === a.xaxis.type && (s.isXNumeric = !0, n.length > 0 && (this.twoDSeriesX = n, s.seriesX.push(this.twoDSeriesX))), s.labels.push(this.twoDSeriesX); + var d = t[c].data.map((function (t) { + return v.parseNumber(t) + })); + s.series.push(d) + } + s.seriesZ.push(this.threeDSeries), void 0 !== t[c].color ? s.seriesColors.push(t[c].color) : s.seriesColors.push(void 0) + } + return this.w + } + }, { + key: "parseDataNonAxisCharts", value: function (t) { + var e = this.w.globals, i = this.w.config, a = Array.isArray(t) && t.every((function (t) { + return "number" == typeof t + })) && i.labels.length > 0, s = Array.isArray(t) && t.some((function (t) { + return t && "object" === b(t) && t.data || t && "object" === b(t) && t.parsing + })); + if (a && s && console.warn("ApexCharts: Both old format (numeric series + labels) and new format (series objects with data/parsing) detected. Using old format for backward compatibility."), a) { + e.series = t.slice(), e.seriesNames = i.labels.slice(); + for (var r = 0; r < e.series.length; r++) void 0 === e.seriesNames[r] && e.seriesNames.push("series-" + (r + 1)); + return this.w + } + if (Array.isArray(t) && t.every((function (t) { + return "number" == typeof t + }))) { + e.series = t.slice(), e.seriesNames = []; + for (var n = 0; n < e.series.length; n++) e.seriesNames.push(i.labels[n] || "series-".concat(n + 1)); + return this.w + } + var o = this.extractPieDataFromSeries(t); + e.series = o.values, e.seriesNames = o.labels, "radialBar" === i.chart.type && (e.series = e.series.map((function (t) { + var e = v.parseNumber(t); + return e > 100 && console.warn("ApexCharts: RadialBar value ".concat(e, " > 100, consider using percentage values (0-100)")), e + }))); + for (var l = 0; l < e.series.length; l++) void 0 === e.seriesNames[l] && e.seriesNames.push("series-" + (l + 1)); + return this.w + } + }, { + key: "resetParsingFlags", value: function () { + var t = this.w; + t.globals.dataWasParsed = !1, t.globals.originalSeries = null, t.config.series && t.config.series.forEach((function (t) { + t.__apexParsed && delete t.__apexParsed + })) + } + }, { + key: "extractPieDataFromSeries", value: function (t) { + var e = [], i = []; + if (!Array.isArray(t)) return console.warn("ApexCharts: Expected array for series data"), { + values: [], + labels: [] + }; + if (0 === t.length) return console.warn("ApexCharts: Empty series array"), {values: [], labels: []}; + var a = t[0]; + return "object" === b(a) && null !== a && a.data ? (this.extractPieDataFromSeriesObjects(t, e, i), { + values: e, + labels: i + }) : (console.warn("ApexCharts: Unsupported series format for pie/donut/radialBar. Expected series objects with data property."), { + values: [], + labels: [] + }) + } + }, { + key: "extractPieDataFromSeriesObjects", value: function (t, e, i) { + t.forEach((function (t, a) { + t.data && Array.isArray(t.data) ? t.data.forEach((function (t) { + "object" === b(t) && null !== t ? void 0 !== t.x && void 0 !== t.y ? (i.push(String(t.x)), e.push(v.parseNumber(t.y))) : console.warn("ApexCharts: Invalid data point format for pie chart. Expected {x, y} format:", t) : console.warn("ApexCharts: Expected object data point, got:", b(t)) + })) : console.warn("ApexCharts: Series ".concat(a, " has no valid data array")) + })) + } + }, { + key: "handleExternalLabelsData", value: function (t) { + var e = this.w.config, i = this.w.globals; + if (e.xaxis.categories.length > 0) i.labels = e.xaxis.categories; else if (e.labels.length > 0) i.labels = e.labels.slice(); else if (this.fallbackToCategory) { + if (i.labels = i.labels[0], i.seriesRange.length && (i.seriesRange.map((function (t) { + t.forEach((function (t) { + i.labels.indexOf(t.x) < 0 && t.x && i.labels.push(t.x) + })) + })), i.labels = Array.from(new Set(i.labels.map(JSON.stringify)), JSON.parse)), e.xaxis.convertedCatToNumeric) new Ni(e).convertCatToNumericXaxis(e, this.ctx, i.seriesX[0]), this._generateExternalLabels(t) + } else this._generateExternalLabels(t) + } + }, { + key: "_generateExternalLabels", value: function (t) { + var e = this.w.globals, i = this.w.config, a = []; + if (e.axisCharts) { + if (e.series.length > 0) if (this.isFormatXY()) for (var s = i.series.map((function (t, e) { + return t.data.filter((function (t, e, i) { + return i.findIndex((function (e) { + return e.x === t.x + })) === e + })) + })), r = s.reduce((function (t, e, i, a) { + return a[t].length > e.length ? t : i + }), 0), n = 0; n < s[r].length; n++) a.push(n + 1); else for (var o = 0; o < e.series[e.maxValsInArrayIndex].length; o++) a.push(o + 1); + e.seriesX = []; + for (var l = 0; l < t.length; l++) e.seriesX.push(a); + this.w.globals.isBarHorizontal || (e.isXNumeric = !0) + } + if (0 === a.length) { + a = e.axisCharts ? [] : e.series.map((function (t, e) { + return e + 1 + })); + for (var h = 0; h < t.length; h++) e.seriesX.push(a) + } + e.labels = a, i.xaxis.convertedCatToNumeric && (e.categoryLabels = a.map((function (t) { + return i.xaxis.labels.formatter(t) + }))), e.noLabelsProvided = !0 + } + }, { + key: "parseRawDataIfNeeded", value: function (t) { + var e = this, i = this.w.config, a = this.w.globals, s = i.parsing; + if (a.dataWasParsed) return t; + if (!s && !t.some((function (t) { + return t.parsing + }))) return t; + var r = t.map((function (t, i) { + var a, r, n; + if (!t.data || !Array.isArray(t.data) || 0 === t.data.length) return t; + var o = { + x: (null === (a = t.parsing) || void 0 === a ? void 0 : a.x) || (null == s ? void 0 : s.x), + y: (null === (r = t.parsing) || void 0 === r ? void 0 : r.y) || (null == s ? void 0 : s.y), + z: (null === (n = t.parsing) || void 0 === n ? void 0 : n.z) || (null == s ? void 0 : s.z) + }; + if (!o.x && !o.y) return t; + var l = t.data[0]; + if ("object" === b(l) && null !== l && (l.hasOwnProperty("x") || l.hasOwnProperty("y")) || Array.isArray(l)) return t; + if (!o.x || !o.y || Array.isArray(o.y) && 0 === o.y.length) return console.warn("ApexCharts: Series ".concat(i, " has parsing config but missing x or y field specification")), t; + var h = t.data.map((function (t, a) { + if ("object" !== b(t) || null === t) return console.warn("ApexCharts: Series ".concat(i, ", data point ").concat(a, " is not an object, skipping parsing")), t; + var s, r = e.getNestedValue(t, o.x), n = void 0; + if (Array.isArray(o.y)) { + var l = o.y.map((function (i) { + return e.getNestedValue(t, i) + })); + s = "bubble" === e.w.config.chart.type && 2 === l.length ? l[0] : l + } else s = e.getNestedValue(t, o.y); + o.z && (n = e.getNestedValue(t, o.z)), void 0 === r && console.warn("ApexCharts: Series ".concat(i, ", data point ").concat(a, " missing field '").concat(o.x, "'")), void 0 === s && console.warn("ApexCharts: Series ".concat(i, ", data point ").concat(a, " missing field '").concat(o.y, "'")); + var h = {x: r, y: s}; + if ("bubble" === e.w.config.chart.type && Array.isArray(o.y) && 2 === o.y.length) { + var c = e.getNestedValue(t, o.y[1]); + void 0 !== c && (h.z = c) + } + return void 0 !== n && (h.z = n), h + })); + return u(u({}, t), {}, {data: h, __apexParsed: !0}) + })); + return a.dataWasParsed = !0, a.originalSeries || (a.originalSeries = v.clone(t)), r + } + }, { + key: "getNestedValue", value: function (t, e) { + if (t && "object" === b(t) && e) { + if (-1 === e.indexOf(".")) return t[e]; + for (var i = e.split("."), a = t, s = 0; s < i.length; s++) { + if (null == a || "object" !== b(a)) return; + a = a[i[s]] + } + return a + } + } + }, { + key: "parseData", value: function (t) { + var e = this.w, i = e.config, a = e.globals; + if (t = this.parseRawDataIfNeeded(t), i.series = t, a.initialSeries = v.clone(t), this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = !1, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), a.axisCharts ? (this.parseDataAxisCharts(t), this.coreUtils.getLargestSeries()) : this.parseDataNonAxisCharts(t), i.chart.stacked) { + var s = new $i(this.ctx); + a.series = s.setNullSeriesToZeroValues(a.series) + } + this.coreUtils.getSeriesTotals(), a.axisCharts && (a.stackedSeriesTotals = this.coreUtils.getStackedSeriesTotals(), a.stackedSeriesTotalsByGroups = this.coreUtils.getStackedSeriesTotalsByGroups()), this.coreUtils.getPercentSeries(), a.dataFormatXNumeric || a.isXNumeric && ("numeric" !== i.xaxis.type || 0 !== i.labels.length || 0 !== i.xaxis.categories.length) || this.handleExternalLabelsData(t); + for (var r = this.coreUtils.getCategoryLabels(a.labels), n = 0; n < r.length; n++) if (Array.isArray(r[n])) { + a.isMultiLineX = !0; + break + } + } + }, { + key: "excludeCollapsedSeriesInYAxis", value: function () { + var t = this.w, e = []; + t.globals.seriesYAxisMap.forEach((function (i, a) { + var s = 0; + i.forEach((function (e) { + -1 !== t.globals.collapsedSeriesIndices.indexOf(e) && s++ + })), s > 0 && s == i.length && e.push(a) + })), t.globals.ignoreYAxisIndexes = e.map((function (t) { + return t + })) + } + }]), t + }(), Qi = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "svgStringToNode", value: function (t) { + return (new DOMParser).parseFromString(t, "image/svg+xml").documentElement + } + }, { + key: "scaleSvgNode", value: function (t, e) { + var i = parseFloat(t.getAttributeNS(null, "width")), a = parseFloat(t.getAttributeNS(null, "height")); + t.setAttributeNS(null, "width", i * e), t.setAttributeNS(null, "height", a * e), t.setAttributeNS(null, "viewBox", "0 0 " + i + " " + a) + } + }, { + key: "getSvgString", value: function (t) { + var e = this; + return new Promise((function (i) { + var a = e.w, + s = t || a.config.chart.toolbar.export.scale || a.config.chart.toolbar.export.width / a.globals.svgWidth; + s || (s = 1); + var r = a.globals.svgWidth * s, n = a.globals.svgHeight * s, o = a.globals.dom.elWrap.cloneNode(!0); + o.style.width = r + "px", o.style.height = n + "px"; + var l = (new XMLSerializer).serializeToString(o), + h = "\n .apexcharts-tooltip, .apexcharts-toolbar, .apexcharts-xaxistooltip, .apexcharts-yaxistooltip, .apexcharts-xcrosshairs, .apexcharts-ycrosshairs, .apexcharts-zoom-rect, .apexcharts-selection-rect {\n display: none;\n }\n "; + a.config.legend.show && a.globals.dom.elLegendWrap && a.globals.dom.elLegendWrap.children.length > 0 && (h += Zi); + var c = '\n \n \n
\n \n ").concat(l, "\n
\n
\n
\n "), + d = e.svgStringToNode(c); + 1 !== s && e.scaleSvgNode(d, s), e.convertImagesToBase64(d).then((function () { + c = (new XMLSerializer).serializeToString(d), i(c.replace(/ /g, " ")) + })) + })) + } + }, { + key: "convertImagesToBase64", value: function (t) { + var e = this, i = t.getElementsByTagName("image"), a = Array.from(i).map((function (t) { + var i = t.getAttributeNS("http://www.w3.org/1999/xlink", "href"); + return i && !i.startsWith("data:") ? e.getBase64FromUrl(i).then((function (e) { + t.setAttributeNS("http://www.w3.org/1999/xlink", "href", e) + })).catch((function (t) { + console.error("Error converting image to base64:", t) + })) : Promise.resolve() + })); + return Promise.all(a) + } + }, { + key: "getBase64FromUrl", value: function (t) { + return new Promise((function (e, i) { + var a = new Image; + a.crossOrigin = "Anonymous", a.onload = function () { + var t = document.createElement("canvas"); + t.width = a.width, t.height = a.height, t.getContext("2d").drawImage(a, 0, 0), e(t.toDataURL()) + }, a.onerror = i, a.src = t + })) + } + }, { + key: "svgUrl", value: function () { + var t = this; + return new Promise((function (e) { + t.getSvgString().then((function (t) { + var i = new Blob([t], {type: "image/svg+xml;charset=utf-8"}); + e(URL.createObjectURL(i)) + })) + })) + } + }, { + key: "dataURI", value: function (t) { + var e = this; + return new Promise((function (i) { + var a = e.w, s = t ? t.scale || t.width / a.globals.svgWidth : 1, + r = document.createElement("canvas"); + r.width = a.globals.svgWidth * s, r.height = parseInt(a.globals.dom.elWrap.style.height, 10) * s; + var n = "transparent" !== a.config.chart.background && a.config.chart.background ? a.config.chart.background : "#fff", + o = r.getContext("2d"); + o.fillStyle = n, o.fillRect(0, 0, r.width * s, r.height * s), e.getSvgString(s).then((function (t) { + var e = "data:image/svg+xml," + encodeURIComponent(t), a = new Image; + a.crossOrigin = "anonymous", a.onload = function () { + if (o.drawImage(a, 0, 0), r.msToBlob) { + var t = r.msToBlob(); + i({blob: t}) + } else { + var e = r.toDataURL("image/png"); + i({imgURI: e}) + } + }, a.src = e + })) + })) + } + }, { + key: "exportToSVG", value: function () { + var t = this; + this.svgUrl().then((function (e) { + t.triggerDownload(e, t.w.config.chart.toolbar.export.svg.filename, ".svg") + })) + } + }, { + key: "exportToPng", value: function () { + var t = this, e = this.w.config.chart.toolbar.export.scale, + i = this.w.config.chart.toolbar.export.width, a = e ? {scale: e} : i ? {width: i} : void 0; + this.dataURI(a).then((function (e) { + var i = e.imgURI, a = e.blob; + a ? navigator.msSaveOrOpenBlob(a, t.w.globals.chartID + ".png") : t.triggerDownload(i, t.w.config.chart.toolbar.export.png.filename, ".png") + })) + } + }, { + key: "exportToCSV", value: function (t) { + var e = this, i = t.series, a = t.fileName, s = t.columnDelimiter, r = void 0 === s ? "," : s, + n = t.lineDelimiter, o = void 0 === n ? "\n" : n, l = this.w; + i || (i = l.config.series); + var h = [], c = [], d = "", u = l.globals.series.map((function (t, e) { + return -1 === l.globals.collapsedSeriesIndices.indexOf(e) ? t : [] + })), g = function (t) { + return "function" == typeof l.config.chart.toolbar.export.csv.categoryFormatter ? l.config.chart.toolbar.export.csv.categoryFormatter(t) : "datetime" === l.config.xaxis.type && String(t).length >= 10 ? new Date(t).toDateString() : v.isNumber(t) ? t : t.split(r).join("") + }, p = function (t) { + return "function" == typeof l.config.chart.toolbar.export.csv.valueFormatter ? l.config.chart.toolbar.export.csv.valueFormatter(t) : t + }, x = Math.max.apply(Math, f(i.map((function (t) { + return t.data ? t.data.length : 0 + })))), b = new Ji(this.ctx), m = new Ri(this.ctx), y = function (t) { + var i = ""; + if (l.globals.axisCharts) { + if ("category" === l.config.xaxis.type || l.config.xaxis.convertedCatToNumeric) if (l.globals.isBarHorizontal) { + var a = l.globals.yLabelFormatters[0], s = new $i(e.ctx).getActiveConfigSeriesIndex(); + i = a(l.globals.labels[t], {seriesIndex: s, dataPointIndex: t, w: l}) + } else i = m.getLabel(l.globals.labels, l.globals.timescaleLabels, 0, t).text; + "datetime" === l.config.xaxis.type && (l.config.xaxis.categories.length ? i = l.config.xaxis.categories[t] : l.config.labels.length && (i = l.config.labels[t])) + } else i = l.config.labels[t]; + return null === i ? "nullvalue" : (Array.isArray(i) && (i = i.join(" ")), v.isNumber(i) ? i : i.split(r).join("")) + }, w = function (t, e) { + if (h.length && 0 === e && c.push(h.join(r)), t.data) { + t.data = t.data.length && t.data || f(Array(x)).map((function () { + return "" + })); + for (var a = 0; a < t.data.length; a++) { + h = []; + var s = y(a); + if ("nullvalue" !== s) { + if (s || (b.isFormatXY() ? s = i[e].data[a].x : b.isFormat2DArray() && (s = i[e].data[a] ? i[e].data[a][0] : "")), 0 === e) { + h.push(g(s)); + for (var n = 0; n < l.globals.series.length; n++) { + var o, + d = b.isFormatXY() ? null === (o = i[n].data[a]) || void 0 === o ? void 0 : o.y : u[n][a]; + h.push(p(d)) + } + } + ("candlestick" === l.config.chart.type || t.type && "candlestick" === t.type) && (h.pop(), h.push(l.globals.seriesCandleO[e][a]), h.push(l.globals.seriesCandleH[e][a]), h.push(l.globals.seriesCandleL[e][a]), h.push(l.globals.seriesCandleC[e][a])), ("boxPlot" === l.config.chart.type || t.type && "boxPlot" === t.type) && (h.pop(), h.push(l.globals.seriesCandleO[e][a]), h.push(l.globals.seriesCandleH[e][a]), h.push(l.globals.seriesCandleM[e][a]), h.push(l.globals.seriesCandleL[e][a]), h.push(l.globals.seriesCandleC[e][a])), "rangeBar" === l.config.chart.type && (h.pop(), h.push(l.globals.seriesRangeStart[e][a]), h.push(l.globals.seriesRangeEnd[e][a])), h.length && c.push(h.join(r)) + } + } + } + }; + h.push(l.config.chart.toolbar.export.csv.headerCategory), "boxPlot" === l.config.chart.type ? (h.push("minimum"), h.push("q1"), h.push("median"), h.push("q3"), h.push("maximum")) : "candlestick" === l.config.chart.type ? (h.push("open"), h.push("high"), h.push("low"), h.push("close")) : "rangeBar" === l.config.chart.type ? (h.push("minimum"), h.push("maximum")) : i.map((function (t, e) { + var i = (t.name ? t.name : "series-".concat(e)) + ""; + l.globals.axisCharts && h.push(i.split(r).join("") ? i.split(r).join("") : "series-".concat(e)) + })), l.globals.axisCharts || (h.push(l.config.chart.toolbar.export.csv.headerValue), c.push(h.join(r))), l.globals.allSeriesHasEqualX || !l.globals.axisCharts || l.config.xaxis.categories.length || l.config.labels.length ? i.map((function (t, e) { + l.globals.axisCharts ? w(t, e) : ((h = []).push(g(l.globals.labels[e])), h.push(p(u[e])), c.push(h.join(r))) + })) : function () { + var t = new Set, e = {}; + i.forEach((function (a, s) { + null == a || a.data.forEach((function (a) { + var r, n; + if (b.isFormatXY()) r = a.x, n = a.y; else { + if (!b.isFormat2DArray()) return; + r = a[0], n = a[1] + } + e[r] || (e[r] = Array(i.length).fill("")), e[r][s] = p(n), t.add(r) + })) + })), h.length && c.push(h.join(r)), Array.from(t).sort().forEach((function (t) { + c.push([g(t), e[t].join(r)]) + })) + }(), d += c.join(o), this.triggerDownload("data:text/csv; charset=utf-8," + encodeURIComponent("\ufeff" + d), a || l.config.chart.toolbar.export.csv.filename, ".csv") + } + }, { + key: "triggerDownload", value: function (t, e, i) { + var a = document.createElement("a"); + a.href = t, a.download = (e || this.w.globals.chartID) + i, document.body.appendChild(a), a.click(), document.body.removeChild(a) + } + }]), t + }(), Ki = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.elgrid = a, this.w = e.w; + var s = this.w; + this.axesUtils = new Ri(e), this.xaxisLabels = s.globals.labels.slice(), s.globals.timescaleLabels.length > 0 && !s.globals.isBarHorizontal && (this.xaxisLabels = s.globals.timescaleLabels.slice()), s.config.xaxis.overwriteCategories && (this.xaxisLabels = s.config.xaxis.overwriteCategories), this.drawnLabels = [], this.drawnLabelsRects = [], "top" === s.config.xaxis.position ? this.offY = 0 : this.offY = s.globals.gridHeight, this.offY = this.offY + s.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = "bar" === s.config.chart.type && s.config.plotOptions.bar.horizontal, this.xaxisFontSize = s.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = s.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s.config.xaxis.labels.style.colors, this.xaxisBorderWidth = s.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal && (this.xaxisBorderWidth = s.config.yaxis[0].axisBorder.width.toString()), String(this.xaxisBorderWidth).indexOf("%") > -1 ? this.xaxisBorderWidth = s.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100 : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10), this.xaxisBorderHeight = s.config.xaxis.axisBorder.height, this.yaxis = s.config.yaxis[0] + } + + return s(t, [{ + key: "drawXaxis", value: function () { + var t = this.w, e = new Mi(this.ctx), i = e.group({ + class: "apexcharts-xaxis", + transform: "translate(".concat(t.config.xaxis.offsetX, ", ").concat(t.config.xaxis.offsetY, ")") + }), a = e.group({ + class: "apexcharts-xaxis-texts-g", + transform: "translate(".concat(t.globals.translateXAxisX, ", ").concat(t.globals.translateXAxisY, ")") + }); + i.add(a); + for (var s = [], r = 0; r < this.xaxisLabels.length; r++) s.push(this.xaxisLabels[r]); + if (this.drawXAxisLabelAndGroup(!0, e, a, s, t.globals.isXNumeric, (function (t, e) { + return e + })), t.globals.hasXaxisGroups) { + var n = t.globals.groups; + s = []; + for (var o = 0; o < n.length; o++) s.push(n[o].title); + var l = {}; + t.config.xaxis.group.style && (l.xaxisFontSize = t.config.xaxis.group.style.fontSize, l.xaxisFontFamily = t.config.xaxis.group.style.fontFamily, l.xaxisForeColors = t.config.xaxis.group.style.colors, l.fontWeight = t.config.xaxis.group.style.fontWeight, l.cssClass = t.config.xaxis.group.style.cssClass), this.drawXAxisLabelAndGroup(!1, e, a, s, !1, (function (t, e) { + return n[t].cols * e + }), l) + } + if (void 0 !== t.config.xaxis.title.text) { + var h = e.group({class: "apexcharts-xaxis-title"}), c = e.drawText({ + x: t.globals.gridWidth / 2 + t.config.xaxis.title.offsetX, + y: this.offY + parseFloat(this.xaxisFontSize) + ("bottom" === t.config.xaxis.position ? t.globals.xAxisLabelsHeight : -t.globals.xAxisLabelsHeight - 10) + t.config.xaxis.title.offsetY, + text: t.config.xaxis.title.text, + textAnchor: "middle", + fontSize: t.config.xaxis.title.style.fontSize, + fontFamily: t.config.xaxis.title.style.fontFamily, + fontWeight: t.config.xaxis.title.style.fontWeight, + foreColor: t.config.xaxis.title.style.color, + cssClass: "apexcharts-xaxis-title-text " + t.config.xaxis.title.style.cssClass + }); + h.add(c), i.add(h) + } + if (t.config.xaxis.axisBorder.show) { + var d = t.globals.barPadForNumericAxis, + u = e.drawLine(t.globals.padHorizontal + t.config.xaxis.axisBorder.offsetX - d, this.offY, this.xaxisBorderWidth + d, this.offY, t.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight); + this.elgrid && this.elgrid.elGridBorders && t.config.grid.show ? this.elgrid.elGridBorders.add(u) : i.add(u) + } + return i + } + }, { + key: "drawXAxisLabelAndGroup", value: function (t, e, i, a, s, r) { + var n, o = this, l = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : {}, h = [], + c = [], d = this.w, u = l.xaxisFontSize || this.xaxisFontSize, + g = l.xaxisFontFamily || this.xaxisFontFamily, p = l.xaxisForeColors || this.xaxisForeColors, + f = l.fontWeight || d.config.xaxis.labels.style.fontWeight, + x = l.cssClass || d.config.xaxis.labels.style.cssClass, b = d.globals.padHorizontal, m = a.length, + v = "category" === d.config.xaxis.type ? d.globals.dataPoints : m; + if (0 === v && m > v && (v = m), s) { + var y = Math.max(Number(d.config.xaxis.tickAmount) || 1, v > 1 ? v - 1 : v); + n = d.globals.gridWidth / Math.min(y, m - 1), b = b + r(0, n) / 2 + d.config.xaxis.labels.offsetX + } else n = d.globals.gridWidth / v, b = b + r(0, n) + d.config.xaxis.labels.offsetX; + for (var w = function (s) { + var l = b - r(s, n) / 2 + d.config.xaxis.labels.offsetX; + 0 === s && 1 === m && n / 2 === b && 1 === v && (l = d.globals.gridWidth / 2); + var y = o.axesUtils.getLabel(a, d.globals.timescaleLabels, l, s, h, u, t), w = 28; + d.globals.rotateXLabels && t && (w = 22), d.config.xaxis.title.text && "top" === d.config.xaxis.position && (w += parseFloat(d.config.xaxis.title.style.fontSize) + 2), t || (w = w + parseFloat(u) + (d.globals.xAxisLabelsHeight - d.globals.xAxisGroupLabelsHeight) + (d.globals.rotateXLabels ? 10 : 0)), y = void 0 !== d.config.xaxis.tickAmount && "dataPoints" !== d.config.xaxis.tickAmount && "datetime" !== d.config.xaxis.type ? o.axesUtils.checkLabelBasedOnTickamount(s, y, m) : o.axesUtils.checkForOverflowingLabels(s, y, m, h, c); + if (d.config.xaxis.labels.show) { + var k = e.drawText({ + x: y.x, + y: o.offY + d.config.xaxis.labels.offsetY + w - ("top" === d.config.xaxis.position ? d.globals.xAxisHeight + d.config.xaxis.axisTicks.height - 2 : 0), + text: y.text, + textAnchor: "middle", + fontWeight: y.isBold ? 600 : f, + fontSize: u, + fontFamily: g, + foreColor: Array.isArray(p) ? t && d.config.xaxis.convertedCatToNumeric ? p[d.globals.minX + s - 1] : p[s] : p, + isPlainText: !1, + cssClass: (t ? "apexcharts-xaxis-label " : "apexcharts-xaxis-group-label ") + x + }); + if (i.add(k), k.on("click", (function (t) { + if ("function" == typeof d.config.chart.events.xAxisLabelClick) { + var e = Object.assign({}, d, {labelIndex: s}); + d.config.chart.events.xAxisLabelClick(t, o.ctx, e) + } + })), t) { + var A = document.createElementNS(d.globals.SVGNS, "title"); + A.textContent = Array.isArray(y.text) ? y.text.join(" ") : y.text, k.node.appendChild(A), "" !== y.text && (h.push(y.text), c.push(y)) + } + } + s < m - 1 && (b += r(s + 1, n)) + }, k = 0; k <= m - 1; k++) w(k) + } + }, { + key: "drawXaxisInversed", value: function (t) { + var e, i, a = this, s = this.w, r = new Mi(this.ctx), + n = s.config.yaxis[0].opposite ? s.globals.translateYAxisX[t] : 0, + o = r.group({class: "apexcharts-yaxis apexcharts-xaxis-inversed", rel: t}), l = r.group({ + class: "apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g", + transform: "translate(" + n + ", 0)" + }); + o.add(l); + var h = []; + if (s.config.yaxis[t].show) for (var c = 0; c < this.xaxisLabels.length; c++) h.push(this.xaxisLabels[c]); + e = s.globals.gridHeight / h.length, i = -e / 2.2; + var d = s.globals.yLabelFormatters[0], u = s.config.yaxis[0].labels; + if (u.show) for (var g = function (n) { + var o = void 0 === h[n] ? "" : h[n]; + o = d(o, {seriesIndex: t, dataPointIndex: n, w: s}); + var c = a.axesUtils.getYAxisForeColor(u.style.colors, t), g = 0; + Array.isArray(o) && (g = o.length / 2 * parseInt(u.style.fontSize, 10)); + var p = u.offsetX - 15, f = "end"; + a.yaxis.opposite && (f = "start"), "left" === s.config.yaxis[0].labels.align ? (p = u.offsetX, f = "start") : "center" === s.config.yaxis[0].labels.align ? (p = u.offsetX, f = "middle") : "right" === s.config.yaxis[0].labels.align && (f = "end"); + var x = r.drawText({ + x: p, + y: i + e + u.offsetY - g, + text: o, + textAnchor: f, + foreColor: Array.isArray(c) ? c[n] : c, + fontSize: u.style.fontSize, + fontFamily: u.style.fontFamily, + fontWeight: u.style.fontWeight, + isPlainText: !1, + cssClass: "apexcharts-yaxis-label " + u.style.cssClass, + maxWidth: u.maxWidth + }); + l.add(x), x.on("click", (function (t) { + if ("function" == typeof s.config.chart.events.xAxisLabelClick) { + var e = Object.assign({}, s, {labelIndex: n}); + s.config.chart.events.xAxisLabelClick(t, a.ctx, e) + } + })); + var b = document.createElementNS(s.globals.SVGNS, "title"); + if (b.textContent = Array.isArray(o) ? o.join(" ") : o, x.node.appendChild(b), 0 !== s.config.yaxis[t].labels.rotate) { + var m = r.rotateAroundCenter(x.node); + x.node.setAttribute("transform", "rotate(".concat(s.config.yaxis[t].labels.rotate, " 0 ").concat(m.y, ")")) + } + i += e + }, p = 0; p <= h.length - 1; p++) g(p); + if (void 0 !== s.config.yaxis[0].title.text) { + var f = r.group({ + class: "apexcharts-yaxis-title apexcharts-xaxis-title-inversed", + transform: "translate(" + n + ", 0)" + }), x = r.drawText({ + x: s.config.yaxis[0].title.offsetX, + y: s.globals.gridHeight / 2 + s.config.yaxis[0].title.offsetY, + text: s.config.yaxis[0].title.text, + textAnchor: "middle", + foreColor: s.config.yaxis[0].title.style.color, + fontSize: s.config.yaxis[0].title.style.fontSize, + fontWeight: s.config.yaxis[0].title.style.fontWeight, + fontFamily: s.config.yaxis[0].title.style.fontFamily, + cssClass: "apexcharts-yaxis-title-text " + s.config.yaxis[0].title.style.cssClass + }); + f.add(x), o.add(f) + } + var b = 0; + this.isCategoryBarHorizontal && s.config.yaxis[0].opposite && (b = s.globals.gridWidth); + var m = s.config.xaxis.axisBorder; + if (m.show) { + var v = r.drawLine(s.globals.padHorizontal + m.offsetX + b, 1 + m.offsetY, s.globals.padHorizontal + m.offsetX + b, s.globals.gridHeight + m.offsetY, m.color, 0); + this.elgrid && this.elgrid.elGridBorders && s.config.grid.show ? this.elgrid.elGridBorders.add(v) : o.add(v) + } + return s.config.yaxis[0].axisTicks.show && this.axesUtils.drawYAxisTicks(b, h.length, s.config.yaxis[0].axisBorder, s.config.yaxis[0].axisTicks, 0, e, o), o + } + }, { + key: "drawXaxisTicks", value: function (t, e, i) { + var a = this.w, s = t; + if (!(t < 0 || t - 2 > a.globals.gridWidth)) { + var r = this.offY + a.config.xaxis.axisTicks.offsetY; + if (e = e + r + a.config.xaxis.axisTicks.height, "top" === a.config.xaxis.position && (e = r - a.config.xaxis.axisTicks.height), a.config.xaxis.axisTicks.show) { + var n = new Mi(this.ctx).drawLine(t + a.config.xaxis.axisTicks.offsetX, r + a.config.xaxis.offsetY, s + a.config.xaxis.axisTicks.offsetX, e + a.config.xaxis.offsetY, a.config.xaxis.axisTicks.color); + i.add(n), n.node.classList.add("apexcharts-xaxis-tick") + } + } + } + }, { + key: "getXAxisTicksPositions", value: function () { + var t = this.w, e = [], i = this.xaxisLabels.length, a = t.globals.padHorizontal; + if (t.globals.timescaleLabels.length > 0) for (var s = 0; s < i; s++) a = this.xaxisLabels[s].position, e.push(a); else for (var r = i, n = 0; n < r; n++) { + var o = r; + t.globals.isXNumeric && "bar" !== t.config.chart.type && (o -= 1), a += t.globals.gridWidth / o, e.push(a) + } + return e + } + }, { + key: "xAxisLabelCorrections", value: function () { + var t = this.w, e = new Mi(this.ctx), + i = t.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g"), + a = t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)"), + s = t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-inversed text"), + r = t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-inversed-texts-g text tspan"); + if (t.globals.rotateXLabels || t.config.xaxis.labels.rotateAlways) for (var n = 0; n < a.length; n++) { + var o = e.rotateAroundCenter(a[n]); + o.y = o.y - 1, o.x = o.x + 1, a[n].setAttribute("transform", "rotate(".concat(t.config.xaxis.labels.rotate, " ").concat(o.x, " ").concat(o.y, ")")), a[n].setAttribute("text-anchor", "end"); + i.setAttribute("transform", "translate(0, ".concat(-10, ")")); + var l = a[n].childNodes; + t.config.xaxis.labels.trim && Array.prototype.forEach.call(l, (function (i) { + e.placeTextWithEllipsis(i, i.textContent, t.globals.xAxisLabelsHeight - ("bottom" === t.config.legend.position ? 20 : 10)) + })) + } else !function () { + for (var i = t.globals.gridWidth / (t.globals.labels.length + 1), s = 0; s < a.length; s++) { + var r = a[s].childNodes; + t.config.xaxis.labels.trim && "datetime" !== t.config.xaxis.type && Array.prototype.forEach.call(r, (function (t) { + e.placeTextWithEllipsis(t, t.textContent, i) + })) + } + }(); + if (s.length > 0) { + var h = s[s.length - 1].getBBox(), c = s[0].getBBox(); + h.x < -20 && s[s.length - 1].parentNode.removeChild(s[s.length - 1]), c.x + c.width > t.globals.gridWidth && !t.globals.isBarHorizontal && s[0].parentNode.removeChild(s[0]); + for (var d = 0; d < r.length; d++) e.placeTextWithEllipsis(r[d], r[d].textContent, t.config.yaxis[0].labels.maxWidth - (t.config.yaxis[0].title.text ? 2 * parseFloat(t.config.yaxis[0].title.style.fontSize) : 0) - 15) + } + } + }]), t + }(), ta = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w; + var a = this.w; + this.xaxisLabels = a.globals.labels.slice(), this.axesUtils = new Ri(e), this.isRangeBar = a.globals.seriesRange.length && a.globals.isBarHorizontal, a.globals.timescaleLabels.length > 0 && (this.xaxisLabels = a.globals.timescaleLabels.slice()) + } + + return s(t, [{ + key: "drawGridArea", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e = this.w, + i = new Mi(this.ctx); + t || (t = i.group({class: "apexcharts-grid"})); + var a = i.drawLine(e.globals.padHorizontal, 1, e.globals.padHorizontal, e.globals.gridHeight, "transparent"), + s = i.drawLine(e.globals.padHorizontal, e.globals.gridHeight, e.globals.gridWidth, e.globals.gridHeight, "transparent"); + return t.add(s), t.add(a), t + } + }, { + key: "drawGrid", value: function () { + if (this.w.globals.axisCharts) { + var t = this.renderGrid(); + return this.drawGridArea(t.el), t + } + return null + } + }, { + key: "createGridMask", value: function () { + var t = this.w, e = t.globals, i = new Mi(this.ctx), + a = Array.isArray(t.config.stroke.width) ? Math.max.apply(Math, f(t.config.stroke.width)) : t.config.stroke.width, + s = function (t) { + var i = document.createElementNS(e.SVGNS, "clipPath"); + return i.setAttribute("id", t), i + }; + e.dom.elGridRectMask = s("gridRectMask".concat(e.cuid)), e.dom.elGridRectBarMask = s("gridRectBarMask".concat(e.cuid)), e.dom.elGridRectMarkerMask = s("gridRectMarkerMask".concat(e.cuid)), e.dom.elForecastMask = s("forecastMask".concat(e.cuid)), e.dom.elNonForecastMask = s("nonForecastMask".concat(e.cuid)); + var r = 0, n = 0; + (["bar", "rangeBar", "candlestick", "boxPlot"].includes(t.config.chart.type) || t.globals.comboBarCount > 0) && t.globals.isXNumeric && !t.globals.isBarHorizontal && (r = Math.max(t.config.grid.padding.left, e.barPadForNumericAxis), n = Math.max(t.config.grid.padding.right, e.barPadForNumericAxis)), e.dom.elGridRect = i.drawRect(-a / 2 - 2, -a / 2 - 2, e.gridWidth + a + 4, e.gridHeight + a + 4, 0, "#fff"), e.dom.elGridRectBar = i.drawRect(-a / 2 - r - 2, -a / 2 - 2, e.gridWidth + a + n + r + 4, e.gridHeight + a + 4, 0, "#fff"); + var o = t.globals.markers.largestSize; + e.dom.elGridRectMarker = i.drawRect(Math.min(-a / 2 - r - 2, -o), -o, e.gridWidth + Math.max(a + n + r + 4, 2 * o), e.gridHeight + 2 * o, 0, "#fff"), e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node), e.dom.elGridRectBarMask.appendChild(e.dom.elGridRectBar.node), e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node); + var l = e.dom.baseEl.querySelector("defs"); + l.appendChild(e.dom.elGridRectMask), l.appendChild(e.dom.elGridRectBarMask), l.appendChild(e.dom.elGridRectMarkerMask), l.appendChild(e.dom.elForecastMask), l.appendChild(e.dom.elNonForecastMask) + } + }, { + key: "_drawGridLines", value: function (t) { + var e = t.i, i = t.x1, a = t.y1, s = t.x2, r = t.y2, n = t.xCount, o = t.parent, l = this.w; + if (!(0 === e && l.globals.skipFirstTimelinelabel || e === n - 1 && l.globals.skipLastTimelinelabel && !l.config.xaxis.labels.formatter || "radar" === l.config.chart.type)) { + l.config.grid.xaxis.lines.show && this._drawGridLine({ + i: e, + x1: i, + y1: a, + x2: s, + y2: r, + xCount: n, + parent: o + }); + var h = 0; + if (l.globals.hasXaxisGroups && "between" === l.config.xaxis.tickPlacement) { + var c = l.globals.groups; + if (c) { + for (var d = 0, u = 0; d < e && u < c.length; u++) d += c[u].cols; + d === e && (h = .6 * l.globals.xAxisLabelsHeight) + } + } + new Ki(this.ctx).drawXaxisTicks(i, h, l.globals.dom.elGraphical) + } + } + }, { + key: "_drawGridLine", value: function (t) { + var e = t.i, i = t.x1, a = t.y1, s = t.x2, r = t.y2, n = t.xCount, o = t.parent, l = this.w, + h = o.node.classList.contains("apexcharts-gridlines-horizontal"), + c = l.globals.barPadForNumericAxis, + d = 0 === a && 0 === r || 0 === i && 0 === s || a === l.globals.gridHeight && r === l.globals.gridHeight || l.globals.isBarHorizontal && (0 === e || e === n - 1), + u = new Mi(this).drawLine(i - (h ? c : 0), a, s + (h ? c : 0), r, l.config.grid.borderColor, l.config.grid.strokeDashArray); + u.node.classList.add("apexcharts-gridline"), d && l.config.grid.show ? this.elGridBorders.add(u) : o.add(u) + } + }, { + key: "_drawGridBandRect", value: function (t) { + var e = t.c, i = t.x1, a = t.y1, s = t.x2, r = t.y2, n = t.type, o = this.w, l = new Mi(this.ctx), + h = o.globals.barPadForNumericAxis, c = o.config.grid[n].colors[e], + d = l.drawRect(i - ("row" === n ? h : 0), a, s + ("row" === n ? 2 * h : 0), r, 0, c, o.config.grid[n].opacity); + this.elg.add(d), d.attr("clip-path", "url(#gridRectMask".concat(o.globals.cuid, ")")), d.node.classList.add("apexcharts-grid-".concat(n)) + } + }, { + key: "_drawXYLines", value: function (t) { + var e = this, i = t.xCount, a = t.tickAmount, s = this.w; + if (s.config.grid.xaxis.lines.show || s.config.xaxis.axisTicks.show) { + var r, n = s.globals.padHorizontal, o = s.globals.gridHeight; + s.globals.timescaleLabels.length ? function (t) { + for (var a = t.xC, s = t.x1, r = t.y1, n = t.x2, o = t.y2, l = 0; l < a; l++) s = e.xaxisLabels[l].position, n = e.xaxisLabels[l].position, e._drawGridLines({ + i: l, + x1: s, + y1: r, + x2: n, + y2: o, + xCount: i, + parent: e.elgridLinesV + }) + }({ + xC: i, + x1: n, + y1: 0, + x2: r, + y2: o + }) : (s.globals.isXNumeric && (i = s.globals.xAxisScale.result.length), function (t) { + for (var a = t.xC, r = t.x1, n = t.y1, o = t.x2, l = t.y2, h = 0; h < a + (s.globals.isXNumeric ? 0 : 1); h++) 0 === h && 1 === a && 1 === s.globals.dataPoints && (o = r = s.globals.gridWidth / 2), e._drawGridLines({ + i: h, + x1: r, + y1: n, + x2: o, + y2: l, + xCount: i, + parent: e.elgridLinesV + }), o = r += s.globals.gridWidth / (s.globals.isXNumeric ? a - 1 : a) + }({xC: i, x1: n, y1: 0, x2: r, y2: o})) + } + if (s.config.grid.yaxis.lines.show) { + var l = 0, h = 0, c = s.globals.gridWidth, d = a + 1; + this.isRangeBar && (d = s.globals.labels.length); + for (var u = 0; u < d + (this.isRangeBar ? 1 : 0); u++) this._drawGridLine({ + i: u, + xCount: d + (this.isRangeBar ? 1 : 0), + x1: 0, + y1: l, + x2: c, + y2: h, + parent: this.elgridLinesH + }), h = l += s.globals.gridHeight / (this.isRangeBar ? d : a) + } + } + }, { + key: "_drawInvertedXYLines", value: function (t) { + var e = t.xCount, i = this.w; + if (i.config.grid.xaxis.lines.show || i.config.xaxis.axisTicks.show) for (var a, s = i.globals.padHorizontal, r = i.globals.gridHeight, n = 0; n < e + 1; n++) { + i.config.grid.xaxis.lines.show && this._drawGridLine({ + i: n, + xCount: e + 1, + x1: s, + y1: 0, + x2: a, + y2: r, + parent: this.elgridLinesV + }), new Ki(this.ctx).drawXaxisTicks(s, 0, i.globals.dom.elGraphical), a = s += i.globals.gridWidth / e + } + if (i.config.grid.yaxis.lines.show) for (var o = 0, l = 0, h = i.globals.gridWidth, c = 0; c < i.globals.dataPoints + 1; c++) this._drawGridLine({ + i: c, + xCount: i.globals.dataPoints + 1, + x1: 0, + y1: o, + x2: h, + y2: l, + parent: this.elgridLinesH + }), l = o += i.globals.gridHeight / i.globals.dataPoints + } + }, { + key: "renderGrid", value: function () { + var t = this.w, e = t.globals, i = new Mi(this.ctx); + this.elg = i.group({class: "apexcharts-grid"}), this.elgridLinesH = i.group({class: "apexcharts-gridlines-horizontal"}), this.elgridLinesV = i.group({class: "apexcharts-gridlines-vertical"}), this.elGridBorders = i.group({class: "apexcharts-grid-borders"}), this.elg.add(this.elgridLinesH), this.elg.add(this.elgridLinesV), t.config.grid.show || (this.elgridLinesV.hide(), this.elgridLinesH.hide(), this.elGridBorders.hide()); + for (var a = 0; a < e.seriesYAxisMap.length && e.ignoreYAxisIndexes.includes(a);) a++; + a === e.seriesYAxisMap.length && (a = 0); + var s, r = e.yAxisScale[a].result.length - 1; + if (!e.isBarHorizontal || this.isRangeBar) { + var n, o, l; + if (s = this.xaxisLabels.length, this.isRangeBar) r = e.labels.length, t.config.xaxis.tickAmount && t.config.xaxis.labels.formatter && (s = t.config.xaxis.tickAmount), (null === (n = e.yAxisScale) || void 0 === n || null === (o = n[a]) || void 0 === o || null === (l = o.result) || void 0 === l ? void 0 : l.length) > 0 && "datetime" !== t.config.xaxis.type && (s = e.yAxisScale[a].result.length - 1); + this._drawXYLines({xCount: s, tickAmount: r}) + } else s = r, r = e.xTickAmount, this._drawInvertedXYLines({xCount: s, tickAmount: r}); + return this.drawGridBands(s, r), { + el: this.elg, + elGridBorders: this.elGridBorders, + xAxisTickWidth: e.gridWidth / s + } + } + }, { + key: "drawGridBands", value: function (t, e) { + var i, a, s = this, r = this.w; + if ((null === (i = r.config.grid.row.colors) || void 0 === i ? void 0 : i.length) > 0 && function (t, i, a, n, o, l) { + for (var h = 0, c = 0; h < i; h++, c++) c >= r.config.grid[t].colors.length && (c = 0), s._drawGridBandRect({ + c: c, + x1: a, + y1: n, + x2: o, + y2: l, + type: t + }), n += r.globals.gridHeight / e + }("row", e, 0, 0, r.globals.gridWidth, r.globals.gridHeight / e), (null === (a = r.config.grid.column.colors) || void 0 === a ? void 0 : a.length) > 0) { + var n = r.globals.isBarHorizontal || "on" !== r.config.xaxis.tickPlacement || "category" !== r.config.xaxis.type && !r.config.xaxis.convertedCatToNumeric ? t : t - 1; + r.globals.isXNumeric && (n = r.globals.xAxisScale.result.length - 1); + for (var o = r.globals.padHorizontal, l = r.globals.padHorizontal + r.globals.gridWidth / n, h = r.globals.gridHeight, c = 0, d = 0; c < t; c++, d++) { + var u; + if (d >= r.config.grid.column.colors.length && (d = 0), "datetime" === r.config.xaxis.type) o = this.xaxisLabels[c].position, l = ((null === (u = this.xaxisLabels[c + 1]) || void 0 === u ? void 0 : u.position) || r.globals.gridWidth) - this.xaxisLabels[c].position; + this._drawGridBandRect({ + c: d, + x1: o, + y1: 0, + x2: l, + y2: h, + type: "column" + }), o += r.globals.gridWidth / n + } + } + } + }]), t + }(), ea = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.coreUtils = new Pi(this.ctx) + } + + return s(t, [{ + key: "niceScale", value: function (t, e) { + var i, a, s, r, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, o = 1e-11, + l = this.w, h = l.globals; + h.isBarHorizontal ? (i = l.config.xaxis, a = Math.max((h.svgWidth - 100) / 25, 2)) : (i = l.config.yaxis[n], a = Math.max((h.svgHeight - 100) / 15, 2)), v.isNumber(a) || (a = 10), s = void 0 !== i.min && null !== i.min, r = void 0 !== i.max && null !== i.min; + var c = void 0 !== i.stepSize && null !== i.stepSize, + d = void 0 !== i.tickAmount && null !== i.tickAmount, + u = d ? i.tickAmount : h.niceScaleDefaultTicks[Math.min(Math.round(a / 2), h.niceScaleDefaultTicks.length - 1)]; + if (h.isMultipleYAxis && !d && h.multiAxisTickAmount > 0 && (u = h.multiAxisTickAmount, d = !0), u = "dataPoints" === u ? h.dataPoints - 1 : Math.abs(Math.round(u)), (t === Number.MIN_VALUE && 0 === e || !v.isNumber(t) && !v.isNumber(e) || t === Number.MIN_VALUE && e === -Number.MAX_VALUE) && (t = v.isNumber(i.min) ? i.min : 0, e = v.isNumber(i.max) ? i.max : t + u, h.allSeriesCollapsed = !1), t > e) { + console.warn("axis.min cannot be greater than axis.max: swapping min and max"); + var g = e; + e = t, t = g + } else t === e && (t = 0 === t ? 0 : t - 1, e = 0 === e ? 2 : e + 1); + var p = []; + u < 1 && (u = 1); + var f = u, x = Math.abs(e - t); + !s && t > 0 && t / x < .15 && (t = 0, s = !0), !r && e < 0 && -e / x < .15 && (e = 0, r = !0); + var b = (x = Math.abs(e - t)) / f, m = b, y = Math.floor(Math.log10(m)), w = Math.pow(10, y), + k = Math.ceil(m / w); + if (b = m = (k = h.niceScaleAllowedMagMsd[0 === h.yValueDecimal ? 0 : 1][k]) * w, h.isBarHorizontal && i.stepSize && "datetime" !== i.type ? (b = i.stepSize, c = !0) : c && (b = i.stepSize), c && i.forceNiceScale) { + var A = Math.floor(Math.log10(b)); + b *= Math.pow(10, y - A) + } + if (s && r) { + var C = x / f; + if (d) if (c) if (0 != v.mod(x, b)) { + var S = v.getGCD(b, C); + b = C / S < 10 ? S : C + } else 0 == v.mod(b, C) ? b = C : (C = b, d = !1); else b = C; else if (c) 0 == v.mod(x, b) ? C = b : b = C; else if (0 == v.mod(x, b)) C = b; else { + C = x / (f = Math.ceil(x / b)); + var L = v.getGCD(x, b); + x / L < a && (C = L), b = C + } + f = Math.round(x / b) + } else { + if (s || r) { + if (r) if (d) t = e - b * f; else { + var M = t; + t = b * Math.floor(t / b), Math.abs(e - t) / v.getGCD(x, b) > a && (t = e - b * u, t += b * Math.floor((M - t) / b)) + } else if (s) if (d) e = t + b * f; else { + var P = e; + e = b * Math.ceil(e / b), Math.abs(e - t) / v.getGCD(x, b) > a && (e = t + b * u, e += b * Math.ceil((P - e) / b)) + } + } else if (h.isMultipleYAxis && d) { + var I = b * Math.floor(t / b), T = I + b * f; + T < e && (b *= 2), T = e, e = (t = I) + b * f, x = Math.abs(e - t), t > 0 && t < Math.abs(T - e) && (t = 0, e = b * f), e < 0 && -e < Math.abs(I - t) && (e = 0, t = -b * f) + } else t = b * Math.floor(t / b), e = b * Math.ceil(e / b); + x = Math.abs(e - t), b = v.getGCD(x, b), f = Math.round(x / b) + } + if (d || s || r || (f = Math.ceil((x - o) / (b + o))) > 16 && v.getPrimeFactors(f).length < 2 && f++, !d && i.forceNiceScale && 0 === h.yValueDecimal && f > x && (f = x, b = Math.round(x / f)), f > a && (!d && !c || i.forceNiceScale)) { + var z = v.getPrimeFactors(f), X = z.length - 1, R = f; + t:for (var E = 0; E < X; E++) for (var Y = 0; Y <= X - E; Y++) { + for (var H = Math.min(Y + E, X), O = R, F = 1, D = Y; D <= H; D++) F *= z[D]; + if ((O /= F) < a) { + R = O; + break t + } + } + b = R === f ? x : x / R, f = Math.round(x / b) + } + h.isMultipleYAxis && 0 == h.multiAxisTickAmount && h.ignoreYAxisIndexes.indexOf(n) < 0 && (h.multiAxisTickAmount = f); + var _ = t - b, N = b * o; + do { + _ += b, p.push(v.stripNumber(_, 7)) + } while (e - _ > N); + return {result: p, niceMin: p[0], niceMax: p[p.length - 1]} + } + }, { + key: "linearScale", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, + s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : void 0, r = Math.abs(e - t), + n = []; + if (t === e) return {result: n = [t], niceMin: n[0], niceMax: n[n.length - 1]}; + "dataPoints" === (i = this._adjustTicksForSmallRange(i, a, r)) && (i = this.w.globals.dataPoints - 1), s || (s = r / i), s = Math.round(100 * (s + Number.EPSILON)) / 100, i === Number.MAX_VALUE && (i = 5, s = 1); + for (var o = t; i >= 0;) n.push(o), o = v.preciseAddition(o, s), i -= 1; + return {result: n, niceMin: n[0], niceMax: n[n.length - 1]} + } + }, { + key: "logarithmicScaleNice", value: function (t, e, i) { + e <= 0 && (e = Math.max(t, i)), t <= 0 && (t = Math.min(e, i)); + for (var a = [], s = Math.ceil(Math.log(e) / Math.log(i) + 1), r = Math.floor(Math.log(t) / Math.log(i)); r < s; r++) a.push(Math.pow(i, r)); + return {result: a, niceMin: a[0], niceMax: a[a.length - 1]} + } + }, { + key: "logarithmicScale", value: function (t, e, i) { + e <= 0 && (e = Math.max(t, i)), t <= 0 && (t = Math.min(e, i)); + for (var a = [], s = Math.log(e) / Math.log(i), r = Math.log(t) / Math.log(i), n = s - r, o = Math.round(n), l = n / o, h = 0, c = r; h < o; h++, c += l) a.push(Math.pow(i, c)); + return a.push(Math.pow(i, s)), {result: a, niceMin: t, niceMax: e} + } + }, { + key: "_adjustTicksForSmallRange", value: function (t, e, i) { + var a = t; + if (void 0 !== e && this.w.config.yaxis[e].labels.formatter && void 0 === this.w.config.yaxis[e].tickAmount) { + var s = Number(this.w.config.yaxis[e].labels.formatter(1)); + v.isNumber(s) && 0 === this.w.globals.yValueDecimal && (a = Math.ceil(i)) + } + return a < t ? a : t + } + }, { + key: "setYScaleForIndex", value: function (t, e, i) { + var a = this.w.globals, s = this.w.config, r = a.isBarHorizontal ? s.xaxis : s.yaxis[t]; + void 0 === a.yAxisScale[t] && (a.yAxisScale[t] = []); + var n = Math.abs(i - e); + r.logarithmic && n <= 5 && (a.invalidLogScale = !0), r.logarithmic && n > 5 ? (a.allSeriesCollapsed = !1, a.yAxisScale[t] = r.forceNiceScale ? this.logarithmicScaleNice(e, i, r.logBase) : this.logarithmicScale(e, i, r.logBase)) : i !== -Number.MAX_VALUE && v.isNumber(i) && e !== Number.MAX_VALUE && v.isNumber(e) ? (a.allSeriesCollapsed = !1, a.yAxisScale[t] = this.niceScale(e, i, t)) : a.yAxisScale[t] = this.niceScale(Number.MIN_VALUE, 0, t) + } + }, { + key: "setXScale", value: function (t, e) { + var i = this.w, a = i.globals; + if (e !== -Number.MAX_VALUE && v.isNumber(e)) { + var s = a.xTickAmount; + a.xAxisScale = this.linearScale(t, e, s, 0, void 0 === i.config.xaxis.max ? i.config.xaxis.stepSize : void 0) + } else a.xAxisScale = this.linearScale(0, 10, 10); + return a.xAxisScale + } + }, { + key: "scaleMultipleYAxes", value: function () { + var t = this, e = this.w.config, i = this.w.globals; + this.coreUtils.setSeriesYAxisMappings(); + var a = i.seriesYAxisMap, s = i.minYArr, r = i.maxYArr; + i.allSeriesCollapsed = !0, i.barGroups = [], a.forEach((function (a, n) { + var o = []; + a.forEach((function (t) { + var i, a = null === (i = e.series[t]) || void 0 === i ? void 0 : i.group; + o.indexOf(a) < 0 && o.push(a) + })), a.length > 0 ? function () { + var l, h, c = Number.MAX_VALUE, d = -Number.MAX_VALUE, u = c, g = d; + if (e.chart.stacked) !function () { + var t = new Array(i.dataPoints).fill(0), s = [], r = [], p = []; + o.forEach((function () { + s.push(t.map((function () { + return Number.MIN_VALUE + }))), r.push(t.map((function () { + return Number.MIN_VALUE + }))), p.push(t.map((function () { + return Number.MIN_VALUE + }))) + })); + for (var f = function (t) { + !l && e.series[a[t]].type && (l = e.series[a[t]].type); + var c = a[t]; + h = e.series[c].group ? e.series[c].group : "axis-".concat(n), !(i.collapsedSeriesIndices.indexOf(c) < 0 && i.ancillaryCollapsedSeriesIndices.indexOf(c) < 0) || (i.allSeriesCollapsed = !1, o.forEach((function (t, a) { + if (e.series[c].group === t) for (var n = 0; n < i.series[c].length; n++) { + var o = i.series[c][n]; + o >= 0 ? r[a][n] += o : p[a][n] += o, s[a][n] += o, u = Math.min(u, o), g = Math.max(g, o) + } + }))), "bar" !== l && "column" !== l || i.barGroups.push(h) + }, x = 0; x < a.length; x++) f(x); + l || (l = e.chart.type), "bar" === l || "column" === l ? o.forEach((function (t, e) { + c = Math.min(c, Math.min.apply(null, p[e])), d = Math.max(d, Math.max.apply(null, r[e])) + })) : (o.forEach((function (t, e) { + u = Math.min(u, Math.min.apply(null, s[e])), g = Math.max(g, Math.max.apply(null, s[e])) + })), c = u, d = g), c === Number.MIN_VALUE && d === Number.MIN_VALUE && (d = -Number.MAX_VALUE) + }(); else for (var p = 0; p < a.length; p++) { + var f = a[p]; + c = Math.min(c, s[f]), d = Math.max(d, r[f]), !(i.collapsedSeriesIndices.indexOf(f) < 0 && i.ancillaryCollapsedSeriesIndices.indexOf(f) < 0) || (i.allSeriesCollapsed = !1) + } + void 0 !== e.yaxis[n].min && (c = "function" == typeof e.yaxis[n].min ? e.yaxis[n].min(c) : e.yaxis[n].min), void 0 !== e.yaxis[n].max && (d = "function" == typeof e.yaxis[n].max ? e.yaxis[n].max(d) : e.yaxis[n].max), i.barGroups = i.barGroups.filter((function (t, e, i) { + return i.indexOf(t) === e + })), t.setYScaleForIndex(n, c, d), a.forEach((function (t) { + s[t] = i.yAxisScale[n].niceMin, r[t] = i.yAxisScale[n].niceMax + })) + }() : t.setYScaleForIndex(n, 0, -Number.MAX_VALUE) + })) + } + }]), t + }(), ia = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.scales = new ea(e) + } + + return s(t, [{ + key: "init", value: function () { + this.setYRange(), this.setXRange(), this.setZRange() + } + }, { + key: "getMinYMaxY", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE, + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -Number.MAX_VALUE, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s = this.w.config, + r = this.w.globals, n = -Number.MAX_VALUE, o = Number.MIN_VALUE; + null === a && (a = t + 1); + var l = r.series, h = l, c = l; + "candlestick" === s.chart.type ? (h = r.seriesCandleL, c = r.seriesCandleH) : "boxPlot" === s.chart.type ? (h = r.seriesCandleO, c = r.seriesCandleC) : r.isRangeData && (h = r.seriesRangeStart, c = r.seriesRangeEnd); + var d = !1; + if (r.seriesX.length >= a) { + var u, g = null === (u = r.brushSource) || void 0 === u ? void 0 : u.w.config.chart.brush; + (s.chart.zoom.enabled && s.chart.zoom.autoScaleYaxis || null != g && g.enabled && null != g && g.autoScaleYaxis) && (d = !0) + } + for (var p = t; p < a; p++) { + r.dataPoints = Math.max(r.dataPoints, l[p].length); + var f = s.series[p].type; + r.categoryLabels.length && (r.dataPoints = r.categoryLabels.filter((function (t) { + return void 0 !== t + })).length), r.labels.length && "datetime" !== s.xaxis.type && 0 !== r.series.reduce((function (t, e) { + return t + e.length + }), 0) && (r.dataPoints = Math.max(r.dataPoints, r.labels.length)); + var x = 0, b = l[p].length - 1; + if (d) { + if (s.xaxis.min) for (; x < b && r.seriesX[p][x] < s.xaxis.min; x++) ; + if (s.xaxis.max) for (; b > x && r.seriesX[p][b] > s.xaxis.max; b--) ; + } + for (var m = x; m <= b && m < r.series[p].length; m++) { + var y = l[p][m]; + if (null !== y && v.isNumber(y)) { + var w, k, A, C; + switch (void 0 !== (null === (w = c[p]) || void 0 === w ? void 0 : w[m]) && (n = Math.max(n, c[p][m]), e = Math.min(e, c[p][m])), void 0 !== (null === (k = h[p]) || void 0 === k ? void 0 : k[m]) && (e = Math.min(e, h[p][m]), i = Math.max(i, h[p][m])), f) { + case"candlestick": + void 0 !== r.seriesCandleC[p][m] && (n = Math.max(n, r.seriesCandleH[p][m]), e = Math.min(e, r.seriesCandleL[p][m])); + break; + case"boxPlot": + void 0 !== r.seriesCandleC[p][m] && (n = Math.max(n, r.seriesCandleC[p][m]), e = Math.min(e, r.seriesCandleO[p][m])) + } + f && "candlestick" !== f && "boxPlot" !== f && "rangeArea" !== f && "rangeBar" !== f && (n = Math.max(n, r.series[p][m]), e = Math.min(e, r.series[p][m])), r.seriesGoals[p] && r.seriesGoals[p][m] && Array.isArray(r.seriesGoals[p][m]) && r.seriesGoals[p][m].forEach((function (t) { + n = Math.max(n, t.value), e = Math.min(e, t.value) + })), i = n, y = v.noExponents(y), v.isFloat(y) && (r.yValueDecimal = Math.max(r.yValueDecimal, y.toString().split(".")[1].length)), o > (null === (A = h[p]) || void 0 === A ? void 0 : A[m]) && (null === (C = h[p]) || void 0 === C ? void 0 : C[m]) < 0 && (o = h[p][m]) + } else r.hasNullValues = !0 + } + "bar" !== f && "column" !== f || (o < 0 && n < 0 && (n = 0, i = Math.max(i, 0)), o === Number.MIN_VALUE && (o = 0, e = Math.min(e, 0))) + } + return "rangeBar" === s.chart.type && r.seriesRangeStart.length && r.isBarHorizontal && (o = e), "bar" === s.chart.type && (o < 0 && n < 0 && (n = 0), o === Number.MIN_VALUE && (o = 0)), { + minY: o, + maxY: n, + lowestY: e, + highestY: i + } + } + }, { + key: "setYRange", value: function () { + var t = this.w.globals, e = this.w.config; + t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE; + var i, a = Number.MAX_VALUE; + if (t.isMultipleYAxis) { + a = Number.MAX_VALUE; + for (var s = 0; s < t.series.length; s++) i = this.getMinYMaxY(s), t.minYArr[s] = i.lowestY, t.maxYArr[s] = i.highestY, a = Math.min(a, i.lowestY) + } + if (i = this.getMinYMaxY(0, a, null, t.series.length), "bar" === e.chart.type ? (t.minY = i.minY, t.maxY = i.maxY) : (t.minY = i.lowestY, t.maxY = i.highestY), a = i.lowestY, e.chart.stacked && this._setStackedMinMax(), "line" === e.chart.type || "area" === e.chart.type || "scatter" === e.chart.type || "candlestick" === e.chart.type || "boxPlot" === e.chart.type || "rangeBar" === e.chart.type && !t.isBarHorizontal ? t.minY === Number.MIN_VALUE && a !== -Number.MAX_VALUE && a !== t.maxY && (t.minY = a) : t.minY = t.minY !== Number.MIN_VALUE ? Math.min(i.minY, t.minY) : i.minY, e.yaxis.forEach((function (e, i) { + void 0 !== e.max && ("number" == typeof e.max ? t.maxYArr[i] = e.max : "function" == typeof e.max && (t.maxYArr[i] = e.max(t.isMultipleYAxis ? t.maxYArr[i] : t.maxY)), t.maxY = t.maxYArr[i]), void 0 !== e.min && ("number" == typeof e.min ? t.minYArr[i] = e.min : "function" == typeof e.min && (t.minYArr[i] = e.min(t.isMultipleYAxis ? t.minYArr[i] === Number.MIN_VALUE ? 0 : t.minYArr[i] : t.minY)), t.minY = t.minYArr[i]) + })), t.isBarHorizontal) { + ["min", "max"].forEach((function (i) { + void 0 !== e.xaxis[i] && "number" == typeof e.xaxis[i] && ("min" === i ? t.minY = e.xaxis[i] : t.maxY = e.xaxis[i]) + })) + } + return t.isMultipleYAxis ? (this.scales.scaleMultipleYAxes(), t.minY = a) : (this.scales.setYScaleForIndex(0, t.minY, t.maxY), t.minY = t.yAxisScale[0].niceMin, t.maxY = t.yAxisScale[0].niceMax, t.minYArr[0] = t.minY, t.maxYArr[0] = t.maxY), t.barGroups = [], t.lineGroups = [], t.areaGroups = [], e.series.forEach((function (i) { + switch (i.type || e.chart.type) { + case"bar": + case"column": + t.barGroups.push(i.group); + break; + case"line": + t.lineGroups.push(i.group); + break; + case"area": + t.areaGroups.push(i.group) + } + })), t.barGroups = t.barGroups.filter((function (t, e, i) { + return i.indexOf(t) === e + })), t.lineGroups = t.lineGroups.filter((function (t, e, i) { + return i.indexOf(t) === e + })), t.areaGroups = t.areaGroups.filter((function (t, e, i) { + return i.indexOf(t) === e + })), {minY: t.minY, maxY: t.maxY, minYArr: t.minYArr, maxYArr: t.maxYArr, yAxisScale: t.yAxisScale} + } + }, { + key: "setXRange", value: function () { + var t = this.w.globals, e = this.w.config, + i = "numeric" === e.xaxis.type || "datetime" === e.xaxis.type || "category" === e.xaxis.type && !t.noLabelsProvided || t.noLabelsProvided || t.isXNumeric; + if (t.isXNumeric && function () { + for (var e = 0; e < t.series.length; e++) if (t.labels[e]) for (var i = 0; i < t.labels[e].length; i++) null !== t.labels[e][i] && v.isNumber(t.labels[e][i]) && (t.maxX = Math.max(t.maxX, t.labels[e][i]), t.initialMaxX = Math.max(t.maxX, t.labels[e][i]), t.minX = Math.min(t.minX, t.labels[e][i]), t.initialMinX = Math.min(t.minX, t.labels[e][i])) + }(), t.noLabelsProvided && 0 === e.xaxis.categories.length && (t.maxX = t.labels[t.labels.length - 1], t.initialMaxX = t.labels[t.labels.length - 1], t.minX = 1, t.initialMinX = 1), t.isXNumeric || t.noLabelsProvided || t.dataFormatXNumeric) { + var a = 10; + if (void 0 === e.xaxis.tickAmount) a = Math.round(t.svgWidth / 150), "numeric" === e.xaxis.type && t.dataPoints < 30 && (a = t.dataPoints - 1), a > t.dataPoints && 0 !== t.dataPoints && (a = t.dataPoints - 1); else if ("dataPoints" === e.xaxis.tickAmount) { + if (t.series.length > 1 && (a = t.series[t.maxValsInArrayIndex].length - 1), t.isXNumeric) { + var s = Math.round(t.maxX - t.minX); + s < 30 && (a = s) + } + } else a = e.xaxis.tickAmount; + if (t.xTickAmount = a, void 0 !== e.xaxis.max && "number" == typeof e.xaxis.max && (t.maxX = e.xaxis.max), void 0 !== e.xaxis.min && "number" == typeof e.xaxis.min && (t.minX = e.xaxis.min), void 0 !== e.xaxis.range && (t.minX = t.maxX - e.xaxis.range), t.minX !== Number.MAX_VALUE && t.maxX !== -Number.MAX_VALUE) if (e.xaxis.convertedCatToNumeric && !t.dataFormatXNumeric) { + for (var r = [], n = t.minX - 1; n < t.maxX; n++) r.push(n + 1); + t.xAxisScale = {result: r, niceMin: r[0], niceMax: r[r.length - 1]} + } else t.xAxisScale = this.scales.setXScale(t.minX, t.maxX); else t.xAxisScale = this.scales.linearScale(0, a, a, 0, e.xaxis.stepSize), t.noLabelsProvided && t.labels.length > 0 && (t.xAxisScale = this.scales.linearScale(1, t.labels.length, a - 1, 0, e.xaxis.stepSize), t.seriesX = t.labels.slice()); + i && (t.labels = t.xAxisScale.result.slice()) + } + return t.isBarHorizontal && t.labels.length && (t.xTickAmount = t.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), { + minX: t.minX, + maxX: t.maxX + } + } + }, { + key: "setZRange", value: function () { + var t = this.w.globals; + if (t.isDataXYZ) for (var e = 0; e < t.series.length; e++) if (void 0 !== t.seriesZ[e]) for (var i = 0; i < t.seriesZ[e].length; i++) null !== t.seriesZ[e][i] && v.isNumber(t.seriesZ[e][i]) && (t.maxZ = Math.max(t.maxZ, t.seriesZ[e][i]), t.minZ = Math.min(t.minZ, t.seriesZ[e][i])) + } + }, { + key: "_handleSingleDataPoint", value: function () { + var t = this.w.globals, e = this.w.config; + if (t.minX === t.maxX) { + var i = new zi(this.ctx); + if ("datetime" === e.xaxis.type) { + var a = i.getDate(t.minX); + e.xaxis.labels.datetimeUTC ? a.setUTCDate(a.getUTCDate() - 2) : a.setDate(a.getDate() - 2), t.minX = new Date(a).getTime(); + var s = i.getDate(t.maxX); + e.xaxis.labels.datetimeUTC ? s.setUTCDate(s.getUTCDate() + 2) : s.setDate(s.getDate() + 2), t.maxX = new Date(s).getTime() + } else ("numeric" === e.xaxis.type || "category" === e.xaxis.type && !t.noLabelsProvided) && (t.minX = t.minX - 2, t.initialMinX = t.minX, t.maxX = t.maxX + 2, t.initialMaxX = t.maxX) + } + } + }, { + key: "_getMinXDiff", value: function () { + var t = this.w.globals; + t.isXNumeric && t.seriesX.forEach((function (e, i) { + if (e.length) { + 1 === e.length && e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length - 1]); + var a = e.slice(); + a.sort((function (t, e) { + return t - e + })), a.forEach((function (e, i) { + if (i > 0) { + var s = e - a[i - 1]; + s > 0 && (t.minXDiff = Math.min(s, t.minXDiff)) + } + })), 1 !== t.dataPoints && t.minXDiff !== Number.MAX_VALUE || (t.minXDiff = .5) + } + })) + } + }, { + key: "_setStackedMinMax", value: function () { + var t = this, e = this.w.globals; + if (e.series.length) { + var i = e.seriesGroups; + i.length || (i = [this.w.globals.seriesNames.map((function (t) { + return t + }))]); + var a = {}, s = {}; + i.forEach((function (i) { + a[i] = [], s[i] = [], t.w.config.series.map((function (t, a) { + return i.indexOf(e.seriesNames[a]) > -1 ? a : null + })).filter((function (t) { + return null !== t + })).forEach((function (r) { + for (var n = 0; n < e.series[e.maxValsInArrayIndex].length; n++) { + var o, l, h, c; + void 0 === a[i][n] && (a[i][n] = 0, s[i][n] = 0), (t.w.config.chart.stacked && !e.comboCharts || t.w.config.chart.stacked && e.comboCharts && (!t.w.config.chart.stackOnlyBar || "bar" === (null === (o = t.w.config.series) || void 0 === o || null === (l = o[r]) || void 0 === l ? void 0 : l.type) || "column" === (null === (h = t.w.config.series) || void 0 === h || null === (c = h[r]) || void 0 === c ? void 0 : c.type))) && null !== e.series[r][n] && v.isNumber(e.series[r][n]) && (e.series[r][n] > 0 ? a[i][n] += parseFloat(e.series[r][n]) + 1e-4 : s[i][n] += parseFloat(e.series[r][n])) + } + })) + })), Object.entries(a).forEach((function (t) { + var i = p(t, 1)[0]; + a[i].forEach((function (t, r) { + e.maxY = Math.max(e.maxY, a[i][r]), e.minY = Math.min(e.minY, s[i][r]) + })) + })) + } + } + }]), t + }(), aa = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.elgrid = a, this.w = e.w; + var s = this.w; + this.xaxisFontSize = s.config.xaxis.labels.style.fontSize, this.axisFontFamily = s.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = "bar" === s.config.chart.type && s.config.plotOptions.bar.horizontal, this.xAxisoffX = "bottom" === s.config.xaxis.position ? s.globals.gridHeight : 0, this.drawnLabels = [], this.axesUtils = new Ri(e) + } + + return s(t, [{ + key: "drawYaxis", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = e.config.yaxis[t].labels.style, s = a.fontSize, + r = a.fontFamily, n = a.fontWeight, o = i.group({ + class: "apexcharts-yaxis", + rel: t, + transform: "translate(".concat(e.globals.translateYAxisX[t], ", 0)") + }); + if (this.axesUtils.isYAxisHidden(t)) return o; + var l = i.group({class: "apexcharts-yaxis-texts-g"}); + o.add(l); + var h = e.globals.yAxisScale[t].result.length - 1, c = e.globals.gridHeight / h, + d = e.globals.yLabelFormatters[t], + u = this.axesUtils.checkForReversedLabels(t, e.globals.yAxisScale[t].result.slice()); + if (e.config.yaxis[t].labels.show) { + var g = e.globals.translateY + e.config.yaxis[t].labels.offsetY; + e.globals.isBarHorizontal ? g = 0 : "heatmap" === e.config.chart.type && (g -= c / 2), g += parseInt(s, 10) / 3; + for (var p = h; p >= 0; p--) { + var f = d(u[p], p, e), x = e.config.yaxis[t].labels.padding; + e.config.yaxis[t].opposite && 0 !== e.config.yaxis.length && (x *= -1); + var b = this.getTextAnchor(e.config.yaxis[t].labels.align, e.config.yaxis[t].opposite), + m = this.axesUtils.getYAxisForeColor(a.colors, t), y = Array.isArray(m) ? m[p] : m, + w = v.listToArray(e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(t, "'] .apexcharts-yaxis-label tspan"))).map((function (t) { + return t.textContent + })), k = i.drawText({ + x: x, + y: g, + text: w.includes(f) && !e.config.yaxis[t].labels.showDuplicates ? "" : f, + textAnchor: b, + fontSize: s, + fontFamily: r, + fontWeight: n, + maxWidth: e.config.yaxis[t].labels.maxWidth, + foreColor: y, + isPlainText: !1, + cssClass: "apexcharts-yaxis-label ".concat(a.cssClass) + }); + l.add(k), this.addTooltip(k, f), 0 !== e.config.yaxis[t].labels.rotate && this.rotateLabel(i, k, firstLabel, e.config.yaxis[t].labels.rotate), g += c + } + } + return this.addYAxisTitle(i, o, t), this.addAxisBorder(i, o, t, h, c), o + } + }, { + key: "getTextAnchor", value: function (t, e) { + return "left" === t ? "start" : "center" === t ? "middle" : "right" === t ? "end" : e ? "start" : "end" + } + }, { + key: "addTooltip", value: function (t, e) { + var i = document.createElementNS(this.w.globals.SVGNS, "title"); + i.textContent = Array.isArray(e) ? e.join(" ") : e, t.node.appendChild(i) + } + }, { + key: "rotateLabel", value: function (t, e, i, a) { + var s = t.rotateAroundCenter(i.node), r = t.rotateAroundCenter(e.node); + e.node.setAttribute("transform", "rotate(".concat(a, " ").concat(s.x, " ").concat(r.y, ")")) + } + }, { + key: "addYAxisTitle", value: function (t, e, i) { + var a = this.w; + if (void 0 !== a.config.yaxis[i].title.text) { + var s = t.group({class: "apexcharts-yaxis-title"}), + r = a.config.yaxis[i].opposite ? a.globals.translateYAxisX[i] : 0, n = t.drawText({ + x: r, + y: a.globals.gridHeight / 2 + a.globals.translateY + a.config.yaxis[i].title.offsetY, + text: a.config.yaxis[i].title.text, + textAnchor: "end", + foreColor: a.config.yaxis[i].title.style.color, + fontSize: a.config.yaxis[i].title.style.fontSize, + fontWeight: a.config.yaxis[i].title.style.fontWeight, + fontFamily: a.config.yaxis[i].title.style.fontFamily, + cssClass: "apexcharts-yaxis-title-text ".concat(a.config.yaxis[i].title.style.cssClass) + }); + s.add(n), e.add(s) + } + } + }, { + key: "addAxisBorder", value: function (t, e, i, a, s) { + var r = this.w, n = r.config.yaxis[i].axisBorder, o = 31 + n.offsetX; + if (r.config.yaxis[i].opposite && (o = -31 - n.offsetX), n.show) { + var l = t.drawLine(o, r.globals.translateY + n.offsetY - 2, o, r.globals.gridHeight + r.globals.translateY + n.offsetY + 2, n.color, 0, n.width); + e.add(l) + } + r.config.yaxis[i].axisTicks.show && this.axesUtils.drawYAxisTicks(o, a, n, r.config.yaxis[i].axisTicks, i, s, e) + } + }, { + key: "drawYaxisInversed", value: function (t) { + var e = this.w, i = new Mi(this.ctx), + a = i.group({class: "apexcharts-xaxis apexcharts-yaxis-inversed"}), s = i.group({ + class: "apexcharts-xaxis-texts-g", + transform: "translate(".concat(e.globals.translateXAxisX, ", ").concat(e.globals.translateXAxisY, ")") + }); + a.add(s); + var r = e.globals.yAxisScale[t].result.length - 1, n = e.globals.gridWidth / r + .1, + o = n + e.config.xaxis.labels.offsetX, l = e.globals.xLabelFormatter, + h = this.axesUtils.checkForReversedLabels(t, e.globals.yAxisScale[t].result.slice()), + c = e.globals.timescaleLabels; + if (c.length > 0 && (this.xaxisLabels = c.slice(), r = (h = c.slice()).length), e.config.xaxis.labels.show) for (var d = c.length ? 0 : r; c.length ? d < c.length : d >= 0; c.length ? d++ : d--) { + var u = l(h[d], d, e), + g = e.globals.gridWidth + e.globals.padHorizontal - (o - n + e.config.xaxis.labels.offsetX); + if (c.length) { + var p = this.axesUtils.getLabel(h, c, g, d, this.drawnLabels, this.xaxisFontSize); + g = p.x, u = p.text, this.drawnLabels.push(p.text), 0 === d && e.globals.skipFirstTimelinelabel && (u = ""), d === h.length - 1 && e.globals.skipLastTimelinelabel && (u = "") + } + var f = i.drawText({ + x: g, + y: this.xAxisoffX + e.config.xaxis.labels.offsetY + 30 - ("top" === e.config.xaxis.position ? e.globals.xAxisHeight + e.config.xaxis.axisTicks.height - 2 : 0), + text: u, + textAnchor: "middle", + foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[t] : this.xaxisForeColors, + fontSize: this.xaxisFontSize, + fontFamily: this.xaxisFontFamily, + fontWeight: e.config.xaxis.labels.style.fontWeight, + isPlainText: !1, + cssClass: "apexcharts-xaxis-label ".concat(e.config.xaxis.labels.style.cssClass) + }); + s.add(f), f.tspan(u), this.addTooltip(f, u), o += n + } + return this.inversedYAxisTitleText(a), this.inversedYAxisBorder(a), a + } + }, { + key: "inversedYAxisBorder", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = e.config.xaxis.axisBorder; + if (a.show) { + var s = 0; + "bar" === e.config.chart.type && e.globals.isXNumeric && (s -= 15); + var r = i.drawLine(e.globals.padHorizontal + s + a.offsetX, this.xAxisoffX, e.globals.gridWidth, this.xAxisoffX, a.color, 0, a.height); + this.elgrid && this.elgrid.elGridBorders && e.config.grid.show ? this.elgrid.elGridBorders.add(r) : t.add(r) + } + } + }, { + key: "inversedYAxisTitleText", value: function (t) { + var e = this.w, i = new Mi(this.ctx); + if (void 0 !== e.config.xaxis.title.text) { + var a = i.group({class: "apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}), s = i.drawText({ + x: e.globals.gridWidth / 2 + e.config.xaxis.title.offsetX, + y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(e.config.xaxis.title.style.fontSize) + e.config.xaxis.title.offsetY + 20, + text: e.config.xaxis.title.text, + textAnchor: "middle", + fontSize: e.config.xaxis.title.style.fontSize, + fontFamily: e.config.xaxis.title.style.fontFamily, + fontWeight: e.config.xaxis.title.style.fontWeight, + foreColor: e.config.xaxis.title.style.color, + cssClass: "apexcharts-xaxis-title-text ".concat(e.config.xaxis.title.style.cssClass) + }); + a.add(s), t.add(a) + } + } + }, { + key: "yAxisTitleRotate", value: function (t, e) { + var i = this.w, a = new Mi(this.ctx), + s = i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t, "'] .apexcharts-yaxis-texts-g")), + r = s ? s.getBoundingClientRect() : {width: 0, height: 0}, + n = i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t, "'] .apexcharts-yaxis-title text")), + o = n ? n.getBoundingClientRect() : {width: 0, height: 0}; + if (n) { + var l = this.xPaddingForYAxisTitle(t, r, o, e); + n.setAttribute("x", l.xPos - (e ? 10 : 0)); + var h = a.rotateAroundCenter(n); + n.setAttribute("transform", "rotate(".concat(e ? -1 * i.config.yaxis[t].title.rotate : i.config.yaxis[t].title.rotate, " ").concat(h.x, " ").concat(h.y, ")")) + } + } + }, { + key: "xPaddingForYAxisTitle", value: function (t, e, i, a) { + var s = this.w, r = 0, n = 10; + return void 0 === s.config.yaxis[t].title.text || t < 0 ? { + xPos: r, + padd: 0 + } : (a ? r = e.width + s.config.yaxis[t].title.offsetX + i.width / 2 + n / 2 : (r = -1 * e.width + s.config.yaxis[t].title.offsetX + n / 2 + i.width / 2, s.globals.isBarHorizontal && (n = 25, r = -1 * e.width - s.config.yaxis[t].title.offsetX - n)), { + xPos: r, + padd: n + }) + } + }, { + key: "setYAxisXPosition", value: function (t, e) { + var i = this.w, a = 0, s = 0, r = 18, n = 1; + i.config.yaxis.length > 1 && (this.multipleYs = !0), i.config.yaxis.forEach((function (o, l) { + var h = i.globals.ignoreYAxisIndexes.includes(l) || !o.show || o.floating || 0 === t[l].width, + c = t[l].width + e[l].width; + o.opposite ? i.globals.isBarHorizontal ? (s = i.globals.gridWidth + i.globals.translateX - 1, i.globals.translateYAxisX[l] = s - o.labels.offsetX) : (s = i.globals.gridWidth + i.globals.translateX + n, h || (n += c + 20), i.globals.translateYAxisX[l] = s - o.labels.offsetX + 20) : (a = i.globals.translateX - r, h || (r += c + 20), i.globals.translateYAxisX[l] = a + o.labels.offsetX) + })) + } + }, { + key: "setYAxisTextAlignments", value: function () { + var t = this.w; + v.listToArray(t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis")).forEach((function (e, i) { + var a = t.config.yaxis[i]; + if (a && !a.floating && void 0 !== a.labels.align) { + var s = t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i, "'] .apexcharts-yaxis-texts-g")), + r = v.listToArray(t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i, "'] .apexcharts-yaxis-label"))), + n = s.getBoundingClientRect(); + r.forEach((function (t) { + t.setAttribute("text-anchor", a.labels.align) + })), "left" !== a.labels.align || a.opposite ? "center" === a.labels.align ? s.setAttribute("transform", "translate(".concat(n.width / 2 * (a.opposite ? 1 : -1), ", 0)")) : "right" === a.labels.align && a.opposite && s.setAttribute("transform", "translate(".concat(n.width, ", 0)")) : s.setAttribute("transform", "translate(-".concat(n.width, ", 0)")) + } + })) + } + }]), t + }(), sa = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.documentEvent = v.bind(this.documentEvent, this) + } + + return s(t, [{ + key: "addEventListener", value: function (t, e) { + var i = this.w; + i.globals.events.hasOwnProperty(t) ? i.globals.events[t].push(e) : i.globals.events[t] = [e] + } + }, { + key: "removeEventListener", value: function (t, e) { + var i = this.w; + if (i.globals.events.hasOwnProperty(t)) { + var a = i.globals.events[t].indexOf(e); + -1 !== a && i.globals.events[t].splice(a, 1) + } + } + }, { + key: "fireEvent", value: function (t, e) { + var i = this.w; + if (i.globals.events.hasOwnProperty(t)) { + e && e.length || (e = []); + for (var a = i.globals.events[t], s = a.length, r = 0; r < s; r++) a[r].apply(null, e) + } + } + }, { + key: "setupEventHandlers", value: function () { + var t = this, e = this.w, i = this.ctx, a = e.globals.dom.baseEl.querySelector(e.globals.chartClass); + this.ctx.eventList.forEach((function (t) { + a.addEventListener(t, (function (t) { + var a = null === t.target.getAttribute("i") && -1 !== e.globals.capturedSeriesIndex ? e.globals.capturedSeriesIndex : t.target.getAttribute("i"), + s = null === t.target.getAttribute("j") && -1 !== e.globals.capturedDataPointIndex ? e.globals.capturedDataPointIndex : t.target.getAttribute("j"), + r = Object.assign({}, e, {seriesIndex: e.globals.axisCharts ? a : 0, dataPointIndex: s}); + "mousemove" === t.type || "touchmove" === t.type ? "function" == typeof e.config.chart.events.mouseMove && e.config.chart.events.mouseMove(t, i, r) : "mouseleave" === t.type || "touchleave" === t.type ? "function" == typeof e.config.chart.events.mouseLeave && e.config.chart.events.mouseLeave(t, i, r) : ("mouseup" === t.type && 1 === t.which || "touchend" === t.type) && ("function" == typeof e.config.chart.events.click && e.config.chart.events.click(t, i, r), i.ctx.events.fireEvent("click", [t, i, r])) + }), {capture: !1, passive: !0}) + })), this.ctx.eventList.forEach((function (i) { + e.globals.dom.baseEl.addEventListener(i, t.documentEvent, {passive: !0}) + })), this.ctx.core.setupBrushHandler() + } + }, { + key: "documentEvent", value: function (t) { + var e = this.w, i = t.target.className; + if ("click" === t.type) { + var a = e.globals.dom.baseEl.querySelector(".apexcharts-menu"); + a && a.classList.contains("apexcharts-menu-open") && "apexcharts-menu-icon" !== i && a.classList.remove("apexcharts-menu-open") + } + e.globals.clientX = "touchmove" === t.type ? t.touches[0].clientX : t.clientX, e.globals.clientY = "touchmove" === t.type ? t.touches[0].clientY : t.clientY + } + }]), t + }(), ra = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "setCurrentLocaleValues", value: function (t) { + var e = this.w.config.chart.locales; + window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0 && (e = this.w.config.chart.locales.concat(window.Apex.chart.locales)); + var i = e.filter((function (e) { + return e.name === t + }))[0]; + if (!i) throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options"); + var a = v.extend(Hi, i); + this.w.globals.locale = a.options + } + }]), t + }(), na = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "drawAxis", value: function (t, e) { + var i, a, s = this, r = this.w.globals, n = this.w.config, o = new Ki(this.ctx, e), + l = new aa(this.ctx, e); + r.axisCharts && "radar" !== t && (r.isBarHorizontal ? (a = l.drawYaxisInversed(0), i = o.drawXaxisInversed(0), r.dom.elGraphical.add(i), r.dom.elGraphical.add(a)) : (i = o.drawXaxis(), r.dom.elGraphical.add(i), n.yaxis.map((function (t, e) { + if (-1 === r.ignoreYAxisIndexes.indexOf(e) && (a = l.drawYaxis(e), r.dom.Paper.add(a), "back" === s.w.config.grid.position)) { + var i = r.dom.Paper.children()[1]; + i.remove(), r.dom.Paper.add(i) + } + })))) + } + }]), t + }(), oa = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "drawXCrosshairs", value: function () { + var t = this.w, e = new Mi(this.ctx), i = new Li(this.ctx), a = t.config.xaxis.crosshairs.fill.gradient, + s = t.config.xaxis.crosshairs.dropShadow, r = t.config.xaxis.crosshairs.fill.type, n = a.colorFrom, + o = a.colorTo, l = a.opacityFrom, h = a.opacityTo, c = a.stops, d = s.enabled, u = s.left, + g = s.top, p = s.blur, f = s.color, x = s.opacity, b = t.config.xaxis.crosshairs.fill.color; + if (t.config.xaxis.crosshairs.show) { + "gradient" === r && (b = e.drawGradient("vertical", n, o, l, h, null, c, null)); + var m = e.drawRect(); + 1 === t.config.xaxis.crosshairs.width && (m = e.drawLine()); + var y = t.globals.gridHeight; + (!v.isNumber(y) || y < 0) && (y = 0); + var w = t.config.xaxis.crosshairs.width; + (!v.isNumber(w) || w < 0) && (w = 0), m.attr({ + class: "apexcharts-xcrosshairs", + x: 0, + y: 0, + y2: y, + width: w, + height: y, + fill: b, + filter: "none", + "fill-opacity": t.config.xaxis.crosshairs.opacity, + stroke: t.config.xaxis.crosshairs.stroke.color, + "stroke-width": t.config.xaxis.crosshairs.stroke.width, + "stroke-dasharray": t.config.xaxis.crosshairs.stroke.dashArray + }), d && (m = i.dropShadow(m, { + left: u, + top: g, + blur: p, + color: f, + opacity: x + })), t.globals.dom.elGraphical.add(m) + } + } + }, { + key: "drawYCrosshairs", value: function () { + var t = this.w, e = new Mi(this.ctx), i = t.config.yaxis[0].crosshairs, + a = t.globals.barPadForNumericAxis; + if (t.config.yaxis[0].crosshairs.show) { + var s = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, i.stroke.dashArray, i.stroke.width); + s.attr({class: "apexcharts-ycrosshairs"}), t.globals.dom.elGraphical.add(s) + } + var r = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, 0, 0); + r.attr({class: "apexcharts-ycrosshairs-hidden"}), t.globals.dom.elGraphical.add(r) + } + }]), t + }(), la = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "checkResponsiveConfig", value: function (t) { + var e = this, i = this.w, a = i.config; + if (0 !== a.responsive.length) { + var s = a.responsive.slice(); + s.sort((function (t, e) { + return t.breakpoint > e.breakpoint ? 1 : e.breakpoint > t.breakpoint ? -1 : 0 + })).reverse(); + var r = new Wi({}), n = function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + a = s[0].breakpoint, n = window.innerWidth > 0 ? window.innerWidth : screen.width; + if (n > a) { + var o = v.clone(i.globals.initialConfig); + o.series = v.clone(i.config.series); + var l = Pi.extendArrayProps(r, o, i); + t = v.extend(l, t), t = v.extend(i.config, t), e.overrideResponsiveOptions(t) + } else for (var h = 0; h < s.length; h++) n < s[h].breakpoint && (t = Pi.extendArrayProps(r, s[h].options, i), t = v.extend(i.config, t), e.overrideResponsiveOptions(t)) + }; + if (t) { + var o = Pi.extendArrayProps(r, t, i); + o = v.extend(i.config, o), n(o = v.extend(o, t)) + } else n({}) + } + } + }, { + key: "overrideResponsiveOptions", value: function (t) { + var e = new Wi(t).init({responsiveOverride: !0}); + this.w.config = e + } + }]), t + }(), ha = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.colors = [], this.isColorFn = !1, this.isHeatmapDistributed = this.checkHeatmapDistributed(), this.isBarDistributed = this.checkBarDistributed() + } + + return s(t, [{ + key: "checkHeatmapDistributed", value: function () { + var t = this.w.config, e = t.chart, i = t.plotOptions; + return "treemap" === e.type && i.treemap && i.treemap.distributed || "heatmap" === e.type && i.heatmap && i.heatmap.distributed + } + }, { + key: "checkBarDistributed", value: function () { + var t = this.w.config, e = t.chart, i = t.plotOptions; + return i.bar && i.bar.distributed && ("bar" === e.type || "rangeBar" === e.type) + } + }, { + key: "init", value: function () { + this.setDefaultColors() + } + }, { + key: "setDefaultColors", value: function () { + var t = this.w, e = new v; + t.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(t.config.theme.mode || "light")); + var i = f(t.config.colors || t.config.fill.colors || []); + t.globals.colors = this.getColors(i), this.applySeriesColors(t.globals.seriesColors, t.globals.colors), t.config.theme.monochrome.enabled && (t.globals.colors = this.getMonochromeColors(t.config.theme.monochrome, t.globals.series, e)); + var a = t.globals.colors.slice(); + this.pushExtraColors(t.globals.colors), this.applyColorTypes(["fill", "stroke"], a), this.applyDataLabelsColors(a), this.applyRadarPolygonsColors(), this.applyMarkersColors(a) + } + }, { + key: "getColors", value: function (t) { + var e = this, i = this.w; + return t && 0 !== t.length ? Array.isArray(t) && t.length > 0 && "function" == typeof t[0] ? (this.isColorFn = !0, i.config.series.map((function (a, s) { + var r = t[s] || t[0]; + return "function" == typeof r ? r({ + value: i.globals.axisCharts ? i.globals.series[s][0] || 0 : i.globals.series[s], + seriesIndex: s, + dataPointIndex: s, + w: e.w + }) : r + }))) : t : this.predefined() + } + }, { + key: "applySeriesColors", value: function (t, e) { + t.forEach((function (t, i) { + t && (e[i] = t) + })) + } + }, { + key: "getMonochromeColors", value: function (t, e, i) { + var a = t.color, s = t.shadeIntensity, r = t.shadeTo, + n = this.isBarDistributed || this.isHeatmapDistributed ? e[0].length * e.length : e.length, + o = 1 / (n / s), l = 0; + return Array.from({length: n}, (function () { + var t = "dark" === r ? i.shadeColor(-1 * l, a) : i.shadeColor(l, a); + return l += o, t + })) + } + }, { + key: "applyColorTypes", value: function (t, e) { + var i = this, a = this.w; + t.forEach((function (t) { + a.globals[t].colors = void 0 === a.config[t].colors ? i.isColorFn ? a.config.colors : e : a.config[t].colors.slice(), i.pushExtraColors(a.globals[t].colors) + })) + } + }, { + key: "applyDataLabelsColors", value: function (t) { + var e = this.w; + e.globals.dataLabels.style.colors = void 0 === e.config.dataLabels.style.colors ? t : e.config.dataLabels.style.colors.slice(), this.pushExtraColors(e.globals.dataLabels.style.colors, 50) + } + }, { + key: "applyRadarPolygonsColors", value: function () { + var t = this.w; + t.globals.radarPolygons.fill.colors = void 0 === t.config.plotOptions.radar.polygons.fill.colors ? ["dark" === t.config.theme.mode ? "#343A3F" : "none"] : t.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(t.globals.radarPolygons.fill.colors, 20) + } + }, { + key: "applyMarkersColors", value: function (t) { + var e = this.w; + e.globals.markers.colors = void 0 === e.config.markers.colors ? t : e.config.markers.colors.slice(), this.pushExtraColors(e.globals.markers.colors) + } + }, { + key: "pushExtraColors", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = this.w, + s = e || a.globals.series.length; + if (null === i && (i = this.isBarDistributed || this.isHeatmapDistributed || "heatmap" === a.config.chart.type && a.config.plotOptions.heatmap && a.config.plotOptions.heatmap.colorScale.inverse), i && a.globals.series.length && (s = a.globals.series[a.globals.maxValsInArrayIndex].length * a.globals.series.length), t.length < s) for (var r = s - t.length, n = 0; n < r; n++) t.push(t[n]) + } + }, { + key: "updateThemeOptions", value: function (t) { + t.chart = t.chart || {}, t.tooltip = t.tooltip || {}; + var e = t.theme.mode, + i = "dark" === e ? "palette4" : "light" === e ? "palette1" : t.theme.palette || "palette1", + a = "dark" === e ? "#f6f7f8" : "light" === e ? "#373d3f" : t.chart.foreColor || "#373d3f"; + return t.tooltip.theme = e || "light", t.chart.foreColor = a, t.theme.palette = i, t + } + }, { + key: "predefined", value: function () { + var t = this.w.config.theme.palette, e = this.ctx.constructor.getThemePalettes(); + return e[t] || e.palette1 + } + }]), t + }(), ca = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "draw", value: function () { + this.drawTitleSubtitle("title"), this.drawTitleSubtitle("subtitle") + } + }, { + key: "drawTitleSubtitle", value: function (t) { + var e = this.w, i = "title" === t ? e.config.title : e.config.subtitle, a = e.globals.svgWidth / 2, + s = i.offsetY, r = "middle"; + if ("left" === i.align ? (a = 10, r = "start") : "right" === i.align && (a = e.globals.svgWidth - 10, r = "end"), a += i.offsetX, s = s + parseInt(i.style.fontSize, 10) + i.margin / 2, void 0 !== i.text) { + var n = new Mi(this.ctx).drawText({ + x: a, + y: s, + text: i.text, + textAnchor: r, + fontSize: i.style.fontSize, + fontFamily: i.style.fontFamily, + fontWeight: i.style.fontWeight, + foreColor: i.style.color, + opacity: 1 + }); + n.node.setAttribute("class", "apexcharts-".concat(t, "-text")), e.globals.dom.Paper.add(n) + } + } + }]), t + }(), da = function () { + function t(e) { + i(this, t), this.w = e.w, this.dCtx = e + } + + return s(t, [{ + key: "getTitleSubtitleCoords", value: function (t) { + var e = this.w, i = 0, a = 0, s = "title" === t ? e.config.title.floating : e.config.subtitle.floating, + r = e.globals.dom.baseEl.querySelector(".apexcharts-".concat(t, "-text")); + if (null !== r && !s) { + var n = r.getBoundingClientRect(); + i = n.width, a = e.globals.axisCharts ? n.height + 5 : n.height + } + return {width: i, height: a} + } + }, { + key: "getLegendsRect", value: function () { + var t = this.w, e = t.globals.dom.elLegendWrap; + t.config.legend.height || "top" !== t.config.legend.position && "bottom" !== t.config.legend.position || (e.style.maxHeight = t.globals.svgHeight / 2 + "px"); + var i = Object.assign({}, v.getBoundingClientRect(e)); + return null !== e && !t.config.legend.floating && t.config.legend.show ? this.dCtx.lgRect = { + x: i.x, + y: i.y, + height: i.height, + width: 0 === i.height ? 0 : i.width + } : this.dCtx.lgRect = { + x: 0, + y: 0, + height: 0, + width: 0 + }, "left" !== t.config.legend.position && "right" !== t.config.legend.position || 1.5 * this.dCtx.lgRect.width > t.globals.svgWidth && (this.dCtx.lgRect.width = t.globals.svgWidth / 1.5), this.dCtx.lgRect + } + }, { + key: "getDatalabelsRect", value: function () { + var t = this, e = this.w, i = []; + e.config.series.forEach((function (s, r) { + s.data.forEach((function (s, n) { + var o; + o = e.globals.series[r][n], a = e.config.dataLabels.formatter(o, { + ctx: t.dCtx.ctx, + seriesIndex: r, + dataPointIndex: n, + w: e + }), i.push(a) + })) + })); + var a = v.getLargestStringFromArr(i), s = new Mi(this.dCtx.ctx), r = e.config.dataLabels.style, + n = s.getTextRects(a, parseInt(r.fontSize), r.fontFamily); + return {width: 1.05 * n.width, height: n.height} + } + }, { + key: "getLargestStringFromMultiArr", value: function (t, e) { + var i = t; + if (this.w.globals.isMultiLineX) { + var a = e.map((function (t, e) { + return Array.isArray(t) ? t.length : 1 + })), s = Math.max.apply(Math, f(a)); + i = e[a.indexOf(s)] + } + return i + } + }]), t + }(), ua = function () { + function t(e) { + i(this, t), this.w = e.w, this.dCtx = e + } + + return s(t, [{ + key: "getxAxisLabelsCoords", value: function () { + var t, e = this.w, i = e.globals.labels.slice(); + if (e.config.xaxis.convertedCatToNumeric && 0 === i.length && (i = e.globals.categoryLabels), e.globals.timescaleLabels.length > 0) { + var a = this.getxAxisTimeScaleLabelsCoords(); + t = {width: a.width, height: a.height}, e.globals.rotateXLabels = !1 + } else { + this.dCtx.lgWidthForSideLegends = "left" !== e.config.legend.position && "right" !== e.config.legend.position || e.config.legend.floating ? 0 : this.dCtx.lgRect.width; + var s = e.globals.xLabelFormatter, r = v.getLargestStringFromArr(i), + n = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r, i); + e.globals.isBarHorizontal && (n = r = e.globals.yAxisScale[0].result.reduce((function (t, e) { + return t.length > e.length ? t : e + }), 0)); + var o = new Xi(this.dCtx.ctx), l = r; + r = o.xLabelFormat(s, r, l, { + i: void 0, + dateFormatter: new zi(this.dCtx.ctx).formatDate, + w: e + }), n = o.xLabelFormat(s, n, l, { + i: void 0, + dateFormatter: new zi(this.dCtx.ctx).formatDate, + w: e + }), (e.config.xaxis.convertedCatToNumeric && void 0 === r || "" === String(r).trim()) && (n = r = "1"); + var h = new Mi(this.dCtx.ctx), c = h.getTextRects(r, e.config.xaxis.labels.style.fontSize), d = c; + if (r !== n && (d = h.getTextRects(n, e.config.xaxis.labels.style.fontSize)), (t = { + width: c.width >= d.width ? c.width : d.width, + height: c.height >= d.height ? c.height : d.height + }).width * i.length > e.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && 0 !== e.config.xaxis.labels.rotate || e.config.xaxis.labels.rotateAlways) { + if (!e.globals.isBarHorizontal) { + e.globals.rotateXLabels = !0; + var u = function (t) { + return h.getTextRects(t, e.config.xaxis.labels.style.fontSize, e.config.xaxis.labels.style.fontFamily, "rotate(".concat(e.config.xaxis.labels.rotate, " 0 0)"), !1) + }; + c = u(r), r !== n && (d = u(n)), t.height = (c.height > d.height ? c.height : d.height) / 1.5, t.width = c.width > d.width ? c.width : d.width + } + } else e.globals.rotateXLabels = !1 + } + return e.config.xaxis.labels.show || (t = {width: 0, height: 0}), {width: t.width, height: t.height} + } + }, { + key: "getxAxisGroupLabelsCoords", value: function () { + var t, e = this.w; + if (!e.globals.hasXaxisGroups) return {width: 0, height: 0}; + var i, + a = (null === (t = e.config.xaxis.group.style) || void 0 === t ? void 0 : t.fontSize) || e.config.xaxis.labels.style.fontSize, + s = e.globals.groups.map((function (t) { + return t.title + })), r = v.getLargestStringFromArr(s), n = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r, s), + o = new Mi(this.dCtx.ctx), l = o.getTextRects(r, a), h = l; + return r !== n && (h = o.getTextRects(n, a)), i = { + width: l.width >= h.width ? l.width : h.width, + height: l.height >= h.height ? l.height : h.height + }, e.config.xaxis.labels.show || (i = {width: 0, height: 0}), {width: i.width, height: i.height} + } + }, { + key: "getxAxisTitleCoords", value: function () { + var t = this.w, e = 0, i = 0; + if (void 0 !== t.config.xaxis.title.text) { + var a = new Mi(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text, t.config.xaxis.title.style.fontSize); + e = a.width, i = a.height + } + return {width: e, height: i} + } + }, { + key: "getxAxisTimeScaleLabelsCoords", value: function () { + var t, e = this.w; + this.dCtx.timescaleLabels = e.globals.timescaleLabels.slice(); + var i = this.dCtx.timescaleLabels.map((function (t) { + return t.value + })), a = i.reduce((function (t, e) { + return void 0 === t ? (console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"), 0) : t.length > e.length ? t : e + }), 0); + return 1.05 * (t = new Mi(this.dCtx.ctx).getTextRects(a, e.config.xaxis.labels.style.fontSize)).width * i.length > e.globals.gridWidth && 0 !== e.config.xaxis.labels.rotate && (e.globals.overlappingXLabels = !0), t + } + }, { + key: "additionalPaddingXLabels", value: function (t) { + var e = this, i = this.w, a = i.globals, s = i.config, r = s.xaxis.type, n = t.width; + a.skipLastTimelinelabel = !1, a.skipFirstTimelinelabel = !1; + var o = i.config.yaxis[0].opposite && i.globals.isBarHorizontal, l = function (t, o) { + s.yaxis.length > 1 && function (t) { + return -1 !== a.collapsedSeriesIndices.indexOf(t) + }(o) || function (t) { + if (e.dCtx.timescaleLabels && e.dCtx.timescaleLabels.length) { + var o = e.dCtx.timescaleLabels[0], + l = e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length - 1].position + n / 1.75 - e.dCtx.yAxisWidthRight, + h = o.position - n / 1.75 + e.dCtx.yAxisWidthLeft, + c = "right" === i.config.legend.position && e.dCtx.lgRect.width > 0 ? e.dCtx.lgRect.width : 0; + l > a.svgWidth - a.translateX - c && (a.skipLastTimelinelabel = !0), h < -(t.show && !t.floating || "bar" !== s.chart.type && "candlestick" !== s.chart.type && "rangeBar" !== s.chart.type && "boxPlot" !== s.chart.type ? 10 : n / 1.75) && (a.skipFirstTimelinelabel = !0) + } else "datetime" === r ? e.dCtx.gridPad.right < n && !a.rotateXLabels && (a.skipLastTimelinelabel = !0) : "datetime" !== r && e.dCtx.gridPad.right < n / 2 - e.dCtx.yAxisWidthRight && !a.rotateXLabels && !i.config.xaxis.labels.trim && (e.dCtx.xPadRight = n / 2 + 1) + }(t) + }; + s.yaxis.forEach((function (t, i) { + o ? (e.dCtx.gridPad.left < n && (e.dCtx.xPadLeft = n / 2 + 1), e.dCtx.xPadRight = n / 2 + 1) : l(t, i) + })) + } + }]), t + }(), ga = function () { + function t(e) { + i(this, t), this.w = e.w, this.dCtx = e + } + + return s(t, [{ + key: "getyAxisLabelsCoords", value: function () { + var t = this, e = this.w, i = [], a = 10, s = new Ri(this.dCtx.ctx); + return e.config.yaxis.map((function (r, n) { + var o = {seriesIndex: n, dataPointIndex: -1, w: e}, l = e.globals.yAxisScale[n], h = 0; + if (!s.isYAxisHidden(n) && r.labels.show && void 0 !== r.labels.minWidth && (h = r.labels.minWidth), !s.isYAxisHidden(n) && r.labels.show && l.result.length) { + var c = e.globals.yLabelFormatters[n], d = l.niceMin === Number.MIN_VALUE ? 0 : l.niceMin, + u = l.result.reduce((function (t, e) { + var i, a; + return (null === (i = String(c(t, o))) || void 0 === i ? void 0 : i.length) > (null === (a = String(c(e, o))) || void 0 === a ? void 0 : a.length) ? t : e + }), d), g = u = c(u, o); + if (void 0 !== u && 0 !== u.length || (u = l.niceMax), e.globals.isBarHorizontal) { + a = 0; + var p = e.globals.labels.slice(); + u = v.getLargestStringFromArr(p), u = c(u, { + seriesIndex: n, + dataPointIndex: -1, + w: e + }), g = t.dCtx.dimHelpers.getLargestStringFromMultiArr(u, p) + } + var f = new Mi(t.dCtx.ctx), x = "rotate(".concat(r.labels.rotate, " 0 0)"), + b = f.getTextRects(u, r.labels.style.fontSize, r.labels.style.fontFamily, x, !1), m = b; + u !== g && (m = f.getTextRects(g, r.labels.style.fontSize, r.labels.style.fontFamily, x, !1)), i.push({ + width: (h > m.width || h > b.width ? h : m.width > b.width ? m.width : b.width) + a, + height: m.height > b.height ? m.height : b.height + }) + } else i.push({width: 0, height: 0}) + })), i + } + }, { + key: "getyAxisTitleCoords", value: function () { + var t = this, e = this.w, i = []; + return e.config.yaxis.map((function (e, a) { + if (e.show && void 0 !== e.title.text) { + var s = new Mi(t.dCtx.ctx), r = "rotate(".concat(e.title.rotate, " 0 0)"), + n = s.getTextRects(e.title.text, e.title.style.fontSize, e.title.style.fontFamily, r, !1); + i.push({width: n.width, height: n.height}) + } else i.push({width: 0, height: 0}) + })), i + } + }, { + key: "getTotalYAxisWidth", value: function () { + var t = this.w, e = 0, i = 0, a = 0, s = t.globals.yAxisScale.length > 1 ? 10 : 0, + r = new Ri(this.dCtx.ctx), n = function (n, o) { + var l = t.config.yaxis[o].floating, h = 0; + n.width > 0 && !l ? (h = n.width + s, function (e) { + return t.globals.ignoreYAxisIndexes.indexOf(e) > -1 + }(o) && (h = h - n.width - s)) : h = l || r.isYAxisHidden(o) ? 0 : 5, t.config.yaxis[o].opposite ? a += h : i += h, e += h + }; + return t.globals.yLabelsCoords.map((function (t, e) { + n(t, e) + })), t.globals.yTitleCoords.map((function (t, e) { + n(t, e) + })), t.globals.isBarHorizontal && !t.config.yaxis[0].floating && (e = t.globals.yLabelsCoords[0].width + t.globals.yTitleCoords[0].width + 15), this.dCtx.yAxisWidthLeft = i, this.dCtx.yAxisWidthRight = a, e + } + }]), t + }(), pa = function () { + function t(e) { + i(this, t), this.w = e.w, this.dCtx = e + } + + return s(t, [{ + key: "gridPadForColumnsInNumericAxis", value: function (t) { + var e = this.w, i = e.config, a = e.globals; + if (a.noData || a.collapsedSeries.length + a.ancillaryCollapsedSeries.length === i.series.length) return 0; + var s = function (t) { + return ["bar", "rangeBar", "candlestick", "boxPlot"].includes(t) + }, r = i.chart.type, n = 0, o = s(r) ? i.series.length : 1; + a.comboBarCount > 0 && (o = a.comboBarCount), a.collapsedSeries.forEach((function (t) { + s(t.type) && (o -= 1) + })), i.chart.stacked && (o = 1); + var l = s(r) || a.comboBarCount > 0, h = Math.abs(a.initialMaxX - a.initialMinX); + if (l && a.isXNumeric && !a.isBarHorizontal && o > 0 && 0 !== h) { + h <= 3 && (h = a.dataPoints); + var c = h / t, d = a.minXDiff && a.minXDiff / c > 0 ? a.minXDiff / c : 0; + d > t / 2 && (d /= 2), (n = d * parseInt(i.plotOptions.bar.columnWidth, 10) / 100) < 1 && (n = 1), a.barPadForNumericAxis = n + } + return n + } + }, { + key: "gridPadFortitleSubtitle", value: function () { + var t = this, e = this.w, i = e.globals, a = this.dCtx.isSparkline || !i.axisCharts ? 0 : 10; + ["title", "subtitle"].forEach((function (s) { + void 0 !== e.config[s].text ? a += e.config[s].margin : a += t.dCtx.isSparkline || !i.axisCharts ? 0 : 5 + })), !e.config.legend.show || "bottom" !== e.config.legend.position || e.config.legend.floating || i.axisCharts || (a += 10); + var s = this.dCtx.dimHelpers.getTitleSubtitleCoords("title"), + r = this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle"); + i.gridHeight -= s.height + r.height + a, i.translateY += s.height + r.height + a + } + }, { + key: "setGridXPosForDualYAxis", value: function (t, e) { + var i = this.w, a = new Ri(this.dCtx.ctx); + i.config.yaxis.forEach((function (s, r) { + -1 !== i.globals.ignoreYAxisIndexes.indexOf(r) || s.floating || a.isYAxisHidden(r) || (s.opposite && (i.globals.translateX -= e[r].width + t[r].width + parseInt(s.labels.style.fontSize, 10) / 1.2 + 12), i.globals.translateX < 2 && (i.globals.translateX = 2)) + })) + } + }]), t + }(), fa = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new da(this), this.dimYAxis = new ga(this), this.dimXAxis = new ua(this), this.dimGrid = new pa(this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0 + } + + return s(t, [{ + key: "plotCoords", value: function () { + var t = this, e = this.w, i = e.globals; + this.lgRect = this.dimHelpers.getLegendsRect(), this.datalabelsCoords = {width: 0, height: 0}; + var a = Array.isArray(e.config.stroke.width) ? Math.max.apply(Math, f(e.config.stroke.width)) : e.config.stroke.width; + this.isSparkline && ((e.config.markers.discrete.length > 0 || e.config.markers.size > 0) && Object.entries(this.gridPad).forEach((function (e) { + var i = p(e, 2), a = i[0], s = i[1]; + t.gridPad[a] = Math.max(s, t.w.globals.markers.largestSize / 1.5) + })), this.gridPad.top = Math.max(a / 2, this.gridPad.top), this.gridPad.bottom = Math.max(a / 2, this.gridPad.bottom)), i.axisCharts ? this.setDimensionsForAxisCharts() : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), i.gridHeight = i.gridHeight - this.gridPad.top - this.gridPad.bottom, i.gridWidth = i.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft; + var s = this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth); + i.gridWidth = i.gridWidth - 2 * s, i.translateX = i.translateX + this.gridPad.left + this.xPadLeft + (s > 0 ? s : 0), i.translateY = i.translateY + this.gridPad.top + } + }, { + key: "setDimensionsForAxisCharts", value: function () { + var t = this, e = this.w, i = e.globals, a = this.dimYAxis.getyAxisLabelsCoords(), + s = this.dimYAxis.getyAxisTitleCoords(); + i.isSlopeChart && (this.datalabelsCoords = this.dimHelpers.getDatalabelsRect()), e.globals.yLabelsCoords = [], e.globals.yTitleCoords = [], e.config.yaxis.map((function (t, i) { + e.globals.yLabelsCoords.push({ + width: a[i].width, + index: i + }), e.globals.yTitleCoords.push({width: s[i].width, index: i}) + })), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth(); + var r = this.dimXAxis.getxAxisLabelsCoords(), n = this.dimXAxis.getxAxisGroupLabelsCoords(), + o = this.dimXAxis.getxAxisTitleCoords(); + this.conditionalChecksForAxisCoords(r, o, n), i.translateXAxisY = e.globals.rotateXLabels ? this.xAxisHeight / 8 : -4, i.translateXAxisX = e.globals.rotateXLabels && e.globals.isXNumeric && e.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0, e.globals.isBarHorizontal && (i.rotateXLabels = !1, i.translateXAxisY = parseInt(e.config.xaxis.labels.style.fontSize, 10) / 1.5 * -1), i.translateXAxisY = i.translateXAxisY + e.config.xaxis.labels.offsetY, i.translateXAxisX = i.translateXAxisX + e.config.xaxis.labels.offsetX; + var l = this.yAxisWidth, h = this.xAxisHeight; + i.xAxisLabelsHeight = this.xAxisHeight - o.height, i.xAxisGroupLabelsHeight = i.xAxisLabelsHeight - r.height, i.xAxisLabelsWidth = this.xAxisWidth, i.xAxisHeight = this.xAxisHeight; + var c = 10; + ("radar" === e.config.chart.type || this.isSparkline) && (l = 0, h = 0), this.isSparkline && (this.lgRect = { + height: 0, + width: 0 + }), (this.isSparkline || "treemap" === e.config.chart.type) && (l = 0, h = 0, c = 0), this.isSparkline || "treemap" === e.config.chart.type || this.dimXAxis.additionalPaddingXLabels(r); + var d = function () { + i.translateX = l + t.datalabelsCoords.width, i.gridHeight = i.svgHeight - t.lgRect.height - h - (t.isSparkline || "treemap" === e.config.chart.type ? 0 : e.globals.rotateXLabels ? 10 : 15), i.gridWidth = i.svgWidth - l - 2 * t.datalabelsCoords.width + }; + switch ("top" === e.config.xaxis.position && (c = i.xAxisHeight - e.config.xaxis.axisTicks.height - 5), e.config.legend.position) { + case"bottom": + i.translateY = c, d(); + break; + case"top": + i.translateY = this.lgRect.height + c, d(); + break; + case"left": + i.translateY = c, i.translateX = this.lgRect.width + l + this.datalabelsCoords.width, i.gridHeight = i.svgHeight - h - 12, i.gridWidth = i.svgWidth - this.lgRect.width - l - 2 * this.datalabelsCoords.width; + break; + case"right": + i.translateY = c, i.translateX = l + this.datalabelsCoords.width, i.gridHeight = i.svgHeight - h - 12, i.gridWidth = i.svgWidth - this.lgRect.width - l - 2 * this.datalabelsCoords.width - 5; + break; + default: + throw new Error("Legend position not supported") + } + this.dimGrid.setGridXPosForDualYAxis(s, a), new aa(this.ctx).setYAxisXPosition(a, s) + } + }, { + key: "setDimensionsForNonAxisCharts", value: function () { + var t = this.w, e = t.globals, i = t.config, a = 0; + t.config.legend.show && !t.config.legend.floating && (a = 20); + var s = "pie" === i.chart.type || "polarArea" === i.chart.type || "donut" === i.chart.type ? "pie" : "radialBar", + r = i.plotOptions[s].offsetY, n = i.plotOptions[s].offsetX; + if (!i.legend.show || i.legend.floating) { + e.gridHeight = e.svgHeight; + var o = e.dom.elWrap.getBoundingClientRect().width; + return e.gridWidth = Math.min(o, e.gridHeight), e.translateY = r, void (e.translateX = n + (e.svgWidth - e.gridWidth) / 2) + } + switch (i.legend.position) { + case"bottom": + e.gridHeight = e.svgHeight - this.lgRect.height, e.gridWidth = e.svgWidth, e.translateY = r - 10, e.translateX = n + (e.svgWidth - e.gridWidth) / 2; + break; + case"top": + e.gridHeight = e.svgHeight - this.lgRect.height, e.gridWidth = e.svgWidth, e.translateY = this.lgRect.height + r + 10, e.translateX = n + (e.svgWidth - e.gridWidth) / 2; + break; + case"left": + e.gridWidth = e.svgWidth - this.lgRect.width - a, e.gridHeight = "auto" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = n + this.lgRect.width + a; + break; + case"right": + e.gridWidth = e.svgWidth - this.lgRect.width - a - 5, e.gridHeight = "auto" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = n + 10; + break; + default: + throw new Error("Legend position not supported") + } + } + }, { + key: "conditionalChecksForAxisCoords", value: function (t, e, i) { + var a = this.w, s = a.globals.hasXaxisGroups ? 2 : 1, r = i.height + t.height + e.height, + n = a.globals.isMultiLineX ? 1.2 : a.globals.LINE_HEIGHT_RATIO, + o = a.globals.rotateXLabels ? 22 : 10, + l = a.globals.rotateXLabels && "bottom" === a.config.legend.position ? 10 : 0; + this.xAxisHeight = r * n + s * o + l, this.xAxisWidth = t.width, this.xAxisHeight - e.height > a.config.xaxis.labels.maxHeight && (this.xAxisHeight = a.config.xaxis.labels.maxHeight), a.config.xaxis.labels.minHeight && this.xAxisHeight < a.config.xaxis.labels.minHeight && (this.xAxisHeight = a.config.xaxis.labels.minHeight), a.config.xaxis.floating && (this.xAxisHeight = 0); + var h = 0, c = 0; + a.config.yaxis.forEach((function (t) { + h += t.labels.minWidth, c += t.labels.maxWidth + })), this.yAxisWidth < h && (this.yAxisWidth = h), this.yAxisWidth > c && (this.yAxisWidth = c) + } + }]), t + }(), xa = function () { + function t(e) { + i(this, t), this.w = e.w, this.lgCtx = e + } + + return s(t, [{ + key: "getLegendStyles", value: function () { + var t, e, i, a = document.createElement("style"); + a.setAttribute("type", "text/css"); + var s = (null === (t = this.lgCtx.ctx) || void 0 === t || null === (e = t.opts) || void 0 === e || null === (i = e.chart) || void 0 === i ? void 0 : i.nonce) || this.w.config.chart.nonce; + s && a.setAttribute("nonce", s); + var r = document.createTextNode(Zi); + return a.appendChild(r), a + } + }, { + key: "getLegendDimensions", value: function () { + var t = this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(), + e = t.width; + return {clwh: t.height, clww: e} + } + }, { + key: "appendToForeignObject", value: function () { + var t = this.w.globals; + !1 !== this.w.config.chart.injectStyleSheet && t.dom.elLegendForeign.appendChild(this.getLegendStyles()) + } + }, { + key: "toggleDataSeries", value: function (t, e) { + var i = this, a = this.w; + if (a.globals.axisCharts || "radialBar" === a.config.chart.type) { + a.globals.resized = !0; + var s = null, r = null; + if (a.globals.risingSeries = [], a.globals.axisCharts ? (s = a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t, "']")), r = parseInt(s.getAttribute("data:realIndex"), 10)) : (s = a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t + 1, "']")), r = parseInt(s.getAttribute("rel"), 10) - 1), e) [{ + cs: a.globals.collapsedSeries, + csi: a.globals.collapsedSeriesIndices + }, { + cs: a.globals.ancillaryCollapsedSeries, + csi: a.globals.ancillaryCollapsedSeriesIndices + }].forEach((function (t) { + i.riseCollapsedSeries(t.cs, t.csi, r) + })); else this.hideSeries({seriesEl: s, realIndex: r}) + } else { + var n = a.globals.dom.Paper.findOne(" .apexcharts-series[rel='".concat(t + 1, "'] path")), + o = a.config.chart.type; + if ("pie" === o || "polarArea" === o || "donut" === o) { + var l = a.config.plotOptions.pie.donut.labels; + new Mi(this.lgCtx.ctx).pathMouseDown(n, null), this.lgCtx.ctx.pie.printDataLabelsInner(n.node, l) + } + n.fire("click") + } + } + }, { + key: "getSeriesAfterCollapsing", value: function (t) { + var e = t.realIndex, i = this.w, a = i.globals, s = v.clone(i.config.series); + if (a.axisCharts) { + var r = i.config.yaxis[a.seriesYAxisReverseMap[e]], + n = {index: e, data: s[e].data.slice(), type: s[e].type || i.config.chart.type}; + if (r && r.show && r.showAlways) a.ancillaryCollapsedSeriesIndices.indexOf(e) < 0 && (a.ancillaryCollapsedSeries.push(n), a.ancillaryCollapsedSeriesIndices.push(e)); else if (a.collapsedSeriesIndices.indexOf(e) < 0) { + a.collapsedSeries.push(n), a.collapsedSeriesIndices.push(e); + var o = a.risingSeries.indexOf(e); + a.risingSeries.splice(o, 1) + } + } else a.collapsedSeries.push({index: e, data: s[e]}), a.collapsedSeriesIndices.push(e); + return a.allSeriesCollapsed = a.collapsedSeries.length + a.ancillaryCollapsedSeries.length === i.config.series.length, this._getSeriesBasedOnCollapsedState(s) + } + }, { + key: "hideSeries", value: function (t) { + for (var e = t.seriesEl, i = t.realIndex, a = this.w, s = this.getSeriesAfterCollapsing({realIndex: i}), r = e.childNodes, n = 0; n < r.length; n++) r[n].classList.contains("apexcharts-series-markers-wrap") && (r[n].classList.contains("apexcharts-hide") ? r[n].classList.remove("apexcharts-hide") : r[n].classList.add("apexcharts-hide")); + this.lgCtx.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled) + } + }, { + key: "riseCollapsedSeries", value: function (t, e, i) { + var a = this.w, s = v.clone(a.config.series); + if (t.length > 0) { + for (var r = 0; r < t.length; r++) t[r].index === i && (a.globals.axisCharts ? s[i].data = t[r].data.slice() : s[i] = t[r].data, "number" != typeof s[i] && (s[i].hidden = !1), t.splice(r, 1), e.splice(r, 1), a.globals.risingSeries.push(i)); + s = this._getSeriesBasedOnCollapsedState(s), this.lgCtx.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled) + } + } + }, { + key: "_getSeriesBasedOnCollapsedState", value: function (t) { + var e = this.w, i = 0; + return e.globals.axisCharts ? t.forEach((function (a, s) { + e.globals.collapsedSeriesIndices.indexOf(s) < 0 && e.globals.ancillaryCollapsedSeriesIndices.indexOf(s) < 0 || (t[s].data = [], i++) + })) : t.forEach((function (a, s) { + !e.globals.collapsedSeriesIndices.indexOf(s) < 0 && (t[s] = 0, i++) + })), e.globals.allSeriesCollapsed = i === t.length, t + } + }]), t + }(), ba = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.onLegendClick = this.onLegendClick.bind(this), this.onLegendHovered = this.onLegendHovered.bind(this), this.isBarsDistributed = "bar" === this.w.config.chart.type && this.w.config.plotOptions.bar.distributed && 1 === this.w.config.series.length, this.legendHelpers = new xa(this) + } + + return s(t, [{ + key: "init", value: function () { + var t = this.w, e = t.globals, i = t.config, + a = i.legend.showForSingleSeries && 1 === e.series.length || this.isBarsDistributed || e.series.length > 1; + if (this.legendHelpers.appendToForeignObject(), (a || !e.axisCharts) && i.legend.show) { + for (; e.dom.elLegendWrap.firstChild;) e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild); + this.drawLegends(), "bottom" === i.legend.position || "top" === i.legend.position ? this.legendAlignHorizontal() : "right" !== i.legend.position && "left" !== i.legend.position || this.legendAlignVertical() + } + } + }, { + key: "createLegendMarker", value: function (t) { + var e = t.i, i = t.fillcolor, a = this.w, s = document.createElement("span"); + s.classList.add("apexcharts-legend-marker"); + var r = a.config.legend.markers.shape || a.config.markers.shape, n = r; + Array.isArray(r) && (n = r[e]); + var o = Array.isArray(a.config.legend.markers.size) ? parseFloat(a.config.legend.markers.size[e]) : parseFloat(a.config.legend.markers.size), + l = Array.isArray(a.config.legend.markers.offsetX) ? parseFloat(a.config.legend.markers.offsetX[e]) : parseFloat(a.config.legend.markers.offsetX), + h = Array.isArray(a.config.legend.markers.offsetY) ? parseFloat(a.config.legend.markers.offsetY[e]) : parseFloat(a.config.legend.markers.offsetY), + c = Array.isArray(a.config.legend.markers.strokeWidth) ? parseFloat(a.config.legend.markers.strokeWidth[e]) : parseFloat(a.config.legend.markers.strokeWidth), + d = s.style; + if (d.height = 2 * (o + c) + "px", d.width = 2 * (o + c) + "px", d.left = l + "px", d.top = h + "px", a.config.legend.markers.customHTML) d.background = "transparent", d.color = i[e], Array.isArray(a.config.legend.markers.customHTML) ? a.config.legend.markers.customHTML[e] && (s.innerHTML = a.config.legend.markers.customHTML[e]()) : s.innerHTML = a.config.legend.markers.customHTML(); else { + var g = new Vi(this.ctx).getMarkerConfig({ + cssClass: "apexcharts-legend-marker apexcharts-marker apexcharts-marker-".concat(n), + seriesIndex: e, + strokeWidth: c, + size: o + }), p = window.SVG().addTo(s).size("100%", "100%"), + f = new Mi(this.ctx).drawMarker(0, 0, u(u({}, g), {}, { + pointFillColor: Array.isArray(i) ? i[e] : g.pointFillColor, + shape: n + })); + a.globals.dom.Paper.find(".apexcharts-legend-marker.apexcharts-marker").forEach((function (t) { + t.node.classList.contains("apexcharts-marker-triangle") ? t.node.style.transform = "translate(50%, 45%)" : t.node.style.transform = "translate(50%, 50%)" + })), p.add(f) + } + return s + } + }, { + key: "drawLegends", value: function () { + var t = this, e = this, i = this.w, a = i.config.legend.fontFamily, s = i.globals.seriesNames, + r = i.config.legend.markers.fillColors ? i.config.legend.markers.fillColors.slice() : i.globals.colors.slice(); + if ("heatmap" === i.config.chart.type) { + var n = i.config.plotOptions.heatmap.colorScale.ranges; + s = n.map((function (t) { + return t.name ? t.name : t.from + " - " + t.to + })), r = n.map((function (t) { + return t.color + })) + } else this.isBarsDistributed && (s = i.globals.labels.slice()); + i.config.legend.customLegendItems.length && (s = i.config.legend.customLegendItems); + var o = i.globals.legendFormatter, l = i.config.legend.inverseOrder, h = []; + i.globals.seriesGroups.length > 1 && i.config.legend.clusterGroupedSeries && i.globals.seriesGroups.forEach((function (t, e) { + h[e] = document.createElement("div"), h[e].classList.add("apexcharts-legend-group", "apexcharts-legend-group-".concat(e)), "horizontal" === i.config.legend.clusterGroupedSeriesOrientation ? i.globals.dom.elLegendWrap.classList.add("apexcharts-legend-group-horizontal") : h[e].classList.add("apexcharts-legend-group-vertical") + })); + for (var c = function (e) { + var n, l = o(s[e], {seriesIndex: e, w: i}), c = !1, d = !1; + if (i.globals.collapsedSeries.length > 0) for (var u = 0; u < i.globals.collapsedSeries.length; u++) i.globals.collapsedSeries[u].index === e && (c = !0); + if (i.globals.ancillaryCollapsedSeriesIndices.length > 0) for (var g = 0; g < i.globals.ancillaryCollapsedSeriesIndices.length; g++) i.globals.ancillaryCollapsedSeriesIndices[g] === e && (d = !0); + var p = t.createLegendMarker({i: e, fillcolor: r}); + Mi.setAttrs(p, { + rel: e + 1, + "data:collapsed": c || d + }), (c || d) && p.classList.add("apexcharts-inactive-legend"); + var f = document.createElement("div"), x = document.createElement("span"); + x.classList.add("apexcharts-legend-text"), x.innerHTML = Array.isArray(l) ? l.join(" ") : l; + var b = i.config.legend.labels.useSeriesColors ? i.globals.colors[e] : Array.isArray(i.config.legend.labels.colors) ? null === (n = i.config.legend.labels.colors) || void 0 === n ? void 0 : n[e] : i.config.legend.labels.colors; + b || (b = i.config.chart.foreColor), x.style.color = b, x.style.fontSize = parseFloat(i.config.legend.fontSize) + "px", x.style.fontWeight = i.config.legend.fontWeight, x.style.fontFamily = a || i.config.chart.fontFamily, Mi.setAttrs(x, { + rel: e + 1, + i: e, + "data:default-text": encodeURIComponent(l), + "data:collapsed": c || d + }), f.appendChild(p), f.appendChild(x); + var m = new Pi(t.ctx); + i.config.legend.showForZeroSeries || 0 === m.getSeriesTotalByIndex(e) && m.seriesHaveSameValues(e) && !m.isSeriesNull(e) && -1 === i.globals.collapsedSeriesIndices.indexOf(e) && -1 === i.globals.ancillaryCollapsedSeriesIndices.indexOf(e) && f.classList.add("apexcharts-hidden-zero-series"); + i.config.legend.showForNullSeries || m.isSeriesNull(e) && -1 === i.globals.collapsedSeriesIndices.indexOf(e) && -1 === i.globals.ancillaryCollapsedSeriesIndices.indexOf(e) && f.classList.add("apexcharts-hidden-null-series"), h.length ? i.globals.seriesGroups.forEach((function (t, a) { + var s; + t.includes(null === (s = i.config.series[e]) || void 0 === s ? void 0 : s.name) && (i.globals.dom.elLegendWrap.appendChild(h[a]), h[a].appendChild(f)) + })) : i.globals.dom.elLegendWrap.appendChild(f), i.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(i.config.legend.horizontalAlign)), i.globals.dom.elLegendWrap.classList.add("apx-legend-position-" + i.config.legend.position), f.classList.add("apexcharts-legend-series"), f.style.margin = "".concat(i.config.legend.itemMargin.vertical, "px ").concat(i.config.legend.itemMargin.horizontal, "px"), i.globals.dom.elLegendWrap.style.width = i.config.legend.width ? i.config.legend.width + "px" : "", i.globals.dom.elLegendWrap.style.height = i.config.legend.height ? i.config.legend.height + "px" : "", Mi.setAttrs(f, { + rel: e + 1, + seriesName: v.escapeString(s[e]), + "data:collapsed": c || d + }), (c || d) && f.classList.add("apexcharts-inactive-legend"), i.config.legend.onItemClick.toggleDataSeries || f.classList.add("apexcharts-no-click") + }, d = l ? s.length - 1 : 0; l ? d >= 0 : d <= s.length - 1; l ? d-- : d++) c(d); + i.globals.dom.elWrap.addEventListener("click", e.onLegendClick, !0), i.config.legend.onItemHover.highlightDataSeries && 0 === i.config.legend.customLegendItems.length && (i.globals.dom.elWrap.addEventListener("mousemove", e.onLegendHovered, !0), i.globals.dom.elWrap.addEventListener("mouseout", e.onLegendHovered, !0)) + } + }, { + key: "setLegendWrapXY", value: function (t, e) { + var i = this.w, a = i.globals.dom.elLegendWrap, s = a.clientHeight, r = 0, n = 0; + if ("bottom" === i.config.legend.position) n = i.globals.svgHeight - Math.min(s, i.globals.svgHeight / 2) - 5; else if ("top" === i.config.legend.position) { + var o = new fa(this.ctx), l = o.dimHelpers.getTitleSubtitleCoords("title").height, + h = o.dimHelpers.getTitleSubtitleCoords("subtitle").height; + n = (l > 0 ? l - 10 : 0) + (h > 0 ? h - 10 : 0) + } + a.style.position = "absolute", r = r + t + i.config.legend.offsetX, n = n + e + i.config.legend.offsetY, a.style.left = r + "px", a.style.top = n + "px", "right" === i.config.legend.position && (a.style.left = "auto", a.style.right = 25 + i.config.legend.offsetX + "px"); + ["width", "height"].forEach((function (t) { + a.style[t] && (a.style[t] = parseInt(i.config.legend[t], 10) + "px") + })) + } + }, { + key: "legendAlignHorizontal", value: function () { + var t = this.w; + t.globals.dom.elLegendWrap.style.right = 0; + var e = new fa(this.ctx), i = e.dimHelpers.getTitleSubtitleCoords("title"), + a = e.dimHelpers.getTitleSubtitleCoords("subtitle"), s = 0; + "top" === t.config.legend.position && (s = i.height + a.height + t.config.title.margin + t.config.subtitle.margin - 10), this.setLegendWrapXY(20, s) + } + }, { + key: "legendAlignVertical", value: function () { + var t = this.w, e = this.legendHelpers.getLegendDimensions(), i = 0; + "left" === t.config.legend.position && (i = 20), "right" === t.config.legend.position && (i = t.globals.svgWidth - e.clww - 10), this.setLegendWrapXY(i, 20) + } + }, { + key: "onLegendHovered", value: function (t) { + var e = this.w, + i = t.target.classList.contains("apexcharts-legend-series") || t.target.classList.contains("apexcharts-legend-text") || t.target.classList.contains("apexcharts-legend-marker"); + if ("heatmap" === e.config.chart.type || this.isBarsDistributed) { + if (i) { + var a = parseInt(t.target.getAttribute("rel"), 10) - 1; + this.ctx.events.fireEvent("legendHover", [this.ctx, a, this.w]), new $i(this.ctx).highlightRangeInSeries(t, t.target) + } + } else !t.target.classList.contains("apexcharts-inactive-legend") && i && new $i(this.ctx).toggleSeriesOnHover(t, t.target) + } + }, { + key: "onLegendClick", value: function (t) { + var e = this.w; + if (!e.config.legend.customLegendItems.length && (t.target.classList.contains("apexcharts-legend-series") || t.target.classList.contains("apexcharts-legend-text") || t.target.classList.contains("apexcharts-legend-marker"))) { + var i = parseInt(t.target.getAttribute("rel"), 10) - 1, + a = "true" === t.target.getAttribute("data:collapsed"), + s = this.w.config.chart.events.legendClick; + "function" == typeof s && s(this.ctx, i, this.w), this.ctx.events.fireEvent("legendClick", [this.ctx, i, this.w]); + var r = this.w.config.legend.markers.onClick; + "function" == typeof r && t.target.classList.contains("apexcharts-legend-marker") && (r(this.ctx, i, this.w), this.ctx.events.fireEvent("legendMarkerClick", [this.ctx, i, this.w])), "treemap" !== e.config.chart.type && "heatmap" !== e.config.chart.type && !this.isBarsDistributed && e.config.legend.onItemClick.toggleDataSeries && this.legendHelpers.toggleDataSeries(i, a) + } + } + }]), t + }(), ma = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w; + var a = this.w; + this.ev = this.w.config.chart.events, this.selectedClass = "apexcharts-selected", this.localeValues = this.w.globals.locale.toolbar, this.minX = a.globals.minX, this.maxX = a.globals.maxX + } + + return s(t, [{ + key: "createToolbar", value: function () { + var t = this, e = this.w, i = function () { + return document.createElement("div") + }, a = i(); + if (a.setAttribute("class", "apexcharts-toolbar"), a.style.top = e.config.chart.toolbar.offsetY + "px", a.style.right = 3 - e.config.chart.toolbar.offsetX + "px", e.globals.dom.elWrap.appendChild(a), this.elZoom = i(), this.elZoomIn = i(), this.elZoomOut = i(), this.elPan = i(), this.elSelection = i(), this.elZoomReset = i(), this.elMenuIcon = i(), this.elMenu = i(), this.elCustomIcons = [], this.t = e.config.chart.toolbar.tools, Array.isArray(this.t.customIcons)) for (var s = 0; s < this.t.customIcons.length; s++) this.elCustomIcons.push(i()); + var r = [], n = function (i, a, s) { + var n = i.toLowerCase(); + t.t[n] && e.config.chart.zoom.enabled && r.push({ + el: a, + icon: "string" == typeof t.t[n] ? t.t[n] : s, + title: t.localeValues[i], + class: "apexcharts-".concat(n, "-icon") + }) + }; + n("zoomIn", this.elZoomIn, '\n \n \n\n'), n("zoomOut", this.elZoomOut, '\n \n \n\n'); + var o = function (i) { + t.t[i] && e.config.chart[i].enabled && r.push({ + el: "zoom" === i ? t.elZoom : t.elSelection, + icon: "string" == typeof t.t[i] ? t.t[i] : "zoom" === i ? '\n \n \n \n' : '\n \n \n', + title: t.localeValues["zoom" === i ? "selectionZoom" : "selection"], + class: "apexcharts-".concat(i, "-icon") + }) + }; + o("zoom"), o("selection"), this.t.pan && e.config.chart.zoom.enabled && r.push({ + el: this.elPan, + icon: "string" == typeof this.t.pan ? this.t.pan : '\n \n \n \n \n \n \n \n', + title: this.localeValues.pan, + class: "apexcharts-pan-icon" + }), n("reset", this.elZoomReset, '\n \n \n'), this.t.download && r.push({ + el: this.elMenuIcon, + icon: "string" == typeof this.t.download ? this.t.download : '', + title: this.localeValues.menu, + class: "apexcharts-menu-icon" + }); + for (var l = 0; l < this.elCustomIcons.length; l++) r.push({ + el: this.elCustomIcons[l], + icon: this.t.customIcons[l].icon, + title: this.t.customIcons[l].title, + index: this.t.customIcons[l].index, + class: "apexcharts-toolbar-custom-icon " + this.t.customIcons[l].class + }); + r.forEach((function (t, e) { + t.index && v.moveIndexInArray(r, e, t.index) + })); + for (var h = 0; h < r.length; h++) Mi.setAttrs(r[h].el, { + class: r[h].class, + title: r[h].title + }), r[h].el.innerHTML = r[h].icon, a.appendChild(r[h].el); + this._createHamburgerMenu(a), e.globals.zoomEnabled ? this.elZoom.classList.add(this.selectedClass) : e.globals.panEnabled ? this.elPan.classList.add(this.selectedClass) : e.globals.selectionEnabled && this.elSelection.classList.add(this.selectedClass), this.addToolbarEventListeners() + } + }, { + key: "_createHamburgerMenu", value: function (t) { + this.elMenuItems = [], t.appendChild(this.elMenu), Mi.setAttrs(this.elMenu, {class: "apexcharts-menu"}); + for (var e = [{name: "exportSVG", title: this.localeValues.exportToSVG}, { + name: "exportPNG", + title: this.localeValues.exportToPNG + }, { + name: "exportCSV", + title: this.localeValues.exportToCSV + }], i = 0; i < e.length; i++) this.elMenuItems.push(document.createElement("div")), this.elMenuItems[i].innerHTML = e[i].title, Mi.setAttrs(this.elMenuItems[i], { + class: "apexcharts-menu-item ".concat(e[i].name), + title: e[i].title + }), this.elMenu.appendChild(this.elMenuItems[i]) + } + }, { + key: "addToolbarEventListeners", value: function () { + var t = this; + this.elZoomReset.addEventListener("click", this.handleZoomReset.bind(this)), this.elSelection.addEventListener("click", this.toggleZoomSelection.bind(this, "selection")), this.elZoom.addEventListener("click", this.toggleZoomSelection.bind(this, "zoom")), this.elZoomIn.addEventListener("click", this.handleZoomIn.bind(this)), this.elZoomOut.addEventListener("click", this.handleZoomOut.bind(this)), this.elPan.addEventListener("click", this.togglePanning.bind(this)), this.elMenuIcon.addEventListener("click", this.toggleMenu.bind(this)), this.elMenuItems.forEach((function (e) { + e.classList.contains("exportSVG") ? e.addEventListener("click", t.handleDownload.bind(t, "svg")) : e.classList.contains("exportPNG") ? e.addEventListener("click", t.handleDownload.bind(t, "png")) : e.classList.contains("exportCSV") && e.addEventListener("click", t.handleDownload.bind(t, "csv")) + })); + for (var e = 0; e < this.t.customIcons.length; e++) this.elCustomIcons[e].addEventListener("click", this.t.customIcons[e].click.bind(this, this.ctx, this.ctx.w)) + } + }, { + key: "toggleZoomSelection", value: function (t) { + this.ctx.getSyncedCharts().forEach((function (e) { + e.ctx.toolbar.toggleOtherControls(); + var i = "selection" === t ? e.ctx.toolbar.elSelection : e.ctx.toolbar.elZoom, + a = "selection" === t ? "selectionEnabled" : "zoomEnabled"; + e.w.globals[a] = !e.w.globals[a], i.classList.contains(e.ctx.toolbar.selectedClass) ? i.classList.remove(e.ctx.toolbar.selectedClass) : i.classList.add(e.ctx.toolbar.selectedClass) + })) + } + }, { + key: "getToolbarIconsReference", value: function () { + var t = this.w; + this.elZoom || (this.elZoom = t.globals.dom.baseEl.querySelector(".apexcharts-zoom-icon")), this.elPan || (this.elPan = t.globals.dom.baseEl.querySelector(".apexcharts-pan-icon")), this.elSelection || (this.elSelection = t.globals.dom.baseEl.querySelector(".apexcharts-selection-icon")) + } + }, { + key: "enableZoomPanFromToolbar", value: function (t) { + this.toggleOtherControls(), "pan" === t ? this.w.globals.panEnabled = !0 : this.w.globals.zoomEnabled = !0; + var e = "pan" === t ? this.elPan : this.elZoom, i = "pan" === t ? this.elZoom : this.elPan; + e && e.classList.add(this.selectedClass), i && i.classList.remove(this.selectedClass) + } + }, { + key: "togglePanning", value: function () { + this.ctx.getSyncedCharts().forEach((function (t) { + t.ctx.toolbar.toggleOtherControls(), t.w.globals.panEnabled = !t.w.globals.panEnabled, t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass) ? t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass) : t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass) + })) + } + }, { + key: "toggleOtherControls", value: function () { + var t = this, e = this.w; + e.globals.panEnabled = !1, e.globals.zoomEnabled = !1, e.globals.selectionEnabled = !1, this.getToolbarIconsReference(), [this.elPan, this.elSelection, this.elZoom].forEach((function (e) { + e && e.classList.remove(t.selectedClass) + })) + } + }, { + key: "handleZoomIn", value: function () { + var t = this.w; + t.globals.isRangeBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY); + var e = (this.minX + this.maxX) / 2, i = (this.minX + e) / 2, a = (this.maxX + e) / 2, + s = this._getNewMinXMaxX(i, a); + t.globals.disableZoomIn || this.zoomUpdateOptions(s.minX, s.maxX) + } + }, { + key: "handleZoomOut", value: function () { + var t = this.w; + if (t.globals.isRangeBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY), !("datetime" === t.config.xaxis.type && new Date(this.minX).getUTCFullYear() < 1e3)) { + var e = (this.minX + this.maxX) / 2, i = this.minX - (e - this.minX), + a = this.maxX - (e - this.maxX), s = this._getNewMinXMaxX(i, a); + t.globals.disableZoomOut || this.zoomUpdateOptions(s.minX, s.maxX) + } + } + }, { + key: "_getNewMinXMaxX", value: function (t, e) { + var i = this.w.config.xaxis.convertedCatToNumeric; + return {minX: i ? Math.floor(t) : t, maxX: i ? Math.floor(e) : e} + } + }, { + key: "zoomUpdateOptions", value: function (t, e) { + var i = this.w; + if (void 0 !== t || void 0 !== e) { + if (!(i.config.xaxis.convertedCatToNumeric && (t < 1 && (t = 1, e = i.globals.dataPoints), e - t < 2))) { + var a = {min: t, max: e}, s = this.getBeforeZoomRange(a); + s && (a = s.xaxis); + var r = {xaxis: a}, n = v.clone(i.globals.initialConfig.yaxis); + i.config.chart.group || (r.yaxis = n), this.w.globals.zoomed = !0, this.ctx.updateHelpers._updateOptions(r, !1, this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(a, n) + } + } else this.handleZoomReset() + } + }, { + key: "zoomCallback", value: function (t, e) { + "function" == typeof this.ev.zoomed && (this.ev.zoomed(this.ctx, { + xaxis: t, + yaxis: e + }), this.ctx.events.fireEvent("zoomed", {xaxis: t, yaxis: e})) + } + }, { + key: "getBeforeZoomRange", value: function (t, e) { + var i = null; + return "function" == typeof this.ev.beforeZoom && (i = this.ev.beforeZoom(this, { + xaxis: t, + yaxis: e + })), i + } + }, { + key: "toggleMenu", value: function () { + var t = this; + window.setTimeout((function () { + t.elMenu.classList.contains("apexcharts-menu-open") ? t.elMenu.classList.remove("apexcharts-menu-open") : t.elMenu.classList.add("apexcharts-menu-open") + }), 0) + } + }, { + key: "handleDownload", value: function (t) { + var e = this.w, i = new Qi(this.ctx); + switch (t) { + case"svg": + i.exportToSVG(this.ctx); + break; + case"png": + i.exportToPng(this.ctx); + break; + case"csv": + i.exportToCSV({ + series: e.config.series, + columnDelimiter: e.config.chart.toolbar.export.csv.columnDelimiter + }) + } + } + }, { + key: "handleZoomReset", value: function (t) { + this.ctx.getSyncedCharts().forEach((function (t) { + var e = t.w; + if (e.globals.lastXAxis.min = e.globals.initialConfig.xaxis.min, e.globals.lastXAxis.max = e.globals.initialConfig.xaxis.max, t.updateHelpers.revertDefaultAxisMinMax(), "function" == typeof e.config.chart.events.beforeResetZoom) { + var i = e.config.chart.events.beforeResetZoom(t, e); + i && t.updateHelpers.revertDefaultAxisMinMax(i) + } + "function" == typeof e.config.chart.events.zoomed && t.ctx.toolbar.zoomCallback({ + min: e.config.xaxis.min, + max: e.config.xaxis.max + }), e.globals.zoomed = !1; + var a = t.ctx.series.emptyCollapsedSeries(v.clone(e.globals.initialSeries)); + t.updateHelpers._updateSeries(a, e.config.chart.animations.dynamicAnimation.enabled) + })) + } + }, { + key: "destroy", value: function () { + this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null + } + }]), t + }(), va = function (t) { + h(a, t); + var e = n(a); + + function a(t) { + var s; + return i(this, a), (s = e.call(this, t)).ctx = t, s.w = t.w, s.dragged = !1, s.graphics = new Mi(s.ctx), s.eventList = ["mousedown", "mouseleave", "mousemove", "touchstart", "touchmove", "mouseup", "touchend", "wheel"], s.clientX = 0, s.clientY = 0, s.startX = 0, s.endX = 0, s.dragX = 0, s.startY = 0, s.endY = 0, s.dragY = 0, s.moveDirection = "none", s.debounceTimer = null, s.debounceDelay = 100, s.wheelDelay = 400, s + } + + return s(a, [{ + key: "init", value: function (t) { + var e = this, i = t.xyRatios, a = this.w, s = this; + this.xyRatios = i, this.zoomRect = this.graphics.drawRect(0, 0, 0, 0), this.selectionRect = this.graphics.drawRect(0, 0, 0, 0), this.gridRect = a.globals.dom.baseEl.querySelector(".apexcharts-grid"), this.constraints = new kt(0, 0, a.globals.gridWidth, a.globals.gridHeight), this.zoomRect.node.classList.add("apexcharts-zoom-rect"), this.selectionRect.node.classList.add("apexcharts-selection-rect"), a.globals.dom.Paper.add(this.zoomRect), a.globals.dom.Paper.add(this.selectionRect), "x" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ + minX: 0, + minY: 0, + maxX: a.globals.gridWidth, + maxY: a.globals.gridHeight + }).on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")) : "y" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ + minX: 0, + maxX: a.globals.gridWidth + }).on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")) : this.slDraggableRect = this.selectionRect.draggable().on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")), this.preselectedSelection(), this.hoverArea = a.globals.dom.baseEl.querySelector("".concat(a.globals.chartClass, " .apexcharts-svg")), this.hoverArea.classList.add("apexcharts-zoomable"), this.eventList.forEach((function (t) { + e.hoverArea.addEventListener(t, s.svgMouseEvents.bind(s, i), {capture: !1, passive: !0}) + })), a.config.chart.zoom.enabled && a.config.chart.zoom.allowMouseWheelZoom && this.hoverArea.addEventListener("wheel", s.mouseWheelEvent.bind(s), { + capture: !1, + passive: !1 + }) + } + }, { + key: "destroy", value: function () { + this.slDraggableRect && (this.slDraggableRect.draggable(!1), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null + } + }, { + key: "svgMouseEvents", value: function (t, e) { + var i = this.w, a = this.ctx.toolbar, + s = i.globals.zoomEnabled ? i.config.chart.zoom.type : i.config.chart.selection.type, + r = i.config.chart.toolbar.autoSelected; + if (e.shiftKey ? (this.shiftWasPressed = !0, a.enableZoomPanFromToolbar("pan" === r ? "zoom" : "pan")) : this.shiftWasPressed && (a.enableZoomPanFromToolbar(r), this.shiftWasPressed = !1), e.target) { + var n, o = e.target.classList; + if (e.target.parentNode && null !== e.target.parentNode && (n = e.target.parentNode.classList), !(o.contains("apexcharts-legend-marker") || o.contains("apexcharts-legend-text") || n && n.contains("apexcharts-toolbar"))) { + if (this.clientX = "touchmove" === e.type || "touchstart" === e.type ? e.touches[0].clientX : "touchend" === e.type ? e.changedTouches[0].clientX : e.clientX, this.clientY = "touchmove" === e.type || "touchstart" === e.type ? e.touches[0].clientY : "touchend" === e.type ? e.changedTouches[0].clientY : e.clientY, "mousedown" === e.type && 1 === e.which || "touchstart" === e.type) { + var l = this.gridRect.getBoundingClientRect(); + this.startX = this.clientX - l.left - i.globals.barPadForNumericAxis, this.startY = this.clientY - l.top, this.dragged = !1, this.w.globals.mousedown = !0 + } + ("mousemove" === e.type && 1 === e.which || "touchmove" === e.type) && (this.dragged = !0, i.globals.panEnabled ? (i.globals.selection = null, this.w.globals.mousedown && this.panDragging({ + context: this, + zoomtype: s, + xyRatios: t + })) : (this.w.globals.mousedown && i.globals.zoomEnabled || this.w.globals.mousedown && i.globals.selectionEnabled) && (this.selection = this.selectionDrawing({ + context: this, + zoomtype: s + }))), "mouseup" !== e.type && "touchend" !== e.type && "mouseleave" !== e.type || this.handleMouseUp({zoomtype: s}), this.makeSelectionRectDraggable() + } + } + } + }, { + key: "handleMouseUp", value: function (t) { + var e, i = t.zoomtype, a = t.isResized, s = this.w, + r = null === (e = this.gridRect) || void 0 === e ? void 0 : e.getBoundingClientRect(); + r && (this.w.globals.mousedown || a) && (this.endX = this.clientX - r.left - s.globals.barPadForNumericAxis, this.endY = this.clientY - r.top, this.dragX = Math.abs(this.endX - this.startX), this.dragY = Math.abs(this.endY - this.startY), (s.globals.zoomEnabled || s.globals.selectionEnabled) && this.selectionDrawn({ + context: this, + zoomtype: i + })), s.globals.zoomEnabled && this.hideSelectionRect(this.selectionRect), this.dragged = !1, this.w.globals.mousedown = !1 + } + }, { + key: "mouseWheelEvent", value: function (t) { + var e = this, i = this.w; + t.preventDefault(); + var a = Date.now(); + a - i.globals.lastWheelExecution > this.wheelDelay && (this.executeMouseWheelZoom(t), i.globals.lastWheelExecution = a), this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout((function () { + a - i.globals.lastWheelExecution > e.wheelDelay && (e.executeMouseWheelZoom(t), i.globals.lastWheelExecution = a) + }), this.debounceDelay) + } + }, { + key: "executeMouseWheelZoom", value: function (t) { + var e, i = this.w; + this.minX = i.globals.isRangeBar ? i.globals.minY : i.globals.minX, this.maxX = i.globals.isRangeBar ? i.globals.maxY : i.globals.maxX; + var a = null === (e = this.gridRect) || void 0 === e ? void 0 : e.getBoundingClientRect(); + if (a) { + var s, r, n, o = (t.clientX - a.left) / a.width, l = this.minX, h = this.maxX, c = h - l; + if (t.deltaY < 0) { + var d = l + o * c; + r = d - (s = .5 * c) / 2, n = d + s / 2 + } else r = l - (s = 1.5 * c) / 2, n = h + s / 2; + if (!i.globals.isRangeBar) { + r = Math.max(r, i.globals.initialMinX), n = Math.min(n, i.globals.initialMaxX); + var u = .01 * (i.globals.initialMaxX - i.globals.initialMinX); + if (n - r < u) { + var g = (r + n) / 2; + r = g - u / 2, n = g + u / 2 + } + } + var p = this._getNewMinXMaxX(r, n); + isNaN(p.minX) || isNaN(p.maxX) || this.zoomUpdateOptions(p.minX, p.maxX) + } + } + }, { + key: "makeSelectionRectDraggable", value: function () { + var t = this, e = this.w; + if (this.selectionRect) { + var i = this.selectionRect.node.getBoundingClientRect(); + i.width > 0 && i.height > 0 && (this.selectionRect.select(!1).resize(!1), this.selectionRect.select({ + createRot: function () { + }, updateRot: function () { + }, createHandle: function (t, e, i, a, s) { + return "l" === s || "r" === s ? t.circle(8).css({ + "stroke-width": 1, + stroke: "#333", + fill: "#fff" + }) : t.circle(0) + }, updateHandle: function (t, e) { + return t.center(e[0], e[1]) + } + }).resize().on("resize", (function () { + var i = e.globals.zoomEnabled ? e.config.chart.zoom.type : e.config.chart.selection.type; + t.handleMouseUp({zoomtype: i, isResized: !0}) + }))) + } + } + }, { + key: "preselectedSelection", value: function () { + var t = this.w, e = this.xyRatios; + if (!t.globals.zoomEnabled) if (void 0 !== t.globals.selection && null !== t.globals.selection) this.drawSelectionRect(u(u({}, t.globals.selection), {}, { + translateX: t.globals.translateX, + translateY: t.globals.translateY + })); else if (void 0 !== t.config.chart.selection.xaxis.min && void 0 !== t.config.chart.selection.xaxis.max) { + var i = (t.config.chart.selection.xaxis.min - t.globals.minX) / e.xRatio, + a = t.globals.gridWidth - (t.globals.maxX - t.config.chart.selection.xaxis.max) / e.xRatio - i; + t.globals.isRangeBar && (i = (t.config.chart.selection.xaxis.min - t.globals.yAxisScale[0].niceMin) / e.invertedYRatio, a = (t.config.chart.selection.xaxis.max - t.config.chart.selection.xaxis.min) / e.invertedYRatio); + var s = { + x: i, + y: 0, + width: a, + height: t.globals.gridHeight, + translateX: t.globals.translateX, + translateY: t.globals.translateY, + selectionEnabled: !0 + }; + this.drawSelectionRect(s), this.makeSelectionRectDraggable(), "function" == typeof t.config.chart.events.selection && t.config.chart.events.selection(this.ctx, { + xaxis: { + min: t.config.chart.selection.xaxis.min, + max: t.config.chart.selection.xaxis.max + }, yaxis: {} + }) + } + } + }, { + key: "drawSelectionRect", value: function (t) { + var e = t.x, i = t.y, a = t.width, s = t.height, r = t.translateX, n = void 0 === r ? 0 : r, + o = t.translateY, l = void 0 === o ? 0 : o, h = this.w, c = this.zoomRect, d = this.selectionRect; + if (this.dragged || null !== h.globals.selection) { + var u = {transform: "translate(" + n + ", " + l + ")"}; + h.globals.zoomEnabled && this.dragged && (a < 0 && (a = 1), c.attr({ + x: e, + y: i, + width: a, + height: s, + fill: h.config.chart.zoom.zoomedArea.fill.color, + "fill-opacity": h.config.chart.zoom.zoomedArea.fill.opacity, + stroke: h.config.chart.zoom.zoomedArea.stroke.color, + "stroke-width": h.config.chart.zoom.zoomedArea.stroke.width, + "stroke-opacity": h.config.chart.zoom.zoomedArea.stroke.opacity + }), Mi.setAttrs(c.node, u)), h.globals.selectionEnabled && (d.attr({ + x: e, + y: i, + width: a > 0 ? a : 0, + height: s > 0 ? s : 0, + fill: h.config.chart.selection.fill.color, + "fill-opacity": h.config.chart.selection.fill.opacity, + stroke: h.config.chart.selection.stroke.color, + "stroke-width": h.config.chart.selection.stroke.width, + "stroke-dasharray": h.config.chart.selection.stroke.dashArray, + "stroke-opacity": h.config.chart.selection.stroke.opacity + }), Mi.setAttrs(d.node, u)) + } + } + }, { + key: "hideSelectionRect", value: function (t) { + t && t.attr({x: 0, y: 0, width: 0, height: 0}) + } + }, { + key: "selectionDrawing", value: function (t) { + var e = t.context, i = t.zoomtype, a = this.w, s = e, r = this.gridRect.getBoundingClientRect(), + n = s.startX - 1, o = s.startY, l = !1, h = !1, + c = s.clientX - r.left - a.globals.barPadForNumericAxis, d = s.clientY - r.top, g = c - n, + p = d - o, f = {translateX: a.globals.translateX, translateY: a.globals.translateY}; + return Math.abs(g + n) > a.globals.gridWidth ? g = a.globals.gridWidth - n : c < 0 && (g = n), n > c && (l = !0, g = Math.abs(g)), o > d && (h = !0, p = Math.abs(p)), f = u(u({}, f = "x" === i ? { + x: l ? n - g : n, + y: 0, + width: g, + height: a.globals.gridHeight + } : "y" === i ? {x: 0, y: h ? o - p : o, width: a.globals.gridWidth, height: p} : { + x: l ? n - g : n, + y: h ? o - p : o, + width: g, + height: p + }), {}, { + translateX: a.globals.translateX, + translateY: a.globals.translateY + }), s.drawSelectionRect(f), s.selectionDragging("resizing"), f + } + }, { + key: "selectionDragging", value: function (t, e) { + var i = this, a = this.w; + if (e) { + e.preventDefault(); + var s = e.detail, r = s.handler, n = s.box, o = n.x, l = n.y; + o < this.constraints.x && (o = this.constraints.x), l < this.constraints.y && (l = this.constraints.y), n.x2 > this.constraints.x2 && (o = this.constraints.x2 - n.w), n.y2 > this.constraints.y2 && (l = this.constraints.y2 - n.h), r.move(o, l); + var h = this.xyRatios, c = this.selectionRect, d = 0; + "resizing" === t && (d = 30); + var u = function (t) { + return parseFloat(c.node.getAttribute(t)) + }, g = {x: u("x"), y: u("y"), width: u("width"), height: u("height")}; + a.globals.selection = g, "function" == typeof a.config.chart.events.selection && a.globals.selectionEnabled && (clearTimeout(this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout((function () { + var t, e, s, r, n = i.gridRect.getBoundingClientRect(), o = c.node.getBoundingClientRect(); + a.globals.isRangeBar ? (t = a.globals.yAxisScale[0].niceMin + (o.left - n.left) * h.invertedYRatio, e = a.globals.yAxisScale[0].niceMin + (o.right - n.left) * h.invertedYRatio, s = 0, r = 1) : (t = a.globals.xAxisScale.niceMin + (o.left - n.left) * h.xRatio, e = a.globals.xAxisScale.niceMin + (o.right - n.left) * h.xRatio, s = a.globals.yAxisScale[0].niceMin + (n.bottom - o.bottom) * h.yRatio[0], r = a.globals.yAxisScale[0].niceMax - (o.top - n.top) * h.yRatio[0]); + var l = {xaxis: {min: t, max: e}, yaxis: {min: s, max: r}}; + a.config.chart.events.selection(i.ctx, l), a.config.chart.brush.enabled && void 0 !== a.config.chart.events.brushScrolled && a.config.chart.events.brushScrolled(i.ctx, l) + }), d)) + } + } + }, { + key: "selectionDrawn", value: function (t) { + var e, i, a = t.context, s = t.zoomtype, r = this.w, n = a, o = this.xyRatios, l = this.ctx.toolbar, + h = r.globals.zoomEnabled ? n.zoomRect.node.getBoundingClientRect() : n.selectionRect.node.getBoundingClientRect(), + c = n.gridRect.getBoundingClientRect(), d = h.left - c.left - r.globals.barPadForNumericAxis, + u = h.right - c.left - r.globals.barPadForNumericAxis, g = h.top - c.top, p = h.bottom - c.top; + r.globals.isRangeBar ? (e = r.globals.yAxisScale[0].niceMin + d * o.invertedYRatio, i = r.globals.yAxisScale[0].niceMin + u * o.invertedYRatio) : (e = r.globals.xAxisScale.niceMin + d * o.xRatio, i = r.globals.xAxisScale.niceMin + u * o.xRatio); + var f = [], x = []; + if (r.config.yaxis.forEach((function (t, e) { + var i = r.globals.seriesYAxisMap[e][0], a = r.globals.yAxisScale[e].niceMax - o.yRatio[i] * g, + s = r.globals.yAxisScale[e].niceMax - o.yRatio[i] * p; + f.push(a), x.push(s) + })), n.dragged && (n.dragX > 10 || n.dragY > 10) && e !== i) if (r.globals.zoomEnabled) { + var b = v.clone(r.globals.initialConfig.yaxis), m = v.clone(r.globals.initialConfig.xaxis); + if (r.globals.zoomed = !0, r.config.xaxis.convertedCatToNumeric && (e = Math.floor(e), i = Math.floor(i), e < 1 && (e = 1, i = r.globals.dataPoints), i - e < 2 && (i = e + 1)), "xy" !== s && "x" !== s || (m = { + min: e, + max: i + }), "xy" !== s && "y" !== s || b.forEach((function (t, e) { + b[e].min = x[e], b[e].max = f[e] + })), l) { + var y = l.getBeforeZoomRange(m, b); + y && (m = y.xaxis ? y.xaxis : m, b = y.yaxis ? y.yaxis : b) + } + var w = {xaxis: m}; + r.config.chart.group || (w.yaxis = b), n.ctx.updateHelpers._updateOptions(w, !1, n.w.config.chart.animations.dynamicAnimation.enabled), "function" == typeof r.config.chart.events.zoomed && l.zoomCallback(m, b) + } else if (r.globals.selectionEnabled) { + var k, A = null; + k = { + min: e, + max: i + }, "xy" !== s && "y" !== s || (A = v.clone(r.config.yaxis)).forEach((function (t, e) { + A[e].min = x[e], A[e].max = f[e] + })), r.globals.selection = n.selection, "function" == typeof r.config.chart.events.selection && r.config.chart.events.selection(n.ctx, { + xaxis: k, + yaxis: A + }) + } + } + }, { + key: "panDragging", value: function (t) { + var e = t.context, i = this.w, a = e; + if (void 0 !== i.globals.lastClientPosition.x) { + var s = i.globals.lastClientPosition.x - a.clientX, r = i.globals.lastClientPosition.y - a.clientY; + Math.abs(s) > Math.abs(r) && s > 0 ? this.moveDirection = "left" : Math.abs(s) > Math.abs(r) && s < 0 ? this.moveDirection = "right" : Math.abs(r) > Math.abs(s) && r > 0 ? this.moveDirection = "up" : Math.abs(r) > Math.abs(s) && r < 0 && (this.moveDirection = "down") + } + i.globals.lastClientPosition = {x: a.clientX, y: a.clientY}; + var n = i.globals.isRangeBar ? i.globals.minY : i.globals.minX, + o = i.globals.isRangeBar ? i.globals.maxY : i.globals.maxX; + a.panScrolled(n, o) + } + }, { + key: "panScrolled", value: function (t, e) { + var i = this.w, a = this.xyRatios, s = v.clone(i.globals.initialConfig.yaxis), r = a.xRatio, + n = i.globals.minX, o = i.globals.maxX; + i.globals.isRangeBar && (r = a.invertedYRatio, n = i.globals.minY, o = i.globals.maxY), "left" === this.moveDirection ? (t = n + i.globals.gridWidth / 15 * r, e = o + i.globals.gridWidth / 15 * r) : "right" === this.moveDirection && (t = n - i.globals.gridWidth / 15 * r, e = o - i.globals.gridWidth / 15 * r), i.globals.isRangeBar || (t < i.globals.initialMinX || e > i.globals.initialMaxX) && (t = n, e = o); + var l = {xaxis: {min: t, max: e}}; + i.config.chart.group || (l.yaxis = s), this.updateScrolledChart(l, t, e) + } + }, { + key: "updateScrolledChart", value: function (t, e, i) { + var a = this.w; + if (this.ctx.updateHelpers._updateOptions(t, !1, !1), "function" == typeof a.config.chart.events.scrolled) { + var s = {xaxis: {min: e, max: i}}; + a.config.chart.events.scrolled(this.ctx, s), this.ctx.events.fireEvent("scrolled", s) + } + } + }]), a + }(ma), ya = function () { + function t(e) { + i(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx + } + + return s(t, [{ + key: "getNearestValues", value: function (t) { + var e = t.hoverArea, i = t.elGrid, a = t.clientX, s = t.clientY, r = this.w, + n = i.getBoundingClientRect(), o = n.width, l = n.height, h = o / (r.globals.dataPoints - 1), + c = l / r.globals.dataPoints, d = this.hasBars(); + !r.globals.comboCharts && !d || r.config.xaxis.convertedCatToNumeric || (h = o / r.globals.dataPoints); + var u = a - n.left - r.globals.barPadForNumericAxis, g = s - n.top; + u < 0 || g < 0 || u > o || g > l ? (e.classList.remove("hovering-zoom"), e.classList.remove("hovering-pan")) : r.globals.zoomEnabled ? (e.classList.remove("hovering-pan"), e.classList.add("hovering-zoom")) : r.globals.panEnabled && (e.classList.remove("hovering-zoom"), e.classList.add("hovering-pan")); + var p = Math.round(u / h), f = Math.floor(g / c); + d && !r.config.xaxis.convertedCatToNumeric && (p = Math.ceil(u / h), p -= 1); + var x = null, b = null, m = r.globals.seriesXvalues.map((function (t) { + return t.filter((function (t) { + return v.isNumber(t) + })) + })), y = r.globals.seriesYvalues.map((function (t) { + return t.filter((function (t) { + return v.isNumber(t) + })) + })); + if (r.globals.isXNumeric) { + var w = this.ttCtx.getElGrid().getBoundingClientRect(), k = u * (w.width / o), + A = g * (w.height / l); + x = (b = this.closestInMultiArray(k, A, m, y)).index, p = b.j, null !== x && r.globals.hasNullValues && (m = r.globals.seriesXvalues[x], p = (b = this.closestInArray(k, m)).j) + } + return r.globals.capturedSeriesIndex = null === x ? -1 : x, (!p || p < 1) && (p = 0), r.globals.isBarHorizontal ? r.globals.capturedDataPointIndex = f : r.globals.capturedDataPointIndex = p, { + capturedSeries: x, + j: r.globals.isBarHorizontal ? f : p, + hoverX: u, + hoverY: g + } + } + }, { + key: "getFirstActiveXArray", value: function (t) { + for (var e = this.w, i = 0, a = t.map((function (t, e) { + return t.length > 0 ? e : -1 + })), s = 0; s < a.length; s++) if (-1 !== a[s] && -1 === e.globals.collapsedSeriesIndices.indexOf(s) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(s)) { + i = a[s]; + break + } + return i + } + }, { + key: "closestInMultiArray", value: function (t, e, i, a) { + for (var s, r = this.w, n = 1 / 0, o = null, l = null, h = 0; h < i.length; h++) if (s = h, -1 === r.globals.collapsedSeriesIndices.indexOf(s) && -1 === r.globals.ancillaryCollapsedSeriesIndices.indexOf(s)) for (var c = i[h], d = a[h], u = Math.min(c.length, d.length), g = 0; g < u; g++) { + var p = t - c[g], f = Math.sqrt(p * p); + if (!r.globals.allSeriesHasEqualX) { + var x = e - d[g]; + f = Math.sqrt(p * p + x * x) + } + f < n && (n = f, o = h, l = g) + } + return {index: o, j: l} + } + }, { + key: "closestInArray", value: function (t, e) { + for (var i = e[0], a = null, s = Math.abs(t - i), r = 0; r < e.length; r++) { + var n = Math.abs(t - e[r]); + n < s && (s = n, a = r) + } + return {j: a} + } + }, { + key: "isXoverlap", value: function (t) { + var e = [], i = this.w.globals.seriesX.filter((function (t) { + return void 0 !== t[0] + })); + if (i.length > 0) for (var a = 0; a < i.length - 1; a++) void 0 !== i[a][t] && void 0 !== i[a + 1][t] && i[a][t] !== i[a + 1][t] && e.push("unEqual"); + return 0 === e.length + } + }, { + key: "isInitialSeriesSameLen", value: function () { + for (var t = !0, e = this.w.globals.initialSeries, i = 0; i < e.length - 1; i++) if (e[i].data.length !== e[i + 1].data.length) { + t = !1; + break + } + return t + } + }, { + key: "getBarsHeight", value: function (t) { + return f(t).reduce((function (t, e) { + return t + e.getBBox().height + }), 0) + } + }, { + key: "getElMarkers", value: function (t) { + return "number" == typeof t ? this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:realIndex='".concat(t, "'] .apexcharts-series-markers-wrap > *")) : this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *") + } + }, { + key: "getAllMarkers", value: function () { + var t = this, e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], + i = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap"); + i = f(i), e && (i = i.filter((function (e) { + var i = Number(e.getAttribute("data:realIndex")); + return -1 === t.w.globals.collapsedSeriesIndices.indexOf(i) + }))), i.sort((function (t, e) { + var i = Number(t.getAttribute("data:realIndex")), a = Number(e.getAttribute("data:realIndex")); + return a < i ? 1 : a > i ? -1 : 0 + })); + var a = []; + return i.forEach((function (t) { + a.push(t.querySelector(".apexcharts-marker")) + })), a + } + }, { + key: "hasMarkers", value: function (t) { + return this.getElMarkers(t).length > 0 + } + }, { + key: "getPathFromPoint", value: function (t, e) { + var i = Number(t.getAttribute("cx")), a = Number(t.getAttribute("cy")), s = t.getAttribute("shape"); + return new Mi(this.ctx).getMarkerPath(i, a, s, e) + } + }, { + key: "getElBars", value: function () { + return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series") + } + }, { + key: "hasBars", value: function () { + return this.getElBars().length > 0 + } + }, { + key: "getHoverMarkerSize", value: function (t) { + var e = this.w, i = e.config.markers.hover.size; + return void 0 === i && (i = e.globals.markers.size[t] + e.config.markers.hover.sizeOffset), i + } + }, { + key: "toggleAllTooltipSeriesGroups", value: function (t) { + var e = this.w, i = this.ttCtx; + 0 === i.allTooltipSeriesGroups.length && (i.allTooltipSeriesGroups = e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group")); + for (var a = i.allTooltipSeriesGroups, s = 0; s < a.length; s++) "enable" === t ? (a[s].classList.add("apexcharts-active"), a[s].style.display = e.config.tooltip.items.display) : (a[s].classList.remove("apexcharts-active"), a[s].style.display = "none") + } + }]), t + }(), wa = function () { + function t(e) { + i(this, t), this.w = e.w, this.ctx = e.ctx, this.ttCtx = e, this.tooltipUtil = new ya(e) + } + + return s(t, [{ + key: "drawSeriesTexts", value: function (t) { + var e = t.shared, i = void 0 === e || e, a = t.ttItems, s = t.i, r = void 0 === s ? 0 : s, n = t.j, + o = void 0 === n ? null : n, l = t.y1, h = t.y2, c = t.e, d = this.w; + void 0 !== d.config.tooltip.custom ? this.handleCustomTooltip({ + i: r, + j: o, + y1: l, + y2: h, + w: d + }) : this.toggleActiveInactiveSeries(i, r); + var u = this.getValuesToPrint({i: r, j: o}); + this.printLabels({i: r, j: o, values: u, ttItems: a, shared: i, e: c}); + var g = this.ttCtx.getElTooltip(); + this.ttCtx.tooltipRect.ttWidth = g.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = g.getBoundingClientRect().height + } + }, { + key: "printLabels", value: function (t) { + var e, i = this, a = t.i, s = t.j, r = t.values, n = t.ttItems, o = t.shared, l = t.e, h = this.w, + c = [], d = function (t) { + return h.globals.seriesGoals[t] && h.globals.seriesGoals[t][s] && Array.isArray(h.globals.seriesGoals[t][s]) + }, g = r.xVal, p = r.zVal, f = r.xAxisTTVal, x = "", b = h.globals.colors[a]; + null !== s && h.config.plotOptions.bar.distributed && (b = h.globals.colors[s]); + for (var m = function (t, r) { + var m = i.getFormatters(a); + x = i.getSeriesName({ + fn: m.yLbTitleFormatter, + index: a, + seriesIndex: a, + j: s + }), "treemap" === h.config.chart.type && (x = m.yLbTitleFormatter(String(h.config.series[a].data[s].x), { + series: h.globals.series, + seriesIndex: a, + dataPointIndex: s, + w: h + })); + var v = h.config.tooltip.inverseOrder ? r : t; + if (h.globals.axisCharts) { + var y = function (t) { + var e, i, a, r; + return h.globals.isRangeData ? m.yLbFormatter(null === (e = h.globals.seriesRangeStart) || void 0 === e || null === (i = e[t]) || void 0 === i ? void 0 : i[s], { + series: h.globals.seriesRangeStart, + seriesIndex: t, + dataPointIndex: s, + w: h + }) + " - " + m.yLbFormatter(null === (a = h.globals.seriesRangeEnd) || void 0 === a || null === (r = a[t]) || void 0 === r ? void 0 : r[s], { + series: h.globals.seriesRangeEnd, + seriesIndex: t, + dataPointIndex: s, + w: h + }) : m.yLbFormatter(h.globals.series[t][s], { + series: h.globals.series, + seriesIndex: t, + dataPointIndex: s, + w: h + }) + }; + if (o) m = i.getFormatters(v), x = i.getSeriesName({ + fn: m.yLbTitleFormatter, + index: v, + seriesIndex: a, + j: s + }), b = h.globals.colors[v], e = y(v), d(v) && (c = h.globals.seriesGoals[v][s].map((function (t) { + return {attrs: t, val: m.yLbFormatter(t.value, {seriesIndex: v, dataPointIndex: s, w: h})} + }))); else { + var w, + k = null == l || null === (w = l.target) || void 0 === w ? void 0 : w.getAttribute("fill"); + k && (-1 !== k.indexOf("url") ? -1 !== k.indexOf("Pattern") && (b = h.globals.dom.baseEl.querySelector(k.substr(4).slice(0, -1)).childNodes[0].getAttribute("stroke")) : b = k), e = y(a), d(a) && Array.isArray(h.globals.seriesGoals[a][s]) && (c = h.globals.seriesGoals[a][s].map((function (t) { + return { + attrs: t, + val: m.yLbFormatter(t.value, {seriesIndex: a, dataPointIndex: s, w: h}) + } + }))) + } + } + null === s && (e = m.yLbFormatter(h.globals.series[a], u(u({}, h), {}, { + seriesIndex: a, + dataPointIndex: a + }))), i.DOMHandling({ + i: a, + t: v, + j: s, + ttItems: n, + values: {val: e, goalVals: c, xVal: g, xAxisTTVal: f, zVal: p}, + seriesName: x, + shared: o, + pColor: b + }) + }, v = 0, y = h.globals.series.length - 1; v < h.globals.series.length; v++, y--) m(v, y) + } + }, { + key: "getFormatters", value: function (t) { + var e, i = this.w, a = i.globals.yLabelFormatters[t]; + return void 0 !== i.globals.ttVal ? Array.isArray(i.globals.ttVal) ? (a = i.globals.ttVal[t] && i.globals.ttVal[t].formatter, e = i.globals.ttVal[t] && i.globals.ttVal[t].title && i.globals.ttVal[t].title.formatter) : (a = i.globals.ttVal.formatter, "function" == typeof i.globals.ttVal.title.formatter && (e = i.globals.ttVal.title.formatter)) : e = i.config.tooltip.y.title.formatter, "function" != typeof a && (a = i.globals.yLabelFormatters[0] ? i.globals.yLabelFormatters[0] : function (t) { + return t + }), "function" != typeof e && (e = function (t) { + return t ? t + ": " : "" + }), {yLbFormatter: a, yLbTitleFormatter: e} + } + }, { + key: "getSeriesName", value: function (t) { + var e = t.fn, i = t.index, a = t.seriesIndex, s = t.j, r = this.w; + return e(String(r.globals.seriesNames[i]), { + series: r.globals.series, + seriesIndex: a, + dataPointIndex: s, + w: r + }) + } + }, { + key: "DOMHandling", value: function (t) { + t.i; + var e = t.t, i = t.j, a = t.ttItems, s = t.values, r = t.seriesName, n = t.shared, o = t.pColor, + l = this.w, h = this.ttCtx, c = s.val, d = s.goalVals, u = s.xVal, g = s.xAxisTTVal, p = s.zVal, + f = null; + f = a[e].children, l.config.tooltip.fillSeriesColor && (a[e].style.backgroundColor = o, f[0].style.display = "none"), h.showTooltipTitle && (null === h.tooltipTitle && (h.tooltipTitle = l.globals.dom.baseEl.querySelector(".apexcharts-tooltip-title")), h.tooltipTitle.innerHTML = u), h.isXAxisTooltipEnabled && (h.xaxisTooltipText.innerHTML = "" !== g ? g : u); + var x = a[e].querySelector(".apexcharts-tooltip-text-y-label"); + x && (x.innerHTML = r || ""); + var b = a[e].querySelector(".apexcharts-tooltip-text-y-value"); + b && (b.innerHTML = void 0 !== c ? c : ""), f[0] && f[0].classList.contains("apexcharts-tooltip-marker") && (l.config.tooltip.marker.fillColors && Array.isArray(l.config.tooltip.marker.fillColors) && (o = l.config.tooltip.marker.fillColors[e]), l.config.tooltip.fillSeriesColor ? f[0].style.backgroundColor = o : f[0].style.color = o), l.config.tooltip.marker.show || (f[0].style.display = "none"); + var m = a[e].querySelector(".apexcharts-tooltip-text-goals-label"), + v = a[e].querySelector(".apexcharts-tooltip-text-goals-value"); + if (d.length && l.globals.seriesGoals[e]) { + var y = function () { + var t = "
", e = "
"; + d.forEach((function (i, a) { + t += '
').concat(i.attrs.name, "
"), e += "
".concat(i.val, "
") + })), m.innerHTML = t + "
", v.innerHTML = e + "
" + }; + n ? l.globals.seriesGoals[e][i] && Array.isArray(l.globals.seriesGoals[e][i]) ? y() : (m.innerHTML = "", v.innerHTML = "") : y() + } else m.innerHTML = "", v.innerHTML = ""; + null !== p && (a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML = l.config.tooltip.z.title, a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML = void 0 !== p ? p : ""); + if (n && f[0]) { + if (l.config.tooltip.hideEmptySeries) { + var w = a[e].querySelector(".apexcharts-tooltip-marker"), + k = a[e].querySelector(".apexcharts-tooltip-text"); + 0 == parseFloat(c) ? (w.style.display = "none", k.style.display = "none") : (w.style.display = "block", k.style.display = "block") + } + null == c || l.globals.ancillaryCollapsedSeriesIndices.indexOf(e) > -1 || l.globals.collapsedSeriesIndices.indexOf(e) > -1 || Array.isArray(h.tConfig.enabledOnSeries) && -1 === h.tConfig.enabledOnSeries.indexOf(e) ? f[0].parentNode.style.display = "none" : f[0].parentNode.style.display = l.config.tooltip.items.display + } else Array.isArray(h.tConfig.enabledOnSeries) && -1 === h.tConfig.enabledOnSeries.indexOf(e) && (f[0].parentNode.style.display = "none") + } + }, { + key: "toggleActiveInactiveSeries", value: function (t, e) { + var i = this.w; + if (t) this.tooltipUtil.toggleAllTooltipSeriesGroups("enable"); else { + this.tooltipUtil.toggleAllTooltipSeriesGroups("disable"); + var a = i.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group-".concat(e)); + a && (a.classList.add("apexcharts-active"), a.style.display = i.config.tooltip.items.display) + } + } + }, { + key: "getValuesToPrint", value: function (t) { + var e = t.i, i = t.j, a = this.w, s = this.ctx.series.filteredSeriesX(), r = "", n = "", o = null, + l = null, h = {series: a.globals.series, seriesIndex: e, dataPointIndex: i, w: a}, + c = a.globals.ttZFormatter; + null === i ? l = a.globals.series[e] : a.globals.isXNumeric && "treemap" !== a.config.chart.type ? (r = s[e][i], 0 === s[e].length && (r = s[this.tooltipUtil.getFirstActiveXArray(s)][i])) : r = new Ji(this.ctx).isFormatXY() ? void 0 !== a.config.series[e].data[i] ? a.config.series[e].data[i].x : "" : void 0 !== a.globals.labels[i] ? a.globals.labels[i] : ""; + var d = r; + a.globals.isXNumeric && "datetime" === a.config.xaxis.type ? r = new Xi(this.ctx).xLabelFormat(a.globals.ttKeyFormatter, d, d, { + i: void 0, + dateFormatter: new zi(this.ctx).formatDate, + w: this.w + }) : r = a.globals.isBarHorizontal ? a.globals.yLabelFormatters[0](d, h) : a.globals.xLabelFormatter(d, h); + return void 0 !== a.config.tooltip.x.formatter && (r = a.globals.ttKeyFormatter(d, h)), a.globals.seriesZ.length > 0 && a.globals.seriesZ[e].length > 0 && (o = c(a.globals.seriesZ[e][i], a)), n = "function" == typeof a.config.xaxis.tooltip.formatter ? a.globals.xaxisTooltipFormatter(d, h) : r, { + val: Array.isArray(l) ? l.join(" ") : l, + xVal: Array.isArray(r) ? r.join(" ") : r, + xAxisTTVal: Array.isArray(n) ? n.join(" ") : n, + zVal: o + } + } + }, { + key: "handleCustomTooltip", value: function (t) { + var e = t.i, i = t.j, a = t.y1, s = t.y2, r = t.w, n = this.ttCtx.getElTooltip(), + o = r.config.tooltip.custom; + Array.isArray(o) && o[e] && (o = o[e]); + var l = o({ + ctx: this.ctx, + series: r.globals.series, + seriesIndex: e, + dataPointIndex: i, + y1: a, + y2: s, + w: r + }); + "string" == typeof l || "number" == typeof l ? n.innerHTML = l : (l instanceof Element || "string" == typeof l.nodeName) && (n.innerHTML = "", n.appendChild(l.cloneNode(!0))) + } + }]), t + }(), ka = function () { + function t(e) { + i(this, t), this.ttCtx = e, this.ctx = e.ctx, this.w = e.w + } + + return s(t, [{ + key: "moveXCrosshairs", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i = this.ttCtx, + a = this.w, s = i.getElXCrosshairs(), r = t - i.xcrosshairsWidth / 2, + n = a.globals.labels.slice().length; + if (null !== e && (r = a.globals.gridWidth / n * e), null === s || a.globals.isBarHorizontal || (s.setAttribute("x", r), s.setAttribute("x1", r), s.setAttribute("x2", r), s.setAttribute("y2", a.globals.gridHeight), s.classList.add("apexcharts-active")), r < 0 && (r = 0), r > a.globals.gridWidth && (r = a.globals.gridWidth), i.isXAxisTooltipEnabled) { + var o = r; + "tickWidth" !== a.config.xaxis.crosshairs.width && "barWidth" !== a.config.xaxis.crosshairs.width || (o = r + i.xcrosshairsWidth / 2), this.moveXAxisTooltip(o) + } + } + }, { + key: "moveYCrosshairs", value: function (t) { + var e = this.ttCtx; + null !== e.ycrosshairs && Mi.setAttrs(e.ycrosshairs, { + y1: t, + y2: t + }), null !== e.ycrosshairsHidden && Mi.setAttrs(e.ycrosshairsHidden, {y1: t, y2: t}) + } + }, { + key: "moveXAxisTooltip", value: function (t) { + var e = this.w, i = this.ttCtx; + if (null !== i.xaxisTooltip && 0 !== i.xcrosshairsWidth) { + i.xaxisTooltip.classList.add("apexcharts-active"); + var a = i.xaxisOffY + e.config.xaxis.tooltip.offsetY + e.globals.translateY + 1 + e.config.xaxis.offsetY; + if (t -= i.xaxisTooltip.getBoundingClientRect().width / 2, !isNaN(t)) { + t += e.globals.translateX; + var s; + s = new Mi(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML), i.xaxisTooltipText.style.minWidth = s.width + "px", i.xaxisTooltip.style.left = t + "px", i.xaxisTooltip.style.top = a + "px" + } + } + } + }, { + key: "moveYAxisTooltip", value: function (t) { + var e = this.w, i = this.ttCtx; + null === i.yaxisTTEls && (i.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip")); + var a = parseInt(i.ycrosshairsHidden.getAttribute("y1"), 10), s = e.globals.translateY + a, + r = i.yaxisTTEls[t].getBoundingClientRect(), n = r.height, o = e.globals.translateYAxisX[t] - 2; + e.config.yaxis[t].opposite && (o -= r.width), s -= n / 2, -1 === e.globals.ignoreYAxisIndexes.indexOf(t) && s > 0 && s < e.globals.gridHeight ? (i.yaxisTTEls[t].classList.add("apexcharts-active"), i.yaxisTTEls[t].style.top = s + "px", i.yaxisTTEls[t].style.left = o + e.config.yaxis[t].tooltip.offsetX + "px") : i.yaxisTTEls[t].classList.remove("apexcharts-active") + } + }, { + key: "moveTooltip", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = this.w, + s = this.ttCtx, r = s.getElTooltip(), n = s.tooltipRect, o = null !== i ? parseFloat(i) : 1, + l = parseFloat(t) + o + 5, h = parseFloat(e) + o / 2; + if (l > a.globals.gridWidth / 2 && (l = l - n.ttWidth - o - 10), l > a.globals.gridWidth - n.ttWidth - 10 && (l = a.globals.gridWidth - n.ttWidth), l < -20 && (l = -20), a.config.tooltip.followCursor) { + var c = s.getElGrid().getBoundingClientRect(); + (l = s.e.clientX - c.left) > a.globals.gridWidth / 2 && (l -= s.tooltipRect.ttWidth), (h = s.e.clientY + a.globals.translateY - c.top) > a.globals.gridHeight / 2 && (h -= s.tooltipRect.ttHeight) + } else a.globals.isBarHorizontal || n.ttHeight / 2 + h > a.globals.gridHeight && (h = a.globals.gridHeight - n.ttHeight + a.globals.translateY); + isNaN(l) || (l += a.globals.translateX, r.style.left = l + "px", r.style.top = h + "px") + } + }, { + key: "moveMarkers", value: function (t, e) { + var i = this.w, a = this.ttCtx; + if (i.globals.markers.size[t] > 0) for (var s = i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t, "'] .apexcharts-marker")), r = 0; r < s.length; r++) parseInt(s[r].getAttribute("rel"), 10) === e && (a.marker.resetPointsSize(), a.marker.enlargeCurrentPoint(e, s[r])); else a.marker.resetPointsSize(), this.moveDynamicPointOnHover(e, t) + } + }, { + key: "moveDynamicPointOnHover", value: function (t, e) { + var i, a, s, r, n = this.w, o = this.ttCtx, l = new Mi(this.ctx), h = n.globals.pointsArray, + c = o.tooltipUtil.getHoverMarkerSize(e), d = n.config.series[e].type; + if (!d || "column" !== d && "candlestick" !== d && "boxPlot" !== d) { + s = null === (i = h[e][t]) || void 0 === i ? void 0 : i[0], r = (null === (a = h[e][t]) || void 0 === a ? void 0 : a[1]) || 0; + var u = n.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e, "'] .apexcharts-series-markers path")); + if (u && r < n.globals.gridHeight && r > 0) { + var g = u.getAttribute("shape"), p = l.getMarkerPath(s, r, g, 1.5 * c); + u.setAttribute("d", p) + } + this.moveXCrosshairs(s), o.fixedTooltip || this.moveTooltip(s, r, c) + } + } + }, { + key: "moveDynamicPointsOnHover", value: function (t) { + var e, i = this.ttCtx, a = i.w, s = 0, r = 0, n = a.globals.pointsArray, o = new $i(this.ctx), + l = new Mi(this.ctx); + e = o.getActiveConfigSeriesIndex("asc", ["line", "area", "scatter", "bubble"]); + var h = i.tooltipUtil.getHoverMarkerSize(e); + if (n[e] && (s = n[e][t][0], r = n[e][t][1]), !isNaN(s)) { + var c = i.tooltipUtil.getAllMarkers(); + if (c.length) for (var d = 0; d < a.globals.series.length; d++) { + var u = n[d]; + if (a.globals.comboCharts && void 0 === u && c.splice(d, 0, null), u && u.length) { + var g = n[d][t][1], p = void 0; + c[d].setAttribute("cx", s); + var f = c[d].getAttribute("shape"); + if ("rangeArea" === a.config.chart.type && !a.globals.comboCharts) { + var x = t + a.globals.series[d].length; + p = n[d][x][1], g -= Math.abs(g - p) / 2 + } + if (null !== g && !isNaN(g) && g < a.globals.gridHeight + h && g + h > 0) { + var b = l.getMarkerPath(s, g, f, h); + c[d].setAttribute("d", b) + } else c[d].setAttribute("d", "") + } + } + this.moveXCrosshairs(s), i.fixedTooltip || this.moveTooltip(s, r || a.globals.gridHeight, h) + } + } + }, { + key: "moveStickyTooltipOverBars", value: function (t, e) { + var i = this.w, a = this.ttCtx, + s = i.globals.columnSeries ? i.globals.columnSeries.length : i.globals.series.length; + i.config.chart.stacked && (s = i.globals.barGroups.length); + var r = s >= 2 && s % 2 == 0 ? Math.floor(s / 2) : Math.floor(s / 2) + 1; + i.globals.isBarHorizontal && (r = new $i(this.ctx).getActiveConfigSeriesIndex("desc") + 1); + var n = i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r, "'] path[j='").concat(t, "'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "']")); + n || "number" != typeof e || (n = i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "']"))); + var o = n ? parseFloat(n.getAttribute("cx")) : 0, l = n ? parseFloat(n.getAttribute("cy")) : 0, + h = n ? parseFloat(n.getAttribute("barWidth")) : 0, c = a.getElGrid().getBoundingClientRect(), + d = n && (n.classList.contains("apexcharts-candlestick-area") || n.classList.contains("apexcharts-boxPlot-area")); + i.globals.isXNumeric ? (n && !d && (o -= s % 2 != 0 ? h / 2 : 0), n && d && (o -= h / 2)) : i.globals.isBarHorizontal || (o = a.xAxisTicksPositions[t - 1] + a.dataPointsDividedWidth / 2, isNaN(o) && (o = a.xAxisTicksPositions[t] - a.dataPointsDividedWidth / 2)), i.globals.isBarHorizontal ? l -= a.tooltipRect.ttHeight : i.config.tooltip.followCursor ? l = a.e.clientY - c.top - a.tooltipRect.ttHeight / 2 : l + a.tooltipRect.ttHeight + 15 > i.globals.gridHeight && (l = i.globals.gridHeight), i.globals.isBarHorizontal || this.moveXCrosshairs(o), a.fixedTooltip || this.moveTooltip(o, l || i.globals.gridHeight) + } + }]), t + }(), Aa = function () { + function t(e) { + i(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx, this.tooltipPosition = new ka(e) + } + + return s(t, [{ + key: "drawDynamicPoints", value: function () { + var t = this.w, e = new Mi(this.ctx), i = new Vi(this.ctx), + a = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series"); + a = f(a), t.config.chart.stacked && a.sort((function (t, e) { + return parseFloat(t.getAttribute("data:realIndex")) - parseFloat(e.getAttribute("data:realIndex")) + })); + for (var s = 0; s < a.length; s++) { + var r = a[s].querySelector(".apexcharts-series-markers-wrap"); + if (null !== r) { + var n = void 0, o = "apexcharts-marker w".concat((Math.random() + 1).toString(36).substring(4)); + "line" !== t.config.chart.type && "area" !== t.config.chart.type || t.globals.comboCharts || t.config.tooltip.intersect || (o += " no-pointer-events"); + var l = i.getMarkerConfig({cssClass: o, seriesIndex: Number(r.getAttribute("data:realIndex"))}); + (n = e.drawMarker(0, 0, l)).node.setAttribute("default-marker-size", 0); + var h = document.createElementNS(t.globals.SVGNS, "g"); + h.classList.add("apexcharts-series-markers"), h.appendChild(n.node), r.appendChild(h) + } + } + } + }, { + key: "enlargeCurrentPoint", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s = this.w; + "bubble" !== s.config.chart.type && this.newPointSize(t, e); + var r = e.getAttribute("cx"), n = e.getAttribute("cy"); + if (null !== i && null !== a && (r = i, n = a), this.tooltipPosition.moveXCrosshairs(r), !this.fixedTooltip) { + if ("radar" === s.config.chart.type) { + var o = this.ttCtx.getElGrid().getBoundingClientRect(); + r = this.ttCtx.e.clientX - o.left + } + this.tooltipPosition.moveTooltip(r, n, s.config.markers.hover.size) + } + } + }, { + key: "enlargePoints", value: function (t) { + for (var e = this.w, i = this, a = this.ttCtx, s = t, r = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), n = e.config.markers.hover.size, o = 0; o < r.length; o++) { + var l = r[o].getAttribute("rel"), h = r[o].getAttribute("index"); + if (void 0 === n && (n = e.globals.markers.size[h] + e.config.markers.hover.sizeOffset), s === parseInt(l, 10)) { + i.newPointSize(s, r[o]); + var c = r[o].getAttribute("cx"), d = r[o].getAttribute("cy"); + i.tooltipPosition.moveXCrosshairs(c), a.fixedTooltip || i.tooltipPosition.moveTooltip(c, d, n) + } else i.oldPointSize(r[o]) + } + } + }, { + key: "newPointSize", value: function (t, e) { + var i = this.w, a = i.config.markers.hover.size, + s = 0 === t ? e.parentNode.firstChild : e.parentNode.lastChild; + if ("0" !== s.getAttribute("default-marker-size")) { + var r = parseInt(s.getAttribute("index"), 10); + void 0 === a && (a = i.globals.markers.size[r] + i.config.markers.hover.sizeOffset), a < 0 && (a = 0); + var n = this.ttCtx.tooltipUtil.getPathFromPoint(e, a); + e.setAttribute("d", n) + } + } + }, { + key: "oldPointSize", value: function (t) { + var e = parseFloat(t.getAttribute("default-marker-size")), + i = this.ttCtx.tooltipUtil.getPathFromPoint(t, e); + t.setAttribute("d", i) + } + }, { + key: "resetPointsSize", value: function () { + for (var t = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), e = 0; e < t.length; e++) { + var i = parseFloat(t[e].getAttribute("default-marker-size")); + if (v.isNumber(i) && i > 0) { + var a = this.ttCtx.tooltipUtil.getPathFromPoint(t[e], i); + t[e].setAttribute("d", a) + } else t[e].setAttribute("d", "M0,0") + } + } + }]), t + }(), Ca = function () { + function t(e) { + i(this, t), this.w = e.w; + var a = this.w; + this.ttCtx = e, this.isVerticalGroupedRangeBar = !a.globals.isBarHorizontal && "rangeBar" === a.config.chart.type && a.config.plotOptions.bar.rangeBarGroupRows + } + + return s(t, [{ + key: "getAttr", value: function (t, e) { + return parseFloat(t.target.getAttribute(e)) + } + }, { + key: "handleHeatTreeTooltip", value: function (t) { + var e = t.e, i = t.opt, a = t.x, s = t.y, r = t.type, n = this.ttCtx, o = this.w; + if (e.target.classList.contains("apexcharts-".concat(r, "-rect"))) { + var l = this.getAttr(e, "i"), h = this.getAttr(e, "j"), c = this.getAttr(e, "cx"), + d = this.getAttr(e, "cy"), u = this.getAttr(e, "width"), g = this.getAttr(e, "height"); + if (n.tooltipLabels.drawSeriesTexts({ + ttItems: i.ttItems, + i: l, + j: h, + shared: !1, + e: e + }), o.globals.capturedSeriesIndex = l, o.globals.capturedDataPointIndex = h, a = c + n.tooltipRect.ttWidth / 2 + u, s = d + n.tooltipRect.ttHeight / 2 - g / 2, n.tooltipPosition.moveXCrosshairs(c + u / 2), a > o.globals.gridWidth / 2 && (a = c - n.tooltipRect.ttWidth / 2 + u), n.w.config.tooltip.followCursor) { + var p = o.globals.dom.elWrap.getBoundingClientRect(); + a = o.globals.clientX - p.left - (a > o.globals.gridWidth / 2 ? n.tooltipRect.ttWidth : 0), s = o.globals.clientY - p.top - (s > o.globals.gridHeight / 2 ? n.tooltipRect.ttHeight : 0) + } + } + return {x: a, y: s} + } + }, { + key: "handleMarkerTooltip", value: function (t) { + var e, i, a = t.e, s = t.opt, r = t.x, n = t.y, o = this.w, l = this.ttCtx; + if (a.target.classList.contains("apexcharts-marker")) { + var h = parseInt(s.paths.getAttribute("cx"), 10), c = parseInt(s.paths.getAttribute("cy"), 10), + d = parseFloat(s.paths.getAttribute("val")); + if (i = parseInt(s.paths.getAttribute("rel"), 10), e = parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"), 10) - 1, l.intersect) { + var u = v.findAncestor(s.paths, "apexcharts-series"); + u && (e = parseInt(u.getAttribute("data:realIndex"), 10)) + } + if (l.tooltipLabels.drawSeriesTexts({ + ttItems: s.ttItems, + i: e, + j: i, + shared: !l.showOnIntersect && o.config.tooltip.shared, + e: a + }), "mouseup" === a.type && l.markerClick(a, e, i), o.globals.capturedSeriesIndex = e, o.globals.capturedDataPointIndex = i, r = h, n = c + o.globals.translateY - 1.4 * l.tooltipRect.ttHeight, l.w.config.tooltip.followCursor) { + var g = l.getElGrid().getBoundingClientRect(); + n = l.e.clientY + o.globals.translateY - g.top + } + d < 0 && (n = c), l.marker.enlargeCurrentPoint(i, s.paths, r, n) + } + return {x: r, y: n} + } + }, { + key: "handleBarTooltip", value: function (t) { + var e, i, a = t.e, s = t.opt, r = this.w, n = this.ttCtx, o = n.getElTooltip(), l = 0, h = 0, c = 0, + d = this.getBarTooltipXY({e: a, opt: s}); + if (null !== d.j || 0 !== d.barHeight || 0 !== d.barWidth) { + e = d.i; + var u = d.j; + if (r.globals.capturedSeriesIndex = e, r.globals.capturedDataPointIndex = u, r.globals.isBarHorizontal && n.tooltipUtil.hasBars() || !r.config.tooltip.shared ? (h = d.x, c = d.y, i = Array.isArray(r.config.stroke.width) ? r.config.stroke.width[e] : r.config.stroke.width, l = h) : r.globals.comboCharts || r.config.tooltip.shared || (l /= 2), isNaN(c) && (c = r.globals.svgHeight - n.tooltipRect.ttHeight), parseInt(s.paths.parentNode.getAttribute("data:realIndex"), 10), h + n.tooltipRect.ttWidth > r.globals.gridWidth ? h -= n.tooltipRect.ttWidth : h < 0 && (h = 0), n.w.config.tooltip.followCursor) { + var g = n.getElGrid().getBoundingClientRect(); + c = n.e.clientY - g.top + } + null === n.tooltip && (n.tooltip = r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")), r.config.tooltip.shared || (r.globals.comboBarCount > 0 ? n.tooltipPosition.moveXCrosshairs(l + i / 2) : n.tooltipPosition.moveXCrosshairs(l)), !n.fixedTooltip && (!r.config.tooltip.shared || r.globals.isBarHorizontal && n.tooltipUtil.hasBars()) && (c = c + r.globals.translateY - n.tooltipRect.ttHeight / 2, o.style.left = h + r.globals.translateX + "px", o.style.top = c + "px") + } + } + }, { + key: "getBarTooltipXY", value: function (t) { + var e = this, i = t.e, a = t.opt, s = this.w, r = null, n = this.ttCtx, o = 0, l = 0, h = 0, c = 0, + d = 0, u = i.target.classList; + if (u.contains("apexcharts-bar-area") || u.contains("apexcharts-candlestick-area") || u.contains("apexcharts-boxPlot-area") || u.contains("apexcharts-rangebar-area")) { + var g = i.target, p = g.getBoundingClientRect(), f = a.elGrid.getBoundingClientRect(), x = p.height; + d = p.height; + var b = p.width, m = parseInt(g.getAttribute("cx"), 10), v = parseInt(g.getAttribute("cy"), 10); + c = parseFloat(g.getAttribute("barWidth")); + var y = "touchmove" === i.type ? i.touches[0].clientX : i.clientX; + r = parseInt(g.getAttribute("j"), 10), o = parseInt(g.parentNode.getAttribute("rel"), 10) - 1; + var w = g.getAttribute("data-range-y1"), k = g.getAttribute("data-range-y2"); + s.globals.comboCharts && (o = parseInt(g.parentNode.getAttribute("data:realIndex"), 10)); + var A = function (t) { + return s.globals.isXNumeric ? m - b / 2 : e.isVerticalGroupedRangeBar ? m + b / 2 : m - n.dataPointsDividedWidth + b / 2 + }, C = function () { + return v - n.dataPointsDividedHeight + x / 2 - n.tooltipRect.ttHeight / 2 + }; + n.tooltipLabels.drawSeriesTexts({ + ttItems: a.ttItems, + i: o, + j: r, + y1: w ? parseInt(w, 10) : null, + y2: k ? parseInt(k, 10) : null, + shared: !n.showOnIntersect && s.config.tooltip.shared, + e: i + }), s.config.tooltip.followCursor ? s.globals.isBarHorizontal ? (l = y - f.left + 15, h = C()) : (l = A(), h = i.clientY - f.top - n.tooltipRect.ttHeight / 2 - 15) : s.globals.isBarHorizontal ? ((l = m) < n.xyRatios.baseLineInvertedY && (l = m - n.tooltipRect.ttWidth), h = C()) : (l = A(), h = v) + } + return {x: l, y: h, barHeight: d, barWidth: c, i: o, j: r} + } + }]), t + }(), Sa = function () { + function t(e) { + i(this, t), this.w = e.w, this.ttCtx = e + } + + return s(t, [{ + key: "drawXaxisTooltip", value: function () { + var t = this.w, e = this.ttCtx, i = "bottom" === t.config.xaxis.position; + e.xaxisOffY = i ? t.globals.gridHeight + 1 : -t.globals.xAxisHeight - t.config.xaxis.axisTicks.height + 3; + var a = i ? "apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom" : "apexcharts-xaxistooltip apexcharts-xaxistooltip-top", + s = t.globals.dom.elWrap; + e.isXAxisTooltipEnabled && (null === t.globals.dom.baseEl.querySelector(".apexcharts-xaxistooltip") && (e.xaxisTooltip = document.createElement("div"), e.xaxisTooltip.setAttribute("class", a + " apexcharts-theme-" + t.config.tooltip.theme), s.appendChild(e.xaxisTooltip), e.xaxisTooltipText = document.createElement("div"), e.xaxisTooltipText.classList.add("apexcharts-xaxistooltip-text"), e.xaxisTooltipText.style.fontFamily = t.config.xaxis.tooltip.style.fontFamily || t.config.chart.fontFamily, e.xaxisTooltipText.style.fontSize = t.config.xaxis.tooltip.style.fontSize, e.xaxisTooltip.appendChild(e.xaxisTooltipText))) + } + }, { + key: "drawYaxisTooltip", value: function () { + for (var t = this.w, e = this.ttCtx, i = 0; i < t.config.yaxis.length; i++) { + var a = t.config.yaxis[i].opposite || t.config.yaxis[i].crosshairs.opposite; + e.yaxisOffX = a ? t.globals.gridWidth + 1 : 1; + var s = "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i, a ? " apexcharts-yaxistooltip-right" : " apexcharts-yaxistooltip-left"), + r = t.globals.dom.elWrap; + null === t.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i)) && (e.yaxisTooltip = document.createElement("div"), e.yaxisTooltip.setAttribute("class", s + " apexcharts-theme-" + t.config.tooltip.theme), r.appendChild(e.yaxisTooltip), 0 === i && (e.yaxisTooltipText = []), e.yaxisTooltipText[i] = document.createElement("div"), e.yaxisTooltipText[i].classList.add("apexcharts-yaxistooltip-text"), e.yaxisTooltip.appendChild(e.yaxisTooltipText[i])) + } + } + }, { + key: "setXCrosshairWidth", value: function () { + var t = this.w, e = this.ttCtx, i = e.getElXCrosshairs(); + if (e.xcrosshairsWidth = parseInt(t.config.xaxis.crosshairs.width, 10), t.globals.comboCharts) { + var a = t.globals.dom.baseEl.querySelector(".apexcharts-bar-area"); + if (null !== a && "barWidth" === t.config.xaxis.crosshairs.width) { + var s = parseFloat(a.getAttribute("barWidth")); + e.xcrosshairsWidth = s + } else if ("tickWidth" === t.config.xaxis.crosshairs.width) { + var r = t.globals.labels.length; + e.xcrosshairsWidth = t.globals.gridWidth / r + } + } else if ("tickWidth" === t.config.xaxis.crosshairs.width) { + var n = t.globals.labels.length; + e.xcrosshairsWidth = t.globals.gridWidth / n + } else if ("barWidth" === t.config.xaxis.crosshairs.width) { + var o = t.globals.dom.baseEl.querySelector(".apexcharts-bar-area"); + if (null !== o) { + var l = parseFloat(o.getAttribute("barWidth")); + e.xcrosshairsWidth = l + } else e.xcrosshairsWidth = 1 + } + t.globals.isBarHorizontal && (e.xcrosshairsWidth = 0), null !== i && e.xcrosshairsWidth > 0 && i.setAttribute("width", e.xcrosshairsWidth) + } + }, { + key: "handleYCrosshair", value: function () { + var t = this.w, e = this.ttCtx; + e.ycrosshairs = t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"), e.ycrosshairsHidden = t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden") + } + }, { + key: "drawYaxisTooltipText", value: function (t, e, i) { + var a = this.ttCtx, s = this.w, r = s.globals, n = r.seriesYAxisMap[t]; + if (a.yaxisTooltips[t] && n.length > 0) { + var o = r.yLabelFormatters[t], l = a.getElGrid().getBoundingClientRect(), h = n[0], c = 0; + i.yRatio.length > 1 && (c = h); + var d = (e - l.top) * i.yRatio[c], u = r.maxYArr[h] - r.minYArr[h], g = r.minYArr[h] + (u - d); + s.config.yaxis[t].reversed && (g = r.maxYArr[h] - (u - d)), a.tooltipPosition.moveYCrosshairs(e - l.top), a.yaxisTooltipText[t].innerHTML = o(g), a.tooltipPosition.moveYAxisTooltip(t) + } + } + }]), t + }(), La = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w; + var a = this.w; + this.tConfig = a.config.tooltip, this.tooltipUtil = new ya(this), this.tooltipLabels = new wa(this), this.tooltipPosition = new ka(this), this.marker = new Aa(this), this.intersect = new Ca(this), this.axesTooltip = new Sa(this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !a.globals.isBarHorizontal && this.tConfig.shared, this.lastHoverTime = Date.now() + } + + return s(t, [{ + key: "getElTooltip", value: function (t) { + return t || (t = this), t.w.globals.dom.baseEl ? t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip") : null + } + }, { + key: "getElXCrosshairs", value: function () { + return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs") + } + }, { + key: "getElGrid", value: function () { + return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid") + } + }, { + key: "drawTooltip", value: function (t) { + var e = this.w; + this.xyRatios = t, this.isXAxisTooltipEnabled = e.config.xaxis.tooltip.enabled && e.globals.axisCharts, this.yaxisTooltips = e.config.yaxis.map((function (t, i) { + return !!(t.show && t.tooltip.enabled && e.globals.axisCharts) + })), this.allTooltipSeriesGroups = [], e.globals.axisCharts || (this.showTooltipTitle = !1); + var i = document.createElement("div"); + if (i.classList.add("apexcharts-tooltip"), e.config.tooltip.cssClass && i.classList.add(e.config.tooltip.cssClass), i.classList.add("apexcharts-theme-".concat(this.tConfig.theme || "light")), e.globals.dom.elWrap.appendChild(i), e.globals.axisCharts) { + this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair(); + var a = new Ki(this.ctx); + this.xAxisTicksPositions = a.getXAxisTicksPositions() + } + if (!e.globals.comboCharts && !this.tConfig.intersect && "rangeBar" !== e.config.chart.type || this.tConfig.shared || (this.showOnIntersect = !0), 0 !== e.config.markers.size && 0 !== e.globals.markers.largestSize || this.marker.drawDynamicPoints(this), e.globals.collapsedSeries.length !== e.globals.series.length) { + this.dataPointsDividedHeight = e.globals.gridHeight / e.globals.dataPoints, this.dataPointsDividedWidth = e.globals.gridWidth / e.globals.dataPoints, this.showTooltipTitle && (this.tooltipTitle = document.createElement("div"), this.tooltipTitle.classList.add("apexcharts-tooltip-title"), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || e.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, i.appendChild(this.tooltipTitle)); + var s = e.globals.series.length; + (e.globals.xyCharts || e.globals.comboCharts) && this.tConfig.shared && (s = this.showOnIntersect ? 1 : e.globals.series.length), this.legendLabels = e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"), this.ttItems = this.createTTElements(s), this.addSVGEvents() + } + } + }, { + key: "createTTElements", value: function (t) { + for (var e = this, i = this.w, a = [], s = this.getElTooltip(), r = function (r) { + var n = document.createElement("div"); + n.classList.add("apexcharts-tooltip-series-group", "apexcharts-tooltip-series-group-".concat(r)), n.style.order = i.config.tooltip.inverseOrder ? t - r : r + 1; + var o = document.createElement("span"); + o.classList.add("apexcharts-tooltip-marker"), i.config.tooltip.fillSeriesColor ? o.style.backgroundColor = i.globals.colors[r] : o.style.color = i.globals.colors[r]; + var l = i.config.markers.shape, h = l; + Array.isArray(l) && (h = l[r]), o.setAttribute("shape", h), n.appendChild(o); + var c = document.createElement("div"); + c.classList.add("apexcharts-tooltip-text"), c.style.fontFamily = e.tConfig.style.fontFamily || i.config.chart.fontFamily, c.style.fontSize = e.tConfig.style.fontSize, ["y", "goals", "z"].forEach((function (t) { + var e = document.createElement("div"); + e.classList.add("apexcharts-tooltip-".concat(t, "-group")); + var i = document.createElement("span"); + i.classList.add("apexcharts-tooltip-text-".concat(t, "-label")), e.appendChild(i); + var a = document.createElement("span"); + a.classList.add("apexcharts-tooltip-text-".concat(t, "-value")), e.appendChild(a), c.appendChild(e) + })), n.appendChild(c), s.appendChild(n), a.push(n) + }, n = 0; n < t; n++) r(n); + return a + } + }, { + key: "addSVGEvents", value: function () { + var t = this.w, e = t.config.chart.type, i = this.getElTooltip(), + a = !("bar" !== e && "candlestick" !== e && "boxPlot" !== e && "rangeBar" !== e), + s = "area" === e || "line" === e || "scatter" === e || "bubble" === e || "radar" === e, + r = t.globals.dom.Paper.node, n = this.getElGrid(); + n && (this.seriesBound = n.getBoundingClientRect()); + var o, l = [], h = [], + c = {hoverArea: r, elGrid: n, tooltipEl: i, tooltipY: l, tooltipX: h, ttItems: this.ttItems}; + if (t.globals.axisCharts && (s ? o = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker") : a ? o = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area") : "heatmap" !== e && "treemap" !== e || (o = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap")), o && o.length)) for (var d = 0; d < o.length; d++) l.push(o[d].getAttribute("cy")), h.push(o[d].getAttribute("cx")); + if (t.globals.xyCharts && !this.showOnIntersect || t.globals.comboCharts && !this.showOnIntersect || a && this.tooltipUtil.hasBars() && this.tConfig.shared) this.addPathsEventListeners([r], c); else if (a && !t.globals.comboCharts || s && this.showOnIntersect) this.addDatapointEventsListeners(c); else if (!t.globals.axisCharts || "heatmap" === e || "treemap" === e) { + var u = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series"); + this.addPathsEventListeners(u, c) + } + if (this.showOnIntersect) { + var g = t.globals.dom.baseEl.querySelectorAll(".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker"); + g.length > 0 && this.addPathsEventListeners(g, c), this.tooltipUtil.hasBars() && !this.tConfig.shared && this.addDatapointEventsListeners(c) + } + } + }, { + key: "drawFixedTooltipRect", value: function () { + var t = this.w, e = this.getElTooltip(), i = e.getBoundingClientRect(), a = i.width + 10, + s = i.height + 10, r = this.tConfig.fixed.offsetX, n = this.tConfig.fixed.offsetY, + o = this.tConfig.fixed.position.toLowerCase(); + return o.indexOf("right") > -1 && (r = r + t.globals.svgWidth - a + 10), o.indexOf("bottom") > -1 && (n = n + t.globals.svgHeight - s - 10), e.style.left = r + "px", e.style.top = n + "px", { + x: r, + y: n, + ttWidth: a, + ttHeight: s + } + } + }, { + key: "addDatapointEventsListeners", value: function (t) { + var e = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area"); + this.addPathsEventListeners(e, t) + } + }, { + key: "addPathsEventListeners", value: function (t, e) { + for (var i = this, a = function (a) { + var s = { + paths: t[a], + tooltipEl: e.tooltipEl, + tooltipY: e.tooltipY, + tooltipX: e.tooltipX, + elGrid: e.elGrid, + hoverArea: e.hoverArea, + ttItems: e.ttItems + }; + ["mousemove", "mouseup", "touchmove", "mouseout", "touchend"].map((function (e) { + return t[a].addEventListener(e, i.onSeriesHover.bind(i, s), {capture: !1, passive: !0}) + })) + }, s = 0; s < t.length; s++) a(s) + } + }, { + key: "onSeriesHover", value: function (t, e) { + var i = this, a = Date.now() - this.lastHoverTime; + a >= 20 ? this.seriesHover(t, e) : (clearTimeout(this.seriesHoverTimeout), this.seriesHoverTimeout = setTimeout((function () { + i.seriesHover(t, e) + }), 20 - a)) + } + }, { + key: "seriesHover", value: function (t, e) { + var i = this; + this.lastHoverTime = Date.now(); + var a = [], s = this.w; + s.config.chart.group && (a = this.ctx.getGroupedCharts()), s.globals.axisCharts && (s.globals.minX === -1 / 0 && s.globals.maxX === 1 / 0 || 0 === s.globals.dataPoints) || (a.length ? a.forEach((function (a) { + var s = i.getElTooltip(a), r = { + paths: t.paths, + tooltipEl: s, + tooltipY: t.tooltipY, + tooltipX: t.tooltipX, + elGrid: t.elGrid, + hoverArea: t.hoverArea, + ttItems: a.w.globals.tooltip.ttItems + }; + a.w.globals.minX === i.w.globals.minX && a.w.globals.maxX === i.w.globals.maxX && a.w.globals.tooltip.seriesHoverByContext({ + chartCtx: a, + ttCtx: a.w.globals.tooltip, + opt: r, + e: e + }) + })) : this.seriesHoverByContext({chartCtx: this.ctx, ttCtx: this.w.globals.tooltip, opt: t, e: e})) + } + }, { + key: "seriesHoverByContext", value: function (t) { + var e = t.chartCtx, i = t.ttCtx, a = t.opt, s = t.e, r = e.w, n = this.getElTooltip(e); + if (n) { + if (i.tooltipRect = { + x: 0, + y: 0, + ttWidth: n.getBoundingClientRect().width, + ttHeight: n.getBoundingClientRect().height + }, i.e = s, i.tooltipUtil.hasBars() && !r.globals.comboCharts && !i.isBarShared) if (this.tConfig.onDatasetHover.highlightDataSeries) new $i(e).toggleSeriesOnHover(s, s.target.parentNode); + r.globals.axisCharts ? i.axisChartsTooltips({ + e: s, + opt: a, + tooltipRect: i.tooltipRect + }) : i.nonAxisChartsTooltips({ + e: s, + opt: a, + tooltipRect: i.tooltipRect + }), i.fixedTooltip && i.drawFixedTooltipRect() + } + } + }, { + key: "axisChartsTooltips", value: function (t) { + var e, i, a = t.e, s = t.opt, r = this.w, n = s.elGrid.getBoundingClientRect(), + o = "touchmove" === a.type ? a.touches[0].clientX : a.clientX, + l = "touchmove" === a.type ? a.touches[0].clientY : a.clientY; + if (this.clientY = l, this.clientX = o, r.globals.capturedSeriesIndex = -1, r.globals.capturedDataPointIndex = -1, l < n.top || l > n.top + n.height) this.handleMouseOut(s); else { + if (Array.isArray(this.tConfig.enabledOnSeries) && !r.config.tooltip.shared) { + var h = parseInt(s.paths.getAttribute("index"), 10); + if (this.tConfig.enabledOnSeries.indexOf(h) < 0) return void this.handleMouseOut(s) + } + var c = this.getElTooltip(), d = this.getElXCrosshairs(), u = []; + r.config.chart.group && (u = this.ctx.getSyncedCharts()); + var g = r.globals.xyCharts || "bar" === r.config.chart.type && !r.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || r.globals.comboCharts && this.tooltipUtil.hasBars(); + if ("mousemove" === a.type || "touchmove" === a.type || "mouseup" === a.type) { + if (r.globals.collapsedSeries.length + r.globals.ancillaryCollapsedSeries.length === r.globals.series.length) return; + null !== d && d.classList.add("apexcharts-active"); + var p = this.yaxisTooltips.filter((function (t) { + return !0 === t + })); + if (null !== this.ycrosshairs && p.length && this.ycrosshairs.classList.add("apexcharts-active"), g && !this.showOnIntersect || u.length > 1) this.handleStickyTooltip(a, o, l, s); else if ("heatmap" === r.config.chart.type || "treemap" === r.config.chart.type) { + var f = this.intersect.handleHeatTreeTooltip({ + e: a, + opt: s, + x: e, + y: i, + type: r.config.chart.type + }); + e = f.x, i = f.y, c.style.left = e + "px", c.style.top = i + "px" + } else this.tooltipUtil.hasBars() && this.intersect.handleBarTooltip({ + e: a, + opt: s + }), this.tooltipUtil.hasMarkers() && this.intersect.handleMarkerTooltip({ + e: a, + opt: s, + x: e, + y: i + }); + if (this.yaxisTooltips.length) for (var x = 0; x < r.config.yaxis.length; x++) this.axesTooltip.drawYaxisTooltipText(x, l, this.xyRatios); + r.globals.dom.baseEl.classList.add("apexcharts-tooltip-active"), s.tooltipEl.classList.add("apexcharts-active") + } else "mouseout" !== a.type && "touchend" !== a.type || this.handleMouseOut(s) + } + } + }, { + key: "nonAxisChartsTooltips", value: function (t) { + var e = t.e, i = t.opt, a = t.tooltipRect, s = this.w, r = i.paths.getAttribute("rel"), + n = this.getElTooltip(), o = s.globals.dom.elWrap.getBoundingClientRect(); + if ("mousemove" === e.type || "touchmove" === e.type) { + s.globals.dom.baseEl.classList.add("apexcharts-tooltip-active"), n.classList.add("apexcharts-active"), this.tooltipLabels.drawSeriesTexts({ + ttItems: i.ttItems, + i: parseInt(r, 10) - 1, + shared: !1 + }); + var l = s.globals.clientX - o.left - a.ttWidth / 2, h = s.globals.clientY - o.top - a.ttHeight - 10; + if (n.style.left = l + "px", n.style.top = h + "px", s.config.legend.tooltipHoverFormatter) { + var c = r - 1, + d = (0, s.config.legend.tooltipHoverFormatter)(this.legendLabels[c].getAttribute("data:default-text"), { + seriesIndex: c, + dataPointIndex: c, + w: s + }); + this.legendLabels[c].innerHTML = d + } + } else "mouseout" !== e.type && "touchend" !== e.type || (n.classList.remove("apexcharts-active"), s.globals.dom.baseEl.classList.remove("apexcharts-tooltip-active"), s.config.legend.tooltipHoverFormatter && this.legendLabels.forEach((function (t) { + var e = t.getAttribute("data:default-text"); + t.innerHTML = decodeURIComponent(e) + }))) + } + }, { + key: "handleStickyTooltip", value: function (t, e, i, a) { + var s = this.w, r = this.tooltipUtil.getNearestValues({ + context: this, + hoverArea: a.hoverArea, + elGrid: a.elGrid, + clientX: e, + clientY: i + }), n = r.j, o = r.capturedSeries; + s.globals.collapsedSeriesIndices.includes(o) && (o = null); + var l = a.elGrid.getBoundingClientRect(); + if (r.hoverX < 0 || r.hoverX > l.width) this.handleMouseOut(a); else if (null !== o) this.handleStickyCapturedSeries(t, o, a, n); else if (this.tooltipUtil.isXoverlap(n) || s.globals.isBarHorizontal) { + var h = s.globals.series.findIndex((function (t, e) { + return !s.globals.collapsedSeriesIndices.includes(e) + })); + this.create(t, this, h, n, a.ttItems) + } + } + }, { + key: "handleStickyCapturedSeries", value: function (t, e, i, a) { + var s = this.w; + if (!this.tConfig.shared && null === s.globals.series[e][a]) return void this.handleMouseOut(i); + if (void 0 !== s.globals.series[e][a]) this.tConfig.shared && this.tooltipUtil.isXoverlap(a) && this.tooltipUtil.isInitialSeriesSameLen() ? this.create(t, this, e, a, i.ttItems) : this.create(t, this, e, a, i.ttItems, !1); else if (this.tooltipUtil.isXoverlap(a)) { + var r = s.globals.series.findIndex((function (t, e) { + return !s.globals.collapsedSeriesIndices.includes(e) + })); + this.create(t, this, r, a, i.ttItems) + } + } + }, { + key: "deactivateHoverFilter", value: function () { + for (var t = this.w, e = new Mi(this.ctx), i = t.globals.dom.Paper.find(".apexcharts-bar-area"), a = 0; a < i.length; a++) e.pathMouseLeave(i[a]) + } + }, { + key: "handleMouseOut", value: function (t) { + var e = this.w, i = this.getElXCrosshairs(); + if (e.globals.dom.baseEl.classList.remove("apexcharts-tooltip-active"), t.tooltipEl.classList.remove("apexcharts-active"), this.deactivateHoverFilter(), "bubble" !== e.config.chart.type && this.marker.resetPointsSize(), null !== i && i.classList.remove("apexcharts-active"), null !== this.ycrosshairs && this.ycrosshairs.classList.remove("apexcharts-active"), this.isXAxisTooltipEnabled && this.xaxisTooltip.classList.remove("apexcharts-active"), this.yaxisTooltips.length) { + null === this.yaxisTTEls && (this.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip")); + for (var a = 0; a < this.yaxisTTEls.length; a++) this.yaxisTTEls[a].classList.remove("apexcharts-active") + } + e.config.legend.tooltipHoverFormatter && this.legendLabels.forEach((function (t) { + var e = t.getAttribute("data:default-text"); + t.innerHTML = decodeURIComponent(e) + })) + } + }, { + key: "markerClick", value: function (t, e, i) { + var a = this.w; + "function" == typeof a.config.chart.events.markerClick && a.config.chart.events.markerClick(t, this.ctx, { + seriesIndex: e, + dataPointIndex: i, + w: a + }), this.ctx.events.fireEvent("markerClick", [t, this.ctx, {seriesIndex: e, dataPointIndex: i, w: a}]) + } + }, { + key: "create", value: function (t, e, i, a, s) { + var r, n, o, l, h, c, d, g, p, f, x, b, m, v, y, w, + k = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, A = this.w, C = e; + "mouseup" === t.type && this.markerClick(t, i, a), null === k && (k = this.tConfig.shared); + var S = this.tooltipUtil.hasMarkers(i), L = this.tooltipUtil.getElBars(), M = function () { + A.globals.markers.largestSize > 0 ? C.marker.enlargePoints(a) : C.tooltipPosition.moveDynamicPointsOnHover(a) + }; + if (A.config.legend.tooltipHoverFormatter) { + var P = A.config.legend.tooltipHoverFormatter, I = Array.from(this.legendLabels); + I.forEach((function (t) { + var e = t.getAttribute("data:default-text"); + t.innerHTML = decodeURIComponent(e) + })); + for (var T = 0; T < I.length; T++) { + var z = I[T], X = parseInt(z.getAttribute("i"), 10), + R = decodeURIComponent(z.getAttribute("data:default-text")), + E = P(R, {seriesIndex: k ? X : i, dataPointIndex: a, w: A}); + if (k) z.innerHTML = A.globals.collapsedSeriesIndices.indexOf(X) < 0 ? E : R; else if (z.innerHTML = X === i ? E : R, i === X) break + } + } + var Y = u(u({ + ttItems: s, + i: i, + j: a + }, void 0 !== (null === (r = A.globals.seriesRange) || void 0 === r || null === (n = r[i]) || void 0 === n || null === (o = n[a]) || void 0 === o || null === (l = o.y[0]) || void 0 === l ? void 0 : l.y1) && {y1: null === (h = A.globals.seriesRange) || void 0 === h || null === (c = h[i]) || void 0 === c || null === (d = c[a]) || void 0 === d || null === (g = d.y[0]) || void 0 === g ? void 0 : g.y1}), void 0 !== (null === (p = A.globals.seriesRange) || void 0 === p || null === (f = p[i]) || void 0 === f || null === (x = f[a]) || void 0 === x || null === (b = x.y[0]) || void 0 === b ? void 0 : b.y2) && {y2: null === (m = A.globals.seriesRange) || void 0 === m || null === (v = m[i]) || void 0 === v || null === (y = v[a]) || void 0 === y || null === (w = y.y[0]) || void 0 === w ? void 0 : w.y2}); + if (k) { + if (C.tooltipLabels.drawSeriesTexts(u(u({}, Y), {}, {shared: !this.showOnIntersect && this.tConfig.shared})), S) M(); else if (this.tooltipUtil.hasBars() && (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(L), this.barSeriesHeight > 0)) { + var H = new Mi(this.ctx), + O = A.globals.dom.Paper.find(".apexcharts-bar-area[j='".concat(a, "']")); + this.deactivateHoverFilter(), C.tooltipUtil.getAllMarkers(!0).length && !this.barSeriesHeight && M(), C.tooltipPosition.moveStickyTooltipOverBars(a, i); + for (var F = 0; F < O.length; F++) H.pathMouseEnter(O[F]) + } + } else C.tooltipLabels.drawSeriesTexts(u({shared: !1}, Y)), this.tooltipUtil.hasBars() && C.tooltipPosition.moveStickyTooltipOverBars(a, i), S && C.tooltipPosition.moveMarkers(i, a) + } + }]), t + }(), Ma = function () { + function t(e) { + i(this, t), this.w = e.w, this.barCtx = e, this.totalFormatter = this.w.config.plotOptions.bar.dataLabels.total.formatter, this.totalFormatter || (this.totalFormatter = this.w.config.dataLabels.formatter) + } + + return s(t, [{ + key: "handleBarDataLabels", value: function (t) { + var e, i, a = t.x, s = t.y, r = t.y1, n = t.y2, o = t.i, l = t.j, h = t.realIndex, + c = t.columnGroupIndex, d = t.series, g = t.barHeight, p = t.barWidth, f = t.barXPosition, + x = t.barYPosition, b = t.visibleSeries, m = this.w, v = new Mi(this.barCtx.ctx), + y = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[h] : this.barCtx.strokeWidth; + m.globals.isXNumeric && !m.globals.isBarHorizontal ? (e = a + parseFloat(p * (b + 1)), i = s + parseFloat(g * (b + 1)) - y) : (e = a + parseFloat(p * b), i = s + parseFloat(g * b)); + var w, k = null, A = a, C = s, S = {}, L = m.config.dataLabels, M = this.barCtx.barOptions.dataLabels, + P = this.barCtx.barOptions.dataLabels.total; + void 0 !== x && this.barCtx.isRangeBar && (i = x, C = x), void 0 !== f && this.barCtx.isVerticalGroupedRangeBar && (e = f, A = f); + var I = L.offsetX, T = L.offsetY, z = {width: 0, height: 0}; + if (m.config.dataLabels.enabled) { + var X = m.globals.series[o][l]; + z = v.getTextRects(m.config.dataLabels.formatter ? m.config.dataLabels.formatter(X, u(u({}, m), {}, { + seriesIndex: o, + dataPointIndex: l, + w: m + })) : m.globals.yLabelFormatters[0](X), parseFloat(L.style.fontSize)) + } + var R = { + x: a, + y: s, + i: o, + j: l, + realIndex: h, + columnGroupIndex: c, + bcx: e, + bcy: i, + barHeight: g, + barWidth: p, + textRects: z, + strokeWidth: y, + dataLabelsX: A, + dataLabelsY: C, + dataLabelsConfig: L, + barDataLabelsConfig: M, + barTotalDataLabelsConfig: P, + offX: I, + offY: T + }; + return S = this.barCtx.isHorizontal ? this.calculateBarsDataLabelsPosition(R) : this.calculateColumnsDataLabelsPosition(R), w = this.drawCalculatedDataLabels({ + x: S.dataLabelsX, + y: S.dataLabelsY, + val: this.barCtx.isRangeBar ? [r, n] : "100%" === m.config.chart.stackType ? d[h][l] : m.globals.series[h][l], + i: h, + j: l, + barWidth: p, + barHeight: g, + textRects: z, + dataLabelsConfig: L + }), m.config.chart.stacked && P.enabled && (k = this.drawTotalDataLabels({ + x: S.totalDataLabelsX, + y: S.totalDataLabelsY, + barWidth: p, + barHeight: g, + realIndex: h, + textAnchor: S.totalDataLabelsAnchor, + val: this.getStackedTotalDataLabel({realIndex: h, j: l}), + dataLabelsConfig: L, + barTotalDataLabelsConfig: P + })), {dataLabelsPos: S, dataLabels: w, totalDataLabels: k} + } + }, { + key: "getStackedTotalDataLabel", value: function (t) { + var e = t.realIndex, i = t.j, a = this.w, s = this.barCtx.stackedSeriesTotals[i]; + return this.totalFormatter && (s = this.totalFormatter(s, u(u({}, a), {}, { + seriesIndex: e, + dataPointIndex: i, + w: a + }))), s + } + }, { + key: "calculateColumnsDataLabelsPosition", value: function (t) { + var e = this, i = this.w, a = t.i, s = t.j, r = t.realIndex; + t.columnGroupIndex; + var n, o, l = t.y, h = t.bcx, c = t.barWidth, d = t.barHeight, u = t.textRects, g = t.dataLabelsX, + p = t.dataLabelsY, f = t.dataLabelsConfig, x = t.barDataLabelsConfig, + b = t.barTotalDataLabelsConfig, m = t.strokeWidth, v = t.offX, y = t.offY, w = h; + d = Math.abs(d); + var k = "vertical" === i.config.plotOptions.bar.dataLabels.orientation, + A = this.barCtx.barHelpers.getZeroValueEncounters({i: a, j: s}).zeroEncounters; + h -= m / 2; + var C = i.globals.gridWidth / i.globals.dataPoints; + if (this.barCtx.isVerticalGroupedRangeBar ? g += c / 2 : (g = i.globals.isXNumeric ? h - c / 2 + v : h - C + c / 2 + v, !i.config.chart.stacked && A > 0 && i.config.plotOptions.bar.hideZeroBarsWhenGrouped && (g -= c * A)), k) { + g = g + u.height / 2 - m / 2 - 2 + } + var S = i.globals.series[a][s] < 0, L = l; + switch (this.barCtx.isReversed && (L = l + (S ? d : -d)), x.position) { + case"center": + p = k ? S ? L - d / 2 + y : L + d / 2 - y : S ? L - d / 2 + u.height / 2 + y : L + d / 2 + u.height / 2 - y; + break; + case"bottom": + p = k ? S ? L - d + y : L + d - y : S ? L - d + u.height + m + y : L + d - u.height / 2 + m - y; + break; + case"top": + p = k ? S ? L + y : L - y : S ? L - u.height / 2 - y : L + u.height + y + } + var M = L; + if (i.globals.seriesGroups.forEach((function (t) { + var i; + null === (i = e.barCtx[t.join(",")]) || void 0 === i || i.prevY.forEach((function (t) { + M = S ? Math.max(t[s], M) : Math.min(t[s], M) + })) + })), this.barCtx.lastActiveBarSerieIndex === r && b.enabled) { + var P = new Mi(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ + realIndex: r, + j: s + }), f.fontSize); + n = S ? M - P.height / 2 - y - b.offsetY + 18 : M + P.height + y + b.offsetY - 18; + var I = C; + o = w + (i.globals.isXNumeric ? -c * i.globals.barGroups.length / 2 : i.globals.barGroups.length * c / 2 - (i.globals.barGroups.length - 1) * c - I) + b.offsetX + } + return i.config.chart.stacked || (p < 0 ? p = 0 + m : p + u.height / 3 > i.globals.gridHeight && (p = i.globals.gridHeight - m)), { + bcx: h, + bcy: l, + dataLabelsX: g, + dataLabelsY: p, + totalDataLabelsX: o, + totalDataLabelsY: n, + totalDataLabelsAnchor: "middle" + } + } + }, { + key: "calculateBarsDataLabelsPosition", value: function (t) { + var e = this, i = this.w, a = t.x, s = t.i, r = t.j, n = t.realIndex, o = t.bcy, l = t.barHeight, + h = t.barWidth, c = t.textRects, d = t.dataLabelsX, u = t.strokeWidth, g = t.dataLabelsConfig, + p = t.barDataLabelsConfig, f = t.barTotalDataLabelsConfig, x = t.offX, b = t.offY, + m = i.globals.gridHeight / i.globals.dataPoints, + v = this.barCtx.barHelpers.getZeroValueEncounters({i: s, j: r}).zeroEncounters; + h = Math.abs(h); + var y, w, k = o - (this.barCtx.isRangeBar ? 0 : m) + l / 2 + c.height / 2 + b - 3; + !i.config.chart.stacked && v > 0 && i.config.plotOptions.bar.hideZeroBarsWhenGrouped && (k -= l * v); + var A = "start", C = i.globals.series[s][r] < 0, S = a; + switch (this.barCtx.isReversed && (S = a + (C ? -h : h), A = C ? "start" : "end"), p.position) { + case"center": + d = C ? S + h / 2 - x : Math.max(c.width / 2, S - h / 2) + x; + break; + case"bottom": + d = C ? S + h - u - x : S - h + u + x; + break; + case"top": + d = C ? S - u - x : S - u + x + } + var L = S; + if (i.globals.seriesGroups.forEach((function (t) { + var i; + null === (i = e.barCtx[t.join(",")]) || void 0 === i || i.prevX.forEach((function (t) { + L = C ? Math.min(t[r], L) : Math.max(t[r], L) + })) + })), this.barCtx.lastActiveBarSerieIndex === n && f.enabled) { + var M = new Mi(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ + realIndex: n, + j: r + }), g.fontSize); + C ? (y = L - u - x - f.offsetX, A = "end") : y = L + x + f.offsetX + (this.barCtx.isReversed ? -(h + u) : u), w = k - c.height / 2 + M.height / 2 + f.offsetY + u, i.globals.barGroups.length > 1 && (w -= i.globals.barGroups.length / 2 * (l / 2)) + } + return i.config.chart.stacked || ("start" === g.textAnchor ? d - c.width < 0 ? d = C ? c.width + u : u : d + c.width > i.globals.gridWidth && (d = C ? i.globals.gridWidth - u : i.globals.gridWidth - c.width - u) : "middle" === g.textAnchor ? d - c.width / 2 < 0 ? d = c.width / 2 + u : d + c.width / 2 > i.globals.gridWidth && (d = i.globals.gridWidth - c.width / 2 - u) : "end" === g.textAnchor && (d < 1 ? d = c.width + u : d + 1 > i.globals.gridWidth && (d = i.globals.gridWidth - c.width - u))), { + bcx: a, + bcy: o, + dataLabelsX: d, + dataLabelsY: k, + totalDataLabelsX: y, + totalDataLabelsY: w, + totalDataLabelsAnchor: A + } + } + }, { + key: "drawCalculatedDataLabels", value: function (t) { + var e = t.x, i = t.y, a = t.val, s = t.i, r = t.j, n = t.textRects, o = t.barHeight, l = t.barWidth, + h = t.dataLabelsConfig, c = this.w, d = "rotate(0)"; + "vertical" === c.config.plotOptions.bar.dataLabels.orientation && (d = "rotate(-90, ".concat(e, ", ").concat(i, ")")); + var g = new qi(this.barCtx.ctx), p = new Mi(this.barCtx.ctx), f = h.formatter, x = null, + b = c.globals.collapsedSeriesIndices.indexOf(s) > -1; + if (h.enabled && !b) { + x = p.group({class: "apexcharts-data-labels", transform: d}); + var m = ""; + void 0 !== a && (m = f(a, u(u({}, c), {}, { + seriesIndex: s, + dataPointIndex: r, + w: c + }))), !a && c.config.plotOptions.bar.hideZeroBarsWhenGrouped && (m = ""); + var v = c.globals.series[s][r] < 0, y = c.config.plotOptions.bar.dataLabels.position; + if ("vertical" === c.config.plotOptions.bar.dataLabels.orientation && ("top" === y && (h.textAnchor = v ? "end" : "start"), "center" === y && (h.textAnchor = "middle"), "bottom" === y && (h.textAnchor = v ? "end" : "start")), this.barCtx.isRangeBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels) l < p.getTextRects(m, parseFloat(h.style.fontSize)).width && (m = ""); + c.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && (this.barCtx.isHorizontal ? n.width / 1.6 > Math.abs(l) && (m = "") : n.height / 1.6 > Math.abs(o) && (m = "")); + var w = u({}, h); + this.barCtx.isHorizontal && a < 0 && ("start" === h.textAnchor ? w.textAnchor = "end" : "end" === h.textAnchor && (w.textAnchor = "start")), g.plotDataLabelsText({ + x: e, + y: i, + text: m, + i: s, + j: r, + parent: x, + dataLabelsConfig: w, + alwaysDrawDataLabel: !0, + offsetCorrection: !0 + }) + } + return x + } + }, { + key: "drawTotalDataLabels", value: function (t) { + var e = t.x, i = t.y, a = t.val, s = t.realIndex, r = t.textAnchor, n = t.barTotalDataLabelsConfig; + this.w; + var o, l = new Mi(this.barCtx.ctx); + return n.enabled && void 0 !== e && void 0 !== i && this.barCtx.lastActiveBarSerieIndex === s && (o = l.drawText({ + x: e, + y: i, + foreColor: n.style.color, + text: a, + textAnchor: r, + fontFamily: n.style.fontFamily, + fontSize: n.style.fontSize, + fontWeight: n.style.fontWeight + })), o + } + }]), t + }(), Pa = function () { + function t(e) { + i(this, t), this.w = e.w, this.barCtx = e + } + + return s(t, [{ + key: "initVariables", value: function (t) { + var e = this.w; + this.barCtx.series = t, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1; + for (var i = 0; i < t.length; i++) if (t[i].length > 0 && (this.barCtx.seriesLen = this.barCtx.seriesLen + 1, this.barCtx.totalItems += t[i].length), e.globals.isXNumeric) for (var a = 0; a < t[i].length; a++) e.globals.seriesX[i][a] > e.globals.minX && e.globals.seriesX[i][a] < e.globals.maxX && this.barCtx.visibleItems++; else this.barCtx.visibleItems = e.globals.dataPoints; + this.arrBorderRadius = this.createBorderRadiusArr(e.globals.series), v.isSafari() && (this.arrBorderRadius = this.arrBorderRadius.map((function (t) { + return t.map((function (t) { + return "none" + })) + }))), 0 === this.barCtx.seriesLen && (this.barCtx.seriesLen = 1), this.barCtx.zeroSerieses = [], e.globals.comboCharts || this.checkZeroSeries({series: t}) + } + }, { + key: "initialPositions", value: function (t) { + var e, i, a, s, r, n, o, l, h = this.w, c = h.globals.dataPoints; + this.barCtx.isRangeBar && (c = h.globals.labels.length); + var d = this.barCtx.seriesLen; + if (h.config.plotOptions.bar.rangeBarGroupRows && (d = 1), this.barCtx.isHorizontal) r = (a = h.globals.gridHeight / c) / d, h.globals.isXNumeric && (r = (a = h.globals.gridHeight / this.barCtx.totalItems) / this.barCtx.seriesLen), r = r * parseInt(this.barCtx.barOptions.barHeight, 10) / 100, -1 === String(this.barCtx.barOptions.barHeight).indexOf("%") && (r = parseInt(this.barCtx.barOptions.barHeight, 10)), l = this.barCtx.baseLineInvertedY + h.globals.padHorizontal + (this.barCtx.isReversed ? h.globals.gridWidth : 0) - (this.barCtx.isReversed ? 2 * this.barCtx.baseLineInvertedY : 0), this.barCtx.isFunnel && (l = h.globals.gridWidth / 2), i = (a - r * this.barCtx.seriesLen) / 2; else { + if (s = h.globals.gridWidth / this.barCtx.visibleItems, h.config.xaxis.convertedCatToNumeric && (s = h.globals.gridWidth / h.globals.dataPoints), n = s / d * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100, h.globals.isXNumeric) { + var u = this.barCtx.xRatio; + h.globals.minXDiff && .5 !== h.globals.minXDiff && h.globals.minXDiff / u > 0 && (s = h.globals.minXDiff / u), (n = s / d * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100) < 1 && (n = 1) + } + if (-1 === String(this.barCtx.barOptions.columnWidth).indexOf("%") && (n = parseInt(this.barCtx.barOptions.columnWidth, 10)), o = h.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.translationsIndex] - (this.barCtx.isReversed ? h.globals.gridHeight : 0) + (this.barCtx.isReversed ? 2 * this.barCtx.baseLineY[this.barCtx.translationsIndex] : 0), h.globals.isXNumeric) e = this.barCtx.getBarXForNumericXAxis({ + x: e, + j: 0, + realIndex: t, + barWidth: n + }).x; else e = h.globals.padHorizontal + v.noExponents(s - n * this.barCtx.seriesLen) / 2 + } + return h.globals.barHeight = r, h.globals.barWidth = n, { + x: e, + y: i, + yDivision: a, + xDivision: s, + barHeight: r, + barWidth: n, + zeroH: o, + zeroW: l + } + } + }, { + key: "initializeStackedPrevVars", value: function (t) { + t.w.globals.seriesGroups.forEach((function (e) { + t[e] || (t[e] = {}), t[e].prevY = [], t[e].prevX = [], t[e].prevYF = [], t[e].prevXF = [], t[e].prevYVal = [], t[e].prevXVal = [] + })) + } + }, { + key: "initializeStackedXYVars", value: function (t) { + t.w.globals.seriesGroups.forEach((function (e) { + t[e] || (t[e] = {}), t[e].xArrj = [], t[e].xArrjF = [], t[e].xArrjVal = [], t[e].yArrj = [], t[e].yArrjF = [], t[e].yArrjVal = [] + })) + } + }, { + key: "getPathFillColor", value: function (t, e, i, a) { + var s, r, n, o, l = this.w, h = this.barCtx.ctx.fill, c = null, + d = this.barCtx.barOptions.distributed ? i : e, u = !1; + this.barCtx.barOptions.colors.ranges.length > 0 && this.barCtx.barOptions.colors.ranges.map((function (a) { + t[e][i] >= a.from && t[e][i] <= a.to && (c = a.color, u = !0) + })); + return { + color: h.fillPath({ + seriesNumber: this.barCtx.barOptions.distributed ? d : a, + dataPointIndex: i, + color: c, + value: t[e][i], + fillConfig: null === (s = l.config.series[e].data[i]) || void 0 === s ? void 0 : s.fill, + fillType: null !== (r = l.config.series[e].data[i]) && void 0 !== r && null !== (n = r.fill) && void 0 !== n && n.type ? null === (o = l.config.series[e].data[i]) || void 0 === o ? void 0 : o.fill.type : Array.isArray(l.config.fill.type) ? l.config.fill.type[a] : l.config.fill.type + }), useRangeColor: u + } + } + }, { + key: "getStrokeWidth", value: function (t, e, i) { + var a = 0, s = this.w; + return void 0 === this.barCtx.series[t][e] || null === this.barCtx.series[t][e] || "bar" === s.config.chart.type && !this.barCtx.series[t][e] ? this.barCtx.isNullValue = !0 : this.barCtx.isNullValue = !1, s.config.stroke.show && (this.barCtx.isNullValue || (a = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[i] : this.barCtx.strokeWidth)), a + } + }, { + key: "createBorderRadiusArr", value: function (t) { + var e, i = this.w, a = !this.w.config.chart.stacked || i.config.plotOptions.bar.borderRadius <= 0, + s = t.length, n = 0 | (null === (e = t[0]) || void 0 === e ? void 0 : e.length), + o = Array.from({length: s}, (function () { + return Array(n).fill(a ? "top" : "none") + })); + if (a) return o; + for (var l = 0; l < n; l++) { + for (var h = [], c = [], d = 0, u = 0; u < s; u++) { + var g = t[u][l]; + g > 0 ? (h.push(u), d++) : g < 0 && (c.push(u), d++) + } + if (h.length > 0 && 0 === c.length) if (1 === h.length) o[h[0]][l] = "both"; else { + var p, f = h[0], x = h[h.length - 1], b = r(h); + try { + for (b.s(); !(p = b.n()).done;) { + var m = p.value; + o[m][l] = m === f ? "bottom" : m === x ? "top" : "none" + } + } catch (t) { + b.e(t) + } finally { + b.f() + } + } else if (c.length > 0 && 0 === h.length) if (1 === c.length) o[c[0]][l] = "both"; else { + var v, y = Math.max.apply(Math, c), w = Math.min.apply(Math, c), k = r(c); + try { + for (k.s(); !(v = k.n()).done;) { + var A = v.value; + o[A][l] = A === y ? "bottom" : A === w ? "top" : "none" + } + } catch (t) { + k.e(t) + } finally { + k.f() + } + } else if (h.length > 0 && c.length > 0) { + var C, S = h[h.length - 1], L = r(h); + try { + for (L.s(); !(C = L.n()).done;) { + var M = C.value; + o[M][l] = M === S ? "top" : "none" + } + } catch (t) { + L.e(t) + } finally { + L.f() + } + var P, I = Math.max.apply(Math, c), T = r(c); + try { + for (T.s(); !(P = T.n()).done;) { + var z = P.value; + o[z][l] = z === I ? "bottom" : "none" + } + } catch (t) { + T.e(t) + } finally { + T.f() + } + } else if (1 === d) { + o[h[0] || c[0]][l] = "both" + } + } + return o + } + }, { + key: "barBackground", value: function (t) { + var e = t.j, i = t.i, a = t.x1, s = t.x2, r = t.y1, n = t.y2, o = t.elSeries, l = this.w, + h = new Mi(this.barCtx.ctx), c = new $i(this.barCtx.ctx).getActiveConfigSeriesIndex(); + if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && c === i) { + e >= this.barCtx.barOptions.colors.backgroundBarColors.length && (e %= this.barCtx.barOptions.colors.backgroundBarColors.length); + var d = this.barCtx.barOptions.colors.backgroundBarColors[e], + u = h.drawRect(void 0 !== a ? a : 0, void 0 !== r ? r : 0, void 0 !== s ? s : l.globals.gridWidth, void 0 !== n ? n : l.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, d, this.barCtx.barOptions.colors.backgroundBarOpacity); + o.add(u), u.node.classList.add("apexcharts-backgroundBar") + } + } + }, { + key: "getColumnPaths", value: function (t) { + var e, i = t.barWidth, a = t.barXPosition, s = t.y1, r = t.y2, n = t.strokeWidth, o = t.isReversed, + l = t.series, h = t.seriesGroup, c = t.realIndex, d = t.i, u = t.j, g = t.w, + p = new Mi(this.barCtx.ctx); + (n = Array.isArray(n) ? n[c] : n) || (n = 0); + var f = i, x = a; + null !== (e = g.config.series[c].data[u]) && void 0 !== e && e.columnWidthOffset && (x = a - g.config.series[c].data[u].columnWidthOffset / 2, f = i + g.config.series[c].data[u].columnWidthOffset); + var b = n / 2, m = x + b, v = x + f - b, y = (l[d][u] >= 0 ? 1 : -1) * (o ? -1 : 1); + s += .001 - b * y, r += .001 + b * y; + var w = p.move(m, s), k = p.move(m, s), A = p.line(v, s); + if (g.globals.previousPaths.length > 0 && (k = this.barCtx.getPreviousPath(c, u, !1)), w = w + p.line(m, r) + p.line(v, r) + A + ("around" === g.config.plotOptions.bar.borderRadiusApplication || "both" === this.arrBorderRadius[c][u] ? " Z" : " z"), k = k + p.line(m, s) + A + A + A + A + A + p.line(m, s) + ("around" === g.config.plotOptions.bar.borderRadiusApplication || "both" === this.arrBorderRadius[c][u] ? " Z" : " z"), "none" !== this.arrBorderRadius[c][u] && (w = p.roundPathCorners(w, g.config.plotOptions.bar.borderRadius)), g.config.chart.stacked) { + var C = this.barCtx; + (C = this.barCtx[h]).yArrj.push(r - b * y), C.yArrjF.push(Math.abs(s - r + n * y)), C.yArrjVal.push(this.barCtx.series[d][u]) + } + return {pathTo: w, pathFrom: k} + } + }, { + key: "getBarpaths", value: function (t) { + var e, i = t.barYPosition, a = t.barHeight, s = t.x1, r = t.x2, n = t.strokeWidth, o = t.isReversed, + l = t.series, h = t.seriesGroup, c = t.realIndex, d = t.i, u = t.j, g = t.w, + p = new Mi(this.barCtx.ctx); + (n = Array.isArray(n) ? n[c] : n) || (n = 0); + var f = i, x = a; + null !== (e = g.config.series[c].data[u]) && void 0 !== e && e.barHeightOffset && (f = i - g.config.series[c].data[u].barHeightOffset / 2, x = a + g.config.series[c].data[u].barHeightOffset); + var b = n / 2, m = f + b, v = f + x - b, y = (l[d][u] >= 0 ? 1 : -1) * (o ? -1 : 1); + s += .001 + b * y, r += .001 - b * y; + var w = p.move(s, m), k = p.move(s, m); + g.globals.previousPaths.length > 0 && (k = this.barCtx.getPreviousPath(c, u, !1)); + var A = p.line(s, v); + if (w = w + p.line(r, m) + p.line(r, v) + A + ("around" === g.config.plotOptions.bar.borderRadiusApplication || "both" === this.arrBorderRadius[c][u] ? " Z" : " z"), k = k + p.line(s, m) + A + A + A + A + A + p.line(s, m) + ("around" === g.config.plotOptions.bar.borderRadiusApplication || "both" === this.arrBorderRadius[c][u] ? " Z" : " z"), "none" !== this.arrBorderRadius[c][u] && (w = p.roundPathCorners(w, g.config.plotOptions.bar.borderRadius)), g.config.chart.stacked) { + var C = this.barCtx; + (C = this.barCtx[h]).xArrj.push(r + b * y), C.xArrjF.push(Math.abs(s - r - n * y)), C.xArrjVal.push(this.barCtx.series[d][u]) + } + return {pathTo: w, pathFrom: k} + } + }, { + key: "checkZeroSeries", value: function (t) { + for (var e = t.series, i = this.w, a = 0; a < e.length; a++) { + for (var s = 0, r = 0; r < e[i.globals.maxValsInArrayIndex].length; r++) s += e[a][r]; + 0 === s && this.barCtx.zeroSerieses.push(a) + } + } + }, { + key: "getXForValue", value: function (t, e) { + var i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? e : null; + return null != t && (i = e + t / this.barCtx.invertedYRatio - 2 * (this.barCtx.isReversed ? t / this.barCtx.invertedYRatio : 0)), i + } + }, { + key: "getYForValue", value: function (t, e, i) { + var a = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3] ? e : null; + return null != t && (a = e - t / this.barCtx.yRatio[i] + 2 * (this.barCtx.isReversed ? t / this.barCtx.yRatio[i] : 0)), a + } + }, { + key: "getGoalValues", value: function (t, e, i, a, s, r) { + var n = this, l = this.w, h = [], c = function (a, s) { + var l; + h.push((o(l = {}, t, "x" === t ? n.getXForValue(a, e, !1) : n.getYForValue(a, i, r, !1)), o(l, "attrs", s), l)) + }; + if (l.globals.seriesGoals[a] && l.globals.seriesGoals[a][s] && Array.isArray(l.globals.seriesGoals[a][s]) && l.globals.seriesGoals[a][s].forEach((function (t) { + c(t.value, t) + })), this.barCtx.barOptions.isDumbbell && l.globals.seriesRange.length) { + var d = this.barCtx.barOptions.dumbbellColors ? this.barCtx.barOptions.dumbbellColors : l.globals.colors, + g = { + strokeHeight: "x" === t ? 0 : l.globals.markers.size[a], + strokeWidth: "x" === t ? l.globals.markers.size[a] : 0, + strokeDashArray: 0, + strokeLineCap: "round", + strokeColor: Array.isArray(d[a]) ? d[a][0] : d[a] + }; + c(l.globals.seriesRangeStart[a][s], g), c(l.globals.seriesRangeEnd[a][s], u(u({}, g), {}, {strokeColor: Array.isArray(d[a]) ? d[a][1] : d[a]})) + } + return h + } + }, { + key: "drawGoalLine", value: function (t) { + var e = t.barXPosition, i = t.barYPosition, a = t.goalX, s = t.goalY, r = t.barWidth, n = t.barHeight, + o = new Mi(this.barCtx.ctx), l = o.group({className: "apexcharts-bar-goals-groups"}); + l.node.classList.add("apexcharts-element-hidden"), this.barCtx.w.globals.delayedElements.push({el: l.node}), l.attr("clip-path", "url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid, ")")); + var h = null; + return this.barCtx.isHorizontal ? Array.isArray(a) && a.forEach((function (t) { + if (t.x >= -1 && t.x <= o.w.globals.gridWidth + 1) { + var e = void 0 !== t.attrs.strokeHeight ? t.attrs.strokeHeight : n / 2, a = i + e + n / 2; + h = o.drawLine(t.x, a - 2 * e, t.x, a, t.attrs.strokeColor ? t.attrs.strokeColor : void 0, t.attrs.strokeDashArray, t.attrs.strokeWidth ? t.attrs.strokeWidth : 2, t.attrs.strokeLineCap), l.add(h) + } + })) : Array.isArray(s) && s.forEach((function (t) { + if (t.y >= -1 && t.y <= o.w.globals.gridHeight + 1) { + var i = void 0 !== t.attrs.strokeWidth ? t.attrs.strokeWidth : r / 2, a = e + i + r / 2; + h = o.drawLine(a - 2 * i, t.y, a, t.y, t.attrs.strokeColor ? t.attrs.strokeColor : void 0, t.attrs.strokeDashArray, t.attrs.strokeHeight ? t.attrs.strokeHeight : 2, t.attrs.strokeLineCap), l.add(h) + } + })), l + } + }, { + key: "drawBarShadow", value: function (t) { + var e = t.prevPaths, i = t.currPaths, a = t.color, s = this.w, r = e.x, n = e.x1, o = e.barYPosition, + l = i.x, h = i.x1, c = i.barYPosition, d = o + i.barHeight, u = new Mi(this.barCtx.ctx), g = new v, + p = u.move(n, d) + u.line(r, d) + u.line(l, c) + u.line(h, c) + u.line(n, d) + ("around" === s.config.plotOptions.bar.borderRadiusApplication || "both" === this.arrBorderRadius[realIndex][j] ? " Z" : " z"); + return u.drawPath({ + d: p, + fill: g.shadeColor(.5, v.rgb2hex(a)), + stroke: "none", + strokeWidth: 0, + fillOpacity: 1, + classes: "apexcharts-bar-shadow apexcharts-decoration-element" + }) + } + }, { + key: "getZeroValueEncounters", value: function (t) { + var e, i = t.i, a = t.j, s = this.w, r = 0, n = 0; + return (s.config.plotOptions.bar.horizontal ? s.globals.series.map((function (t, e) { + return e + })) : (null === (e = s.globals.columnSeries) || void 0 === e ? void 0 : e.i.map((function (t) { + return t + }))) || []).forEach((function (t) { + var e = s.globals.seriesPercent[t][a]; + e && r++, t < i && 0 === e && n++ + })), {nonZeroColumns: r, zeroEncounters: n} + } + }, { + key: "getGroupIndex", value: function (t) { + var e = this.w, i = e.globals.seriesGroups.findIndex((function (i) { + return i.indexOf(e.globals.seriesNames[t]) > -1 + })), a = this.barCtx.columnGroupIndices, s = a.indexOf(i); + return s < 0 && (a.push(i), s = a.length - 1), {groupIndex: i, columnGroupIndex: s} + } + }]), t + }(), Ia = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.w = e.w; + var s = this.w; + this.barOptions = s.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = s.config.stroke.width, this.isNullValue = !1, this.isRangeBar = s.globals.seriesRange.length && this.isHorizontal, this.isVerticalGroupedRangeBar = !s.globals.isBarHorizontal && s.globals.seriesRange.length && s.config.plotOptions.bar.rangeBarGroupRows, this.isFunnel = this.barOptions.isFunnel, this.xyRatios = a, null !== this.xyRatios && (this.xRatio = a.xRatio, this.yRatio = a.yRatio, this.invertedXRatio = a.invertedXRatio, this.invertedYRatio = a.invertedYRatio, this.baseLineY = a.baseLineY, this.baseLineInvertedY = a.baseLineInvertedY), this.yaxisIndex = 0, this.translationsIndex = 0, this.seriesLen = 0, this.pathArr = []; + var r = new $i(this.ctx); + this.lastActiveBarSerieIndex = r.getActiveConfigSeriesIndex("desc", ["bar", "column"]), this.columnGroupIndices = []; + var n = r.getBarSeriesIndices(), o = new Pi(this.ctx); + this.stackedSeriesTotals = o.getStackedSeriesTotals(this.w.config.series.map((function (t, e) { + return -1 === n.indexOf(e) ? e : -1 + })).filter((function (t) { + return -1 !== t + }))), this.barHelpers = new Pa(this) + } + + return s(t, [{ + key: "draw", value: function (t, e) { + var i = this.w, a = new Mi(this.ctx), s = new Pi(this.ctx, i); + t = s.getLogSeries(t), this.series = t, this.yRatio = s.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t); + var r = a.group({class: "apexcharts-bar-series apexcharts-plot-series"}); + i.config.dataLabels.enabled && this.totalItems > this.barOptions.dataLabels.maxItems && console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts"); + for (var n = 0, o = 0; n < t.length; n++, o++) { + var l, h, c, d, g = void 0, p = void 0, f = [], x = [], b = i.globals.comboCharts ? e[n] : n, + m = this.barHelpers.getGroupIndex(b).columnGroupIndex, y = a.group({ + class: "apexcharts-series", + rel: n + 1, + seriesName: v.escapeString(i.globals.seriesNames[b]), + "data:realIndex": b + }); + this.ctx.series.addCollapsedClassToSeries(y, b), t[n].length > 0 && (this.visibleI = this.visibleI + 1); + var w = 0, k = 0; + this.yRatio.length > 1 && (this.yaxisIndex = i.globals.seriesYAxisReverseMap[b], this.translationsIndex = b); + var A = this.translationsIndex; + this.isReversed = i.config.yaxis[this.yaxisIndex] && i.config.yaxis[this.yaxisIndex].reversed; + var C = this.barHelpers.initialPositions(b); + p = C.y, w = C.barHeight, h = C.yDivision, d = C.zeroW, g = C.x, k = C.barWidth, l = C.xDivision, c = C.zeroH, this.isHorizontal || x.push(g + k / 2); + var S = a.group({class: "apexcharts-datalabels", "data:realIndex": b}); + i.globals.delayedElements.push({el: S.node}), S.node.classList.add("apexcharts-element-hidden"); + var L = a.group({class: "apexcharts-bar-goals-markers"}), + M = a.group({class: "apexcharts-bar-shadows"}); + i.globals.delayedElements.push({el: M.node}), M.node.classList.add("apexcharts-element-hidden"); + for (var P = 0; P < t[n].length; P++) { + var I = this.barHelpers.getStrokeWidth(n, P, b), T = null, z = { + indexes: {i: n, j: P, realIndex: b, translationsIndex: A, bc: o}, + x: g, + y: p, + strokeWidth: I, + elSeries: y + }; + this.isHorizontal ? (T = this.drawBarPaths(u(u({}, z), {}, { + barHeight: w, + zeroW: d, + yDivision: h + })), k = this.series[n][P] / this.invertedYRatio) : (T = this.drawColumnPaths(u(u({}, z), {}, { + xDivision: l, + barWidth: k, + zeroH: c + })), w = this.series[n][P] / this.yRatio[A]); + var X = this.barHelpers.getPathFillColor(t, n, P, b); + if (this.isFunnel && this.barOptions.isFunnel3d && this.pathArr.length && P > 0) { + var R, E = this.barHelpers.drawBarShadow({ + color: "string" == typeof X.color && -1 === (null === (R = X.color) || void 0 === R ? void 0 : R.indexOf("url")) ? X.color : v.hexToRgba(i.globals.colors[n]), + prevPaths: this.pathArr[this.pathArr.length - 1], + currPaths: T + }); + if (M.add(E), i.config.chart.dropShadow.enabled) new Li(this.ctx).dropShadow(E, i.config.chart.dropShadow, b) + } + this.pathArr.push(T); + var Y = this.barHelpers.drawGoalLine({ + barXPosition: T.barXPosition, + barYPosition: T.barYPosition, + goalX: T.goalX, + goalY: T.goalY, + barHeight: w, + barWidth: k + }); + Y && L.add(Y), p = T.y, g = T.x, P > 0 && x.push(g + k / 2), f.push(p), this.renderSeries(u(u({ + realIndex: b, + pathFill: X.color + }, X.useRangeColor ? {lineFill: X.color} : {}), {}, { + j: P, + i: n, + columnGroupIndex: m, + pathFrom: T.pathFrom, + pathTo: T.pathTo, + strokeWidth: I, + elSeries: y, + x: g, + y: p, + series: t, + barHeight: Math.abs(T.barHeight ? T.barHeight : w), + barWidth: Math.abs(T.barWidth ? T.barWidth : k), + elDataLabelsWrap: S, + elGoalsMarkers: L, + elBarShadows: M, + visibleSeries: this.visibleI, + type: "bar" + })) + } + i.globals.seriesXvalues[b] = x, i.globals.seriesYvalues[b] = f, r.add(y) + } + return r + } + }, { + key: "renderSeries", value: function (t) { + var e = t.realIndex, i = t.pathFill, a = t.lineFill, s = t.j, r = t.i, n = t.columnGroupIndex, + o = t.pathFrom, l = t.pathTo, h = t.strokeWidth, c = t.elSeries, d = t.x, u = t.y, g = t.y1, + p = t.y2, f = t.series, x = t.barHeight, b = t.barWidth, m = t.barXPosition, v = t.barYPosition, + y = t.elDataLabelsWrap, w = t.elGoalsMarkers, k = t.elBarShadows, A = t.visibleSeries, C = t.type, + S = t.classes, L = this.w, M = new Mi(this.ctx), P = !1; + if (!a) { + var I = "function" == typeof L.globals.stroke.colors[e] ? function (t) { + var e, i = L.config.stroke.colors; + return Array.isArray(i) && i.length > 0 && ((e = i[t]) || (e = ""), "function" == typeof e) ? e({ + value: L.globals.series[t][s], + dataPointIndex: s, + w: L + }) : e + }(e) : L.globals.stroke.colors[e]; + a = this.barOptions.distributed ? L.globals.stroke.colors[s] : I + } + var T = new Ma(this).handleBarDataLabels({ + x: d, + y: u, + y1: g, + y2: p, + i: r, + j: s, + series: f, + realIndex: e, + columnGroupIndex: n, + barHeight: x, + barWidth: b, + barXPosition: m, + barYPosition: v, + visibleSeries: A + }); + L.globals.isBarHorizontal || (T.dataLabelsPos.dataLabelsX + Math.max(b, L.globals.barPadForNumericAxis) < 0 || T.dataLabelsPos.dataLabelsX - Math.max(b, L.globals.barPadForNumericAxis) > L.globals.gridWidth) && (P = !0), L.config.series[r].data[s] && L.config.series[r].data[s].strokeColor && (a = L.config.series[r].data[s].strokeColor), this.isNullValue && (i = "none"); + var z = s / L.config.chart.animations.animateGradually.delay * (L.config.chart.animations.speed / L.globals.dataPoints) / 2.4; + if (!P) { + var X = M.renderPaths({ + i: r, + j: s, + realIndex: e, + pathFrom: o, + pathTo: l, + stroke: a, + strokeWidth: h, + strokeLineCap: L.config.stroke.lineCap, + fill: i, + animationDelay: z, + initialSpeed: L.config.chart.animations.speed, + dataChangeSpeed: L.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-".concat(C, "-area ").concat(S), + chartType: C + }); + X.attr("clip-path", "url(#gridRectBarMask".concat(L.globals.cuid, ")")); + var R = L.config.forecastDataPoints; + R.count > 0 && s >= L.globals.dataPoints - R.count && (X.node.setAttribute("stroke-dasharray", R.dashArray), X.node.setAttribute("stroke-width", R.strokeWidth), X.node.setAttribute("fill-opacity", R.fillOpacity)), void 0 !== g && void 0 !== p && (X.attr("data-range-y1", g), X.attr("data-range-y2", p)), new Li(this.ctx).setSelectionFilter(X, e, s), c.add(X), X.attr({ + cy: T.dataLabelsPos.bcy, + cx: T.dataLabelsPos.bcx, + j: s, + val: L.globals.series[r][s], + barHeight: x, + barWidth: b + }), null !== T.dataLabels && y.add(T.dataLabels), T.totalDataLabels && y.add(T.totalDataLabels), c.add(y), w && c.add(w), k && c.add(k) + } + return c + } + }, { + key: "drawBarPaths", value: function (t) { + var e, i = t.indexes, a = t.barHeight, s = t.strokeWidth, r = t.zeroW, n = t.x, o = t.y, + l = t.yDivision, h = t.elSeries, c = this.w, d = i.i, u = i.j; + if (c.globals.isXNumeric) e = (o = (c.globals.seriesX[d][u] - c.globals.minX) / this.invertedXRatio - a) + a * this.visibleI; else if (c.config.plotOptions.bar.hideZeroBarsWhenGrouped) { + var g = this.barHelpers.getZeroValueEncounters({i: d, j: u}), p = g.nonZeroColumns, + f = g.zeroEncounters; + p > 0 && (a = this.seriesLen * a / p), e = o + a * this.visibleI, e -= a * f + } else e = o + a * this.visibleI; + this.isFunnel && (r -= (this.barHelpers.getXForValue(this.series[d][u], r) - r) / 2), n = this.barHelpers.getXForValue(this.series[d][u], r); + var x = this.barHelpers.getBarpaths({ + barYPosition: e, + barHeight: a, + x1: r, + x2: n, + strokeWidth: s, + isReversed: this.isReversed, + series: this.series, + realIndex: i.realIndex, + i: d, + j: u, + w: c + }); + return c.globals.isXNumeric || (o += l), this.barHelpers.barBackground({ + j: u, + i: d, + y1: e - a * this.visibleI, + y2: a * this.seriesLen, + elSeries: h + }), { + pathTo: x.pathTo, + pathFrom: x.pathFrom, + x1: r, + x: n, + y: o, + goalX: this.barHelpers.getGoalValues("x", r, null, d, u), + barYPosition: e, + barHeight: a + } + } + }, { + key: "drawColumnPaths", value: function (t) { + var e, i = t.indexes, a = t.x, s = t.y, r = t.xDivision, n = t.barWidth, o = t.zeroH, l = t.strokeWidth, + h = t.elSeries, c = this.w, d = i.realIndex, u = i.translationsIndex, g = i.i, p = i.j, f = i.bc; + if (c.globals.isXNumeric) { + var x = this.getBarXForNumericXAxis({x: a, j: p, realIndex: d, barWidth: n}); + a = x.x, e = x.barXPosition + } else if (c.config.plotOptions.bar.hideZeroBarsWhenGrouped) { + var b = this.barHelpers.getZeroValueEncounters({i: g, j: p}), m = b.nonZeroColumns, + v = b.zeroEncounters; + m > 0 && (n = this.seriesLen * n / m), e = a + n * this.visibleI, e -= n * v + } else e = a + n * this.visibleI; + s = this.barHelpers.getYForValue(this.series[g][p], o, u); + var y = this.barHelpers.getColumnPaths({ + barXPosition: e, + barWidth: n, + y1: o, + y2: s, + strokeWidth: l, + isReversed: this.isReversed, + series: this.series, + realIndex: d, + i: g, + j: p, + w: c + }); + return c.globals.isXNumeric || (a += r), this.barHelpers.barBackground({ + bc: f, + j: p, + i: g, + x1: e - l / 2 - n * this.visibleI, + x2: n * this.seriesLen + l / 2, + elSeries: h + }), { + pathTo: y.pathTo, + pathFrom: y.pathFrom, + x: a, + y: s, + goalY: this.barHelpers.getGoalValues("y", null, o, g, p, u), + barXPosition: e, + barWidth: n + } + } + }, { + key: "getBarXForNumericXAxis", value: function (t) { + var e = t.x, i = t.barWidth, a = t.realIndex, s = t.j, r = this.w, n = a; + return r.globals.seriesX[a].length || (n = r.globals.maxValsInArrayIndex), v.isNumber(r.globals.seriesX[n][s]) && (e = (r.globals.seriesX[n][s] - r.globals.minX) / this.xRatio - i * this.seriesLen / 2), { + barXPosition: e + i * this.visibleI, + x: e + } + } + }, { + key: "getPreviousPath", value: function (t, e) { + for (var i = this.w, a = "M 0 0", s = 0; s < i.globals.previousPaths.length; s++) { + var r = i.globals.previousPaths[s]; + r.paths && r.paths.length > 0 && parseInt(r.realIndex, 10) === parseInt(t, 10) && void 0 !== i.globals.previousPaths[s].paths[e] && (a = i.globals.previousPaths[s].paths[e].d) + } + return a + } + }]), t + }(), Ta = function (t) { + h(a, t); + var e = n(a); + + function a() { + return i(this, a), e.apply(this, arguments) + } + + return s(a, [{ + key: "draw", value: function (t, e) { + var i = this, a = this.w; + this.graphics = new Mi(this.ctx), this.bar = new Ia(this.ctx, this.xyRatios); + var s = new Pi(this.ctx, a); + t = s.getLogSeries(t), this.yRatio = s.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t), "100%" === a.config.chart.stackType && (t = a.globals.comboCharts ? e.map((function (t) { + return a.globals.seriesPercent[t] + })) : a.globals.seriesPercent.slice()), this.series = t, this.barHelpers.initializeStackedPrevVars(this); + for (var r = this.graphics.group({class: "apexcharts-bar-series apexcharts-plot-series"}), n = 0, o = 0, l = function (s, l) { + var h = void 0, c = void 0, d = void 0, g = void 0, p = a.globals.comboCharts ? e[s] : s, + f = i.barHelpers.getGroupIndex(p), x = f.groupIndex, b = f.columnGroupIndex; + i.groupCtx = i[a.globals.seriesGroups[x]]; + var m = [], y = [], w = 0; + i.yRatio.length > 1 && (i.yaxisIndex = a.globals.seriesYAxisReverseMap[p][0], w = p), i.isReversed = a.config.yaxis[i.yaxisIndex] && a.config.yaxis[i.yaxisIndex].reversed; + var k = i.graphics.group({ + class: "apexcharts-series", + seriesName: v.escapeString(a.globals.seriesNames[p]), + rel: s + 1, + "data:realIndex": p + }); + i.ctx.series.addCollapsedClassToSeries(k, p); + var A = i.graphics.group({class: "apexcharts-datalabels", "data:realIndex": p}), + C = i.graphics.group({class: "apexcharts-bar-goals-markers"}), S = 0, L = 0, + M = i.initialPositions(n, o, h, c, d, g, w); + o = M.y, S = M.barHeight, c = M.yDivision, g = M.zeroW, n = M.x, L = M.barWidth, h = M.xDivision, d = M.zeroH, a.globals.barHeight = S, a.globals.barWidth = L, i.barHelpers.initializeStackedXYVars(i), 1 === i.groupCtx.prevY.length && i.groupCtx.prevY[0].every((function (t) { + return isNaN(t) + })) && (i.groupCtx.prevY[0] = i.groupCtx.prevY[0].map((function () { + return d + })), i.groupCtx.prevYF[0] = i.groupCtx.prevYF[0].map((function () { + return 0 + }))); + for (var P = 0; P < a.globals.dataPoints; P++) { + var I = i.barHelpers.getStrokeWidth(s, P, p), T = { + indexes: {i: s, j: P, realIndex: p, translationsIndex: w, bc: l}, + strokeWidth: I, + x: n, + y: o, + elSeries: k, + columnGroupIndex: b, + seriesGroup: a.globals.seriesGroups[x] + }, z = null; + i.isHorizontal ? (z = i.drawStackedBarPaths(u(u({}, T), {}, { + zeroW: g, + barHeight: S, + yDivision: c + })), L = i.series[s][P] / i.invertedYRatio) : (z = i.drawStackedColumnPaths(u(u({}, T), {}, { + xDivision: h, + barWidth: L, + zeroH: d + })), S = i.series[s][P] / i.yRatio[w]); + var X = i.barHelpers.drawGoalLine({ + barXPosition: z.barXPosition, + barYPosition: z.barYPosition, + goalX: z.goalX, + goalY: z.goalY, + barHeight: S, + barWidth: L + }); + X && C.add(X), o = z.y, n = z.x, m.push(n), y.push(o); + var R = i.barHelpers.getPathFillColor(t, s, P, p), E = "", + Y = a.globals.isBarHorizontal ? "apexcharts-flip-x" : "apexcharts-flip-y"; + ("bottom" === i.barHelpers.arrBorderRadius[p][P] && a.globals.series[p][P] > 0 || "top" === i.barHelpers.arrBorderRadius[p][P] && a.globals.series[p][P] < 0) && (E = Y), k = i.renderSeries(u(u({ + realIndex: p, + pathFill: R.color + }, R.useRangeColor ? {lineFill: R.color} : {}), {}, { + j: P, + i: s, + columnGroupIndex: b, + pathFrom: z.pathFrom, + pathTo: z.pathTo, + strokeWidth: I, + elSeries: k, + x: n, + y: o, + series: t, + barHeight: S, + barWidth: L, + elDataLabelsWrap: A, + elGoalsMarkers: C, + type: "bar", + visibleSeries: b, + classes: E + })) + } + a.globals.seriesXvalues[p] = m, a.globals.seriesYvalues[p] = y, i.groupCtx.prevY.push(i.groupCtx.yArrj), i.groupCtx.prevYF.push(i.groupCtx.yArrjF), i.groupCtx.prevYVal.push(i.groupCtx.yArrjVal), i.groupCtx.prevX.push(i.groupCtx.xArrj), i.groupCtx.prevXF.push(i.groupCtx.xArrjF), i.groupCtx.prevXVal.push(i.groupCtx.xArrjVal), r.add(k) + }, h = 0, c = 0; h < t.length; h++, c++) l(h, c); + return r + } + }, { + key: "initialPositions", value: function (t, e, i, a, s, r, n) { + var o, l, h = this.w; + if (this.isHorizontal) { + a = h.globals.gridHeight / h.globals.dataPoints; + var c = h.config.plotOptions.bar.barHeight; + o = -1 === String(c).indexOf("%") ? parseInt(c, 10) : a * parseInt(c, 10) / 100, r = h.globals.padHorizontal + (this.isReversed ? h.globals.gridWidth - this.baseLineInvertedY : this.baseLineInvertedY), e = (a - o) / 2 + } else { + l = i = h.globals.gridWidth / h.globals.dataPoints; + var d = h.config.plotOptions.bar.columnWidth; + h.globals.isXNumeric && h.globals.dataPoints > 1 ? l = (i = h.globals.minXDiff / this.xRatio) * parseInt(this.barOptions.columnWidth, 10) / 100 : -1 === String(d).indexOf("%") ? l = parseInt(d, 10) : l *= parseInt(d, 10) / 100, s = this.isReversed ? this.baseLineY[n] : h.globals.gridHeight - this.baseLineY[n], t = h.globals.padHorizontal + (i - l) / 2 + } + var u = h.globals.barGroups.length || 1; + return {x: t, y: e, yDivision: a, xDivision: i, barHeight: o / u, barWidth: l / u, zeroH: s, zeroW: r} + } + }, { + key: "drawStackedBarPaths", value: function (t) { + for (var e, i = t.indexes, a = t.barHeight, s = t.strokeWidth, r = t.zeroW, n = t.x, o = t.y, l = t.columnGroupIndex, h = t.seriesGroup, c = t.yDivision, d = t.elSeries, u = this.w, g = o + l * a, p = i.i, f = i.j, x = i.realIndex, b = i.translationsIndex, m = 0, v = 0; v < this.groupCtx.prevXF.length; v++) m += this.groupCtx.prevXF[v][f]; + var y = p; + if (u.config.series[x].name && (y = h.indexOf(u.config.series[x].name)), y > 0) { + var w = r; + this.groupCtx.prevXVal[y - 1][f] < 0 ? w = this.series[p][f] >= 0 ? this.groupCtx.prevX[y - 1][f] + m - 2 * (this.isReversed ? m : 0) : this.groupCtx.prevX[y - 1][f] : this.groupCtx.prevXVal[y - 1][f] >= 0 && (w = this.series[p][f] >= 0 ? this.groupCtx.prevX[y - 1][f] : this.groupCtx.prevX[y - 1][f] - m + 2 * (this.isReversed ? m : 0)), e = w + } else e = r; + n = null === this.series[p][f] ? e : e + this.series[p][f] / this.invertedYRatio - 2 * (this.isReversed ? this.series[p][f] / this.invertedYRatio : 0); + var k = this.barHelpers.getBarpaths({ + barYPosition: g, + barHeight: a, + x1: e, + x2: n, + strokeWidth: s, + isReversed: this.isReversed, + series: this.series, + realIndex: i.realIndex, + seriesGroup: h, + i: p, + j: f, + w: u + }); + return this.barHelpers.barBackground({ + j: f, + i: p, + y1: g, + y2: a, + elSeries: d + }), o += c, { + pathTo: k.pathTo, + pathFrom: k.pathFrom, + goalX: this.barHelpers.getGoalValues("x", r, null, p, f, b), + barXPosition: e, + barYPosition: g, + x: n, + y: o + } + } + }, { + key: "drawStackedColumnPaths", value: function (t) { + var e = t.indexes, i = t.x, a = t.y, s = t.xDivision, r = t.barWidth, n = t.zeroH, + o = t.columnGroupIndex, l = t.seriesGroup, h = t.elSeries, c = this.w, d = e.i, u = e.j, g = e.bc, + p = e.realIndex, f = e.translationsIndex; + if (c.globals.isXNumeric) { + var x = c.globals.seriesX[p][u]; + x || (x = 0), i = (x - c.globals.minX) / this.xRatio - r / 2 * c.globals.barGroups.length + } + for (var b, m = i + o * r, v = 0, y = 0; y < this.groupCtx.prevYF.length; y++) v += isNaN(this.groupCtx.prevYF[y][u]) ? 0 : this.groupCtx.prevYF[y][u]; + var w = d; + if (l && (w = l.indexOf(c.globals.seriesNames[p])), w > 0 && !c.globals.isXNumeric || w > 0 && c.globals.isXNumeric && c.globals.seriesX[p - 1][u] === c.globals.seriesX[p][u]) { + var k, A, C, S = Math.min(this.yRatio.length + 1, p + 1); + if (void 0 !== this.groupCtx.prevY[w - 1] && this.groupCtx.prevY[w - 1].length) for (var L = 1; L < S; L++) { + var M; + if (!isNaN(null === (M = this.groupCtx.prevY[w - L]) || void 0 === M ? void 0 : M[u])) { + C = this.groupCtx.prevY[w - L][u]; + break + } + } + for (var P = 1; P < S; P++) { + var I, T; + if ((null === (I = this.groupCtx.prevYVal[w - P]) || void 0 === I ? void 0 : I[u]) < 0) { + A = this.series[d][u] >= 0 ? C - v + 2 * (this.isReversed ? v : 0) : C; + break + } + if ((null === (T = this.groupCtx.prevYVal[w - P]) || void 0 === T ? void 0 : T[u]) >= 0) { + A = this.series[d][u] >= 0 ? C : C + v - 2 * (this.isReversed ? v : 0); + break + } + } + void 0 === A && (A = c.globals.gridHeight), b = null !== (k = this.groupCtx.prevYF[0]) && void 0 !== k && k.every((function (t) { + return 0 === t + })) && this.groupCtx.prevYF.slice(1, w).every((function (t) { + return t.every((function (t) { + return isNaN(t) + })) + })) ? n : A + } else b = n; + a = this.series[d][u] ? b - this.series[d][u] / this.yRatio[f] + 2 * (this.isReversed ? this.series[d][u] / this.yRatio[f] : 0) : b; + var z = this.barHelpers.getColumnPaths({ + barXPosition: m, + barWidth: r, + y1: b, + y2: a, + yRatio: this.yRatio[f], + strokeWidth: this.strokeWidth, + isReversed: this.isReversed, + series: this.series, + seriesGroup: l, + realIndex: e.realIndex, + i: d, + j: u, + w: c + }); + return this.barHelpers.barBackground({bc: g, j: u, i: d, x1: m, x2: r, elSeries: h}), { + pathTo: z.pathTo, + pathFrom: z.pathFrom, + goalY: this.barHelpers.getGoalValues("y", null, n, d, u), + barXPosition: m, + x: c.globals.isXNumeric ? i : i + s, + y: a + } + } + }]), a + }(Ia), za = function (t) { + h(a, t); + var e = n(a); + + function a() { + return i(this, a), e.apply(this, arguments) + } + + return s(a, [{ + key: "draw", value: function (t, e, i) { + var a = this, s = this.w, r = new Mi(this.ctx), n = s.globals.comboCharts ? e : s.config.chart.type, + o = new ji(this.ctx); + this.candlestickOptions = this.w.config.plotOptions.candlestick, this.boxOptions = this.w.config.plotOptions.boxPlot, this.isHorizontal = s.config.plotOptions.bar.horizontal, this.isOHLC = this.candlestickOptions && "ohlc" === this.candlestickOptions.type; + var l = new Pi(this.ctx, s); + t = l.getLogSeries(t), this.series = t, this.yRatio = l.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t); + for (var h = r.group({class: "apexcharts-".concat(n, "-series apexcharts-plot-series")}), c = function (e) { + a.isBoxPlot = "boxPlot" === s.config.chart.type || "boxPlot" === s.config.series[e].type; + var n, l, c, d, g = void 0, p = void 0, f = [], x = [], b = s.globals.comboCharts ? i[e] : e, + m = a.barHelpers.getGroupIndex(b).columnGroupIndex, y = r.group({ + class: "apexcharts-series", + seriesName: v.escapeString(s.globals.seriesNames[b]), + rel: e + 1, + "data:realIndex": b + }); + a.ctx.series.addCollapsedClassToSeries(y, b), t[e].length > 0 && (a.visibleI = a.visibleI + 1); + var w, k, A = 0; + a.yRatio.length > 1 && (a.yaxisIndex = s.globals.seriesYAxisReverseMap[b][0], A = b); + var C = a.barHelpers.initialPositions(b); + p = C.y, w = C.barHeight, l = C.yDivision, d = C.zeroW, g = C.x, k = C.barWidth, n = C.xDivision, c = C.zeroH, x.push(g + k / 2); + for (var S = r.group({ + class: "apexcharts-datalabels", + "data:realIndex": b + }), L = r.group({class: "apexcharts-bar-goals-markers"}), M = function (i) { + var r = a.barHelpers.getStrokeWidth(e, i, b), h = null, v = { + indexes: {i: e, j: i, realIndex: b, translationsIndex: A}, + x: g, + y: p, + strokeWidth: r, + elSeries: y + }; + h = a.isHorizontal ? a.drawHorizontalBoxPaths(u(u({}, v), {}, { + yDivision: l, + barHeight: w, + zeroW: d + })) : a.drawVerticalBoxPaths(u(u({}, v), {}, { + xDivision: n, + barWidth: k, + zeroH: c + })), p = h.y, g = h.x; + var C = a.barHelpers.drawGoalLine({ + barXPosition: h.barXPosition, + barYPosition: h.barYPosition, + goalX: h.goalX, + goalY: h.goalY, + barHeight: w, + barWidth: k + }); + C && L.add(C), i > 0 && x.push(g + k / 2), f.push(p), h.pathTo.forEach((function (n, l) { + var c = !a.isBoxPlot && a.candlestickOptions.wick.useFillColor ? h.color[l] : s.globals.stroke.colors[e], + d = o.fillPath({seriesNumber: b, dataPointIndex: i, color: h.color[l], value: t[e][i]}); + a.renderSeries({ + realIndex: b, + pathFill: d, + lineFill: c, + j: i, + i: e, + pathFrom: h.pathFrom, + pathTo: n, + strokeWidth: r, + elSeries: y, + x: g, + y: p, + series: t, + columnGroupIndex: m, + barHeight: w, + barWidth: k, + elDataLabelsWrap: S, + elGoalsMarkers: L, + visibleSeries: a.visibleI, + type: s.config.chart.type + }) + })) + }, P = 0; P < s.globals.dataPoints; P++) M(P); + s.globals.seriesXvalues[b] = x, s.globals.seriesYvalues[b] = f, h.add(y) + }, d = 0; d < t.length; d++) c(d); + return h + } + }, { + key: "drawVerticalBoxPaths", value: function (t) { + var e = t.indexes, i = t.x; + t.y; + var a = t.xDivision, s = t.barWidth, r = t.zeroH, n = t.strokeWidth, o = this.w, l = new Mi(this.ctx), + h = e.i, c = e.j, d = o.config.plotOptions.candlestick.colors, u = this.boxOptions.colors, + g = e.realIndex, p = function (t) { + return Array.isArray(t) ? t[g] : t + }, f = p(d.upward), x = p(d.downward), b = this.yRatio[e.translationsIndex], + m = this.getOHLCValue(g, c), v = r, y = r, w = m.o < m.c ? [f] : [x]; + this.isBoxPlot && (w = [p(u.lower), p(u.upper)]); + var k = Math.min(m.o, m.c), A = Math.max(m.o, m.c), C = m.m; + o.globals.isXNumeric && (i = (o.globals.seriesX[g][c] - o.globals.minX) / this.xRatio - s / 2); + var S = i + s * this.visibleI; + void 0 === this.series[h][c] || null === this.series[h][c] ? (k = r, A = r) : (k = r - k / b, A = r - A / b, v = r - m.h / b, y = r - m.l / b, C = r - m.m / b); + var L = l.move(S, r), M = l.move(S + s / 2, k); + if (o.globals.previousPaths.length > 0 && (M = this.getPreviousPath(g, c, !0)), this.isOHLC) { + var P = S + s / 2, I = r - m.o / b, T = r - m.c / b; + L = [l.move(P, v) + l.line(P, y) + l.move(P, I) + l.line(S, I) + l.move(P, T) + l.line(S + s, T)] + } else L = this.isBoxPlot ? [l.move(S, k) + l.line(S + s / 2, k) + l.line(S + s / 2, v) + l.line(S + s / 4, v) + l.line(S + s - s / 4, v) + l.line(S + s / 2, v) + l.line(S + s / 2, k) + l.line(S + s, k) + l.line(S + s, C) + l.line(S, C) + l.line(S, k + n / 2), l.move(S, C) + l.line(S + s, C) + l.line(S + s, A) + l.line(S + s / 2, A) + l.line(S + s / 2, y) + l.line(S + s - s / 4, y) + l.line(S + s / 4, y) + l.line(S + s / 2, y) + l.line(S + s / 2, A) + l.line(S, A) + l.line(S, C) + "z"] : [l.move(S, A) + l.line(S + s / 2, A) + l.line(S + s / 2, v) + l.line(S + s / 2, A) + l.line(S + s, A) + l.line(S + s, k) + l.line(S + s / 2, k) + l.line(S + s / 2, y) + l.line(S + s / 2, k) + l.line(S, k) + l.line(S, A - n / 2)]; + return M += l.move(S, k), o.globals.isXNumeric || (i += a), { + pathTo: L, + pathFrom: M, + x: i, + y: A, + goalY: this.barHelpers.getGoalValues("y", null, r, h, c, e.translationsIndex), + barXPosition: S, + color: w + } + } + }, { + key: "drawHorizontalBoxPaths", value: function (t) { + var e = t.indexes; + t.x; + var i = t.y, a = t.yDivision, s = t.barHeight, r = t.zeroW, n = t.strokeWidth, o = this.w, + l = new Mi(this.ctx), h = e.i, c = e.j, d = this.boxOptions.colors.lower; + this.isBoxPlot && (d = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]); + var u = this.invertedYRatio, g = e.realIndex, p = this.getOHLCValue(g, c), f = r, x = r, + b = Math.min(p.o, p.c), m = Math.max(p.o, p.c), v = p.m; + o.globals.isXNumeric && (i = (o.globals.seriesX[g][c] - o.globals.minX) / this.invertedXRatio - s / 2); + var y = i + s * this.visibleI; + void 0 === this.series[h][c] || null === this.series[h][c] ? (b = r, m = r) : (b = r + b / u, m = r + m / u, f = r + p.h / u, x = r + p.l / u, v = r + p.m / u); + var w = l.move(r, y), k = l.move(b, y + s / 2); + return o.globals.previousPaths.length > 0 && (k = this.getPreviousPath(g, c, !0)), w = [l.move(b, y) + l.line(b, y + s / 2) + l.line(f, y + s / 2) + l.line(f, y + s / 2 - s / 4) + l.line(f, y + s / 2 + s / 4) + l.line(f, y + s / 2) + l.line(b, y + s / 2) + l.line(b, y + s) + l.line(v, y + s) + l.line(v, y) + l.line(b + n / 2, y), l.move(v, y) + l.line(v, y + s) + l.line(m, y + s) + l.line(m, y + s / 2) + l.line(x, y + s / 2) + l.line(x, y + s - s / 4) + l.line(x, y + s / 4) + l.line(x, y + s / 2) + l.line(m, y + s / 2) + l.line(m, y) + l.line(v, y) + "z"], k += l.move(b, y), o.globals.isXNumeric || (i += a), { + pathTo: w, + pathFrom: k, + x: m, + y: i, + goalX: this.barHelpers.getGoalValues("x", r, null, h, c), + barYPosition: y, + color: d + } + } + }, { + key: "getOHLCValue", value: function (t, e) { + var i = this.w, a = new Pi(this.ctx, i), s = a.getLogValAtSeriesIndex(i.globals.seriesCandleH[t][e], t), + r = a.getLogValAtSeriesIndex(i.globals.seriesCandleO[t][e], t), + n = a.getLogValAtSeriesIndex(i.globals.seriesCandleM[t][e], t), + o = a.getLogValAtSeriesIndex(i.globals.seriesCandleC[t][e], t), + l = a.getLogValAtSeriesIndex(i.globals.seriesCandleL[t][e], t); + return { + o: this.isBoxPlot ? s : r, + h: this.isBoxPlot ? r : s, + m: n, + l: this.isBoxPlot ? o : l, + c: this.isBoxPlot ? l : o + } + } + }]), a + }(Ia), Xa = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "checkColorRange", value: function () { + var t = this.w, e = !1, i = t.config.plotOptions[t.config.chart.type]; + return i.colorScale.ranges.length > 0 && i.colorScale.ranges.map((function (t, i) { + t.from <= 0 && (e = !0) + })), e + } + }, { + key: "getShadeColor", value: function (t, e, i, a) { + var s = this.w, r = 1, n = s.config.plotOptions[t].shadeIntensity, o = this.determineColor(t, e, i); + s.globals.hasNegs || a ? r = s.config.plotOptions[t].reverseNegativeShade ? o.percent < 0 ? o.percent / 100 * (1.25 * n) : (1 - o.percent / 100) * (1.25 * n) : o.percent <= 0 ? 1 - (1 + o.percent / 100) * n : (1 - o.percent / 100) * n : (r = 1 - o.percent / 100, "treemap" === t && (r = (1 - o.percent / 100) * (1.25 * n))); + var l = o.color, h = new v; + if (s.config.plotOptions[t].enableShades) if ("dark" === this.w.config.theme.mode) { + var c = h.shadeColor(-1 * r, o.color); + l = v.hexToRgba(v.isColorHex(c) ? c : v.rgb2hex(c), s.config.fill.opacity) + } else { + var d = h.shadeColor(r, o.color); + l = v.hexToRgba(v.isColorHex(d) ? d : v.rgb2hex(d), s.config.fill.opacity) + } + return {color: l, colorProps: o} + } + }, { + key: "determineColor", value: function (t, e, i) { + var a = this.w, s = a.globals.series[e][i], r = a.config.plotOptions[t], + n = r.colorScale.inverse ? i : e; + r.distributed && "treemap" === a.config.chart.type && (n = i); + var o = a.globals.colors[n], l = null, h = Math.min.apply(Math, f(a.globals.series[e])), + c = Math.max.apply(Math, f(a.globals.series[e])); + r.distributed || "heatmap" !== t || (h = a.globals.minY, c = a.globals.maxY), void 0 !== r.colorScale.min && (h = r.colorScale.min < a.globals.minY ? r.colorScale.min : a.globals.minY, c = r.colorScale.max > a.globals.maxY ? r.colorScale.max : a.globals.maxY); + var d = Math.abs(c) + Math.abs(h), u = 100 * s / (0 === d ? d - 1e-6 : d); + r.colorScale.ranges.length > 0 && r.colorScale.ranges.map((function (t, e) { + if (s >= t.from && s <= t.to) { + o = t.color, l = t.foreColor ? t.foreColor : null, h = t.from, c = t.to; + var i = Math.abs(c) + Math.abs(h); + u = 100 * s / (0 === i ? i - 1e-6 : i) + } + })); + return {color: o, foreColor: l, percent: u} + } + }, { + key: "calculateDataLabels", value: function (t) { + var e = t.text, i = t.x, a = t.y, s = t.i, r = t.j, n = t.colorProps, o = t.fontSize, + l = this.w.config.dataLabels, h = new Mi(this.ctx), c = new qi(this.ctx), d = null; + if (l.enabled) { + d = h.group({class: "apexcharts-data-labels"}); + var u = l.offsetX, g = l.offsetY, p = i + u, f = a + parseFloat(l.style.fontSize) / 3 + g; + c.plotDataLabelsText({ + x: p, + y: f, + text: e, + i: s, + j: r, + color: n.foreColor, + parent: d, + fontSize: o, + dataLabelsConfig: l + }) + } + return d + } + }, { + key: "addListeners", value: function (t) { + var e = new Mi(this.ctx); + t.node.addEventListener("mouseenter", e.pathMouseEnter.bind(this, t)), t.node.addEventListener("mouseleave", e.pathMouseLeave.bind(this, t)), t.node.addEventListener("mousedown", e.pathMouseDown.bind(this, t)) + } + }]), t + }(), Ra = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.w = e.w, this.xRatio = a.xRatio, this.yRatio = a.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new Xa(e), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0 + } + + return s(t, [{ + key: "draw", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = i.group({class: "apexcharts-heatmap"}); + a.attr("clip-path", "url(#gridRectMask".concat(e.globals.cuid, ")")); + var s = e.globals.gridWidth / e.globals.dataPoints, r = e.globals.gridHeight / e.globals.series.length, + n = 0, o = !1; + this.negRange = this.helpers.checkColorRange(); + var l = t.slice(); + e.config.yaxis[0].reversed && (o = !0, l.reverse()); + for (var h = o ? 0 : l.length - 1; o ? h < l.length : h >= 0; o ? h++ : h--) { + var c = i.group({ + class: "apexcharts-series apexcharts-heatmap-series", + seriesName: v.escapeString(e.globals.seriesNames[h]), + rel: h + 1, + "data:realIndex": h + }); + if (this.ctx.series.addCollapsedClassToSeries(c, h), e.config.chart.dropShadow.enabled) { + var d = e.config.chart.dropShadow; + new Li(this.ctx).dropShadow(c, d, h) + } + for (var u = 0, g = e.config.plotOptions.heatmap.shadeIntensity, p = 0, f = 0; f < e.globals.dataPoints; f++) if (e.globals.seriesX.length && !e.globals.allSeriesHasEqualX && e.globals.minX + e.globals.minXDiff * f < e.globals.seriesX[h][p]) u += s; else { + if (p >= l[h].length) break; + var x = this.helpers.getShadeColor(e.config.chart.type, h, p, this.negRange), b = x.color, + m = x.colorProps; + if ("image" === e.config.fill.type) b = new ji(this.ctx).fillPath({ + seriesNumber: h, + dataPointIndex: p, + opacity: e.globals.hasNegs ? m.percent < 0 ? 1 - (1 + m.percent / 100) : g + m.percent / 100 : m.percent / 100, + patternID: v.randomId(), + width: e.config.fill.image.width ? e.config.fill.image.width : s, + height: e.config.fill.image.height ? e.config.fill.image.height : r + }); + var y = this.rectRadius, w = i.drawRect(u, n, s, r, y); + if (w.attr({ + cx: u, + cy: n + }), w.node.classList.add("apexcharts-heatmap-rect"), c.add(w), w.attr({ + fill: b, + i: h, + index: h, + j: p, + val: t[h][p], + "stroke-width": this.strokeWidth, + stroke: e.config.plotOptions.heatmap.useFillColorAsStroke ? b : e.globals.stroke.colors[0], + color: b + }), this.helpers.addListeners(w), e.config.chart.animations.enabled && !e.globals.dataChanged) { + var k = 1; + e.globals.resized || (k = e.config.chart.animations.speed), this.animateHeatMap(w, u, n, s, r, k) + } + if (e.globals.dataChanged) { + var A = 1; + if (this.dynamicAnim.enabled && e.globals.shouldAnimate) { + A = this.dynamicAnim.speed; + var C = e.globals.previousPaths[h] && e.globals.previousPaths[h][p] && e.globals.previousPaths[h][p].color; + C || (C = "rgba(255, 255, 255, 0)"), this.animateHeatColor(w, v.isColorHex(C) ? C : v.rgb2hex(C), v.isColorHex(b) ? b : v.rgb2hex(b), A) + } + } + var S = (0, e.config.dataLabels.formatter)(e.globals.series[h][p], { + value: e.globals.series[h][p], + seriesIndex: h, + dataPointIndex: p, + w: e + }), L = this.helpers.calculateDataLabels({ + text: S, + x: u + s / 2, + y: n + r / 2, + i: h, + j: p, + colorProps: m, + series: l + }); + null !== L && c.add(L), u += s, p++ + } + n += r, a.add(c) + } + var M = e.globals.yAxisScale[0].result.slice(); + return e.config.yaxis[0].reversed ? M.unshift("") : M.push(""), e.globals.yAxisScale[0].result = M, a + } + }, { + key: "animateHeatMap", value: function (t, e, i, a, s, r) { + var n = new y(this.ctx); + n.animateRect(t, {x: e + a / 2, y: i + s / 2, width: 0, height: 0}, { + x: e, + y: i, + width: a, + height: s + }, r, (function () { + n.animationCompleted(t) + })) + } + }, { + key: "animateHeatColor", value: function (t, e, i, a) { + t.attr({fill: e}).animate(a).attr({fill: i}) + } + }]), t + }(), Ea = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "drawYAxisTexts", value: function (t, e, i, a) { + var s = this.w, r = s.config.yaxis[0], n = s.globals.yLabelFormatters[0]; + return new Mi(this.ctx).drawText({ + x: t + r.labels.offsetX, + y: e + r.labels.offsetY, + text: n(a, i), + textAnchor: "middle", + fontSize: r.labels.style.fontSize, + fontFamily: r.labels.style.fontFamily, + foreColor: Array.isArray(r.labels.style.colors) ? r.labels.style.colors[i] : r.labels.style.colors + }) + } + }]), t + }(), Ya = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w; + var a = this.w; + this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [0], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = void 0 !== a.globals.stroke.colors ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = Math.min(a.globals.gridWidth, a.globals.gridHeight), this.centerY = this.defaultSize / 2, this.centerX = a.globals.gridWidth / 2, "radialBar" === a.config.chart.type ? this.fullAngle = 360 : this.fullAngle = Math.abs(a.config.plotOptions.pie.endAngle - a.config.plotOptions.pie.startAngle), this.initialAngle = a.config.plotOptions.pie.startAngle % this.fullAngle, a.globals.radialSize = this.defaultSize / 2.05 - a.config.stroke.width - (a.config.chart.sparkline.enabled ? 0 : a.config.chart.dropShadow.blur), this.donutSize = a.globals.radialSize * parseInt(a.config.plotOptions.pie.donut.size, 10) / 100; + var s = a.config.plotOptions.pie.customScale, r = a.globals.gridWidth / 2, n = a.globals.gridHeight / 2; + this.translateX = r - r * s, this.translateY = n - n * s, this.dataLabelsGroup = new Mi(this.ctx).group({ + class: "apexcharts-datalabels-group", + transform: "translate(".concat(this.translateX, ", ").concat(this.translateY, ") scale(").concat(s, ")") + }), this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [] + } + + return s(t, [{ + key: "draw", value: function (t) { + var e = this, i = this.w, a = new Mi(this.ctx), s = a.group({class: "apexcharts-pie"}); + if (i.globals.noData) return s; + for (var r = 0, n = 0; n < t.length; n++) r += v.negToZero(t[n]); + var o = [], l = a.group(); + 0 === r && (r = 1e-5), t.forEach((function (t) { + e.maxY = Math.max(e.maxY, t) + })), i.config.yaxis[0].max && (this.maxY = i.config.yaxis[0].max), "back" === i.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(s); + for (var h = 0; h < t.length; h++) { + var c = this.fullAngle * v.negToZero(t[h]) / r; + o.push(c), "polarArea" === this.chartType ? (o[h] = this.fullAngle / t.length, this.sliceSizes.push(i.globals.radialSize * t[h] / this.maxY)) : this.sliceSizes.push(i.globals.radialSize) + } + if (i.globals.dataChanged) { + for (var d, u = 0, g = 0; g < i.globals.previousPaths.length; g++) u += v.negToZero(i.globals.previousPaths[g]); + for (var p = 0; p < i.globals.previousPaths.length; p++) d = this.fullAngle * v.negToZero(i.globals.previousPaths[p]) / u, this.prevSectorAngleArr.push(d) + } + if (this.donutSize < 0 && (this.donutSize = 0), "donut" === this.chartType) { + var f = a.drawCircle(this.donutSize); + f.attr({ + cx: this.centerX, + cy: this.centerY, + fill: i.config.plotOptions.pie.donut.background ? i.config.plotOptions.pie.donut.background : "transparent" + }), l.add(f) + } + var x = this.drawArcs(o, t); + if (this.sliceLabels.forEach((function (t) { + x.add(t) + })), l.attr({transform: "translate(".concat(this.translateX, ", ").concat(this.translateY, ") scale(").concat(i.config.plotOptions.pie.customScale, ")")}), l.add(x), s.add(l), this.donutDataLabels.show) { + var b = this.renderInnerDataLabels(this.dataLabelsGroup, this.donutDataLabels, { + hollowSize: this.donutSize, + centerX: this.centerX, + centerY: this.centerY, + opacity: this.donutDataLabels.show + }); + s.add(b) + } + return "front" === i.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(s), s + } + }, { + key: "drawArcs", value: function (t, e) { + var i = this.w, a = new Li(this.ctx), s = new Mi(this.ctx), r = new ji(this.ctx), + n = s.group({class: "apexcharts-slices"}), o = this.initialAngle, l = this.initialAngle, + h = this.initialAngle, c = this.initialAngle; + this.strokeWidth = i.config.stroke.show ? i.config.stroke.width : 0; + for (var d = 0; d < t.length; d++) { + var u = s.group({ + class: "apexcharts-series apexcharts-pie-series", + seriesName: v.escapeString(i.globals.seriesNames[d]), + rel: d + 1, + "data:realIndex": d + }); + n.add(u), l = c, h = (o = h) + t[d], c = l + this.prevSectorAngleArr[d]; + var g = h < o ? this.fullAngle + h - o : h - o, + p = r.fillPath({seriesNumber: d, size: this.sliceSizes[d], value: e[d]}), + f = this.getChangedPath(l, c), x = s.drawPath({ + d: f, + stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[d] : this.lineColorArr, + strokeWidth: 0, + fill: p, + fillOpacity: i.config.fill.opacity, + classes: "apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(d) + }); + if (x.attr({index: 0, j: d}), a.setSelectionFilter(x, 0, d), i.config.chart.dropShadow.enabled) { + var b = i.config.chart.dropShadow; + a.dropShadow(x, b, d) + } + this.addListeners(x, this.donutDataLabels), Mi.setAttrs(x.node, { + "data:angle": g, + "data:startAngle": o, + "data:strokeWidth": this.strokeWidth, + "data:value": e[d] + }); + var m = {x: 0, y: 0}; + "pie" === this.chartType || "polarArea" === this.chartType ? m = v.polarToCartesian(this.centerX, this.centerY, i.globals.radialSize / 1.25 + i.config.plotOptions.pie.dataLabels.offset, (o + g / 2) % this.fullAngle) : "donut" === this.chartType && (m = v.polarToCartesian(this.centerX, this.centerY, (i.globals.radialSize + this.donutSize) / 2 + i.config.plotOptions.pie.dataLabels.offset, (o + g / 2) % this.fullAngle)), u.add(x); + var y = 0; + if (!this.initialAnim || i.globals.resized || i.globals.dataChanged ? this.animBeginArr.push(0) : (0 === (y = g / this.fullAngle * i.config.chart.animations.speed) && (y = 1), this.animDur = y + this.animDur, this.animBeginArr.push(this.animDur)), this.dynamicAnim && i.globals.dataChanged ? this.animatePaths(x, { + size: this.sliceSizes[d], + endAngle: h, + startAngle: o, + prevStartAngle: l, + prevEndAngle: c, + animateStartingPos: !0, + i: d, + animBeginArr: this.animBeginArr, + shouldSetPrevPaths: !0, + dur: i.config.chart.animations.dynamicAnimation.speed + }) : this.animatePaths(x, { + size: this.sliceSizes[d], + endAngle: h, + startAngle: o, + i: d, + totalItems: t.length - 1, + animBeginArr: this.animBeginArr, + dur: y + }), i.config.plotOptions.pie.expandOnClick && "polarArea" !== this.chartType && x.node.addEventListener("mouseup", this.pieClicked.bind(this, d)), void 0 !== i.globals.selectedDataPoints[0] && i.globals.selectedDataPoints[0].indexOf(d) > -1 && this.pieClicked(d), i.config.dataLabels.enabled) { + var w = m.x, k = m.y, A = 100 * g / this.fullAngle + "%"; + if (0 !== g && i.config.plotOptions.pie.dataLabels.minAngleToShowLabel < t[d]) { + var C = i.config.dataLabels.formatter; + void 0 !== C && (A = C(i.globals.seriesPercent[d][0], {seriesIndex: d, w: i})); + var S = i.globals.dataLabels.style.colors[d], L = s.group({class: "apexcharts-datalabels"}), + M = s.drawText({ + x: w, + y: k, + text: A, + textAnchor: "middle", + fontSize: i.config.dataLabels.style.fontSize, + fontFamily: i.config.dataLabels.style.fontFamily, + fontWeight: i.config.dataLabels.style.fontWeight, + foreColor: S + }); + if (L.add(M), i.config.dataLabels.dropShadow.enabled) { + var P = i.config.dataLabels.dropShadow; + a.dropShadow(M, P) + } + M.node.classList.add("apexcharts-pie-label"), i.config.chart.animations.animate && !1 === i.globals.resized && (M.node.classList.add("apexcharts-pie-label-delay"), M.node.style.animationDelay = i.config.chart.animations.speed / 940 + "s"), this.sliceLabels.push(L) + } + } + } + return n + } + }, { + key: "addListeners", value: function (t, e) { + var i = new Mi(this.ctx); + t.node.addEventListener("mouseenter", i.pathMouseEnter.bind(this, t)), t.node.addEventListener("mouseleave", i.pathMouseLeave.bind(this, t)), t.node.addEventListener("mouseleave", this.revertDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener("mousedown", i.pathMouseDown.bind(this, t)), this.donutDataLabels.total.showAlways || (t.node.addEventListener("mouseenter", this.printDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener("mousedown", this.printDataLabelsInner.bind(this, t.node, e))) + } + }, { + key: "animatePaths", value: function (t, e) { + var i = this.w, + a = e.endAngle < e.startAngle ? this.fullAngle + e.endAngle - e.startAngle : e.endAngle - e.startAngle, + s = a, r = e.startAngle, n = e.startAngle; + void 0 !== e.prevStartAngle && void 0 !== e.prevEndAngle && (r = e.prevEndAngle, s = e.prevEndAngle < e.prevStartAngle ? this.fullAngle + e.prevEndAngle - e.prevStartAngle : e.prevEndAngle - e.prevStartAngle), e.i === i.config.series.length - 1 && (a + n > this.fullAngle ? e.endAngle = e.endAngle - (a + n) : a + n < this.fullAngle && (e.endAngle = e.endAngle + (this.fullAngle - (a + n)))), a === this.fullAngle && (a = this.fullAngle - .01), this.animateArc(t, r, n, a, s, e) + } + }, { + key: "animateArc", value: function (t, e, i, a, s, r) { + var n, o = this, l = this.w, h = new y(this.ctx), c = r.size; + (isNaN(e) || isNaN(s)) && (e = i, s = a, r.dur = 0); + var d = a, u = i, g = e < i ? this.fullAngle + e - i : e - i; + l.globals.dataChanged && r.shouldSetPrevPaths && r.prevEndAngle && (n = o.getPiePath({ + me: o, + startAngle: r.prevStartAngle, + angle: r.prevEndAngle < r.prevStartAngle ? this.fullAngle + r.prevEndAngle - r.prevStartAngle : r.prevEndAngle - r.prevStartAngle, + size: c + }), t.attr({d: n})), 0 !== r.dur ? t.animate(r.dur, r.animBeginArr[r.i]).after((function () { + "pie" !== o.chartType && "donut" !== o.chartType && "polarArea" !== o.chartType || this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width": o.strokeWidth}), r.i === l.config.series.length - 1 && h.animationCompleted(t) + })).during((function (l) { + d = g + (a - g) * l, r.animateStartingPos && (d = s + (a - s) * l, u = e - s + (i - (e - s)) * l), n = o.getPiePath({ + me: o, + startAngle: u, + angle: d, + size: c + }), t.node.setAttribute("data:pathOrig", n), t.attr({d: n}) + })) : (n = o.getPiePath({ + me: o, + startAngle: u, + angle: a, + size: c + }), r.isTrack || (l.globals.animationEnded = !0), t.node.setAttribute("data:pathOrig", n), t.attr({ + d: n, + "stroke-width": o.strokeWidth + })) + } + }, { + key: "pieClicked", value: function (t) { + var e, i = this.w, a = this, s = a.sliceSizes[t] + (i.config.plotOptions.pie.expandOnClick ? 4 : 0), + r = i.globals.dom.Paper.findOne(".apexcharts-".concat(a.chartType.toLowerCase(), "-slice-").concat(t)); + if ("true" !== r.attr("data:pieClicked")) { + var n = i.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"); + Array.prototype.forEach.call(n, (function (t) { + t.setAttribute("data:pieClicked", "false"); + var e = t.getAttribute("data:pathOrig"); + e && t.setAttribute("d", e) + })), i.globals.capturedDataPointIndex = t, r.attr("data:pieClicked", "true"); + var o = parseInt(r.attr("data:startAngle"), 10), l = parseInt(r.attr("data:angle"), 10); + e = a.getPiePath({me: a, startAngle: o, angle: l, size: s}), 360 !== l && r.plot(e) + } else { + r.attr({"data:pieClicked": "false"}), this.revertDataLabelsInner(r.node, this.donutDataLabels); + var h = r.attr("data:pathOrig"); + r.attr({d: h}) + } + } + }, { + key: "getChangedPath", value: function (t, e) { + var i = ""; + return this.dynamicAnim && this.w.globals.dataChanged && (i = this.getPiePath({ + me: this, + startAngle: t, + angle: e - t, + size: this.size + })), i + } + }, { + key: "getPiePath", value: function (t) { + var e, i = t.me, a = t.startAngle, s = t.angle, r = t.size, n = new Mi(this.ctx), o = a, + l = Math.PI * (o - 90) / 180, h = s + a; + Math.ceil(h) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle && (h = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - .01), Math.ceil(h) > this.fullAngle && (h -= this.fullAngle); + var c = Math.PI * (h - 90) / 180, d = i.centerX + r * Math.cos(l), u = i.centerY + r * Math.sin(l), + g = i.centerX + r * Math.cos(c), p = i.centerY + r * Math.sin(c), + f = v.polarToCartesian(i.centerX, i.centerY, i.donutSize, h), + x = v.polarToCartesian(i.centerX, i.centerY, i.donutSize, o), b = s > 180 ? 1 : 0, + m = ["M", d, u, "A", r, r, 0, b, 1, g, p]; + return e = "donut" === i.chartType ? [].concat(m, ["L", f.x, f.y, "A", i.donutSize, i.donutSize, 0, b, 0, x.x, x.y, "L", d, u, "z"]).join(" ") : "pie" === i.chartType || "polarArea" === i.chartType ? [].concat(m, ["L", i.centerX, i.centerY, "L", d, u]).join(" ") : [].concat(m).join(" "), n.roundPathCorners(e, 2 * this.strokeWidth) + } + }, { + key: "drawPolarElements", value: function (t) { + var e = this.w, i = new ea(this.ctx), a = new Mi(this.ctx), s = new Ea(this.ctx), r = a.group(), + n = a.group(), o = i.niceScale(0, Math.ceil(this.maxY), 0), l = o.result.reverse(), + h = o.result.length; + this.maxY = o.niceMax; + for (var c = e.globals.radialSize, d = c / (h - 1), u = 0; u < h - 1; u++) { + var g = a.drawCircle(c); + if (g.attr({ + cx: this.centerX, + cy: this.centerY, + fill: "none", + "stroke-width": e.config.plotOptions.polarArea.rings.strokeWidth, + stroke: e.config.plotOptions.polarArea.rings.strokeColor + }), e.config.yaxis[0].show) { + var p = s.drawYAxisTexts(this.centerX, this.centerY - c + parseInt(e.config.yaxis[0].labels.style.fontSize, 10) / 2, u, l[u]); + n.add(p) + } + r.add(g), c -= d + } + this.drawSpokes(t), t.add(r), t.add(n) + } + }, { + key: "renderInnerDataLabels", value: function (t, e, i) { + var a = this.w, s = new Mi(this.ctx), r = e.total.show; + t.node.innerHTML = "", t.node.style.opacity = i.opacity; + var n, o, l = i.centerX, h = this.donutDataLabels.total.label ? i.centerY : i.centerY - i.centerY / 6; + n = void 0 === e.name.color ? a.globals.colors[0] : e.name.color; + var c = e.name.fontSize, d = e.name.fontFamily, u = e.name.fontWeight; + o = void 0 === e.value.color ? a.config.chart.foreColor : e.value.color; + var g = e.value.formatter, p = "", f = ""; + if (r ? (n = e.total.color, c = e.total.fontSize, d = e.total.fontFamily, u = e.total.fontWeight, f = this.donutDataLabels.total.label ? e.total.label : "", p = e.total.formatter(a)) : 1 === a.globals.series.length && (p = g(a.globals.series[0], a), f = a.globals.seriesNames[0]), f && (f = e.name.formatter(f, e.total.show, a)), e.name.show) { + var x = s.drawText({ + x: l, + y: h + parseFloat(e.name.offsetY), + text: f, + textAnchor: "middle", + foreColor: n, + fontSize: c, + fontWeight: u, + fontFamily: d + }); + x.node.classList.add("apexcharts-datalabel-label"), t.add(x) + } + if (e.value.show) { + var b = e.name.show ? parseFloat(e.value.offsetY) + 16 : e.value.offsetY, m = s.drawText({ + x: l, + y: h + b, + text: p, + textAnchor: "middle", + foreColor: o, + fontWeight: e.value.fontWeight, + fontSize: e.value.fontSize, + fontFamily: e.value.fontFamily + }); + m.node.classList.add("apexcharts-datalabel-value"), t.add(m) + } + return t + } + }, { + key: "printInnerLabels", value: function (t, e, i, a) { + var s, r = this.w; + a ? s = void 0 === t.name.color ? r.globals.colors[parseInt(a.parentNode.getAttribute("rel"), 10) - 1] : t.name.color : r.globals.series.length > 1 && t.total.show && (s = t.total.color); + var n = r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"), + o = r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value"); + i = (0, t.value.formatter)(i, r), a || "function" != typeof t.total.formatter || (i = t.total.formatter(r)); + var l = e === t.total.label; + e = this.donutDataLabels.total.label ? t.name.formatter(e, l, r) : "", null !== n && (n.textContent = e), null !== o && (o.textContent = i), null !== n && (n.style.fill = s) + } + }, { + key: "printDataLabelsInner", value: function (t, e) { + var i = this.w, a = t.getAttribute("data:value"), + s = i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"), 10) - 1]; + i.globals.series.length > 1 && this.printInnerLabels(e, s, a, t); + var r = i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group"); + null !== r && (r.style.opacity = 1) + } + }, { + key: "drawSpokes", value: function (t) { + var e = this, i = this.w, a = new Mi(this.ctx), s = i.config.plotOptions.polarArea.spokes; + if (0 !== s.strokeWidth) { + for (var r = [], n = 360 / i.globals.series.length, o = 0; o < i.globals.series.length; o++) r.push(v.polarToCartesian(this.centerX, this.centerY, i.globals.radialSize, i.config.plotOptions.pie.startAngle + n * o)); + r.forEach((function (i, r) { + var n = a.drawLine(i.x, i.y, e.centerX, e.centerY, Array.isArray(s.connectorColors) ? s.connectorColors[r] : s.connectorColors); + t.add(n) + })) + } + } + }, { + key: "revertDataLabelsInner", value: function () { + var t = this.w; + if (this.donutDataLabels.show) { + var e = t.globals.dom.Paper.findOne(".apexcharts-datalabels-group"), + i = this.renderInnerDataLabels(e, this.donutDataLabels, { + hollowSize: this.donutSize, + centerX: this.centerX, + centerY: this.centerY, + opacity: this.donutDataLabels.show + }); + t.globals.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(i) + } + } + }]), t + }(), Ha = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0; + var a = this.w; + this.graphics = new Mi(this.ctx), this.lineColorArr = void 0 !== a.globals.stroke.colors ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = a.globals.svgHeight < a.globals.svgWidth ? a.globals.gridHeight : a.globals.gridWidth, this.isLog = a.config.yaxis[0].logarithmic, this.logBase = a.config.yaxis[0].logBase, this.coreUtils = new Pi(this.ctx), this.maxValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, a.globals.maxY, 0) : a.globals.maxY, this.minValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, this.w.globals.minY, 0) : a.globals.minY, this.polygons = a.config.plotOptions.radar.polygons, this.strokeWidth = a.config.stroke.show ? a.config.stroke.width : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth - a.config.chart.dropShadow.blur, a.config.xaxis.labels.show && (this.size = this.size - a.globals.xAxisLabelsWidth / 1.75), void 0 !== a.config.plotOptions.radar.size && (this.size = a.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [] + } + + return s(t, [{ + key: "draw", value: function (t) { + var e = this, i = this.w, a = new ji(this.ctx), s = [], r = new qi(this.ctx); + t.length && (this.dataPointsLen = t[i.globals.maxValsInArrayIndex].length), this.disAngle = 2 * Math.PI / this.dataPointsLen; + var n = i.globals.gridWidth / 2, o = i.globals.gridHeight / 2, + l = n + i.config.plotOptions.radar.offsetX, h = o + i.config.plotOptions.radar.offsetY, + c = this.graphics.group({ + class: "apexcharts-radar-series apexcharts-plot-series", + transform: "translate(".concat(l || 0, ", ").concat(h || 0, ")") + }), d = [], g = null, p = null; + if (this.yaxisLabels = this.graphics.group({class: "apexcharts-yaxis"}), t.forEach((function (t, n) { + var o = t.length === i.globals.dataPoints, l = e.graphics.group().attr({ + class: "apexcharts-series", + "data:longestSeries": o, + seriesName: v.escapeString(i.globals.seriesNames[n]), + rel: n + 1, + "data:realIndex": n + }); + e.dataRadiusOfPercent[n] = [], e.dataRadius[n] = [], e.angleArr[n] = [], t.forEach((function (t, i) { + var a = Math.abs(e.maxValue - e.minValue); + t -= e.minValue, e.isLog && (t = e.coreUtils.getLogVal(e.logBase, t, 0)), e.dataRadiusOfPercent[n][i] = t / a, e.dataRadius[n][i] = e.dataRadiusOfPercent[n][i] * e.size, e.angleArr[n][i] = i * e.disAngle + })), d = e.getDataPointsPos(e.dataRadius[n], e.angleArr[n]); + var h = e.createPaths(d, {x: 0, y: 0}); + g = e.graphics.group({class: "apexcharts-series-markers-wrap apexcharts-element-hidden"}), p = e.graphics.group({ + class: "apexcharts-datalabels", + "data:realIndex": n + }), i.globals.delayedElements.push({el: g.node, index: n}); + var c = { + i: n, + realIndex: n, + animationDelay: n, + initialSpeed: i.config.chart.animations.speed, + dataChangeSpeed: i.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-radar", + shouldClipToGrid: !1, + bindEventsOnPaths: !1, + stroke: i.globals.stroke.colors[n], + strokeLineCap: i.config.stroke.lineCap + }, f = null; + i.globals.previousPaths.length > 0 && (f = e.getPreviousPath(n)); + for (var x = 0; x < h.linePathsTo.length; x++) { + var b = e.graphics.renderPaths(u(u({}, c), {}, { + pathFrom: null === f ? h.linePathsFrom[x] : f, + pathTo: h.linePathsTo[x], + strokeWidth: Array.isArray(e.strokeWidth) ? e.strokeWidth[n] : e.strokeWidth, + fill: "none", + drawShadow: !1 + })); + l.add(b); + var m = a.fillPath({seriesNumber: n}), y = e.graphics.renderPaths(u(u({}, c), {}, { + pathFrom: null === f ? h.areaPathsFrom[x] : f, + pathTo: h.areaPathsTo[x], + strokeWidth: 0, + fill: m, + drawShadow: !1 + })); + if (i.config.chart.dropShadow.enabled) { + var w = new Li(e.ctx), k = i.config.chart.dropShadow; + w.dropShadow(y, Object.assign({}, k, {noUserSpaceOnUse: !0}), n) + } + l.add(y) + } + t.forEach((function (t, a) { + var s = new Vi(e.ctx).getMarkerConfig({ + cssClass: "apexcharts-marker", + seriesIndex: n, + dataPointIndex: a + }), o = e.graphics.drawMarker(d[a].x, d[a].y, s); + o.attr("rel", a), o.attr("j", a), o.attr("index", n), o.node.setAttribute("default-marker-size", s.pSize); + var h = e.graphics.group({class: "apexcharts-series-markers"}); + h && h.add(o), g.add(h), l.add(g); + var c = i.config.dataLabels; + if (c.enabled) { + var f = c.formatter(i.globals.series[n][a], {seriesIndex: n, dataPointIndex: a, w: i}); + r.plotDataLabelsText({ + x: d[a].x, + y: d[a].y, + text: f, + textAnchor: "middle", + i: n, + j: n, + parent: p, + offsetCorrection: !1, + dataLabelsConfig: u({}, c) + }) + } + l.add(p) + })), s.push(l) + })), this.drawPolygons({parent: c}), i.config.xaxis.labels.show) { + var f = this.drawXAxisTexts(); + c.add(f) + } + return s.forEach((function (t) { + c.add(t) + })), c.add(this.yaxisLabels), c + } + }, { + key: "drawPolygons", value: function (t) { + for (var e = this, i = this.w, a = t.parent, s = new Ea(this.ctx), r = i.globals.yAxisScale[0].result.reverse(), n = r.length, o = [], l = this.size / (n - 1), h = 0; h < n; h++) o[h] = l * h; + o.reverse(); + var c = [], d = []; + o.forEach((function (t, i) { + var a = v.getPolygonPos(t, e.dataPointsLen), s = ""; + a.forEach((function (t, a) { + if (0 === i) { + var r = e.graphics.drawLine(t.x, t.y, 0, 0, Array.isArray(e.polygons.connectorColors) ? e.polygons.connectorColors[a] : e.polygons.connectorColors); + d.push(r) + } + 0 === a && e.yaxisLabelsTextsPos.push({x: t.x, y: t.y}), s += t.x + "," + t.y + " " + })), c.push(s) + })), c.forEach((function (t, s) { + var r = e.polygons.strokeColors, n = e.polygons.strokeWidth, + o = e.graphics.drawPolygon(t, Array.isArray(r) ? r[s] : r, Array.isArray(n) ? n[s] : n, i.globals.radarPolygons.fill.colors[s]); + a.add(o) + })), d.forEach((function (t) { + a.add(t) + })), i.config.yaxis[0].show && this.yaxisLabelsTextsPos.forEach((function (t, i) { + var a = s.drawYAxisTexts(t.x, t.y, i, r[i]); + e.yaxisLabels.add(a) + })) + } + }, { + key: "drawXAxisTexts", value: function () { + var t = this, e = this.w, i = e.config.xaxis.labels, + a = this.graphics.group({class: "apexcharts-xaxis"}), + s = v.getPolygonPos(this.size, this.dataPointsLen); + return e.globals.labels.forEach((function (r, n) { + var o = e.config.xaxis.labels.formatter, l = new qi(t.ctx); + if (s[n]) { + var h = t.getTextPos(s[n], t.size), c = o(r, {seriesIndex: -1, dataPointIndex: n, w: e}); + l.plotDataLabelsText({ + x: h.newX, + y: h.newY, + text: c, + textAnchor: h.textAnchor, + i: n, + j: n, + parent: a, + className: "apexcharts-xaxis-label", + color: Array.isArray(i.style.colors) && i.style.colors[n] ? i.style.colors[n] : "#a8a8a8", + dataLabelsConfig: u({textAnchor: h.textAnchor, dropShadow: {enabled: !1}}, i), + offsetCorrection: !1 + }).on("click", (function (i) { + if ("function" == typeof e.config.chart.events.xAxisLabelClick) { + var a = Object.assign({}, e, {labelIndex: n}); + e.config.chart.events.xAxisLabelClick(i, t.ctx, a) + } + })) + } + })), a + } + }, { + key: "createPaths", value: function (t, e) { + var i = this, a = [], s = [], r = [], n = []; + if (t.length) { + s = [this.graphics.move(e.x, e.y)], n = [this.graphics.move(e.x, e.y)]; + var o = this.graphics.move(t[0].x, t[0].y), l = this.graphics.move(t[0].x, t[0].y); + t.forEach((function (e, a) { + o += i.graphics.line(e.x, e.y), l += i.graphics.line(e.x, e.y), a === t.length - 1 && (o += "Z", l += "Z") + })), a.push(o), r.push(l) + } + return {linePathsFrom: s, linePathsTo: a, areaPathsFrom: n, areaPathsTo: r} + } + }, { + key: "getTextPos", value: function (t, e) { + var i = "middle", a = t.x, s = t.y; + return Math.abs(t.x) >= 10 ? t.x > 0 ? (i = "start", a += 10) : t.x < 0 && (i = "end", a -= 10) : i = "middle", Math.abs(t.y) >= e - 10 && (t.y < 0 ? s -= 10 : t.y > 0 && (s += 10)), { + textAnchor: i, + newX: a, + newY: s + } + } + }, { + key: "getPreviousPath", value: function (t) { + for (var e = this.w, i = null, a = 0; a < e.globals.previousPaths.length; a++) { + var s = e.globals.previousPaths[a]; + s.paths.length > 0 && parseInt(s.realIndex, 10) === parseInt(t, 10) && void 0 !== e.globals.previousPaths[a].paths[0] && (i = e.globals.previousPaths[a].paths[0].d) + } + return i + } + }, { + key: "getDataPointsPos", value: function (t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.dataPointsLen; + t = t || [], e = e || []; + for (var a = [], s = 0; s < i; s++) { + var r = {}; + r.x = t[s] * Math.sin(e[s]), r.y = -t[s] * Math.cos(e[s]), a.push(r) + } + return a + } + }]), t + }(), Oa = function (t) { + h(r, t); + var a = n(r); + + function r(t) { + var s; + i(this, r), (s = a.call(this, t)).ctx = t, s.w = t.w, s.animBeginArr = [0], s.animDur = 0; + var n = s.w; + return s.startAngle = n.config.plotOptions.radialBar.startAngle, s.endAngle = n.config.plotOptions.radialBar.endAngle, s.totalAngle = Math.abs(n.config.plotOptions.radialBar.endAngle - n.config.plotOptions.radialBar.startAngle), s.trackStartAngle = n.config.plotOptions.radialBar.track.startAngle, s.trackEndAngle = n.config.plotOptions.radialBar.track.endAngle, s.barLabels = s.w.config.plotOptions.radialBar.barLabels, s.donutDataLabels = s.w.config.plotOptions.radialBar.dataLabels, s.radialDataLabels = s.donutDataLabels, s.trackStartAngle || (s.trackStartAngle = s.startAngle), s.trackEndAngle || (s.trackEndAngle = s.endAngle), 360 === s.endAngle && (s.endAngle = 359.99), s.margin = parseInt(n.config.plotOptions.radialBar.track.margin, 10), s.onBarLabelClick = s.onBarLabelClick.bind(e(s)), s + } + + return s(r, [{ + key: "draw", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = i.group({class: "apexcharts-radialbar"}); + if (e.globals.noData) return a; + var s = i.group(), r = this.defaultSize / 2, n = e.globals.gridWidth / 2, o = this.defaultSize / 2.05; + e.config.chart.sparkline.enabled || (o = o - e.config.stroke.width - e.config.chart.dropShadow.blur); + var l = e.globals.fill.colors; + if (e.config.plotOptions.radialBar.track.show) { + var h = this.drawTracks({size: o, centerX: n, centerY: r, colorArr: l, series: t}); + s.add(h) + } + var c = this.drawArcs({size: o, centerX: n, centerY: r, colorArr: l, series: t}), d = 360; + e.config.plotOptions.radialBar.startAngle < 0 && (d = this.totalAngle); + var u = (360 - d) / 360; + if (e.globals.radialSize = o - o * u, this.radialDataLabels.value.show) { + var g = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY); + e.globals.radialSize += g * u + } + return s.add(c.g), "front" === e.config.plotOptions.radialBar.hollow.position && (c.g.add(c.elHollow), c.dataLabels && c.g.add(c.dataLabels)), a.add(s), a + } + }, { + key: "drawTracks", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = i.group({class: "apexcharts-tracks"}), s = new Li(this.ctx), + r = new ji(this.ctx), n = this.getStrokeWidth(t); + t.size = t.size - n / 2; + for (var o = 0; o < t.series.length; o++) { + var l = i.group({class: "apexcharts-radialbar-track apexcharts-track"}); + a.add(l), l.attr({rel: o + 1}), t.size = t.size - n - this.margin; + var h = e.config.plotOptions.radialBar.track, c = r.fillPath({ + seriesNumber: 0, + size: t.size, + fillColors: Array.isArray(h.background) ? h.background[o] : h.background, + solid: !0 + }), d = this.trackStartAngle, u = this.trackEndAngle; + Math.abs(u) + Math.abs(d) >= 360 && (u = 360 - Math.abs(this.startAngle) - .1); + var g = i.drawPath({ + d: "", + stroke: c, + strokeWidth: n * parseInt(h.strokeWidth, 10) / 100, + fill: "none", + strokeOpacity: h.opacity, + classes: "apexcharts-radialbar-area" + }); + if (h.dropShadow.enabled) { + var p = h.dropShadow; + s.dropShadow(g, p) + } + l.add(g), g.attr("id", "apexcharts-radialbarTrack-" + o), this.animatePaths(g, { + centerX: t.centerX, + centerY: t.centerY, + endAngle: u, + startAngle: d, + size: t.size, + i: o, + totalItems: 2, + animBeginArr: 0, + dur: 0, + isTrack: !0 + }) + } + return a + } + }, { + key: "drawArcs", value: function (t) { + var e = this.w, i = new Mi(this.ctx), a = new ji(this.ctx), s = new Li(this.ctx), r = i.group(), + n = this.getStrokeWidth(t); + t.size = t.size - n / 2; + var o = e.config.plotOptions.radialBar.hollow.background, + l = t.size - n * t.series.length - this.margin * t.series.length - n * parseInt(e.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2, + h = l - e.config.plotOptions.radialBar.hollow.margin; + void 0 !== e.config.plotOptions.radialBar.hollow.image && (o = this.drawHollowImage(t, r, l, o)); + var c = this.drawHollow({size: h, centerX: t.centerX, centerY: t.centerY, fill: o || "transparent"}); + if (e.config.plotOptions.radialBar.hollow.dropShadow.enabled) { + var d = e.config.plotOptions.radialBar.hollow.dropShadow; + s.dropShadow(c, d) + } + var u = 1; + !this.radialDataLabels.total.show && e.globals.series.length > 1 && (u = 0); + var g = null; + if (this.radialDataLabels.show) { + var p = e.globals.dom.Paper.findOne(".apexcharts-datalabels-group"); + g = this.renderInnerDataLabels(p, this.radialDataLabels, { + hollowSize: l, + centerX: t.centerX, + centerY: t.centerY, + opacity: u + }) + } + "back" === e.config.plotOptions.radialBar.hollow.position && (r.add(c), g && r.add(g)); + var f = !1; + e.config.plotOptions.radialBar.inverseOrder && (f = !0); + for (var x = f ? t.series.length - 1 : 0; f ? x >= 0 : x < t.series.length; f ? x-- : x++) { + var b = i.group({ + class: "apexcharts-series apexcharts-radial-series", + seriesName: v.escapeString(e.globals.seriesNames[x]) + }); + r.add(b), b.attr({ + rel: x + 1, + "data:realIndex": x + }), this.ctx.series.addCollapsedClassToSeries(b, x), t.size = t.size - n - this.margin; + var m = a.fillPath({seriesNumber: x, size: t.size, value: t.series[x]}), y = this.startAngle, + w = void 0, k = v.negToZero(t.series[x] > 100 ? 100 : t.series[x]) / 100, + A = Math.round(this.totalAngle * k) + this.startAngle, C = void 0; + e.globals.dataChanged && (w = this.startAngle, C = Math.round(this.totalAngle * v.negToZero(e.globals.previousPaths[x]) / 100) + w), Math.abs(A) + Math.abs(y) > 360 && (A -= .01), Math.abs(C) + Math.abs(w) > 360 && (C -= .01); + var S = A - y, + L = Array.isArray(e.config.stroke.dashArray) ? e.config.stroke.dashArray[x] : e.config.stroke.dashArray, + M = i.drawPath({ + d: "", + stroke: m, + strokeWidth: n, + fill: "none", + fillOpacity: e.config.fill.opacity, + classes: "apexcharts-radialbar-area apexcharts-radialbar-slice-" + x, + strokeDashArray: L + }); + if (Mi.setAttrs(M.node, { + "data:angle": S, + "data:value": t.series[x] + }), e.config.chart.dropShadow.enabled) { + var P = e.config.chart.dropShadow; + s.dropShadow(M, P, x) + } + if (s.setSelectionFilter(M, 0, x), this.addListeners(M, this.radialDataLabels), b.add(M), M.attr({ + index: 0, + j: x + }), this.barLabels.enabled) { + var I = v.polarToCartesian(t.centerX, t.centerY, t.size, y), + T = this.barLabels.formatter(e.globals.seriesNames[x], {seriesIndex: x, w: e}), + z = ["apexcharts-radialbar-label"]; + this.barLabels.onClick || z.push("apexcharts-no-click"); + var X = this.barLabels.useSeriesColors ? e.globals.colors[x] : e.config.chart.foreColor; + X || (X = e.config.chart.foreColor); + var R = I.x + this.barLabels.offsetX, E = I.y + this.barLabels.offsetY, Y = i.drawText({ + x: R, + y: E, + text: T, + textAnchor: "end", + dominantBaseline: "middle", + fontFamily: this.barLabels.fontFamily, + fontWeight: this.barLabels.fontWeight, + fontSize: this.barLabels.fontSize, + foreColor: X, + cssClass: z.join(" ") + }); + Y.on("click", this.onBarLabelClick), Y.attr({rel: x + 1}), 0 !== y && Y.attr({ + "transform-origin": "".concat(R, " ").concat(E), + transform: "rotate(".concat(y, " 0 0)") + }), b.add(Y) + } + var H = 0; + !this.initialAnim || e.globals.resized || e.globals.dataChanged || (H = e.config.chart.animations.speed), e.globals.dataChanged && (H = e.config.chart.animations.dynamicAnimation.speed), this.animDur = H / (1.2 * t.series.length) + this.animDur, this.animBeginArr.push(this.animDur), this.animatePaths(M, { + centerX: t.centerX, + centerY: t.centerY, + endAngle: A, + startAngle: y, + prevEndAngle: C, + prevStartAngle: w, + size: t.size, + i: x, + totalItems: 2, + animBeginArr: this.animBeginArr, + dur: H, + shouldSetPrevPaths: !0 + }) + } + return {g: r, elHollow: c, dataLabels: g} + } + }, { + key: "drawHollow", value: function (t) { + var e = new Mi(this.ctx).drawCircle(2 * t.size); + return e.attr({ + class: "apexcharts-radialbar-hollow", + cx: t.centerX, + cy: t.centerY, + r: t.size, + fill: t.fill + }), e + } + }, { + key: "drawHollowImage", value: function (t, e, i, a) { + var s = this.w, r = new ji(this.ctx), n = v.randomId(), o = s.config.plotOptions.radialBar.hollow.image; + if (s.config.plotOptions.radialBar.hollow.imageClipped) r.clippedImgArea({ + width: i, + height: i, + image: o, + patternID: "pattern".concat(s.globals.cuid).concat(n) + }), a = "url(#pattern".concat(s.globals.cuid).concat(n, ")"); else { + var l = s.config.plotOptions.radialBar.hollow.imageWidth, + h = s.config.plotOptions.radialBar.hollow.imageHeight; + if (void 0 === l && void 0 === h) { + var c = s.globals.dom.Paper.image(o, (function (e) { + this.move(t.centerX - e.width / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - e.height / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY) + })); + e.add(c) + } else { + var d = s.globals.dom.Paper.image(o, (function (e) { + this.move(t.centerX - l / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - h / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(l, h) + })); + e.add(d) + } + } + return a + } + }, { + key: "getStrokeWidth", value: function (t) { + var e = this.w; + return t.size * (100 - parseInt(e.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (t.series.length + 1) - this.margin + } + }, { + key: "onBarLabelClick", value: function (t) { + var e = parseInt(t.target.getAttribute("rel"), 10) - 1, i = this.barLabels.onClick, a = this.w; + i && i(a.globals.seriesNames[e], {w: a, seriesIndex: e}) + } + }]), r + }(Ya), Fa = function (t) { + h(a, t); + var e = n(a); + + function a() { + return i(this, a), e.apply(this, arguments) + } + + return s(a, [{ + key: "draw", value: function (t, e) { + var i = this.w, a = new Mi(this.ctx); + this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = t, this.seriesRangeStart = i.globals.seriesRangeStart, this.seriesRangeEnd = i.globals.seriesRangeEnd, this.barHelpers.initVariables(t); + for (var s = a.group({class: "apexcharts-rangebar-series apexcharts-plot-series"}), r = 0; r < t.length; r++) { + var n, o, l, h, c = void 0, d = void 0, g = i.globals.comboCharts ? e[r] : r, + p = this.barHelpers.getGroupIndex(g).columnGroupIndex, f = a.group({ + class: "apexcharts-series", + seriesName: v.escapeString(i.globals.seriesNames[g]), + rel: r + 1, + "data:realIndex": g + }); + this.ctx.series.addCollapsedClassToSeries(f, g), t[r].length > 0 && (this.visibleI = this.visibleI + 1); + var x = 0, b = 0, m = 0; + this.yRatio.length > 1 && (this.yaxisIndex = i.globals.seriesYAxisReverseMap[g][0], m = g); + var y = this.barHelpers.initialPositions(g); + d = y.y, h = y.zeroW, c = y.x, b = y.barWidth, x = y.barHeight, n = y.xDivision, o = y.yDivision, l = y.zeroH; + for (var w = a.group({ + class: "apexcharts-datalabels", + "data:realIndex": g + }), k = a.group({class: "apexcharts-rangebar-goals-markers"}), A = 0; A < i.globals.dataPoints; A++) { + var C = this.barHelpers.getStrokeWidth(r, A, g), S = this.seriesRangeStart[r][A], + L = this.seriesRangeEnd[r][A], M = null, P = null, I = null, + T = {x: c, y: d, strokeWidth: C, elSeries: f}, z = this.seriesLen; + if (i.config.plotOptions.bar.rangeBarGroupRows && (z = 1), void 0 === i.config.series[r].data[A]) break; + if (this.isHorizontal) { + I = d + x * this.visibleI; + var X = (o - x * z) / 2; + if (i.config.series[r].data[A].x) { + var R = this.detectOverlappingBars({ + i: r, + j: A, + barYPosition: I, + srty: X, + barHeight: x, + yDivision: o, + initPositions: y + }); + x = R.barHeight, I = R.barYPosition + } + b = (M = this.drawRangeBarPaths(u({ + indexes: {i: r, j: A, realIndex: g}, + barHeight: x, + barYPosition: I, + zeroW: h, + yDivision: o, + y1: S, + y2: L + }, T))).barWidth + } else { + i.globals.isXNumeric && (c = (i.globals.seriesX[r][A] - i.globals.minX) / this.xRatio - b / 2), P = c + b * this.visibleI; + var E = (n - b * z) / 2; + if (i.config.series[r].data[A].x) { + var Y = this.detectOverlappingBars({ + i: r, + j: A, + barXPosition: P, + srtx: E, + barWidth: b, + xDivision: n, + initPositions: y + }); + b = Y.barWidth, P = Y.barXPosition + } + x = (M = this.drawRangeColumnPaths(u({ + indexes: { + i: r, + j: A, + realIndex: g, + translationsIndex: m + }, barWidth: b, barXPosition: P, zeroH: l, xDivision: n + }, T))).barHeight + } + var H = this.barHelpers.drawGoalLine({ + barXPosition: M.barXPosition, + barYPosition: I, + goalX: M.goalX, + goalY: M.goalY, + barHeight: x, + barWidth: b + }); + H && k.add(H), d = M.y, c = M.x; + var O = this.barHelpers.getPathFillColor(t, r, A, g); + this.renderSeries({ + realIndex: g, + pathFill: O.color, + lineFill: O.useRangeColor ? O.color : i.globals.stroke.colors[g], + j: A, + i: r, + x: c, + y: d, + y1: S, + y2: L, + pathFrom: M.pathFrom, + pathTo: M.pathTo, + strokeWidth: C, + elSeries: f, + series: t, + barHeight: x, + barWidth: b, + barXPosition: P, + barYPosition: I, + columnGroupIndex: p, + elDataLabelsWrap: w, + elGoalsMarkers: k, + visibleSeries: this.visibleI, + type: "rangebar" + }) + } + s.add(f) + } + return s + } + }, { + key: "detectOverlappingBars", value: function (t) { + var e = t.i, i = t.j, a = t.barYPosition, s = t.barXPosition, r = t.srty, n = t.srtx, o = t.barHeight, + l = t.barWidth, h = t.yDivision, c = t.xDivision, d = t.initPositions, u = this.w, g = [], + p = u.config.series[e].data[i].rangeName, f = u.config.series[e].data[i].x, + x = Array.isArray(f) ? f.join(" ") : f, b = u.globals.labels.map((function (t) { + return Array.isArray(t) ? t.join(" ") : t + })).indexOf(x), m = u.globals.seriesRange[e].findIndex((function (t) { + return t.x === x && t.overlaps.length > 0 + })); + return this.isHorizontal ? (a = u.config.plotOptions.bar.rangeBarGroupRows ? r + h * b : r + o * this.visibleI + h * b, m > -1 && !u.config.plotOptions.bar.rangeBarOverlap && (g = u.globals.seriesRange[e][m].overlaps).indexOf(p) > -1 && (a = (o = d.barHeight / g.length) * this.visibleI + h * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + o * (this.visibleI + g.indexOf(p)) + h * b)) : (b > -1 && !u.globals.timescaleLabels.length && (s = u.config.plotOptions.bar.rangeBarGroupRows ? n + c * b : n + l * this.visibleI + c * b), m > -1 && !u.config.plotOptions.bar.rangeBarOverlap && (g = u.globals.seriesRange[e][m].overlaps).indexOf(p) > -1 && (s = (l = d.barWidth / g.length) * this.visibleI + c * (100 - parseInt(this.barOptions.barWidth, 10)) / 100 / 2 + l * (this.visibleI + g.indexOf(p)) + c * b)), { + barYPosition: a, + barXPosition: s, + barHeight: o, + barWidth: l + } + } + }, { + key: "drawRangeColumnPaths", value: function (t) { + var e = t.indexes, i = t.x, a = t.xDivision, s = t.barWidth, r = t.barXPosition, n = t.zeroH, + o = this.w, l = e.i, h = e.j, c = e.realIndex, d = e.translationsIndex, u = this.yRatio[d], + g = this.getRangeValue(c, h), p = Math.min(g.start, g.end), f = Math.max(g.start, g.end); + void 0 === this.series[l][h] || null === this.series[l][h] ? p = n : (p = n - p / u, f = n - f / u); + var x = Math.abs(f - p), b = this.barHelpers.getColumnPaths({ + barXPosition: r, + barWidth: s, + y1: p, + y2: f, + strokeWidth: this.strokeWidth, + series: this.seriesRangeEnd, + realIndex: c, + i: c, + j: h, + w: o + }); + if (o.globals.isXNumeric) { + var m = this.getBarXForNumericXAxis({x: i, j: h, realIndex: c, barWidth: s}); + i = m.x, r = m.barXPosition + } else i += a; + return { + pathTo: b.pathTo, + pathFrom: b.pathFrom, + barHeight: x, + x: i, + y: g.start < 0 && g.end < 0 ? p : f, + goalY: this.barHelpers.getGoalValues("y", null, n, l, h, d), + barXPosition: r + } + } + }, { + key: "preventBarOverflow", value: function (t) { + var e = this.w; + return t < 0 && (t = 0), t > e.globals.gridWidth && (t = e.globals.gridWidth), t + } + }, { + key: "drawRangeBarPaths", value: function (t) { + var e = t.indexes, i = t.y, a = t.y1, s = t.y2, r = t.yDivision, n = t.barHeight, o = t.barYPosition, + l = t.zeroW, h = this.w, c = e.realIndex, d = e.j, + u = this.preventBarOverflow(l + a / this.invertedYRatio), + g = this.preventBarOverflow(l + s / this.invertedYRatio), p = this.getRangeValue(c, d), + f = Math.abs(g - u), x = this.barHelpers.getBarpaths({ + barYPosition: o, + barHeight: n, + x1: u, + x2: g, + strokeWidth: this.strokeWidth, + series: this.seriesRangeEnd, + i: c, + realIndex: c, + j: d, + w: h + }); + return h.globals.isXNumeric || (i += r), { + pathTo: x.pathTo, + pathFrom: x.pathFrom, + barWidth: f, + x: p.start < 0 && p.end < 0 ? u : g, + goalX: this.barHelpers.getGoalValues("x", l, null, c, d), + y: i + } + } + }, { + key: "getRangeValue", value: function (t, e) { + var i = this.w; + return {start: i.globals.seriesRangeStart[t][e], end: i.globals.seriesRangeEnd[t][e]} + } + }]), a + }(Ia), Da = function () { + function t(e) { + i(this, t), this.w = e.w, this.lineCtx = e + } + + return s(t, [{ + key: "sameValueSeriesFix", value: function (t, e) { + var i = this.w; + if (("gradient" === i.config.fill.type || "gradient" === i.config.fill.type[t]) && new Pi(this.lineCtx.ctx, i).seriesHaveSameValues(t)) { + var a = e[t].slice(); + a[a.length - 1] = a[a.length - 1] + 1e-6, e[t] = a + } + return e + } + }, { + key: "calculatePoints", value: function (t) { + var e = t.series, i = t.realIndex, a = t.x, s = t.y, r = t.i, n = t.j, o = t.prevY, l = this.w, h = [], + c = [], d = this.lineCtx.categoryAxisCorrection + l.config.markers.offsetX; + return l.globals.isXNumeric && (d = (l.globals.seriesX[i][0] - l.globals.minX) / this.lineCtx.xRatio + l.config.markers.offsetX), 0 === n && (h.push(d), c.push(v.isNumber(e[r][0]) ? o + l.config.markers.offsetY : null)), h.push(a + l.config.markers.offsetX), c.push(v.isNumber(e[r][n + 1]) ? s + l.config.markers.offsetY : null), { + x: h, + y: c + } + } + }, { + key: "checkPreviousPaths", value: function (t) { + for (var e = t.pathFromLine, i = t.pathFromArea, a = t.realIndex, s = this.w, r = 0; r < s.globals.previousPaths.length; r++) { + var n = s.globals.previousPaths[r]; + ("line" === n.type || "area" === n.type) && n.paths.length > 0 && parseInt(n.realIndex, 10) === parseInt(a, 10) && ("line" === n.type ? (this.lineCtx.appendPathFrom = !1, e = s.globals.previousPaths[r].paths[0].d) : "area" === n.type && (this.lineCtx.appendPathFrom = !1, i = s.globals.previousPaths[r].paths[0].d, s.config.stroke.show && s.globals.previousPaths[r].paths[1] && (e = s.globals.previousPaths[r].paths[1].d))) + } + return {pathFromLine: e, pathFromArea: i} + } + }, { + key: "determineFirstPrevY", value: function (t) { + var e, i, a, s = t.i, r = t.realIndex, n = t.series, o = t.prevY, l = t.lineYPosition, + h = t.translationsIndex, c = this.w, + d = c.config.chart.stacked && !c.globals.comboCharts || c.config.chart.stacked && c.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e = this.w.config.series[r]) || void 0 === e ? void 0 : e.type) || "column" === (null === (i = this.w.config.series[r]) || void 0 === i ? void 0 : i.type)); + if (void 0 !== (null === (a = n[s]) || void 0 === a ? void 0 : a[0])) o = (l = d && s > 0 ? this.lineCtx.prevSeriesY[s - 1][0] : this.lineCtx.zeroY) - n[s][0] / this.lineCtx.yRatio[h] + 2 * (this.lineCtx.isReversed ? n[s][0] / this.lineCtx.yRatio[h] : 0); else if (d && s > 0 && void 0 === n[s][0]) for (var u = s - 1; u >= 0; u--) if (null !== n[u][0] && void 0 !== n[u][0]) { + o = l = this.lineCtx.prevSeriesY[u][0]; + break + } + return {prevY: o, lineYPosition: l} + } + }]), t + }(), _a = function (t) { + for (var e, i, a, s, r = function (t) { + for (var e = [], i = t[0], a = t[1], s = e[0] = Ba(i, a), r = 1, n = t.length - 1; r < n; r++) i = a, a = t[r + 1], e[r] = .5 * (s + (s = Ba(i, a))); + return e[r] = s, e + }(t), n = t.length - 1, o = [], l = 0; l < n; l++) a = Ba(t[l], t[l + 1]), Math.abs(a) < 1e-6 ? r[l] = r[l + 1] = 0 : (s = (e = r[l] / a) * e + (i = r[l + 1] / a) * i) > 9 && (s = 3 * a / Math.sqrt(s), r[l] = s * e, r[l + 1] = s * i); + for (var h = 0; h <= n; h++) s = (t[Math.min(n, h + 1)][0] - t[Math.max(0, h - 1)][0]) / (6 * (1 + r[h] * r[h])), o.push([s || 0, r[h] * s || 0]); + return o + }, Na = function (t) { + var e = _a(t), i = t[1], a = t[0], s = [], r = e[1], n = e[0]; + s.push(a, [a[0] + n[0], a[1] + n[1], i[0] - r[0], i[1] - r[1], i[0], i[1]]); + for (var o = 2, l = e.length; o < l; o++) { + var h = t[o], c = e[o]; + s.push([h[0] - c[0], h[1] - c[1], h[0], h[1]]) + } + return s + }, Wa = function (t, e, i) { + var a = t.slice(e, i); + if (e) { + if (i - e > 1 && a[1].length < 6) { + var s = a[0].length; + a[1] = [2 * a[0][s - 2] - a[0][s - 4], 2 * a[0][s - 1] - a[0][s - 3]].concat(a[1]) + } + a[0] = a[0].slice(-2) + } + return a + }; + + function Ba(t, e) { + return (e[1] - t[1]) / (e[0] - t[0]) + } + + var Ga = function () { + function t(e, a, s) { + i(this, t), this.ctx = e, this.w = e.w, this.xyRatios = a, this.pointsChart = !("bubble" !== this.w.config.chart.type && "scatter" !== this.w.config.chart.type) || s, this.scatter = new Ui(this.ctx), this.noNegatives = this.w.globals.minX === Number.MAX_VALUE, this.lineHelpers = new Da(this), this.markers = new Vi(this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0 + } + + return s(t, [{ + key: "draw", value: function (t, e, i, a) { + var s, r = this.w, n = new Mi(this.ctx), o = r.globals.comboCharts ? e : r.config.chart.type, + l = n.group({class: "apexcharts-".concat(o, "-series apexcharts-plot-series")}), + h = new Pi(this.ctx, r); + this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, t = h.getLogSeries(t), this.yRatio = h.getLogYRatios(this.yRatio), this.prevSeriesY = []; + for (var c = [], d = 0; d < t.length; d++) { + t = this.lineHelpers.sameValueSeriesFix(d, t); + var g = r.globals.comboCharts ? i[d] : d, p = this.yRatio.length > 1 ? g : 0; + this._initSerieVariables(t, d, g); + var f = [], x = [], b = [], m = r.globals.padHorizontal + this.categoryAxisCorrection; + this.ctx.series.addCollapsedClassToSeries(this.elSeries, g), r.globals.isXNumeric && r.globals.seriesX.length > 0 && (m = (r.globals.seriesX[g][0] - r.globals.minX) / this.xRatio), b.push(m); + var v, y = m, w = void 0, k = y, A = this.zeroY, C = this.zeroY; + A = this.lineHelpers.determineFirstPrevY({ + i: d, + realIndex: g, + series: t, + prevY: A, + lineYPosition: 0, + translationsIndex: p + }).prevY, "monotoneCubic" === r.config.stroke.curve && null === t[d][0] ? f.push(null) : f.push(A), v = A; + "rangeArea" === o && (w = C = this.lineHelpers.determineFirstPrevY({ + i: d, + realIndex: g, + series: a, + prevY: C, + lineYPosition: 0, + translationsIndex: p + }).prevY, x.push(null !== f[0] ? C : null)); + var S = this._calculatePathsFrom({ + type: o, + series: t, + i: d, + realIndex: g, + translationsIndex: p, + prevX: k, + prevY: A, + prevY2: C + }), L = [f[0]], M = [x[0]], P = { + type: o, + series: t, + realIndex: g, + translationsIndex: p, + i: d, + x: m, + y: 1, + pX: y, + pY: v, + pathsFrom: S, + linePaths: [], + areaPaths: [], + seriesIndex: i, + lineYPosition: 0, + xArrj: b, + yArrj: f, + y2Arrj: x, + seriesRangeEnd: a + }, I = this._iterateOverDataPoints(u(u({}, P), {}, { + iterations: "rangeArea" === o ? t[d].length - 1 : void 0, + isRangeStart: !0 + })); + if ("rangeArea" === o) { + for (var T = this._calculatePathsFrom({ + series: a, + i: d, + realIndex: g, + prevX: k, + prevY: C + }), z = this._iterateOverDataPoints(u(u({}, P), {}, { + series: a, + xArrj: [m], + yArrj: L, + y2Arrj: M, + pY: w, + areaPaths: I.areaPaths, + pathsFrom: T, + iterations: a[d].length - 1, + isRangeStart: !1 + })), X = I.linePaths.length / 2, R = 0; R < X; R++) I.linePaths[R] = z.linePaths[R + X] + I.linePaths[R]; + I.linePaths.splice(X), I.pathFromLine = z.pathFromLine + I.pathFromLine + } else I.pathFromArea += "z"; + this._handlePaths({ + type: o, + realIndex: g, + i: d, + paths: I + }), this.elSeries.add(this.elPointsMain), this.elSeries.add(this.elDataLabelsWrap), c.push(this.elSeries) + } + if (void 0 !== (null === (s = r.config.series[0]) || void 0 === s ? void 0 : s.zIndex) && c.sort((function (t, e) { + return Number(t.node.getAttribute("zIndex")) - Number(e.node.getAttribute("zIndex")) + })), r.config.chart.stacked) for (var E = c.length - 1; E >= 0; E--) l.add(c[E]); else for (var Y = 0; Y < c.length; Y++) l.add(c[Y]); + return l + } + }, { + key: "_initSerieVariables", value: function (t, e, i) { + var a = this.w, s = new Mi(this.ctx); + this.xDivision = a.globals.gridWidth / (a.globals.dataPoints - ("on" === a.config.xaxis.tickPlacement ? 1 : 0)), this.strokeWidth = Array.isArray(a.config.stroke.width) ? a.config.stroke.width[i] : a.config.stroke.width; + var r = 0; + if (this.yRatio.length > 1 && (this.yaxisIndex = a.globals.seriesYAxisReverseMap[i], r = i), this.isReversed = a.config.yaxis[this.yaxisIndex] && a.config.yaxis[this.yaxisIndex].reversed, this.zeroY = a.globals.gridHeight - this.baseLineY[r] - (this.isReversed ? a.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[r] : 0), this.areaBottomY = this.zeroY, (this.zeroY > a.globals.gridHeight || "end" === a.config.plotOptions.area.fillTo) && (this.areaBottomY = a.globals.gridHeight), this.categoryAxisCorrection = this.xDivision / 2, this.elSeries = s.group({ + class: "apexcharts-series", + zIndex: void 0 !== a.config.series[i].zIndex ? a.config.series[i].zIndex : i, + seriesName: v.escapeString(a.globals.seriesNames[i]) + }), this.elPointsMain = s.group({ + class: "apexcharts-series-markers-wrap", + "data:realIndex": i + }), a.globals.hasNullValues) { + var n = this.markers.plotChartMarkers({ + pointsPos: { + x: [0], + y: [a.globals.gridHeight + a.globals.markers.largestSize] + }, seriesIndex: e, j: 0, pSize: .1, alwaysDrawMarker: !0, isVirtualPoint: !0 + }); + null !== n && this.elPointsMain.add(n) + } + this.elDataLabelsWrap = s.group({class: "apexcharts-datalabels", "data:realIndex": i}); + var o = t[e].length === a.globals.dataPoints; + this.elSeries.attr({"data:longestSeries": o, rel: e + 1, "data:realIndex": i}), this.appendPathFrom = !0 + } + }, { + key: "_calculatePathsFrom", value: function (t) { + var e, i, a, s, r = t.type, n = t.series, o = t.i, l = t.realIndex, h = t.translationsIndex, + c = t.prevX, d = t.prevY, u = t.prevY2, g = this.w, p = new Mi(this.ctx); + if (null === n[o][0]) { + for (var f = 0; f < n[o].length; f++) if (null !== n[o][f]) { + c = this.xDivision * f, d = this.zeroY - n[o][f] / this.yRatio[h], e = p.move(c, d), i = p.move(c, this.areaBottomY); + break + } + } else e = p.move(c, d), "rangeArea" === r && (e = p.move(c, u) + p.line(c, d)), i = p.move(c, this.areaBottomY) + p.line(c, d); + if (a = p.move(0, this.areaBottomY) + p.line(0, this.areaBottomY), s = p.move(0, this.areaBottomY) + p.line(0, this.areaBottomY), g.globals.previousPaths.length > 0) { + var x = this.lineHelpers.checkPreviousPaths({pathFromLine: a, pathFromArea: s, realIndex: l}); + a = x.pathFromLine, s = x.pathFromArea + } + return {prevX: c, prevY: d, linePath: e, areaPath: i, pathFromLine: a, pathFromArea: s} + } + }, { + key: "_handlePaths", value: function (t) { + var e = t.type, i = t.realIndex, a = t.i, s = t.paths, r = this.w, n = new Mi(this.ctx), + o = new ji(this.ctx); + this.prevSeriesY.push(s.yArrj), r.globals.seriesXvalues[i] = s.xArrj, r.globals.seriesYvalues[i] = s.yArrj; + var l = r.config.forecastDataPoints; + if (l.count > 0 && "rangeArea" !== e) { + var h = r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length - l.count - 1], + c = n.drawRect(h, 0, r.globals.gridWidth, r.globals.gridHeight, 0); + r.globals.dom.elForecastMask.appendChild(c.node); + var d = n.drawRect(0, 0, h, r.globals.gridHeight, 0); + r.globals.dom.elNonForecastMask.appendChild(d.node) + } + this.pointsChart || r.globals.delayedElements.push({el: this.elPointsMain.node, index: i}); + var g = { + i: a, + realIndex: i, + animationDelay: a, + initialSpeed: r.config.chart.animations.speed, + dataChangeSpeed: r.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-".concat(e) + }; + if ("area" === e) for (var p = o.fillPath({seriesNumber: i}), f = 0; f < s.areaPaths.length; f++) { + var x = n.renderPaths(u(u({}, g), {}, { + pathFrom: s.pathFromArea, + pathTo: s.areaPaths[f], + stroke: "none", + strokeWidth: 0, + strokeLineCap: null, + fill: p + })); + this.elSeries.add(x) + } + if (r.config.stroke.show && !this.pointsChart) { + var b = null; + if ("line" === e) b = o.fillPath({ + seriesNumber: i, + i: a + }); else if ("solid" === r.config.stroke.fill.type) b = r.globals.stroke.colors[i]; else { + var m = r.config.fill; + r.config.fill = r.config.stroke.fill, b = o.fillPath({seriesNumber: i, i: a}), r.config.fill = m + } + for (var v = 0; v < s.linePaths.length; v++) { + var y = b; + "rangeArea" === e && (y = o.fillPath({seriesNumber: i})); + var w = u(u({}, g), {}, { + pathFrom: s.pathFromLine, + pathTo: s.linePaths[v], + stroke: b, + strokeWidth: this.strokeWidth, + strokeLineCap: r.config.stroke.lineCap, + fill: "rangeArea" === e ? y : "none" + }), k = n.renderPaths(w); + if (this.elSeries.add(k), k.attr("fill-rule", "evenodd"), l.count > 0 && "rangeArea" !== e) { + var A = n.renderPaths(w); + A.node.setAttribute("stroke-dasharray", l.dashArray), l.strokeWidth && A.node.setAttribute("stroke-width", l.strokeWidth), this.elSeries.add(A), A.attr("clip-path", "url(#forecastMask".concat(r.globals.cuid, ")")), k.attr("clip-path", "url(#nonForecastMask".concat(r.globals.cuid, ")")) + } + } + } + } + }, { + key: "_iterateOverDataPoints", value: function (t) { + var e, i, a = this, s = t.type, r = t.series, n = t.iterations, o = t.realIndex, + l = t.translationsIndex, h = t.i, c = t.x, d = t.y, u = t.pX, g = t.pY, p = t.pathsFrom, + f = t.linePaths, x = t.areaPaths, b = t.seriesIndex, m = t.lineYPosition, y = t.xArrj, w = t.yArrj, + k = t.y2Arrj, A = t.isRangeStart, C = t.seriesRangeEnd, S = this.w, L = new Mi(this.ctx), + M = this.yRatio, P = p.prevY, I = p.linePath, T = p.areaPath, z = p.pathFromLine, + X = p.pathFromArea, R = v.isNumber(S.globals.minYArr[o]) ? S.globals.minYArr[o] : S.globals.minY; + n || (n = S.globals.dataPoints > 1 ? S.globals.dataPoints - 1 : S.globals.dataPoints); + var E = function (t, e) { + return e - t / M[l] + 2 * (a.isReversed ? t / M[l] : 0) + }, Y = d, + H = S.config.chart.stacked && !S.globals.comboCharts || S.config.chart.stacked && S.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e = this.w.config.series[o]) || void 0 === e ? void 0 : e.type) || "column" === (null === (i = this.w.config.series[o]) || void 0 === i ? void 0 : i.type)), + O = S.config.stroke.curve; + Array.isArray(O) && (O = Array.isArray(b) ? O[b[h]] : O[h]); + for (var F, D = 0, _ = 0; _ < n && 0 !== r[h].length; _++) { + var N = void 0 === r[h][_ + 1] || null === r[h][_ + 1]; + if (S.globals.isXNumeric) { + var W = S.globals.seriesX[o][_ + 1]; + void 0 === S.globals.seriesX[o][_ + 1] && (W = S.globals.seriesX[o][n - 1]), c = (W - S.globals.minX) / this.xRatio + } else c += this.xDivision; + if (H) if (h > 0 && S.globals.collapsedSeries.length < S.config.series.length - 1) { + m = this.prevSeriesY[function (t) { + for (var e = t; e > 0; e--) { + if (!(S.globals.collapsedSeriesIndices.indexOf((null == b ? void 0 : b[e]) || e) > -1)) return e; + e-- + } + return 0 + }(h - 1)][_ + 1] + } else m = this.zeroY; else m = this.zeroY; + N ? d = E(R, m) : (d = E(r[h][_ + 1], m), "rangeArea" === s && (Y = E(C[h][_ + 1], m))), y.push(null === r[h][_ + 1] ? null : c), !N || "smooth" !== S.config.stroke.curve && "monotoneCubic" !== S.config.stroke.curve ? (w.push(d), k.push(Y)) : (w.push(null), k.push(null)); + var B = this.lineHelpers.calculatePoints({ + series: r, + x: c, + y: d, + realIndex: o, + i: h, + j: _, + prevY: P + }), G = this._createPaths({ + type: s, + series: r, + i: h, + realIndex: o, + j: _, + x: c, + y: d, + y2: Y, + xArrj: y, + yArrj: w, + y2Arrj: k, + pX: u, + pY: g, + pathState: D, + segmentStartX: F, + linePath: I, + areaPath: T, + linePaths: f, + areaPaths: x, + curve: O, + isRangeStart: A + }); + x = G.areaPaths, f = G.linePaths, u = G.pX, g = G.pY, D = G.pathState, F = G.segmentStartX, T = G.areaPath, I = G.linePath, !this.appendPathFrom || S.globals.hasNullValues || "monotoneCubic" === O && "rangeArea" === s || (z += L.line(c, this.areaBottomY), X += L.line(c, this.areaBottomY)), this.handleNullDataPoints(r, B, h, _, o), this._handleMarkersAndLabels({ + type: s, + pointsPos: B, + i: h, + j: _, + realIndex: o, + isRangeStart: A + }) + } + return { + yArrj: w, + xArrj: y, + pathFromArea: X, + areaPaths: x, + pathFromLine: z, + linePaths: f, + linePath: I, + areaPath: T + } + } + }, { + key: "_handleMarkersAndLabels", value: function (t) { + var e = t.type, i = t.pointsPos, a = t.isRangeStart, s = t.i, r = t.j, n = t.realIndex, o = this.w, + l = new qi(this.ctx); + if (this.pointsChart) this.scatter.draw(this.elSeries, r, { + realIndex: n, + pointsPos: i, + zRatio: this.zRatio, + elParent: this.elPointsMain + }); else { + o.globals.series[s].length > 1 && this.elPointsMain.node.classList.add("apexcharts-element-hidden"); + var h = this.markers.plotChartMarkers({pointsPos: i, seriesIndex: n, j: r + 1}); + null !== h && this.elPointsMain.add(h) + } + var c = l.drawDataLabel({type: e, isRangeStart: a, pos: i, i: n, j: r + 1}); + null !== c && this.elDataLabelsWrap.add(c) + } + }, { + key: "_createPaths", value: function (t) { + var e = t.type, i = t.series, a = t.i; + t.realIndex; + var s, r = t.j, n = t.x, o = t.y, l = t.xArrj, h = t.yArrj, c = t.y2, d = t.y2Arrj, u = t.pX, g = t.pY, + p = t.pathState, f = t.segmentStartX, x = t.linePath, b = t.areaPath, m = t.linePaths, + v = t.areaPaths, y = t.curve, w = t.isRangeStart, k = new Mi(this.ctx), A = this.areaBottomY, + C = "rangeArea" === e, S = "rangeArea" === e && w; + switch (y) { + case"monotoneCubic": + var L = w ? h : d; + switch (p) { + case 0: + if (null === L[r + 1]) break; + p = 1; + case 1: + if (!(C ? l.length === i[a].length : r === i[a].length - 2)) break; + case 2: + var M = w ? l : l.slice().reverse(), P = w ? L : L.slice().reverse(), + I = (s = P, M.map((function (t, e) { + return [t, s[e]] + })).filter((function (t) { + return null !== t[1] + }))), T = I.length > 1 ? Na(I) : I, z = []; + C && (S ? v = I : z = v.reverse()); + var X = 0, R = 0; + if (function (t, e) { + for (var i = function (t) { + var e = [], i = 0; + return t.forEach((function (t) { + null !== t ? i++ : i > 0 && (e.push(i), i = 0) + })), i > 0 && e.push(i), e + }(t), a = [], s = 0, r = 0; s < i.length; r += i[s++]) a[s] = Wa(e, r, r + i[s]); + return a + }(P, T).forEach((function (t) { + X++; + var e = function (t) { + for (var e = "", i = 0; i < t.length; i++) { + var a = t[i], s = a.length; + s > 4 ? (e += "C".concat(a[0], ", ").concat(a[1]), e += ", ".concat(a[2], ", ").concat(a[3]), e += ", ".concat(a[4], ", ").concat(a[5])) : s > 2 && (e += "S".concat(a[0], ", ").concat(a[1]), e += ", ".concat(a[2], ", ").concat(a[3])) + } + return e + }(t), i = R, a = (R += t.length) - 1; + S ? x = k.move(I[i][0], I[i][1]) + e : C ? x = k.move(z[i][0], z[i][1]) + k.line(I[i][0], I[i][1]) + e + k.line(z[a][0], z[a][1]) : (x = k.move(I[i][0], I[i][1]) + e, b = x + k.line(I[a][0], A) + k.line(I[i][0], A) + "z", v.push(b)), m.push(x) + })), C && X > 1 && !S) { + var E = m.slice(X).reverse(); + m.splice(X), E.forEach((function (t) { + return m.push(t) + })) + } + p = 0 + } + break; + case"smooth": + var Y = .35 * (n - u); + if (null === i[a][r]) p = 0; else switch (p) { + case 0: + if (f = u, x = S ? k.move(u, d[r]) + k.line(u, g) : k.move(u, g), b = k.move(u, g), null === i[a][r + 1] || void 0 === i[a][r + 1]) { + m.push(x), v.push(b); + break + } + if (p = 1, r < i[a].length - 2) { + var H = k.curve(u + Y, g, n - Y, o, n, o); + x += H, b += H; + break + } + case 1: + if (null === i[a][r + 1]) x += S ? k.line(u, c) : k.move(u, g), b += k.line(u, A) + k.line(f, A) + "z", m.push(x), v.push(b), p = -1; else { + var O = k.curve(u + Y, g, n - Y, o, n, o); + x += O, b += O, r >= i[a].length - 2 && (S && (x += k.curve(n, o, n, o, n, c) + k.move(n, c)), b += k.curve(n, o, n, o, n, A) + k.line(f, A) + "z", m.push(x), v.push(b), p = -1) + } + } + u = n, g = o; + break; + default: + var F = function (t, e, i) { + var a = []; + switch (t) { + case"stepline": + a = k.line(e, null, "H") + k.line(null, i, "V"); + break; + case"linestep": + a = k.line(null, i, "V") + k.line(e, null, "H"); + break; + case"straight": + a = k.line(e, i) + } + return a + }; + if (null === i[a][r]) p = 0; else switch (p) { + case 0: + if (f = u, x = S ? k.move(u, d[r]) + k.line(u, g) : k.move(u, g), b = k.move(u, g), null === i[a][r + 1] || void 0 === i[a][r + 1]) { + m.push(x), v.push(b); + break + } + if (p = 1, r < i[a].length - 2) { + var D = F(y, n, o); + x += D, b += D; + break + } + case 1: + if (null === i[a][r + 1]) x += S ? k.line(u, c) : k.move(u, g), b += k.line(u, A) + k.line(f, A) + "z", m.push(x), v.push(b), p = -1; else { + var _ = F(y, n, o); + x += _, b += _, r >= i[a].length - 2 && (S && (x += k.line(n, c)), b += k.line(n, A) + k.line(f, A) + "z", m.push(x), v.push(b), p = -1) + } + } + u = n, g = o + } + return { + linePaths: m, + areaPaths: v, + pX: u, + pY: g, + pathState: p, + segmentStartX: f, + linePath: x, + areaPath: b + } + } + }, { + key: "handleNullDataPoints", value: function (t, e, i, a, s) { + var r = this.w; + if (null === t[i][a] && r.config.markers.showNullDataPoints || 1 === t[i].length) { + var n = this.strokeWidth - r.config.markers.strokeWidth / 2; + n > 0 || (n = 0); + var o = this.markers.plotChartMarkers({ + pointsPos: e, + seriesIndex: s, + j: a + 1, + pSize: n, + alwaysDrawMarker: !0 + }); + null !== o && this.elPointsMain.add(o) + } + } + }]), t + }(); + window.TreemapSquared = {}, window.TreemapSquared.generate = function () { + function t(e, i, a, s) { + this.xoffset = e, this.yoffset = i, this.height = s, this.width = a, this.shortestEdge = function () { + return Math.min(this.height, this.width) + }, this.getCoordinates = function (t) { + var e, i = [], a = this.xoffset, s = this.yoffset, n = r(t) / this.height, o = r(t) / this.width; + if (this.width >= this.height) for (e = 0; e < t.length; e++) i.push([a, s, a + n, s + t[e] / n]), s += t[e] / n; else for (e = 0; e < t.length; e++) i.push([a, s, a + t[e] / o, s + o]), a += t[e] / o; + return i + }, this.cutArea = function (e) { + var i; + if (this.width >= this.height) { + var a = e / this.height, s = this.width - a; + i = new t(this.xoffset + a, this.yoffset, s, this.height) + } else { + var r = e / this.width, n = this.height - r; + i = new t(this.xoffset, this.yoffset + r, this.width, n) + } + return i + } + } + + function e(e, a, s, n, o) { + n = void 0 === n ? 0 : n, o = void 0 === o ? 0 : o; + var l = i(function (t, e) { + var i, a = [], s = e / r(t); + for (i = 0; i < t.length; i++) a[i] = t[i] * s; + return a + }(e, a * s), [], new t(n, o, a, s), []); + return function (t) { + var e, i, a = []; + for (e = 0; e < t.length; e++) for (i = 0; i < t[e].length; i++) a.push(t[e][i]); + return a + }(l) + } + + function i(t, e, s, n) { + var o, l, h; + if (0 !== t.length) return o = s.shortestEdge(), function (t, e, i) { + var s; + if (0 === t.length) return !0; + (s = t.slice()).push(e); + var r = a(t, i), n = a(s, i); + return r >= n + }(e, l = t[0], o) ? (e.push(l), i(t.slice(1), e, s, n)) : (h = s.cutArea(r(e), n), n.push(s.getCoordinates(e)), i(t, [], h, n)), n; + n.push(s.getCoordinates(e)) + } + + function a(t, e) { + var i = Math.min.apply(Math, t), a = Math.max.apply(Math, t), s = r(t); + return Math.max(Math.pow(e, 2) * a / Math.pow(s, 2), Math.pow(s, 2) / (Math.pow(e, 2) * i)) + } + + function s(t) { + return t && t.constructor === Array + } + + function r(t) { + var e, i = 0; + for (e = 0; e < t.length; e++) i += t[e]; + return i + } + + function n(t) { + var e, i = 0; + if (s(t[0])) for (e = 0; e < t.length; e++) i += n(t[e]); else i = r(t); + return i + } + + return function t(i, a, r, o, l) { + o = void 0 === o ? 0 : o, l = void 0 === l ? 0 : l; + var h, c, d = [], u = []; + if (s(i[0])) { + for (c = 0; c < i.length; c++) d[c] = n(i[c]); + for (h = e(d, a, r, o, l), c = 0; c < i.length; c++) u.push(t(i[c], h[c][2] - h[c][0], h[c][3] - h[c][1], h[c][0], h[c][1])) + } else u = e(i, a, r, o, l); + return u + } + }(); + var ja = function () { + function t(e, a) { + i(this, t), this.ctx = e, this.w = e.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new Xa(e), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [] + } + + return s(t, [{ + key: "draw", value: function (t) { + var e = this, i = this.w, a = new Mi(this.ctx), s = new ji(this.ctx), + r = a.group({class: "apexcharts-treemap"}); + if (i.globals.noData) return r; + var n = []; + return t.forEach((function (t) { + var e = t.map((function (t) { + return Math.abs(t) + })); + n.push(e) + })), this.negRange = this.helpers.checkColorRange(), i.config.series.forEach((function (t, i) { + t.data.forEach((function (t) { + Array.isArray(e.labels[i]) || (e.labels[i] = []), e.labels[i].push(t.x) + })) + })), window.TreemapSquared.generate(n, i.globals.gridWidth, i.globals.gridHeight).forEach((function (n, o) { + var l = a.group({ + class: "apexcharts-series apexcharts-treemap-series", + seriesName: v.escapeString(i.globals.seriesNames[o]), + rel: o + 1, + "data:realIndex": o + }); + if (i.config.chart.dropShadow.enabled) { + var h = i.config.chart.dropShadow; + new Li(e.ctx).dropShadow(r, h, o) + } + var c = a.group({class: "apexcharts-data-labels"}), + d = {xMin: 1 / 0, yMin: 1 / 0, xMax: -1 / 0, yMax: -1 / 0}; + n.forEach((function (r, n) { + var h = r[0], c = r[1], u = r[2], g = r[3]; + d.xMin = Math.min(d.xMin, h), d.yMin = Math.min(d.yMin, c), d.xMax = Math.max(d.xMax, u), d.yMax = Math.max(d.yMax, g); + var p = e.helpers.getShadeColor(i.config.chart.type, o, n, e.negRange), f = p.color, + x = s.fillPath({color: f, seriesNumber: o, dataPointIndex: n}), + b = a.drawRect(h, c, u - h, g - c, i.config.plotOptions.treemap.borderRadius, "#fff", 1, e.strokeWidth, i.config.plotOptions.treemap.useFillColorAsStroke ? f : i.globals.stroke.colors[o]); + b.attr({ + cx: h, + cy: c, + index: o, + i: o, + j: n, + width: u - h, + height: g - c, + fill: x + }), b.node.classList.add("apexcharts-treemap-rect"), e.helpers.addListeners(b); + var m = {x: h + (u - h) / 2, y: c + (g - c) / 2, width: 0, height: 0}, + v = {x: h, y: c, width: u - h, height: g - c}; + if (i.config.chart.animations.enabled && !i.globals.dataChanged) { + var y = 1; + i.globals.resized || (y = i.config.chart.animations.speed), e.animateTreemap(b, m, v, y) + } + if (i.globals.dataChanged) { + var w = 1; + e.dynamicAnim.enabled && i.globals.shouldAnimate && (w = e.dynamicAnim.speed, i.globals.previousPaths[o] && i.globals.previousPaths[o][n] && i.globals.previousPaths[o][n].rect && (m = i.globals.previousPaths[o][n].rect), e.animateTreemap(b, m, v, w)) + } + var k = e.getFontSize(r), A = i.config.dataLabels.formatter(e.labels[o][n], { + value: i.globals.series[o][n], + seriesIndex: o, + dataPointIndex: n, + w: i + }); + "truncate" === i.config.plotOptions.treemap.dataLabels.format && (k = parseInt(i.config.dataLabels.style.fontSize, 10), A = e.truncateLabels(A, k, h, c, u, g)); + var C = null; + i.globals.series[o][n] && (C = e.helpers.calculateDataLabels({ + text: A, + x: (h + u) / 2, + y: (c + g) / 2 + e.strokeWidth / 2 + k / 3, + i: o, + j: n, + colorProps: p, + fontSize: k, + series: t + })), i.config.dataLabels.enabled && C && e.rotateToFitLabel(C, k, A, h, c, u, g), l.add(b), null !== C && l.add(C) + })); + var u = i.config.plotOptions.treemap.seriesTitle; + if (i.config.series.length > 1 && u && u.show) { + var g = i.config.series[o].name || ""; + if (g && d.xMin < 1 / 0 && d.yMin < 1 / 0) { + var p = u.offsetX, f = u.offsetY, x = u.borderColor, b = u.borderWidth, m = u.borderRadius, + y = u.style, w = y.color || i.config.chart.foreColor, k = { + left: y.padding.left, + right: y.padding.right, + top: y.padding.top, + bottom: y.padding.bottom + }, A = a.getTextRects(g, y.fontSize, y.fontFamily), C = A.width + k.left + k.right, + S = A.height + k.top + k.bottom, L = d.xMin + (p || 0), M = d.yMin + (f || 0), + P = a.drawRect(L, M, C, S, m, y.background, 1, b, x), I = a.drawText({ + x: L + k.left, + y: M + k.top + .75 * A.height, + text: g, + fontSize: y.fontSize, + fontFamily: y.fontFamily, + fontWeight: y.fontWeight, + foreColor: w, + cssClass: y.cssClass || "" + }); + l.add(P), l.add(I) + } + } + l.add(c), r.add(l) + })), r + } + }, { + key: "getFontSize", value: function (t) { + var e = this.w; + var i = function t(e) { + var i, a = 0; + if (Array.isArray(e[0])) for (i = 0; i < e.length; i++) a += t(e[i]); else for (i = 0; i < e.length; i++) a += e[i].length; + return a + }(this.labels) / function t(e) { + var i, a = 0; + if (Array.isArray(e[0])) for (i = 0; i < e.length; i++) a += t(e[i]); else for (i = 0; i < e.length; i++) a += 1; + return a + }(this.labels); + return function (t, a) { + var s = t * a, r = Math.pow(s, .5); + return Math.min(r / i, parseInt(e.config.dataLabels.style.fontSize, 10)) + }(t[2] - t[0], t[3] - t[1]) + } + }, { + key: "rotateToFitLabel", value: function (t, e, i, a, s, r, n) { + var o = new Mi(this.ctx), l = o.getTextRects(i, e); + if (l.width + this.w.config.stroke.width + 5 > r - a && l.width <= n - s) { + var h = o.rotateAroundCenter(t.node); + t.node.setAttribute("transform", "rotate(-90 ".concat(h.x, " ").concat(h.y, ") translate(").concat(l.height / 3, ")")) + } + } + }, { + key: "truncateLabels", value: function (t, e, i, a, s, r) { + var n = new Mi(this.ctx), + o = n.getTextRects(t, e).width + this.w.config.stroke.width + 5 > s - i && r - a > s - i ? r - a : s - i, + l = n.getTextBasedOnMaxWidth({text: t, maxWidth: o, fontSize: e}); + return t.length !== l.length && o / e < 5 ? "" : l + } + }, { + key: "animateTreemap", value: function (t, e, i, a) { + var s = new y(this.ctx); + s.animateRect(t, e, i, a, (function () { + s.animationCompleted(t) + })) + } + }]), t + }(), Va = 86400, Ua = 10 / Va, qa = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC + } + + return s(t, [{ + key: "calculateTimeScaleTicks", value: function (t, e) { + var i = this, a = this.w; + if (a.globals.allSeriesCollapsed) return a.globals.labels = [], a.globals.timescaleLabels = [], []; + var s = new zi(this.ctx), r = (e - t) / 864e5; + this.determineInterval(r), a.globals.disableZoomIn = !1, a.globals.disableZoomOut = !1, r < Ua ? a.globals.disableZoomIn = !0 : r > 5e4 && (a.globals.disableZoomOut = !0); + var n = s.getTimeUnitsfromTimestamp(t, e, this.utc), o = a.globals.gridWidth / r, l = o / 24, + h = l / 60, c = h / 60, d = Math.floor(24 * r), g = Math.floor(1440 * r), p = Math.floor(r * Va), + f = Math.floor(r), x = Math.floor(r / 30), b = Math.floor(r / 365), m = { + minMillisecond: n.minMillisecond, + minSecond: n.minSecond, + minMinute: n.minMinute, + minHour: n.minHour, + minDate: n.minDate, + minMonth: n.minMonth, + minYear: n.minYear + }, v = { + firstVal: m, + currentMillisecond: m.minMillisecond, + currentSecond: m.minSecond, + currentMinute: m.minMinute, + currentHour: m.minHour, + currentMonthDate: m.minDate, + currentDate: m.minDate, + currentMonth: m.minMonth, + currentYear: m.minYear, + daysWidthOnXAxis: o, + hoursWidthOnXAxis: l, + minutesWidthOnXAxis: h, + secondsWidthOnXAxis: c, + numberOfSeconds: p, + numberOfMinutes: g, + numberOfHours: d, + numberOfDays: f, + numberOfMonths: x, + numberOfYears: b + }; + switch (this.tickInterval) { + case"years": + this.generateYearScale(v); + break; + case"months": + case"half_year": + this.generateMonthScale(v); + break; + case"months_days": + case"months_fortnight": + case"days": + case"week_days": + this.generateDayScale(v); + break; + case"hours": + this.generateHourScale(v); + break; + case"minutes_fives": + case"minutes": + this.generateMinuteScale(v); + break; + case"seconds_tens": + case"seconds_fives": + case"seconds": + this.generateSecondScale(v) + } + var y = this.timeScaleArray.map((function (t) { + var e = { + position: t.position, + unit: t.unit, + year: t.year, + day: t.day ? t.day : 1, + hour: t.hour ? t.hour : 0, + month: t.month + 1 + }; + return "month" === t.unit ? u(u({}, e), {}, { + day: 1, + value: t.value + 1 + }) : "day" === t.unit || "hour" === t.unit ? u(u({}, e), {}, {value: t.value}) : "minute" === t.unit ? u(u({}, e), {}, { + value: t.value, + minute: t.value + }) : "second" === t.unit ? u(u({}, e), {}, {value: t.value, minute: t.minute, second: t.second}) : t + })); + return y.filter((function (t) { + var e = 1, s = Math.ceil(a.globals.gridWidth / 120), r = t.value; + void 0 !== a.config.xaxis.tickAmount && (s = a.config.xaxis.tickAmount), y.length > s && (e = Math.floor(y.length / s)); + var n = !1, o = !1; + switch (i.tickInterval) { + case"years": + "year" === t.unit && (n = !0); + break; + case"half_year": + e = 7, "year" === t.unit && (n = !0); + break; + case"months": + e = 1, "year" === t.unit && (n = !0); + break; + case"months_fortnight": + e = 15, "year" !== t.unit && "month" !== t.unit || (n = !0), 30 === r && (o = !0); + break; + case"months_days": + e = 10, "month" === t.unit && (n = !0), 30 === r && (o = !0); + break; + case"week_days": + e = 8, "month" === t.unit && (n = !0); + break; + case"days": + e = 1, "month" === t.unit && (n = !0); + break; + case"hours": + "day" === t.unit && (n = !0); + break; + case"minutes_fives": + case"seconds_fives": + r % 5 != 0 && (o = !0); + break; + case"seconds_tens": + r % 10 != 0 && (o = !0) + } + if ("hours" === i.tickInterval || "minutes_fives" === i.tickInterval || "seconds_tens" === i.tickInterval || "seconds_fives" === i.tickInterval) { + if (!o) return !0 + } else if ((r % e == 0 || n) && !o) return !0 + })) + } + }, { + key: "recalcDimensionsBasedOnFormat", value: function (t, e) { + var i = this.w, a = this.formatDates(t), s = this.removeOverlappingTS(a); + i.globals.timescaleLabels = s.slice(), new fa(this.ctx).plotCoords() + } + }, { + key: "determineInterval", value: function (t) { + var e = 24 * t, i = 60 * e; + switch (!0) { + case t / 365 > 5: + this.tickInterval = "years"; + break; + case t > 800: + this.tickInterval = "half_year"; + break; + case t > 180: + this.tickInterval = "months"; + break; + case t > 90: + this.tickInterval = "months_fortnight"; + break; + case t > 60: + this.tickInterval = "months_days"; + break; + case t > 30: + this.tickInterval = "week_days"; + break; + case t > 2: + this.tickInterval = "days"; + break; + case e > 2.4: + this.tickInterval = "hours"; + break; + case i > 15: + this.tickInterval = "minutes_fives"; + break; + case i > 5: + this.tickInterval = "minutes"; + break; + case i > 1: + this.tickInterval = "seconds_tens"; + break; + case 60 * i > 20: + this.tickInterval = "seconds_fives"; + break; + default: + this.tickInterval = "seconds" + } + } + }, { + key: "generateYearScale", value: function (t) { + var e = t.firstVal, i = t.currentMonth, a = t.currentYear, s = t.daysWidthOnXAxis, r = t.numberOfYears, + n = e.minYear, o = 0, l = new zi(this.ctx), h = "year"; + if (e.minDate > 1 || e.minMonth > 0) { + var c = l.determineRemainingDaysOfYear(e.minYear, e.minMonth, e.minDate); + o = (l.determineDaysOfYear(e.minYear) - c + 1) * s, n = e.minYear + 1, this.timeScaleArray.push({ + position: o, + value: n, + unit: h, + year: n, + month: v.monthMod(i + 1) + }) + } else 1 === e.minDate && 0 === e.minMonth && this.timeScaleArray.push({ + position: o, + value: n, + unit: h, + year: a, + month: v.monthMod(i + 1) + }); + for (var d = n, u = o, g = 0; g < r; g++) d++, u = l.determineDaysOfYear(d - 1) * s + u, this.timeScaleArray.push({ + position: u, + value: d, + unit: h, + year: d, + month: 1 + }) + } + }, { + key: "generateMonthScale", value: function (t) { + var e = t.firstVal, i = t.currentMonthDate, a = t.currentMonth, s = t.currentYear, + r = t.daysWidthOnXAxis, n = t.numberOfMonths, o = a, l = 0, h = new zi(this.ctx), c = "month", + d = 0; + if (e.minDate > 1) { + l = (h.determineDaysOfMonths(a + 1, e.minYear) - i + 1) * r, o = v.monthMod(a + 1); + var u = s + d, g = v.monthMod(o), p = o; + 0 === o && (c = "year", p = u, g = 1, u += d += 1), this.timeScaleArray.push({ + position: l, + value: p, + unit: c, + year: u, + month: g + }) + } else this.timeScaleArray.push({position: l, value: o, unit: c, year: s, month: v.monthMod(a)}); + for (var f = o + 1, x = l, b = 0, m = 1; b < n; b++, m++) { + 0 === (f = v.monthMod(f)) ? (c = "year", d += 1) : c = "month"; + var y = this._getYear(s, f, d); + x = h.determineDaysOfMonths(f, y) * r + x; + var w = 0 === f ? y : f; + this.timeScaleArray.push({position: x, value: w, unit: c, year: y, month: 0 === f ? 1 : f}), f++ + } + } + }, { + key: "generateDayScale", value: function (t) { + var e = t.firstVal, i = t.currentMonth, a = t.currentYear, s = t.hoursWidthOnXAxis, r = t.numberOfDays, + n = new zi(this.ctx), o = "day", l = e.minDate + 1, h = l, c = function (t, e, i) { + return t > n.determineDaysOfMonths(e + 1, i) ? (h = 1, o = "month", u = e += 1, e) : e + }, d = (24 - e.minHour) * s, u = l, g = c(h, i, a); + 0 === e.minHour && 1 === e.minDate ? (d = 0, u = v.monthMod(e.minMonth), o = "month", h = e.minDate) : 1 !== e.minDate && 0 === e.minHour && 0 === e.minMinute && (d = 0, l = e.minDate, u = l, g = c(h = l, i, a), 1 !== u && (o = "day")), this.timeScaleArray.push({ + position: d, + value: u, + unit: o, + year: this._getYear(a, g, 0), + month: v.monthMod(g), + day: h + }); + for (var p = d, f = 0; f < r; f++) { + o = "day", g = c(h += 1, g, this._getYear(a, g, 0)); + var x = this._getYear(a, g, 0); + p = 24 * s + p; + var b = 1 === h ? v.monthMod(g) : h; + this.timeScaleArray.push({position: p, value: b, unit: o, year: x, month: v.monthMod(g), day: b}) + } + } + }, { + key: "generateHourScale", value: function (t) { + var e = t.firstVal, i = t.currentDate, a = t.currentMonth, s = t.currentYear, r = t.minutesWidthOnXAxis, + n = t.numberOfHours, o = new zi(this.ctx), l = "hour", h = function (t, e) { + return t > o.determineDaysOfMonths(e + 1, s) && (f = 1, e += 1), {month: e, date: f} + }, c = function (t, e) { + return t > o.determineDaysOfMonths(e + 1, s) ? e += 1 : e + }, d = 60 - (e.minMinute + e.minSecond / 60), u = d * r, g = e.minHour + 1, p = g; + 60 === d && (u = 0, p = g = e.minHour); + var f = i; + p >= 24 && (p = 0, l = "day", g = f += 1); + var x = h(f, a).month; + x = c(f, x), g > 31 && (g = f = 1), this.timeScaleArray.push({ + position: u, + value: g, + unit: l, + day: f, + hour: p, + year: s, + month: v.monthMod(x) + }), p++; + for (var b = u, m = 0; m < n; m++) { + if (l = "hour", p >= 24) p = 0, l = "day", x = h(f += 1, x).month, x = c(f, x); + var y = this._getYear(s, x, 0); + b = 60 * r + b; + var w = 0 === p ? f : p; + this.timeScaleArray.push({ + position: b, + value: w, + unit: l, + hour: p, + day: f, + year: y, + month: v.monthMod(x) + }), p++ + } + } + }, { + key: "generateMinuteScale", value: function (t) { + for (var e = t.currentMillisecond, i = t.currentSecond, a = t.currentMinute, s = t.currentHour, r = t.currentDate, n = t.currentMonth, o = t.currentYear, l = t.minutesWidthOnXAxis, h = t.secondsWidthOnXAxis, c = t.numberOfMinutes, d = a + 1, u = r, g = n, p = o, f = s, x = (60 - i - e / 1e3) * h, b = 0; b < c; b++) d >= 60 && (d = 0, 24 === (f += 1) && (f = 0)), this.timeScaleArray.push({ + position: x, + value: d, + unit: "minute", + hour: f, + minute: d, + day: u, + year: this._getYear(p, g, 0), + month: v.monthMod(g) + }), x += l, d++ + } + }, { + key: "generateSecondScale", value: function (t) { + for (var e = t.currentMillisecond, i = t.currentSecond, a = t.currentMinute, s = t.currentHour, r = t.currentDate, n = t.currentMonth, o = t.currentYear, l = t.secondsWidthOnXAxis, h = t.numberOfSeconds, c = i + 1, d = a, u = r, g = n, p = o, f = s, x = (1e3 - e) / 1e3 * l, b = 0; b < h; b++) c >= 60 && (c = 0, ++d >= 60 && (d = 0, 24 === ++f && (f = 0))), this.timeScaleArray.push({ + position: x, + value: c, + unit: "second", + hour: f, + minute: d, + second: c, + day: u, + year: this._getYear(p, g, 0), + month: v.monthMod(g) + }), x += l, c++ + } + }, { + key: "createRawDateString", value: function (t, e) { + var i = t.year; + return 0 === t.month && (t.month = 1), i += "-" + ("0" + t.month.toString()).slice(-2), "day" === t.unit ? i += "day" === t.unit ? "-" + ("0" + e).slice(-2) : "-01" : i += "-" + ("0" + (t.day ? t.day : "1")).slice(-2), "hour" === t.unit ? i += "hour" === t.unit ? "T" + ("0" + e).slice(-2) : "T00" : i += "T" + ("0" + (t.hour ? t.hour : "0")).slice(-2), "minute" === t.unit ? i += ":" + ("0" + e).slice(-2) : i += ":" + (t.minute ? ("0" + t.minute).slice(-2) : "00"), "second" === t.unit ? i += ":" + ("0" + e).slice(-2) : i += ":00", this.utc && (i += ".000Z"), i + } + }, { + key: "formatDates", value: function (t) { + var e = this, i = this.w; + return t.map((function (t) { + var a = t.value.toString(), s = new zi(e.ctx), r = e.createRawDateString(t, a), + n = s.getDate(s.parseDate(r)); + if (e.utc || (n = s.getDate(s.parseDateWithTimezone(r))), void 0 === i.config.xaxis.labels.format) { + var o = "dd MMM", l = i.config.xaxis.labels.datetimeFormatter; + "year" === t.unit && (o = l.year), "month" === t.unit && (o = l.month), "day" === t.unit && (o = l.day), "hour" === t.unit && (o = l.hour), "minute" === t.unit && (o = l.minute), "second" === t.unit && (o = l.second), a = s.formatDate(n, o) + } else a = s.formatDate(n, i.config.xaxis.labels.format); + return {dateString: r, position: t.position, value: a, unit: t.unit, year: t.year, month: t.month} + })) + } + }, { + key: "removeOverlappingTS", value: function (t) { + var e, i = this, a = new Mi(this.ctx), s = !1; + t.length > 0 && t[0].value && t.every((function (e) { + return e.value.length === t[0].value.length + })) && (s = !0, e = a.getTextRects(t[0].value).width); + var r = 0, n = t.map((function (n, o) { + if (o > 0 && i.w.config.xaxis.labels.hideOverlappingLabels) { + var l = s ? e : a.getTextRects(t[r].value).width, h = t[r].position; + return n.position > h + l + 10 ? (r = o, n) : null + } + return n + })); + return n = n.filter((function (t) { + return null !== t + })) + } + }, { + key: "_getYear", value: function (t, e, i) { + return t + Math.floor(e / 12) + i + } + }]), t + }(), Za = function () { + function t(e, a) { + i(this, t), this.ctx = a, this.w = a.w, this.el = e + } + + return s(t, [{ + key: "setupElements", value: function () { + var t = this.w, e = t.globals, i = t.config, a = i.chart.type; + e.axisCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble", "radar", "heatmap", "treemap"].includes(a), e.xyCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble"].includes(a), e.isBarHorizontal = ["bar", "rangeBar", "boxPlot"].includes(a) && i.plotOptions.bar.horizontal, e.chartClass = ".apexcharts".concat(e.chartID), e.dom.baseEl = this.el, e.dom.elWrap = document.createElement("div"), Mi.setAttrs(e.dom.elWrap, { + id: e.chartClass.substring(1), + class: "apexcharts-canvas ".concat(e.chartClass.substring(1)) + }), this.el.appendChild(e.dom.elWrap), e.dom.Paper = window.SVG().addTo(e.dom.elWrap), e.dom.Paper.attr({ + class: "apexcharts-svg", + "xmlns:data": "ApexChartsNS", + transform: "translate(".concat(i.chart.offsetX, ", ").concat(i.chart.offsetY, ")") + }), e.dom.Paper.node.style.background = "dark" !== i.theme.mode || i.chart.background ? "light" !== i.theme.mode || i.chart.background ? i.chart.background : "#fff" : "#343A3F", this.setSVGDimensions(), e.dom.elLegendForeign = document.createElementNS(e.SVGNS, "foreignObject"), Mi.setAttrs(e.dom.elLegendForeign, { + x: 0, + y: 0, + width: e.svgWidth, + height: e.svgHeight + }), e.dom.elLegendWrap = document.createElement("div"), e.dom.elLegendWrap.classList.add("apexcharts-legend"), e.dom.elWrap.appendChild(e.dom.elLegendWrap), e.dom.Paper.node.appendChild(e.dom.elLegendForeign), e.dom.elGraphical = e.dom.Paper.group().attr({class: "apexcharts-inner apexcharts-graphical"}), e.dom.elDefs = e.dom.Paper.defs(), e.dom.Paper.add(e.dom.elGraphical), e.dom.elGraphical.add(e.dom.elDefs) + } + }, { + key: "plotChartType", value: function (t, e) { + var i = this.w, a = this.ctx, s = i.config, r = i.globals, n = { + line: {series: [], i: []}, + area: {series: [], i: []}, + scatter: {series: [], i: []}, + bubble: {series: [], i: []}, + bar: {series: [], i: []}, + candlestick: {series: [], i: []}, + boxPlot: {series: [], i: []}, + rangeBar: {series: [], i: []}, + rangeArea: {series: [], seriesRangeEnd: [], i: []} + }, o = s.chart.type || "line", l = null, h = 0; + r.series.forEach((function (e, a) { + var s, c, + d = "column" === (null === (s = t[a]) || void 0 === s ? void 0 : s.type) ? "bar" : (null === (c = t[a]) || void 0 === c ? void 0 : c.type) || ("column" === o ? "bar" : o); + n[d] ? ("rangeArea" === d ? (n[d].series.push(r.seriesRangeStart[a]), n[d].seriesRangeEnd.push(r.seriesRangeEnd[a])) : n[d].series.push(e), n[d].i.push(a), "bar" === d && (i.globals.columnSeries = n.bar)) : ["heatmap", "treemap", "pie", "donut", "polarArea", "radialBar", "radar"].includes(d) ? l = d : console.warn("You have specified an unrecognized series type (".concat(d, ").")), o !== d && "scatter" !== d && h++ + })), h > 0 && (l && console.warn("Chart or series type ".concat(l, " cannot appear with other chart or series types.")), n.bar.series.length > 0 && s.plotOptions.bar.horizontal && (h -= n.bar.series.length, n.bar = { + series: [], + i: [] + }, i.globals.columnSeries = { + series: [], + i: [] + }, console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"))), r.comboCharts || (r.comboCharts = h > 0); + var c = new Ga(a, e), d = new za(a, e); + a.pie = new Ya(a); + var u = new Oa(a); + a.rangeBar = new Fa(a, e); + var g = new Ha(a), p = []; + if (r.comboCharts) { + var x, b, m = new Pi(a); + if (n.area.series.length > 0) (x = p).push.apply(x, f(m.drawSeriesByGroup(n.area, r.areaGroups, "area", c))); + if (n.bar.series.length > 0) if (s.chart.stacked) { + var v = new Ta(a, e); + p.push(v.draw(n.bar.series, n.bar.i)) + } else a.bar = new Ia(a, e), p.push(a.bar.draw(n.bar.series, n.bar.i)); + if (n.rangeArea.series.length > 0 && p.push(c.draw(n.rangeArea.series, "rangeArea", n.rangeArea.i, n.rangeArea.seriesRangeEnd)), n.line.series.length > 0) (b = p).push.apply(b, f(m.drawSeriesByGroup(n.line, r.lineGroups, "line", c))); + if (n.candlestick.series.length > 0 && p.push(d.draw(n.candlestick.series, "candlestick", n.candlestick.i)), n.boxPlot.series.length > 0 && p.push(d.draw(n.boxPlot.series, "boxPlot", n.boxPlot.i)), n.rangeBar.series.length > 0 && p.push(a.rangeBar.draw(n.rangeBar.series, n.rangeBar.i)), n.scatter.series.length > 0) { + var y = new Ga(a, e, !0); + p.push(y.draw(n.scatter.series, "scatter", n.scatter.i)) + } + if (n.bubble.series.length > 0) { + var w = new Ga(a, e, !0); + p.push(w.draw(n.bubble.series, "bubble", n.bubble.i)) + } + } else switch (s.chart.type) { + case"line": + p = c.draw(r.series, "line"); + break; + case"area": + p = c.draw(r.series, "area"); + break; + case"bar": + if (s.chart.stacked) p = new Ta(a, e).draw(r.series); else a.bar = new Ia(a, e), p = a.bar.draw(r.series); + break; + case"candlestick": + p = new za(a, e).draw(r.series, "candlestick"); + break; + case"boxPlot": + p = new za(a, e).draw(r.series, s.chart.type); + break; + case"rangeBar": + p = a.rangeBar.draw(r.series); + break; + case"rangeArea": + p = c.draw(r.seriesRangeStart, "rangeArea", void 0, r.seriesRangeEnd); + break; + case"heatmap": + p = new Ra(a, e).draw(r.series); + break; + case"treemap": + p = new ja(a, e).draw(r.series); + break; + case"pie": + case"donut": + case"polarArea": + p = a.pie.draw(r.series); + break; + case"radialBar": + p = u.draw(r.series); + break; + case"radar": + p = g.draw(r.series); + break; + default: + p = c.draw(r.series) + } + return p + } + }, { + key: "setSVGDimensions", value: function () { + var t = this.w, e = t.globals, i = t.config; + i.chart.width = i.chart.width || "100%", i.chart.height = i.chart.height || "auto", e.svgWidth = i.chart.width, e.svgHeight = i.chart.height; + var a = v.getDimensions(this.el), s = i.chart.width.toString().split(/[0-9]+/g).pop(); + "%" === s ? v.isNumber(a[0]) && (0 === a[0].width && (a = v.getDimensions(this.el.parentNode)), e.svgWidth = a[0] * parseInt(i.chart.width, 10) / 100) : "px" !== s && "" !== s || (e.svgWidth = parseInt(i.chart.width, 10)); + var r = String(i.chart.height).toString().split(/[0-9]+/g).pop(); + if ("auto" !== e.svgHeight && "" !== e.svgHeight) if ("%" === r) { + var n = v.getDimensions(this.el.parentNode); + e.svgHeight = n[1] * parseInt(i.chart.height, 10) / 100 + } else e.svgHeight = parseInt(i.chart.height, 10); else e.svgHeight = e.axisCharts ? e.svgWidth / 1.61 : e.svgWidth / 1.2; + if (e.svgWidth = Math.max(e.svgWidth, 0), e.svgHeight = Math.max(e.svgHeight, 0), Mi.setAttrs(e.dom.Paper.node, { + width: e.svgWidth, + height: e.svgHeight + }), "%" !== r) { + var o = i.chart.sparkline.enabled ? 0 : e.axisCharts ? i.chart.parentHeightOffset : 0; + e.dom.Paper.node.parentNode.parentNode.style.minHeight = "".concat(e.svgHeight + o, "px") + } + e.dom.elWrap.style.width = "".concat(e.svgWidth, "px"), e.dom.elWrap.style.height = "".concat(e.svgHeight, "px") + } + }, { + key: "shiftGraphPosition", value: function () { + var t = this.w.globals, e = t.translateY, i = t.translateX; + Mi.setAttrs(t.dom.elGraphical.node, {transform: "translate(".concat(i, ", ").concat(e, ")")}) + } + }, { + key: "resizeNonAxisCharts", value: function () { + var t = this.w, e = t.globals, i = 0, a = t.config.chart.sparkline.enabled ? 1 : 15; + a += t.config.grid.padding.bottom, ["top", "bottom"].includes(t.config.legend.position) && t.config.legend.show && !t.config.legend.floating && (i = new ba(this.ctx).legendHelpers.getLegendDimensions().clwh + 7); + var s = t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"), + r = 2.05 * t.globals.radialSize; + if (s && !t.config.chart.sparkline.enabled && 0 !== t.config.plotOptions.radialBar.startAngle) { + var n = v.getBoundingClientRect(s); + r = n.bottom; + var o = n.bottom - n.top; + r = Math.max(2.05 * t.globals.radialSize, o) + } + var l = Math.ceil(r + e.translateY + i + a); + e.dom.elLegendForeign && e.dom.elLegendForeign.setAttribute("height", l), t.config.chart.height && String(t.config.chart.height).includes("%") || (e.dom.elWrap.style.height = "".concat(l, "px"), Mi.setAttrs(e.dom.Paper.node, {height: l}), e.dom.Paper.node.parentNode.parentNode.style.minHeight = "".concat(l, "px")) + } + }, { + key: "coreCalculations", value: function () { + new ia(this.ctx).init() + } + }, { + key: "resetGlobals", value: function () { + var t = this, e = function () { + return t.w.config.series.map((function () { + return [] + })) + }, i = new Bi, a = this.w.globals, + s = {dataWasParsed: a.dataWasParsed, originalSeries: a.originalSeries}; + i.initGlobalVars(a), a.seriesXvalues = e(), a.seriesYvalues = e(), s.dataWasParsed && (a.dataWasParsed = s.dataWasParsed, a.originalSeries = s.originalSeries) + } + }, { + key: "isMultipleY", value: function () { + return !!(Array.isArray(this.w.config.yaxis) && this.w.config.yaxis.length > 1) && (this.w.globals.isMultipleYAxis = !0, !0) + } + }, { + key: "xySettings", value: function () { + var t = this.w, e = null; + if (t.globals.axisCharts) { + if ("back" === t.config.xaxis.crosshairs.position && new oa(this.ctx).drawXCrosshairs(), "back" === t.config.yaxis[0].crosshairs.position && new oa(this.ctx).drawYCrosshairs(), "datetime" === t.config.xaxis.type && void 0 === t.config.xaxis.labels.formatter) { + this.ctx.timeScale = new qa(this.ctx); + var i = []; + isFinite(t.globals.minX) && isFinite(t.globals.maxX) && !t.globals.isBarHorizontal ? i = this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minX, t.globals.maxX) : t.globals.isBarHorizontal && (i = this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minY, t.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(i) + } + e = new Pi(this.ctx).getCalculatedRatios() + } + return e + } + }, { + key: "updateSourceChart", value: function (t) { + this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions({ + chart: { + selection: { + xaxis: { + min: t.w.globals.minX, + max: t.w.globals.maxX + } + } + } + }, !1, !1) + } + }, { + key: "setupBrushHandler", value: function () { + var t = this, e = this.ctx, i = this.w; + if (i.config.chart.brush.enabled && "function" != typeof i.config.chart.events.selection) { + var a = Array.isArray(i.config.chart.brush.targets) ? i.config.chart.brush.targets : [i.config.chart.brush.target]; + a.forEach((function (i) { + var a = e.constructor.getChartByID(i); + a.w.globals.brushSource = t.ctx, "function" != typeof a.w.config.chart.events.zoomed && (a.w.config.chart.events.zoomed = function () { + return t.updateSourceChart(a) + }), "function" != typeof a.w.config.chart.events.scrolled && (a.w.config.chart.events.scrolled = function () { + return t.updateSourceChart(a) + }) + })), i.config.chart.events.selection = function (t, i) { + a.forEach((function (t) { + e.constructor.getChartByID(t).ctx.updateHelpers._updateOptions({ + xaxis: { + min: i.xaxis.min, + max: i.xaxis.max + } + }, !1, !1, !1, !1) + })) + } + } + } + }]), t + }(), $a = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "_updateOptions", value: function (t) { + var e = this, i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], + s = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], + r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; + return new Promise((function (n) { + var o = [e.ctx]; + s && (o = e.ctx.getSyncedCharts()), e.ctx.w.globals.isExecCalled && (o = [e.ctx], e.ctx.w.globals.isExecCalled = !1), o.forEach((function (s, l) { + var h = s.w; + if (h.globals.shouldAnimate = a, i || (h.globals.resized = !0, h.globals.dataChanged = !0, a && s.series.getPreviousPaths()), t && "object" === b(t) && (s.config = new Wi(t), t = Pi.extendArrayProps(s.config, t, h), s.w.globals.chartID !== e.ctx.w.globals.chartID && delete t.series, h.config = v.extend(h.config, t), r && (h.globals.lastXAxis = t.xaxis ? v.clone(t.xaxis) : [], h.globals.lastYAxis = t.yaxis ? v.clone(t.yaxis) : [], h.globals.initialConfig = v.extend({}, h.config), h.globals.initialSeries = v.clone(h.config.series), t.series))) { + for (var c = 0; c < h.globals.collapsedSeriesIndices.length; c++) { + var d = h.config.series[h.globals.collapsedSeriesIndices[c]]; + h.globals.collapsedSeries[c].data = h.globals.axisCharts ? d.data.slice() : d + } + for (var u = 0; u < h.globals.ancillaryCollapsedSeriesIndices.length; u++) { + var g = h.config.series[h.globals.ancillaryCollapsedSeriesIndices[u]]; + h.globals.ancillaryCollapsedSeries[u].data = h.globals.axisCharts ? g.data.slice() : g + } + s.series.emptyCollapsedSeries(h.config.series) + } + return s.update(t).then((function () { + l === o.length - 1 && n(s) + })) + })) + })) + } + }, { + key: "_updateSeries", value: function (t, e) { + var i = this, a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return new Promise((function (s) { + var r = i.w; + return r.globals.shouldAnimate = e, r.globals.dataChanged = !0, e && i.ctx.series.getPreviousPaths(), i.ctx.data.resetParsingFlags(), i.ctx.data.parseData(t), a && (r.globals.initialConfig.series = v.clone(r.config.series), r.globals.initialSeries = v.clone(r.config.series)), i.ctx.update().then((function () { + s(i.ctx) + })) + })) + } + }, { + key: "_extendSeries", value: function (t, e) { + var i = this.w, a = i.config.series[e]; + return u(u({}, i.config.series[e]), {}, { + name: t.name ? t.name : null == a ? void 0 : a.name, + color: t.color ? t.color : null == a ? void 0 : a.color, + type: t.type ? t.type : null == a ? void 0 : a.type, + group: t.group ? t.group : null == a ? void 0 : a.group, + hidden: void 0 !== t.hidden ? t.hidden : null == a ? void 0 : a.hidden, + data: t.data ? t.data : null == a ? void 0 : a.data, + zIndex: void 0 !== t.zIndex ? t.zIndex : e + }) + } + }, { + key: "toggleDataPointSelection", value: function (t, e) { + var i = this.w, a = null, s = ".apexcharts-series[data\\:realIndex='".concat(t, "']"); + return i.globals.axisCharts ? a = i.globals.dom.Paper.findOne("".concat(s, " path[j='").concat(e, "'], ").concat(s, " circle[j='").concat(e, "'], ").concat(s, " rect[j='").concat(e, "']")) : void 0 === e && (a = i.globals.dom.Paper.findOne("".concat(s, " path[j='").concat(t, "']")), "pie" !== i.config.chart.type && "polarArea" !== i.config.chart.type && "donut" !== i.config.chart.type || this.ctx.pie.pieClicked(t)), a ? (new Mi(this.ctx).pathMouseDown(a, null), a.node ? a.node : null) : (console.warn("toggleDataPointSelection: Element not found"), null) + } + }, { + key: "forceXAxisUpdate", value: function (t) { + var e = this.w; + if (["min", "max"].forEach((function (i) { + void 0 !== t.xaxis[i] && (e.config.xaxis[i] = t.xaxis[i], e.globals.lastXAxis[i] = t.xaxis[i]) + })), t.xaxis.categories && t.xaxis.categories.length && (e.config.xaxis.categories = t.xaxis.categories), e.config.xaxis.convertedCatToNumeric) { + var i = new Ni(t); + t = i.convertCatToNumericXaxis(t, this.ctx) + } + return t + } + }, { + key: "forceYAxisUpdate", value: function (t) { + return t.chart && t.chart.stacked && "100%" === t.chart.stackType && (Array.isArray(t.yaxis) ? t.yaxis.forEach((function (e, i) { + t.yaxis[i].min = 0, t.yaxis[i].max = 100 + })) : (t.yaxis.min = 0, t.yaxis.max = 100)), t + } + }, { + key: "revertDefaultAxisMinMax", value: function (t) { + var e = this, i = this.w, a = i.globals.lastXAxis, s = i.globals.lastYAxis; + t && t.xaxis && (a = t.xaxis), t && t.yaxis && (s = t.yaxis), i.config.xaxis.min = a.min, i.config.xaxis.max = a.max; + var r = function (t) { + void 0 !== s[t] && (i.config.yaxis[t].min = s[t].min, i.config.yaxis[t].max = s[t].max) + }; + i.config.yaxis.map((function (t, a) { + i.globals.zoomed || void 0 !== s[a] ? r(a) : void 0 !== e.ctx.opts.yaxis[a] && (t.min = e.ctx.opts.yaxis[a].min, t.max = e.ctx.opts.yaxis[a].max) + })) + } + }]), t + }(); + !function () { + function t() { + for (var t = arguments.length > 0 && arguments[0] !== h ? arguments[0] : [], s = arguments.length > 1 ? arguments[1] : h, r = arguments.length > 2 ? arguments[2] : h, n = arguments.length > 3 ? arguments[3] : h, o = arguments.length > 4 ? arguments[4] : h, l = arguments.length > 5 ? arguments[5] : h, h = arguments.length > 6 ? arguments[6] : h, c = t.slice(s, r || h), d = n.slice(o, l || h), u = 0, g = { + pos: [0, 0], + start: [0, 0] + }, p = {pos: [0, 0], start: [0, 0]}; ;) { + if (c[u] = e.call(g, c[u]), d[u] = e.call(p, d[u]), c[u][0] != d[u][0] || "M" == c[u][0] || "A" == c[u][0] && (c[u][4] != d[u][4] || c[u][5] != d[u][5]) ? (Array.prototype.splice.apply(c, [u, 1].concat(a.call(g, c[u]))), Array.prototype.splice.apply(d, [u, 1].concat(a.call(p, d[u])))) : (c[u] = i.call(g, c[u]), d[u] = i.call(p, d[u])), ++u == c.length && u == d.length) break; + u == c.length && c.push(["C", g.pos[0], g.pos[1], g.pos[0], g.pos[1], g.pos[0], g.pos[1]]), u == d.length && d.push(["C", p.pos[0], p.pos[1], p.pos[0], p.pos[1], p.pos[0], p.pos[1]]) + } + return {start: c, dest: d} + } + + function e(t) { + switch (t[0]) { + case"z": + case"Z": + t[0] = "L", t[1] = this.start[0], t[2] = this.start[1]; + break; + case"H": + t[0] = "L", t[2] = this.pos[1]; + break; + case"V": + t[0] = "L", t[2] = t[1], t[1] = this.pos[0]; + break; + case"T": + t[0] = "Q", t[3] = t[1], t[4] = t[2], t[1] = this.reflection[1], t[2] = this.reflection[0]; + break; + case"S": + t[0] = "C", t[6] = t[4], t[5] = t[3], t[4] = t[2], t[3] = t[1], t[2] = this.reflection[1], t[1] = this.reflection[0] + } + return t + } + + function i(t) { + var e = t.length; + return this.pos = [t[e - 2], t[e - 1]], -1 != "SCQT".indexOf(t[0]) && (this.reflection = [2 * this.pos[0] - t[e - 4], 2 * this.pos[1] - t[e - 3]]), t + } + + function a(t) { + var e = [t]; + switch (t[0]) { + case"M": + return this.pos = this.start = [t[1], t[2]], e; + case"L": + t[5] = t[3] = t[1], t[6] = t[4] = t[2], t[1] = this.pos[0], t[2] = this.pos[1]; + break; + case"Q": + t[6] = t[4], t[5] = t[3], t[4] = 1 * t[4] / 3 + 2 * t[2] / 3, t[3] = 1 * t[3] / 3 + 2 * t[1] / 3, t[2] = 1 * this.pos[1] / 3 + 2 * t[2] / 3, t[1] = 1 * this.pos[0] / 3 + 2 * t[1] / 3; + break; + case"A": + e = function (t, e) { + var i, a, s, r, n, o, l, h, c, d, u, g, p, f, x, b, m, v, y, w, k, A, C, S, L, M, + P = Math.abs(e[1]), I = Math.abs(e[2]), T = e[3] % 360, z = e[4], X = e[5], R = e[6], + E = e[7], Y = new bt(t), H = new bt(R, E), O = []; + if (0 === P || 0 === I || Y.x === H.x && Y.y === H.y) return [["C", Y.x, Y.y, H.x, H.y, H.x, H.y]]; + i = new bt((Y.x - H.x) / 2, (Y.y - H.y) / 2).transform((new vt).rotate(T)), a = i.x * i.x / (P * P) + i.y * i.y / (I * I), a > 1 && (P *= a = Math.sqrt(a), I *= a); + s = (new vt).rotate(T).scale(1 / P, 1 / I).rotate(-T), Y = Y.transform(s), H = H.transform(s), r = [H.x - Y.x, H.y - Y.y], o = r[0] * r[0] + r[1] * r[1], n = Math.sqrt(o), r[0] /= n, r[1] /= n, l = o < 4 ? Math.sqrt(1 - o / 4) : 0, z === X && (l *= -1); + h = new bt((H.x + Y.x) / 2 + l * -r[1], (H.y + Y.y) / 2 + l * r[0]), c = new bt(Y.x - h.x, Y.y - h.y), d = new bt(H.x - h.x, H.y - h.y), u = Math.acos(c.x / Math.sqrt(c.x * c.x + c.y * c.y)), c.y < 0 && (u *= -1); + g = Math.acos(d.x / Math.sqrt(d.x * d.x + d.y * d.y)), d.y < 0 && (g *= -1); + X && u > g && (g += 2 * Math.PI); + !X && u < g && (g -= 2 * Math.PI); + for (f = Math.ceil(2 * Math.abs(u - g) / Math.PI), b = [], m = u, p = (g - u) / f, x = 4 * Math.tan(p / 4) / 3, k = 0; k <= f; k++) y = Math.cos(m), v = Math.sin(m), w = new bt(h.x + y, h.y + v), b[k] = [new bt(w.x + x * v, w.y - x * y), w, new bt(w.x - x * v, w.y + x * y)], m += p; + for (b[0][0] = b[0][1].clone(), b[b.length - 1][2] = b[b.length - 1][1].clone(), s = (new vt).rotate(T).scale(P, I).rotate(-T), k = 0, A = b.length; k < A; k++) b[k][0] = b[k][0].transform(s), b[k][1] = b[k][1].transform(s), b[k][2] = b[k][2].transform(s); + for (k = 1, A = b.length; k < A; k++) C = (w = b[k - 1][2]).x, S = w.y, L = (w = b[k][0]).x, M = w.y, R = (w = b[k][1]).x, E = w.y, O.push(["C", C, S, L, M, R, E]); + return O + }(this.pos, t), t = e[0] + } + return t[0] = "C", this.pos = [t[5], t[6]], this.reflection = [2 * t[5] - t[3], 2 * t[6] - t[4]], e + } + + function s() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + e = arguments.length > 1 ? arguments[1] : void 0; + if (!1 === e) return !1; + for (var i = e, a = t.length; i < a; ++i) if ("M" == t[i][0]) return i; + return !1 + } + + Q(Ee, { + morph: function (e, i, a, r, n) { + for (var o = this.parse(e), l = this.parse(i), h = 0, c = 0, d = !1, u = !1; !1 !== h || !1 !== c;) { + var g; + d = s(o, !1 !== h && h + 1), u = s(l, !1 !== c && c + 1), !1 === h && (h = 0 == (g = new Ee(p.start).bbox()).height || 0 == g.width ? o.push(o[0]) - 1 : o.push(["M", g.x + g.width / 2, g.y + g.height / 2]) - 1), !1 === c && (c = 0 == (g = new Ee(p.dest).bbox()).height || 0 == g.width ? l.push(l[0]) - 1 : l.push(["M", g.x + g.width / 2, g.y + g.height / 2]) - 1); + var p = t(o, h, d, l, c, u); + o = o.slice(0, h).concat(p.start, !1 === d ? [] : o.slice(d)), l = l.slice(0, c).concat(p.dest, !1 === u ? [] : l.slice(u)), h = !1 !== d && h + p.start.length, c = !1 !== u && c + p.dest.length + } + this._array = o, this.destination = new Ee, this.destination._array = l; + var f = this.fromArray(o.map((function (t, e) { + var i = l[e].map((function (i, s) { + return 0 === s ? i : r.step(t[s], l[e][s], a, n[e], n) + })); + return i + }))); + return f + } + }) + }(); + const Ja = t => (t.changedTouches && (t = t.changedTouches[0]), {x: t.clientX, y: t.clientY}); + + class Qa { + constructor(t) { + t.remember("_draggable", this), this.el = t, this.drag = this.drag.bind(this), this.startDrag = this.startDrag.bind(this), this.endDrag = this.endDrag.bind(this) + } + + init(t) { + t ? (this.el.on("mousedown.drag", this.startDrag), this.el.on("touchstart.drag", this.startDrag, {passive: !1})) : (this.el.off("mousedown.drag"), this.el.off("touchstart.drag")) + } + + startDrag(t) { + const e = !t.type.indexOf("mouse"); + if (e && 1 !== t.which && 0 !== t.buttons) return; + if (this.el.dispatch("beforedrag", {event: t, handler: this}).defaultPrevented) return; + t.preventDefault(), t.stopPropagation(), this.init(!1), this.box = this.el.bbox(), this.lastClick = this.el.point(Ja(t)); + const i = (e ? "mouseup" : "touchend") + ".drag"; + zt(window, (e ? "mousemove" : "touchmove") + ".drag", this.drag, this, {passive: !1}), zt(window, i, this.endDrag, this, {passive: !1}), this.el.fire("dragstart", { + event: t, + handler: this, + box: this.box + }) + } + + drag(t) { + const {box: e, lastClick: i} = this, a = this.el.point(Ja(t)), s = a.x - i.x, r = a.y - i.y; + if (!s && !r) return e; + const n = e.x + s, o = e.y + r; + this.box = new kt(n, o, e.w, e.h), this.lastClick = a, this.el.dispatch("dragmove", { + event: t, + handler: this, + box: this.box + }).defaultPrevented || this.move(n, o) + } + + move(t, e) { + "svg" === this.el.type ? gi.prototype.move.call(this.el, t, e) : this.el.move(t, e) + } + + endDrag(t) { + this.drag(t), this.el.fire("dragend", { + event: t, + handler: this, + box: this.box + }), Xt(window, "mousemove.drag"), Xt(window, "touchmove.drag"), Xt(window, "mouseup.drag"), Xt(window, "touchend.drag"), this.init(!0) + } + } + + /*! + * @svgdotjs/svg.select.js - An extension of svg.js which allows to select elements with mouse + * @version 4.0.1 + * https://github.com/svgdotjs/svg.select.js + * + * @copyright Ulrich-Matthias Schäfer + * @license MIT + * + * BUILT: Mon Jul 01 2024 15:04:42 GMT+0200 (Central European Summer Time) + */ + function Ka(t, e, i, a = null) { + return function (s) { + s.preventDefault(), s.stopPropagation(); + var r = s.pageX || s.touches[0].pageX, n = s.pageY || s.touches[0].pageY; + e.fire(t, {x: r, y: n, event: s, index: a, points: i}) + } + } + + function ts([t, e], {a: i, b: a, c: s, d: r, e: n, f: o}) { + return [t * i + e * s + n, t * a + e * r + o] + } + + Q(Gt, { + draggable(t = !0) { + return (this.remember("_draggable") || new Qa(this)).init(t), this + } + }); + let es = class { + constructor(t) { + this.el = t, t.remember("_selectHandler", this), this.selection = new gi, this.order = ["lt", "t", "rt", "r", "rb", "b", "lb", "l", "rot"], this.mutationHandler = this.mutationHandler.bind(this); + const e = F(); + this.observer = new e.MutationObserver(this.mutationHandler) + } + + init(t) { + this.createHandle = t.createHandle || this.createHandleFn, this.createRot = t.createRot || this.createRotFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.updateRot = t.updateRot || this.updateRotFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createResizeHandles(), this.updateResizeHandles(), this.createRotationHandle(), this.updateRotationHandle(), this.observer.observe(this.el.node, {attributes: !0}) + } + + active(t, e) { + if (!t) return this.selection.clear().remove(), void this.observer.disconnect(); + this.init(e) + } + + createSelection() { + this.selection.polygon(this.handlePoints).addClass("svg_select_shape") + } + + updateSelection() { + this.selection.get(0).plot(this.handlePoints) + } + + createResizeHandles() { + this.handlePoints.forEach(((t, e, i) => { + const a = this.order[e]; + this.createHandle.call(this, this.selection, t, e, i, a), this.selection.get(e + 1).addClass("svg_select_handle svg_select_handle_" + a).on("mousedown.selection touchstart.selection", Ka(a, this.el, this.handlePoints, e)) + })) + } + + createHandleFn(t) { + t.polyline() + } + + updateHandleFn(t, e, i, a) { + const s = a.at(i - 1), r = a[(i + 1) % a.length], n = e, o = [n[0] - s[0], n[1] - s[1]], + l = [n[0] - r[0], n[1] - r[1]], h = Math.sqrt(o[0] * o[0] + o[1] * o[1]), + c = Math.sqrt(l[0] * l[0] + l[1] * l[1]), d = [o[0] / h, o[1] / h], u = [l[0] / c, l[1] / c], + g = [n[0] - 10 * d[0], n[1] - 10 * d[1]], p = [n[0] - 10 * u[0], n[1] - 10 * u[1]]; + t.plot([g, n, p]) + } + + updateResizeHandles() { + this.handlePoints.forEach(((t, e, i) => { + const a = this.order[e]; + this.updateHandle.call(this, this.selection.get(e + 1), t, e, i, a) + })) + } + + createRotFn(t) { + t.line(), t.circle(5) + } + + getPoint(t) { + return this.handlePoints[this.order.indexOf(t)] + } + + getPointHandle(t) { + return this.selection.get(this.order.indexOf(t) + 1) + } + + updateRotFn(t, e) { + const i = this.getPoint("t"); + t.get(0).plot(i[0], i[1], e[0], e[1]), t.get(1).center(e[0], e[1]) + } + + createRotationHandle() { + const t = this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection", Ka("rot", this.el, this.handlePoints)); + this.createRot.call(this, t) + } + + updateRotationHandle() { + const t = this.selection.findOne("g.svg_select_handle_rot"); + this.updateRot(t, this.rotationPoint, this.handlePoints) + } + + updatePoints() { + const t = this.el.bbox(), e = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM()); + this.handlePoints = this.getHandlePoints(t).map((t => ts(t, e))), this.rotationPoint = ts(this.getRotationPoint(t), e) + } + + getHandlePoints({x: t, x2: e, y: i, y2: a, cx: s, cy: r} = this.el.bbox()) { + return [[t, i], [s, i], [e, i], [e, r], [e, a], [s, a], [t, a], [t, r]] + } + + getRotationPoint({y: t, cx: e} = this.el.bbox()) { + return [e, t - 20] + } + + mutationHandler() { + this.updatePoints(), this.updateSelection(), this.updateResizeHandles(), this.updateRotationHandle() + } + }; + const is = t => function (e = !0, i = {}) { + "object" == typeof e && (i = e, e = !0); + let a = this.remember("_" + t.name); + return a || (e.prototype instanceof es ? (a = new e(this), e = !0) : a = new t(this), this.remember("_" + t.name, a)), a.active(e, i), this + }; + /*! + * @svgdotjs/svg.resize.js - An extension for svg.js which allows to resize elements which are selected + * @version 2.0.4 + * https://github.com/svgdotjs/svg.resize.js + * + * @copyright [object Object] + * @license MIT + * + * BUILT: Fri Sep 13 2024 12:43:14 GMT+0200 (Central European Summer Time) + */ + + /*! + * @svgdotjs/svg.select.js - An extension of svg.js which allows to select elements with mouse + * @version 4.0.1 + * https://github.com/svgdotjs/svg.select.js + * + * @copyright Ulrich-Matthias Schäfer + * @license MIT + * + * BUILT: Mon Jul 01 2024 15:04:42 GMT+0200 (Central European Summer Time) + */ + function as(t, e, i, a = null) { + return function (s) { + s.preventDefault(), s.stopPropagation(); + var r = s.pageX || s.touches[0].pageX, n = s.pageY || s.touches[0].pageY; + e.fire(t, {x: r, y: n, event: s, index: a, points: i}) + } + } + + function ss([t, e], {a: i, b: a, c: s, d: r, e: n, f: o}) { + return [t * i + e * s + n, t * a + e * r + o] + } + + Q(Gt, {select: is(es)}), Q([Ge, je, xe], { + pointSelect: is(class { + constructor(t) { + this.el = t, t.remember("_pointSelectHandler", this), this.selection = new gi, this.order = ["lt", "t", "rt", "r", "rb", "b", "lb", "l", "rot"], this.mutationHandler = this.mutationHandler.bind(this); + const e = F(); + this.observer = new e.MutationObserver(this.mutationHandler) + } + + init(t) { + this.createHandle = t.createHandle || this.createHandleFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createPointHandles(), this.updatePointHandles(), this.observer.observe(this.el.node, {attributes: !0}) + } + + active(t, e) { + if (!t) return this.selection.clear().remove(), void this.observer.disconnect(); + this.init(e) + } + + createSelection() { + this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect") + } + + updateSelection() { + this.selection.get(0).plot(this.points) + } + + createPointHandles() { + this.points.forEach(((t, e, i) => { + this.createHandle.call(this, this.selection, t, e, i), this.selection.get(e + 1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection", Ka("point", this.el, this.points, e)) + })) + } + + createHandleFn(t) { + t.circle(5) + } + + updateHandleFn(t, e) { + t.center(e[0], e[1]) + } + + updatePointHandles() { + this.points.forEach(((t, e, i) => { + this.updateHandle.call(this, this.selection.get(e + 1), t, e, i) + })) + } + + updatePoints() { + const t = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM()); + this.points = this.el.array().map((e => ts(e, t))) + } + + mutationHandler() { + this.updatePoints(), this.updateSelection(), this.updatePointHandles() + } + }) + }); + + class rs { + constructor(t) { + this.el = t, t.remember("_selectHandler", this), this.selection = new gi, this.order = ["lt", "t", "rt", "r", "rb", "b", "lb", "l", "rot"], this.mutationHandler = this.mutationHandler.bind(this); + const e = F(); + this.observer = new e.MutationObserver(this.mutationHandler) + } + + init(t) { + this.createHandle = t.createHandle || this.createHandleFn, this.createRot = t.createRot || this.createRotFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.updateRot = t.updateRot || this.updateRotFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createResizeHandles(), this.updateResizeHandles(), this.createRotationHandle(), this.updateRotationHandle(), this.observer.observe(this.el.node, {attributes: !0}) + } + + active(t, e) { + if (!t) return this.selection.clear().remove(), void this.observer.disconnect(); + this.init(e) + } + + createSelection() { + this.selection.polygon(this.handlePoints).addClass("svg_select_shape") + } + + updateSelection() { + this.selection.get(0).plot(this.handlePoints) + } + + createResizeHandles() { + this.handlePoints.forEach(((t, e, i) => { + const a = this.order[e]; + this.createHandle.call(this, this.selection, t, e, i, a), this.selection.get(e + 1).addClass("svg_select_handle svg_select_handle_" + a).on("mousedown.selection touchstart.selection", as(a, this.el, this.handlePoints, e)) + })) + } + + createHandleFn(t) { + t.polyline() + } + + updateHandleFn(t, e, i, a) { + const s = a.at(i - 1), r = a[(i + 1) % a.length], n = e, o = [n[0] - s[0], n[1] - s[1]], + l = [n[0] - r[0], n[1] - r[1]], h = Math.sqrt(o[0] * o[0] + o[1] * o[1]), + c = Math.sqrt(l[0] * l[0] + l[1] * l[1]), d = [o[0] / h, o[1] / h], u = [l[0] / c, l[1] / c], + g = [n[0] - 10 * d[0], n[1] - 10 * d[1]], p = [n[0] - 10 * u[0], n[1] - 10 * u[1]]; + t.plot([g, n, p]) + } + + updateResizeHandles() { + this.handlePoints.forEach(((t, e, i) => { + const a = this.order[e]; + this.updateHandle.call(this, this.selection.get(e + 1), t, e, i, a) + })) + } + + createRotFn(t) { + t.line(), t.circle(5) + } + + getPoint(t) { + return this.handlePoints[this.order.indexOf(t)] + } + + getPointHandle(t) { + return this.selection.get(this.order.indexOf(t) + 1) + } + + updateRotFn(t, e) { + const i = this.getPoint("t"); + t.get(0).plot(i[0], i[1], e[0], e[1]), t.get(1).center(e[0], e[1]) + } + + createRotationHandle() { + const t = this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection", as("rot", this.el, this.handlePoints)); + this.createRot.call(this, t) + } + + updateRotationHandle() { + const t = this.selection.findOne("g.svg_select_handle_rot"); + this.updateRot(t, this.rotationPoint, this.handlePoints) + } + + updatePoints() { + const t = this.el.bbox(), e = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM()); + this.handlePoints = this.getHandlePoints(t).map((t => ss(t, e))), this.rotationPoint = ss(this.getRotationPoint(t), e) + } + + getHandlePoints({x: t, x2: e, y: i, y2: a, cx: s, cy: r} = this.el.bbox()) { + return [[t, i], [s, i], [e, i], [e, r], [e, a], [s, a], [t, a], [t, r]] + } + + getRotationPoint({y: t, cx: e} = this.el.bbox()) { + return [e, t - 20] + } + + mutationHandler() { + this.updatePoints(), this.updateSelection(), this.updateResizeHandles(), this.updateRotationHandle() + } + } + + const ns = t => function (e = !0, i = {}) { + "object" == typeof e && (i = e, e = !0); + let a = this.remember("_" + t.name); + return a || (e.prototype instanceof rs ? (a = new e(this), e = !0) : a = new t(this), this.remember("_" + t.name, a)), a.active(e, i), this + }; + Q(Gt, {select: ns(rs)}), Q([Ge, je, xe], { + pointSelect: ns(class { + constructor(t) { + this.el = t, t.remember("_pointSelectHandler", this), this.selection = new gi, this.order = ["lt", "t", "rt", "r", "rb", "b", "lb", "l", "rot"], this.mutationHandler = this.mutationHandler.bind(this); + const e = F(); + this.observer = new e.MutationObserver(this.mutationHandler) + } + + init(t) { + this.createHandle = t.createHandle || this.createHandleFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createPointHandles(), this.updatePointHandles(), this.observer.observe(this.el.node, {attributes: !0}) + } + + active(t, e) { + if (!t) return this.selection.clear().remove(), void this.observer.disconnect(); + this.init(e) + } + + createSelection() { + this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect") + } + + updateSelection() { + this.selection.get(0).plot(this.points) + } + + createPointHandles() { + this.points.forEach(((t, e, i) => { + this.createHandle.call(this, this.selection, t, e, i), this.selection.get(e + 1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection", as("point", this.el, this.points, e)) + })) + } + + createHandleFn(t) { + t.circle(5) + } + + updateHandleFn(t, e) { + t.center(e[0], e[1]) + } + + updatePointHandles() { + this.points.forEach(((t, e, i) => { + this.updateHandle.call(this, this.selection.get(e + 1), t, e, i) + })) + } + + updatePoints() { + const t = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM()); + this.points = this.el.array().map((e => ss(e, t))) + } + + mutationHandler() { + this.updatePoints(), this.updateSelection(), this.updatePointHandles() + } + }) + }); + const os = t => (t.changedTouches && (t = t.changedTouches[0]), {x: t.clientX, y: t.clientY}), ls = t => { + let e = 1 / 0, i = 1 / 0, a = -1 / 0, s = -1 / 0; + for (let r = 0; r < t.length; r++) { + const n = t[r]; + e = Math.min(e, n[0]), i = Math.min(i, n[1]), a = Math.max(a, n[0]), s = Math.max(s, n[1]) + } + return new kt(e, i, a - e, s - i) + }; + + class hs { + constructor(t) { + this.el = t, t.remember("_ResizeHandler", this), this.lastCoordinates = null, this.eventType = "", this.lastEvent = null, this.handleResize = this.handleResize.bind(this), this.resize = this.resize.bind(this), this.endResize = this.endResize.bind(this), this.rotate = this.rotate.bind(this), this.movePoint = this.movePoint.bind(this) + } + + active(t, e) { + this.preserveAspectRatio = e.preserveAspectRatio ?? !1, this.aroundCenter = e.aroundCenter ?? !1, this.grid = e.grid ?? 0, this.degree = e.degree ?? 0, this.el.off(".resize"), t && (this.el.on(["lt.resize", "rt.resize", "rb.resize", "lb.resize", "t.resize", "r.resize", "b.resize", "l.resize", "rot.resize", "point.resize"], this.handleResize), this.lastEvent && ("rot" === this.eventType ? this.rotate(this.lastEvent) : "point" === this.eventType ? this.movePoint(this.lastEvent) : this.resize(this.lastEvent))) + } + + handleResize(t) { + this.eventType = t.type; + const {event: e, index: i, points: a} = t.detail, s = !e.type.indexOf("mouse"); + if (s && 1 !== (e.which || e.buttons)) return; + if (this.el.dispatch("beforeresize", {event: t, handler: this}).defaultPrevented) return; + this.box = this.el.bbox(), this.startPoint = this.el.point(os(e)), this.index = i, this.points = a.slice(); + const r = (s ? "mousemove" : "touchmove") + ".resize", + n = (s ? "mouseup" : "touchcancel.resize touchend") + ".resize"; + "point" === t.type ? zt(window, r, this.movePoint) : "rot" === t.type ? zt(window, r, this.rotate) : zt(window, r, this.resize), zt(window, n, this.endResize) + } + + resize(t) { + this.lastEvent = t; + const e = this.snapToGrid(this.el.point(os(t))); + let i = e.x - this.startPoint.x, a = e.y - this.startPoint.y; + this.preserveAspectRatio && this.aroundCenter && (i *= 2, a *= 2); + const s = this.box.x + i, r = this.box.y + a, n = this.box.x2 + i, o = this.box.y2 + a; + let l = new kt(this.box); + if (this.eventType.includes("l") && (l.x = Math.min(s, this.box.x2), l.x2 = Math.max(s, this.box.x2)), this.eventType.includes("r") && (l.x = Math.min(n, this.box.x), l.x2 = Math.max(n, this.box.x)), this.eventType.includes("t") && (l.y = Math.min(r, this.box.y2), l.y2 = Math.max(r, this.box.y2)), this.eventType.includes("b") && (l.y = Math.min(o, this.box.y), l.y2 = Math.max(o, this.box.y)), l.width = l.x2 - l.x, l.height = l.y2 - l.y, this.preserveAspectRatio) { + const t = l.width / this.box.width, e = l.height / this.box.height, + i = ["lt", "t", "rt", "r", "rb", "b", "lb", "l"], a = (i.indexOf(this.eventType) + 4) % i.length, + s = this.aroundCenter ? [this.box.cx, this.box.cy] : this.points[a]; + let r = this.eventType.includes("t") || this.eventType.includes("b") ? e : t; + r = 2 === this.eventType.length ? Math.max(t, e) : r, l = function (t, e, i) { + const a = [[t.x, t.y], [t.x + t.width, t.y], [t.x + t.width, t.y + t.height], [t.x, t.y + t.height]].map((([t, a]) => { + const s = t - e[0], r = (a - e[1]) * i; + return [s * i + e[0], r + e[1]] + })); + return ls(a) + }(this.box, s, r) + } + this.el.dispatch("resize", { + box: new kt(l), + angle: 0, + eventType: this.eventType, + event: t, + handler: this + }).defaultPrevented || this.el.size(l.width, l.height).move(l.x, l.y) + } + + movePoint(t) { + this.lastEvent = t; + const {x: e, y: i} = this.snapToGrid(this.el.point(os(t))), a = this.el.array().slice(); + a[this.index] = [e, i], this.el.dispatch("resize", { + box: ls(a), + angle: 0, + eventType: this.eventType, + event: t, + handler: this + }).defaultPrevented || this.el.plot(a) + } + + rotate(t) { + this.lastEvent = t; + const e = this.startPoint, i = this.el.point(os(t)), {cx: a, cy: s} = this.box, r = e.x - a, n = e.y - s, + o = i.x - a, l = i.y - s, h = Math.sqrt(r * r + n * n) * Math.sqrt(o * o + l * l); + if (0 === h) return; + let c = Math.acos((r * o + n * l) / h) / Math.PI * 180; + if (!c) return; + i.x < e.x && (c = -c); + const d = new vt(this.el), {x: u, y: g} = new bt(a, s).transformO(d), {rotate: p} = d.decompose(), + f = this.snapToAngle(p + c) - p; + this.el.dispatch("resize", { + box: this.box, + angle: f, + eventType: this.eventType, + event: t, + handler: this + }).defaultPrevented || this.el.transform(d.rotateO(f, u, g)) + } + + endResize(t) { + "rot" !== this.eventType && "point" !== this.eventType && this.resize(t), this.lastEvent = null, this.eventType = "", Xt(window, "mousemove.resize touchmove.resize"), Xt(window, "mouseup.resize touchend.resize") + } + + snapToGrid(t) { + return this.grid && (t.x = Math.round(t.x / this.grid) * this.grid, t.y = Math.round(t.y / this.grid) * this.grid), t + } + + snapToAngle(t) { + return this.degree && (t = Math.round(t / this.degree) * this.degree), t + } + } + + Q(Gt, { + resize: function (t = !0, e = {}) { + "object" == typeof t && (e = t, t = !0); + let i = this.remember("_ResizeHandler"); + return i || (t.prototype instanceof hs ? (i = new t(this), t = !0) : i = new hs(this), this.remember("_resizeHandler", i)), i.active(t, e), this + } + }), void 0 === window.SVG && (window.SVG = yi), void 0 === window.Apex && (window.Apex = {}); + var cs = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "initModules", value: function () { + this.ctx.publicMethods = ["updateOptions", "updateSeries", "appendData", "appendSeries", "isSeriesHidden", "highlightSeries", "toggleSeries", "showSeries", "hideSeries", "setLocale", "resetSeries", "zoomX", "toggleDataPointSelection", "dataURI", "exportToCSV", "addXaxisAnnotation", "addYaxisAnnotation", "addPointAnnotation", "clearAnnotations", "removeAnnotation", "paper", "destroy"], this.ctx.eventList = ["click", "mousedown", "mousemove", "mouseleave", "touchstart", "touchmove", "touchleave", "mouseup", "touchend"], this.ctx.animations = new y(this.ctx), this.ctx.axes = new na(this.ctx), this.ctx.core = new Za(this.ctx.el, this.ctx), this.ctx.config = new Wi({}), this.ctx.data = new Ji(this.ctx), this.ctx.grid = new ta(this.ctx), this.ctx.graphics = new Mi(this.ctx), this.ctx.coreUtils = new Pi(this.ctx), this.ctx.crosshairs = new oa(this.ctx), this.ctx.events = new sa(this.ctx), this.ctx.exports = new Qi(this.ctx), this.ctx.fill = new ji(this.ctx), this.ctx.localization = new ra(this.ctx), this.ctx.options = new Oi, this.ctx.responsive = new la(this.ctx), this.ctx.series = new $i(this.ctx), this.ctx.theme = new ha(this.ctx), this.ctx.formatters = new Xi(this.ctx), this.ctx.titleSubtitle = new ca(this.ctx), this.ctx.legend = new ba(this.ctx), this.ctx.toolbar = new ma(this.ctx), this.ctx.tooltip = new La(this.ctx), this.ctx.dimensions = new fa(this.ctx), this.ctx.updateHelpers = new $a(this.ctx), this.ctx.zoomPanSelection = new va(this.ctx), this.ctx.w.globals.tooltip = new La(this.ctx) + } + }]), t + }(), ds = function () { + function t(e) { + i(this, t), this.ctx = e, this.w = e.w + } + + return s(t, [{ + key: "clear", value: function (t) { + var e = t.isUpdating; + this.ctx.zoomPanSelection && this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar && this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements({isUpdating: e}) + } + }, { + key: "killSVG", value: function (t) { + t.each((function () { + this.removeClass("*"), this.off() + }), !0), t.clear() + } + }, { + key: "clearDomElements", value: function (t) { + var e = this, i = t.isUpdating, a = this.w.globals.dom.Paper.node; + a.parentNode && a.parentNode.parentNode && !i && (a.parentNode.parentNode.style.minHeight = "unset"); + var s = this.w.globals.dom.baseEl; + s && this.ctx.eventList.forEach((function (t) { + s.removeEventListener(t, e.ctx.events.documentEvent) + })); + var r = this.w.globals.dom; + if (null !== this.ctx.el) for (; this.ctx.el.firstChild;) this.ctx.el.removeChild(this.ctx.el.firstChild); + this.killSVG(r.Paper), r.Paper.remove(), r.elWrap = null, r.elGraphical = null, r.elLegendWrap = null, r.elLegendForeign = null, r.baseEl = null, r.elGridRect = null, r.elGridRectMask = null, r.elGridRectBarMask = null, r.elGridRectMarkerMask = null, r.elForecastMask = null, r.elNonForecastMask = null, r.elDefs = null + } + }]), t + }(), us = new WeakMap; + var gs = function () { + function t(e, a) { + i(this, t), this.opts = a, this.ctx = this, this.w = new Gi(a).init(), this.el = e, this.w.globals.cuid = v.randomId(), this.w.globals.chartID = this.w.config.chart.id ? v.escapeString(this.w.config.chart.id) : this.w.globals.cuid, new cs(this).initModules(), this.lastUpdateOptions = null, this.create = v.bind(this.create, this), this.windowResizeHandler = this._windowResizeHandler.bind(this), this.parentResizeHandler = this._parentResizeCallback.bind(this) + } + + return s(t, [{ + key: "render", value: function () { + var t = this; + return new Promise((function (e, i) { + if (v.elementExists(t.el)) { + void 0 === Apex._chartInstances && (Apex._chartInstances = []), t.w.config.chart.id && Apex._chartInstances.push({ + id: t.w.globals.chartID, + group: t.w.config.chart.group, + chart: t + }), t.setLocale(t.w.config.chart.defaultLocale); + var a = t.w.config.chart.events.beforeMount; + "function" == typeof a && a(t, t.w), t.events.fireEvent("beforeMount", [t, t.w]), window.addEventListener("resize", t.windowResizeHandler), function (t, e) { + var i = !1; + if (t.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) { + var a = t.getBoundingClientRect(); + "none" !== t.style.display && 0 !== a.width || (i = !0) + } + var s = new ResizeObserver((function (a) { + i && e.call(t, a), i = !0 + })); + t.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? Array.from(t.children).forEach((function (t) { + return s.observe(t) + })) : s.observe(t), us.set(e, s) + }(t.el.parentNode, t.parentResizeHandler); + var s = t.el.getRootNode && t.el.getRootNode(), r = v.is("ShadowRoot", s), + n = t.el.ownerDocument, + o = r ? s.getElementById("apexcharts-css") : n.getElementById("apexcharts-css"); + if (!o) { + var l; + (o = document.createElement("style")).id = "apexcharts-css", o.textContent = '@keyframes opaque {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 1\n }\n}\n\n@keyframes resizeanim {\n\n 0%,\n to {\n opacity: 0\n }\n}\n\n.apexcharts-canvas {\n position: relative;\n direction: ltr !important;\n user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)\n}\n\n.apexcharts-inner {\n position: relative\n}\n\n.apexcharts-text tspan {\n font-family: inherit\n}\n\nrect.legend-mouseover-inactive,\n.legend-mouseover-inactive rect,\n.legend-mouseover-inactive path,\n.legend-mouseover-inactive circle,\n.legend-mouseover-inactive line,\n.legend-mouseover-inactive text.apexcharts-yaxis-title-text,\n.legend-mouseover-inactive text.apexcharts-yaxis-label {\n transition: .15s ease all;\n opacity: .2\n}\n\n.apexcharts-legend-text {\n padding-left: 15px;\n margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, .96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, .8)\n}\n\n.apexcharts-tooltip * {\n font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #eceff1;\n border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, .7);\n border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-z-value:empty,\n.apexcharts-tooltip-title:empty {\n display: none\n}\n\n.apexcharts-tooltip-text-goals-label,\n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,\n.apexcharts-tooltip-text-goals-label,\n.apexcharts-tooltip-text-goals-value {\n display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n display: inline-block;\n position: relative;\n width: 16px;\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n margin-right: 4px;\n text-align: center;\n vertical-align: middle;\n color: inherit;\n}\n\n.apexcharts-tooltip-marker::before {\n content: "";\n display: inline-block;\n width: 100%;\n text-align: center;\n color: currentcolor;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n font-size: 26px;\n font-family: Arial, Helvetica, sans-serif;\n line-height: 14px;\n font-weight: 900;\n}\n\n.apexcharts-tooltip-marker[shape="circle"]::before {\n content: "\\25CF";\n}\n\n.apexcharts-tooltip-marker[shape="square"]::before,\n.apexcharts-tooltip-marker[shape="rect"]::before {\n content: "\\25A0";\n transform: translate(-1px, -2px);\n}\n\n.apexcharts-tooltip-marker[shape="line"]::before {\n content: "\\2500";\n}\n\n.apexcharts-tooltip-marker[shape="diamond"]::before {\n content: "\\25C6";\n font-size: 28px;\n}\n\n.apexcharts-tooltip-marker[shape="triangle"]::before {\n content: "\\25B2";\n font-size: 22px;\n}\n\n.apexcharts-tooltip-marker[shape="cross"]::before {\n content: "\\2715";\n font-size: 18px;\n}\n\n.apexcharts-tooltip-marker[shape="plus"]::before {\n content: "\\2715";\n transform: rotate(45deg) translate(-1px, -1px);\n font-size: 18px;\n}\n\n.apexcharts-tooltip-marker[shape="star"]::before {\n content: "\\2605";\n font-size: 18px;\n}\n\n.apexcharts-tooltip-marker[shape="sparkle"]::before {\n content: "\\2726";\n font-size: 20px;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,\n.apexcharts-tooltip-box {\n padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: 700;\n display: block;\n margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,\n.apexcharts-yaxistooltip {\n opacity: 0;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #eceff1;\n border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n padding: 9px 10px;\n transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, .7);\n border: 1px solid rgba(0, 0, 0, .5);\n color: #fff\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, .7);\n border: 1px solid rgba(0, 0, 0, .5);\n color: #fff\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0\n}\n\n.apexcharts-selection-rect {\n cursor: move\n}\n\n.svg_select_shape {\n stroke-width: 1;\n stroke-dasharray: 10 10;\n stroke: black;\n stroke-opacity: 0.1;\n pointer-events: none;\n fill: none;\n}\n\n.svg_select_handle {\n stroke-width: 3;\n stroke: black;\n fill: none;\n}\n\n.svg_select_handle_r {\n cursor: e-resize;\n}\n\n.svg_select_handle_l {\n cursor: w-resize;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-menu-icon,\n.apexcharts-pan-icon,\n.apexcharts-reset-icon,\n.apexcharts-selection-icon,\n.apexcharts-toolbar-custom-icon,\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6e8192;\n text-align: center\n}\n\n.apexcharts-menu-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg {\n fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n fill: #333\n}\n\n.apexcharts-menu-icon,\n.apexcharts-selection-icon {\n position: relative\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px\n}\n\n.apexcharts-menu-icon,\n.apexcharts-reset-icon,\n.apexcharts-zoom-icon {\n transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n transform: scale(.62);\n position: relative;\n left: 1px;\n top: 0\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6e8192;\n stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0 6px 2px;\n display: flex;\n justify-content: space-between;\n align-items: center\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: .15s ease all;\n pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, .7);\n color: #fff\n}\n\n@media screen and (min-width:768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1\n }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,\n.apexcharts-datalabel.apexcharts-element-hidden,\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-hidden-element-shown {\n opacity: 1;\n transition: 0.25s ease all;\n}\n\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value,\n.apexcharts-datalabels,\n.apexcharts-pie-label {\n cursor: default;\n pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: .3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease\n}\n\n.apexcharts-radialbar-label {\n cursor: pointer;\n}\n\n.apexcharts-annotation-rect,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-gridline,\n.apexcharts-line,\n.apexcharts-point-annotation-label,\n.apexcharts-radar-series path:not(.apexcharts-marker),\n.apexcharts-radar-series polygon,\n.apexcharts-toolbar svg,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-zoom-rect,\n.no-pointer-events {\n pointer-events: none\n}\n\n.apexcharts-tooltip-active .apexcharts-marker {\n transition: .15s ease all\n}\n\n.apexcharts-radar-series .apexcharts-yaxis {\n pointer-events: none;\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n height: 100%;\n width: 100%;\n overflow: hidden\n}\n\n.contract-trigger:before,\n.resize-triggers,\n.resize-triggers>div {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0\n}\n\n.resize-triggers>div {\n height: 100%;\n width: 100%;\n background: #eee;\n overflow: auto\n}\n\n.contract-trigger:before {\n overflow: hidden;\n width: 200%;\n height: 200%\n}\n\n.apexcharts-bar-goals-markers {\n pointer-events: none\n}\n\n.apexcharts-bar-shadows {\n pointer-events: none\n}\n\n.apexcharts-rangebar-goals-markers {\n pointer-events: none\n}\n\n.apexcharts-disable-transitions * {\n transition: none !important;\n}'; + var h = (null === (l = t.opts.chart) || void 0 === l ? void 0 : l.nonce) || t.w.config.chart.nonce; + h && o.setAttribute("nonce", h), r ? s.prepend(o) : !1 !== t.w.config.chart.injectStyleSheet && n.head.appendChild(o) + } + var c = t.create(t.w.config.series, {}); + if (!c) return e(t); + t.mount(c).then((function () { + "function" == typeof t.w.config.chart.events.mounted && t.w.config.chart.events.mounted(t, t.w), t.events.fireEvent("mounted", [t, t.w]), e(c) + })).catch((function (t) { + i(t) + })) + } else i(new Error("Element not found")) + })) + } + }, { + key: "create", value: function (t, e) { + var i = this, a = this.w; + new cs(this).initModules(); + var s = this.w.globals; + if (s.noData = !1, s.animationEnded = !1, !v.elementExists(this.el)) return s.animationEnded = !0, null; + (this.responsive.checkResponsiveConfig(e), a.config.xaxis.convertedCatToNumeric) && new Ni(a.config).convertCatToNumericXaxis(a.config, this.ctx); + if (this.core.setupElements(), "treemap" === a.config.chart.type && (a.config.grid.show = !1, a.config.yaxis[0].show = !1), 0 === s.svgWidth) return s.animationEnded = !0, null; + var r = t; + t.forEach((function (t, e) { + t.hidden && (r = i.legend.legendHelpers.getSeriesAfterCollapsing({realIndex: e})) + })); + var n = Pi.checkComboSeries(r, a.config.chart.type); + s.comboCharts = n.comboCharts, s.comboBarCount = n.comboBarCount; + var o = r.every((function (t) { + return t.data && 0 === t.data.length + })); + (0 === r.length || o && s.collapsedSeries.length < 1) && this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(r), this.theme.init(), new Vi(this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), s.noData && s.collapsedSeries.length !== s.series.length && !a.config.legend.showForSingleSeries || this.legend.init(), this.series.hasAllSeriesEqualX(), s.axisCharts && (this.core.coreCalculations(), "category" !== a.config.xaxis.type && this.formatters.setLabelFormatters(), this.ctx.toolbar.minX = a.globals.minX, this.ctx.toolbar.maxX = a.globals.maxX), this.formatters.heatmapLabelFormatters(), new Pi(this).getLargestMarkerSize(), this.dimensions.plotCoords(); + var l = this.core.xySettings(); + this.grid.createGridMask(); + var h = this.core.plotChartType(r, l), c = new qi(this); + return c.bringForward(), a.config.dataLabels.background.enabled && c.dataLabelsBackground(), this.core.shiftGraphPosition(), a.globals.dataPoints > 50 && a.globals.dom.elWrap.classList.add("apexcharts-disable-transitions"), { + elGraph: h, + xyRatios: l, + dimensions: { + plot: { + left: a.globals.translateX, + top: a.globals.translateY, + width: a.globals.gridWidth, + height: a.globals.gridHeight + } + } + } + } + }, { + key: "mount", value: function () { + var t = this, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, i = this, + a = i.w; + return new Promise((function (s, r) { + if (null === i.el) return r(new Error("Not enough data to display or target element not found")); + (null === e || a.globals.allSeriesCollapsed) && i.series.handleNoData(), i.grid = new ta(i); + var n, o, l = i.grid.drawGrid(); + (i.annotations = new Fi(i), i.annotations.drawImageAnnos(), i.annotations.drawTextAnnos(), "back" === a.config.grid.position) && (l && a.globals.dom.elGraphical.add(l.el), null != l && null !== (n = l.elGridBorders) && void 0 !== n && n.node && a.globals.dom.elGraphical.add(l.elGridBorders)); + if (Array.isArray(e.elGraph)) for (var h = 0; h < e.elGraph.length; h++) a.globals.dom.elGraphical.add(e.elGraph[h]); else a.globals.dom.elGraphical.add(e.elGraph); + "front" === a.config.grid.position && (l && a.globals.dom.elGraphical.add(l.el), null != l && null !== (o = l.elGridBorders) && void 0 !== o && o.node && a.globals.dom.elGraphical.add(l.elGridBorders)); + "front" === a.config.xaxis.crosshairs.position && i.crosshairs.drawXCrosshairs(), "front" === a.config.yaxis[0].crosshairs.position && i.crosshairs.drawYCrosshairs(), "treemap" !== a.config.chart.type && i.axes.drawAxis(a.config.chart.type, l); + var c = new Ki(t.ctx, l), d = new aa(t.ctx, l); + if (null !== l && (c.xAxisLabelCorrections(l.xAxisTickWidth), d.setYAxisTextAlignments(), a.config.yaxis.map((function (t, e) { + -1 === a.globals.ignoreYAxisIndexes.indexOf(e) && d.yAxisTitleRotate(e, t.opposite) + }))), i.annotations.drawAxesAnnotations(), !a.globals.noData) { + if (a.config.tooltip.enabled && !a.globals.noData && i.w.globals.tooltip.drawTooltip(e.xyRatios), a.globals.axisCharts && (a.globals.isXNumeric || a.config.xaxis.convertedCatToNumeric || a.globals.isRangeBar)) (a.config.chart.zoom.enabled || a.config.chart.selection && a.config.chart.selection.enabled || a.config.chart.pan && a.config.chart.pan.enabled) && i.zoomPanSelection.init({xyRatios: e.xyRatios}); else { + var u = a.config.chart.toolbar.tools; + ["zoom", "zoomin", "zoomout", "selection", "pan", "reset"].forEach((function (t) { + u[t] = !1 + })) + } + a.config.chart.toolbar.show && !a.globals.allSeriesCollapsed && i.toolbar.createToolbar() + } + a.globals.memory.methodsToExec.length > 0 && a.globals.memory.methodsToExec.forEach((function (t) { + t.method(t.params, !1, t.context) + })), a.globals.axisCharts || a.globals.noData || i.core.resizeNonAxisCharts(), s(i) + })) + } + }, { + key: "destroy", value: function () { + window.removeEventListener("resize", this.windowResizeHandler), function (t, e) { + var i = us.get(e); + i && (i.disconnect(), us.delete(e)) + }(this.el.parentNode, this.parentResizeHandler); + var t = this.w.config.chart.id; + t && Apex._chartInstances.forEach((function (e, i) { + e.id === v.escapeString(t) && Apex._chartInstances.splice(i, 1) + })), new ds(this.ctx).clear({isUpdating: !1}) + } + }, { + key: "updateOptions", value: function (t) { + var e = this, i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], + s = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], + r = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], n = this.w; + return n.globals.selection = void 0, this.lastUpdateOptions && JSON.stringify(this.lastUpdateOptions) === JSON.stringify(t) ? this : (t.series && (this.data.resetParsingFlags(), this.series.resetSeries(!1, !0, !1), t.series.length && t.series[0].data && (t.series = t.series.map((function (t, i) { + return e.updateHelpers._extendSeries(t, i) + }))), this.updateHelpers.revertDefaultAxisMinMax()), t.xaxis && (t = this.updateHelpers.forceXAxisUpdate(t)), t.yaxis && (t = this.updateHelpers.forceYAxisUpdate(t)), n.globals.collapsedSeriesIndices.length > 0 && this.series.clearPreviousPaths(), t.theme && (t = this.theme.updateThemeOptions(t)), this.updateHelpers._updateOptions(t, i, a, s, r)) + } + }, { + key: "updateSeries", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + return this.data.resetParsingFlags(), this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(t, e, i) + } + }, { + key: "appendSeries", value: function (t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + this.data.resetParsingFlags(); + var a = this.w.config.series.slice(); + return a.push(t), this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(a, e, i) + } + }, { + key: "appendData", value: function (t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = this; + i.data.resetParsingFlags(), i.w.globals.dataChanged = !0, i.series.getPreviousPaths(); + for (var a = i.w.config.series.slice(), s = 0; s < a.length; s++) if (null !== t[s] && void 0 !== t[s]) for (var r = 0; r < t[s].data.length; r++) a[s].data.push(t[s].data[r]); + return i.w.config.series = a, e && (i.w.globals.initialSeries = v.clone(i.w.config.series)), this.update() + } + }, { + key: "update", value: function (t) { + var e = this; + return new Promise((function (i, a) { + if (e.lastUpdateOptions && JSON.stringify(e.lastUpdateOptions) === JSON.stringify(t)) return i(e); + e.lastUpdateOptions = v.clone(t), new ds(e.ctx).clear({isUpdating: !0}); + var s = e.create(e.w.config.series, t); + if (!s) return i(e); + e.mount(s).then((function () { + "function" == typeof e.w.config.chart.events.updated && e.w.config.chart.events.updated(e, e.w), e.events.fireEvent("updated", [e, e.w]), e.w.globals.isDirty = !0, i(e) + })).catch((function (t) { + a(t) + })) + })) + } + }, { + key: "getSyncedCharts", value: function () { + var t = this.getGroupedCharts(), e = [this]; + return t.length && (e = [], t.forEach((function (t) { + e.push(t) + }))), e + } + }, { + key: "getGroupedCharts", value: function () { + var t = this; + return Apex._chartInstances.filter((function (t) { + if (t.group) return !0 + })).map((function (e) { + return t.w.config.chart.group === e.group ? e.chart : t + })) + } + }, { + key: "toggleSeries", value: function (t) { + return this.series.toggleSeries(t) + } + }, { + key: "highlightSeriesOnLegendHover", value: function (t, e) { + return this.series.toggleSeriesOnHover(t, e) + } + }, { + key: "showSeries", value: function (t) { + this.series.showSeries(t) + } + }, { + key: "hideSeries", value: function (t) { + this.series.hideSeries(t) + } + }, { + key: "highlightSeries", value: function (t) { + this.series.highlightSeries(t) + } + }, { + key: "isSeriesHidden", value: function (t) { + this.series.isSeriesHidden(t) + } + }, { + key: "resetSeries", value: function () { + var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], + e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + this.series.resetSeries(t, e) + } + }, { + key: "addEventListener", value: function (t, e) { + this.events.addEventListener(t, e) + } + }, { + key: "removeEventListener", value: function (t, e) { + this.events.removeEventListener(t, e) + } + }, { + key: "addXaxisAnnotation", value: function (t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; + i && (a = i), a.annotations.addXaxisAnnotationExternal(t, e, a) + } + }, { + key: "addYaxisAnnotation", value: function (t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; + i && (a = i), a.annotations.addYaxisAnnotationExternal(t, e, a) + } + }, { + key: "addPointAnnotation", value: function (t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; + i && (a = i), a.annotations.addPointAnnotationExternal(t, e, a) + } + }, { + key: "clearAnnotations", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0, e = this; + t && (e = t), e.annotations.clearAnnotations(e) + } + }, { + key: "removeAnnotation", value: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0, i = this; + e && (i = e), i.annotations.removeAnnotation(i, t) + } + }, { + key: "getChartArea", value: function () { + return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner") + } + }, { + key: "getSeriesTotalXRange", value: function (t, e) { + return this.coreUtils.getSeriesTotalsXRange(t, e) + } + }, { + key: "getHighestValueInSeries", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return new ia(this.ctx).getMinYMaxY(t).highestY + } + }, { + key: "getLowestValueInSeries", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return new ia(this.ctx).getMinYMaxY(t).lowestY + } + }, { + key: "getSeriesTotal", value: function () { + return this.w.globals.seriesTotals + } + }, { + key: "toggleDataPointSelection", value: function (t, e) { + return this.updateHelpers.toggleDataPointSelection(t, e) + } + }, { + key: "zoomX", value: function (t, e) { + this.ctx.toolbar.zoomUpdateOptions(t, e) + } + }, { + key: "setLocale", value: function (t) { + this.localization.setCurrentLocaleValues(t) + } + }, { + key: "dataURI", value: function (t) { + return new Qi(this.ctx).dataURI(t) + } + }, { + key: "getSvgString", value: function (t) { + return new Qi(this.ctx).getSvgString(t) + } + }, { + key: "exportToCSV", value: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return new Qi(this.ctx).exportToCSV(t) + } + }, { + key: "paper", value: function () { + return this.w.globals.dom.Paper + } + }, { + key: "_parentResizeCallback", value: function () { + this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize && this._windowResize() + } + }, { + key: "_windowResize", value: function () { + var t = this; + clearTimeout(this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout((function () { + t.w.globals.resized = !0, t.w.globals.dataChanged = !1, t.ctx.update() + }), 150) + } + }, { + key: "_windowResizeHandler", value: function () { + var t = this.w.config.chart.redrawOnWindowResize; + "function" == typeof t && (t = t()), t && this._windowResize() + } + }], [{ + key: "getChartByID", value: function (t) { + var e = v.escapeString(t); + if (Apex._chartInstances) { + var i = Apex._chartInstances.filter((function (t) { + return t.id === e + }))[0]; + return i && i.chart + } + } + }, { + key: "initOnLoad", value: function () { + for (var e = document.querySelectorAll("[data-apexcharts]"), i = 0; i < e.length; i++) { + new t(e[i], JSON.parse(e[i].getAttribute("data-options"))).render() + } + } + }, { + key: "exec", value: function (t, e) { + var i = this.getChartByID(t); + if (i) { + i.w.globals.isExecCalled = !0; + var a = null; + if (-1 !== i.publicMethods.indexOf(e)) { + for (var s = arguments.length, r = new Array(s > 2 ? s - 2 : 0), n = 2; n < s; n++) r[n - 2] = arguments[n]; + a = i[e].apply(i, r) + } + return a + } + } + }, { + key: "merge", value: function (t, e) { + return v.extend(t, e) + } + }, { + key: "getThemePalettes", value: function () { + return { + palette1: ["#008FFB", "#00E396", "#FEB019", "#FF4560", "#775DD0"], + palette2: ["#3F51B5", "#03A9F4", "#4CAF50", "#F9CE1D", "#FF9800"], + palette3: ["#33B2DF", "#546E7A", "#D4526E", "#13D8AA", "#A5978B"], + palette4: ["#4ECDC4", "#C7F464", "#81D4FA", "#FD6A6A", "#546E7A"], + palette5: ["#2B908F", "#F9A3A4", "#90EE7E", "#FA4443", "#69D2E7"], + palette6: ["#449DD1", "#F86624", "#EA3546", "#662E9B", "#C5D86D"], + palette7: ["#D7263D", "#1B998B", "#2E294E", "#F46036", "#E2C044"], + palette8: ["#662E9B", "#F86624", "#F9C80E", "#EA3546", "#43BCCD"], + palette9: ["#5C4742", "#A5978B", "#8D5B4C", "#5A2A27", "#C4BBAF"], + palette10: ["#A300D6", "#7D02EB", "#5653FE", "#2983FF", "#00B1F2"] + } + } + }]), t + }(); + return gs +})); \ No newline at end of file diff --git a/src/main/resources/static/js/fw/apexcharts/loader.js b/src/main/resources/static/js/fw/apexcharts/loader.js new file mode 100644 index 0000000..478f92e --- /dev/null +++ b/src/main/resources/static/js/fw/apexcharts/loader.js @@ -0,0 +1,2994 @@ +(function () {/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ + 'use strict'; + + function aa(a) { + var b = 0; + return function () { + return b < a.length ? {done: !1, value: a[b++]} : {done: !0} + } + } + + var ba = "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) { + if (a == Array.prototype || a == Object.prototype) return a; + a[b] = c.value; + return a + }; + + function ca(a) { + a = ["object" == typeof globalThis && globalThis, a, "object" == typeof window && window, "object" == typeof self && self, "object" == typeof global && global]; + for (var b = 0; b < a.length; ++b) { + var c = a[b]; + if (c && c.Math == Math) return c + } + throw Error("Cannot find global object"); + } + + var l = ca(this); + + function p(a, b) { + if (b) a:{ + var c = l; + a = a.split("."); + for (var d = 0; d < a.length - 1; d++) { + var e = a[d]; + if (!(e in c)) break a; + c = c[e] + } + a = a[a.length - 1]; + d = c[a]; + b = b(d); + b != d && null != b && ba(c, a, {configurable: !0, writable: !0, value: b}) + } + } + + p("Symbol", function (a) { + function b(h) { + if (this instanceof b) throw new TypeError("Symbol is not a constructor"); + return new c(d + (h || "") + "_" + e++, h) + } + + function c(h, f) { + this.g = h; + ba(this, "description", {configurable: !0, writable: !0, value: f}) + } + + if (a) return a; + c.prototype.toString = function () { + return this.g + }; + var d = "jscomp_symbol_" + (1E9 * Math.random() >>> 0) + "_", e = 0; + return b + }); + p("Symbol.iterator", function (a) { + if (a) return a; + a = Symbol("Symbol.iterator"); + for (var b = "Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "), c = 0; c < b.length; c++) { + var d = l[b[c]]; + "function" === typeof d && "function" != typeof d.prototype[a] && ba(d.prototype, a, { + configurable: !0, + writable: !0, + value: function () { + return da(aa(this)) + } + }) + } + return a + }); + p("Symbol.asyncIterator", function (a) { + return a ? a : Symbol("Symbol.asyncIterator") + }); + + function da(a) { + a = {next: a}; + a[Symbol.iterator] = function () { + return this + }; + return a + } + + function q(a) { + var b = "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator]; + if (b) return b.call(a); + if ("number" == typeof a.length) return {next: aa(a)}; + throw Error(String(a) + " is not an iterable or ArrayLike"); + } + + function ea(a) { + if (!(a instanceof Array)) { + a = q(a); + for (var b, c = []; !(b = a.next()).done;) c.push(b.value); + a = c + } + return a + } + + function r(a, b) { + return Object.prototype.hasOwnProperty.call(a, b) + } + + var fa = "function" == typeof Object.assign ? Object.assign : function (a, b) { + for (var c = 1; c < arguments.length; c++) { + var d = arguments[c]; + if (d) for (var e in d) r(d, e) && (a[e] = d[e]) + } + return a + }; + p("Object.assign", function (a) { + return a || fa + }); + var ha; + if ("function" == typeof Object.setPrototypeOf) ha = Object.setPrototypeOf; else { + var ia; + a:{ + var ja = {a: !0}, ka = {}; + try { + ka.__proto__ = ja; + ia = ka.a; + break a + } catch (a) { + } + ia = !1 + } + ha = ia ? function (a, b) { + a.__proto__ = b; + if (a.__proto__ !== b) throw new TypeError(a + " is not extensible"); + return a + } : null + } + var t = ha; + + function la() { + for (var a = Number(this), b = [], c = a; c < arguments.length; c++) b[c - a] = arguments[c]; + return b + } + + p("Promise", function (a) { + function b(f) { + this.g = 0; + this.i = void 0; + this.h = []; + this.o = !1; + var g = this.j(); + try { + f(g.resolve, g.reject) + } catch (k) { + g.reject(k) + } + } + + function c() { + this.g = null + } + + function d(f) { + return f instanceof b ? f : new b(function (g) { + g(f) + }) + } + + if (a) return a; + c.prototype.h = function (f) { + if (null == this.g) { + this.g = []; + var g = this; + this.i(function () { + g.l() + }) + } + this.g.push(f) + }; + var e = l.setTimeout; + c.prototype.i = function (f) { + e(f, 0) + }; + c.prototype.l = function () { + for (; this.g && this.g.length;) { + var f = this.g; + this.g = []; + for (var g = 0; g < f.length; ++g) { + var k = + f[g]; + f[g] = null; + try { + k() + } catch (m) { + this.j(m) + } + } + } + this.g = null + }; + c.prototype.j = function (f) { + this.i(function () { + throw f; + }) + }; + b.prototype.j = function () { + function f(m) { + return function (n) { + k || (k = !0, m.call(g, n)) + } + } + + var g = this, k = !1; + return {resolve: f(this.D), reject: f(this.l)} + }; + b.prototype.D = function (f) { + if (f === this) this.l(new TypeError("A Promise cannot resolve to itself")); else if (f instanceof b) this.O(f); else { + a:switch (typeof f) { + case "object": + var g = null != f; + break a; + case "function": + g = !0; + break a; + default: + g = !1 + } + g ? this.C(f) : this.m(f) + } + }; + b.prototype.C = function (f) { + var g = void 0; + try { + g = f.then + } catch (k) { + this.l(k); + return + } + "function" == typeof g ? this.P(g, f) : this.m(f) + }; + b.prototype.l = function (f) { + this.u(2, f) + }; + b.prototype.m = function (f) { + this.u(1, f) + }; + b.prototype.u = function (f, g) { + if (0 != this.g) throw Error("Cannot settle(" + f + ", " + g + "): Promise already settled in state" + this.g); + this.g = f; + this.i = g; + 2 === this.g && this.G(); + this.A() + }; + b.prototype.G = function () { + var f = this; + e(function () { + if (f.B()) { + var g = l.console; + "undefined" !== typeof g && g.error(f.i) + } + }, 1) + }; + b.prototype.B = + function () { + if (this.o) return !1; + var f = l.CustomEvent, g = l.Event, k = l.dispatchEvent; + if ("undefined" === typeof k) return !0; + "function" === typeof f ? f = new f("unhandledrejection", {cancelable: !0}) : "function" === typeof g ? f = new g("unhandledrejection", {cancelable: !0}) : (f = l.document.createEvent("CustomEvent"), f.initCustomEvent("unhandledrejection", !1, !0, f)); + f.promise = this; + f.reason = this.i; + return k(f) + }; + b.prototype.A = function () { + if (null != this.h) { + for (var f = 0; f < this.h.length; ++f) h.h(this.h[f]); + this.h = null + } + }; + var h = new c; + b.prototype.O = + function (f) { + var g = this.j(); + f.F(g.resolve, g.reject) + }; + b.prototype.P = function (f, g) { + var k = this.j(); + try { + f.call(g, k.resolve, k.reject) + } catch (m) { + k.reject(m) + } + }; + b.prototype.then = function (f, g) { + function k(y, G) { + return "function" == typeof y ? function (ra) { + try { + m(y(ra)) + } catch (sa) { + n(sa) + } + } : G + } + + var m, n, u = new b(function (y, G) { + m = y; + n = G + }); + this.F(k(f, m), k(g, n)); + return u + }; + b.prototype.catch = function (f) { + return this.then(void 0, f) + }; + b.prototype.F = function (f, g) { + function k() { + switch (m.g) { + case 1: + f(m.i); + break; + case 2: + g(m.i); + break; + default: + throw Error("Unexpected state: " + + m.g); + } + } + + var m = this; + null == this.h ? h.h(k) : this.h.push(k); + this.o = !0 + }; + b.resolve = d; + b.reject = function (f) { + return new b(function (g, k) { + k(f) + }) + }; + b.race = function (f) { + return new b(function (g, k) { + for (var m = q(f), n = m.next(); !n.done; n = m.next()) d(n.value).F(g, k) + }) + }; + b.all = function (f) { + var g = q(f), k = g.next(); + return k.done ? d([]) : new b(function (m, n) { + function u(ra) { + return function (sa) { + y[ra] = sa; + G--; + 0 == G && m(y) + } + } + + var y = [], G = 0; + do y.push(void 0), G++, d(k.value).F(u(y.length - 1), n), k = g.next(); while (!k.done) + }) + }; + return b + }); + p("Object.setPrototypeOf", function (a) { + return a || t + }); + p("WeakMap", function (a) { + function b(k) { + this.g = (g += Math.random() + 1).toString(); + if (k) { + k = q(k); + for (var m; !(m = k.next()).done;) m = m.value, this.set(m[0], m[1]) + } + } + + function c() { + } + + function d(k) { + var m = typeof k; + return "object" === m && null !== k || "function" === m + } + + function e(k) { + if (!r(k, f)) { + var m = new c; + ba(k, f, {value: m}) + } + } + + function h(k) { + var m = Object[k]; + m && (Object[k] = function (n) { + if (n instanceof c) return n; + Object.isExtensible(n) && e(n); + return m(n) + }) + } + + if (function () { + if (!a || !Object.seal) return !1; + try { + var k = Object.seal({}), m = Object.seal({}), + n = new a([[k, 2], [m, 3]]); + if (2 != n.get(k) || 3 != n.get(m)) return !1; + n.delete(k); + n.set(m, 4); + return !n.has(k) && 4 == n.get(m) + } catch (u) { + return !1 + } + }()) return a; + var f = "$jscomp_hidden_" + Math.random(); + h("freeze"); + h("preventExtensions"); + h("seal"); + var g = 0; + b.prototype.set = function (k, m) { + if (!d(k)) throw Error("Invalid WeakMap key"); + e(k); + if (!r(k, f)) throw Error("WeakMap key fail: " + k); + k[f][this.g] = m; + return this + }; + b.prototype.get = function (k) { + return d(k) && r(k, f) ? k[f][this.g] : void 0 + }; + b.prototype.has = function (k) { + return d(k) && r(k, + f) && r(k[f], this.g) + }; + b.prototype.delete = function (k) { + return d(k) && r(k, f) && r(k[f], this.g) ? delete k[f][this.g] : !1 + }; + return b + }); + p("Map", function (a) { + function b() { + var g = {}; + return g.v = g.next = g.head = g + } + + function c(g, k) { + var m = g.g; + return da(function () { + if (m) { + for (; m.head != g.g;) m = m.v; + for (; m.next != m.head;) return m = m.next, {done: !1, value: k(m)}; + m = null + } + return {done: !0, value: void 0} + }) + } + + function d(g, k) { + var m = k && typeof k; + "object" == m || "function" == m ? h.has(k) ? m = h.get(k) : (m = "" + ++f, h.set(k, m)) : m = "p_" + k; + var n = g.h[m]; + if (n && r(g.h, m)) for (g = 0; g < n.length; g++) { + var u = n[g]; + if (k !== k && u.key !== u.key || k === u.key) return {id: m, list: n, index: g, s: u} + } + return { + id: m, list: n, + index: -1, s: void 0 + } + } + + function e(g) { + this.h = {}; + this.g = b(); + this.size = 0; + if (g) { + g = q(g); + for (var k; !(k = g.next()).done;) k = k.value, this.set(k[0], k[1]) + } + } + + if (function () { + if (!a || "function" != typeof a || !a.prototype.entries || "function" != typeof Object.seal) return !1; + try { + var g = Object.seal({x: 4}), k = new a(q([[g, "s"]])); + if ("s" != k.get(g) || 1 != k.size || k.get({x: 4}) || k.set({x: 4}, "t") != k || 2 != k.size) return !1; + var m = k.entries(), n = m.next(); + if (n.done || n.value[0] != g || "s" != n.value[1]) return !1; + n = m.next(); + return n.done || 4 != n.value[0].x || + "t" != n.value[1] || !m.next().done ? !1 : !0 + } catch (u) { + return !1 + } + }()) return a; + var h = new WeakMap; + e.prototype.set = function (g, k) { + g = 0 === g ? 0 : g; + var m = d(this, g); + m.list || (m.list = this.h[m.id] = []); + m.s ? m.s.value = k : (m.s = { + next: this.g, + v: this.g.v, + head: this.g, + key: g, + value: k + }, m.list.push(m.s), this.g.v.next = m.s, this.g.v = m.s, this.size++); + return this + }; + e.prototype.delete = function (g) { + g = d(this, g); + return g.s && g.list ? (g.list.splice(g.index, 1), g.list.length || delete this.h[g.id], g.s.v.next = g.s.next, g.s.next.v = g.s.v, g.s.head = null, this.size--, + !0) : !1 + }; + e.prototype.clear = function () { + this.h = {}; + this.g = this.g.v = b(); + this.size = 0 + }; + e.prototype.has = function (g) { + return !!d(this, g).s + }; + e.prototype.get = function (g) { + return (g = d(this, g).s) && g.value + }; + e.prototype.entries = function () { + return c(this, function (g) { + return [g.key, g.value] + }) + }; + e.prototype.keys = function () { + return c(this, function (g) { + return g.key + }) + }; + e.prototype.values = function () { + return c(this, function (g) { + return g.value + }) + }; + e.prototype.forEach = function (g, k) { + for (var m = this.entries(), n; !(n = m.next()).done;) n = n.value, + g.call(k, n[1], n[0], this) + }; + e.prototype[Symbol.iterator] = e.prototype.entries; + var f = 0; + return e + }); + + function ma(a, b) { + a instanceof String && (a += ""); + var c = 0, d = !1, e = { + next: function () { + if (!d && c < a.length) { + var h = c++; + return {value: b(h, a[h]), done: !1} + } + d = !0; + return {done: !0, value: void 0} + } + }; + e[Symbol.iterator] = function () { + return e + }; + return e + } + + p("Array.prototype.values", function (a) { + return a ? a : function () { + return ma(this, function (b, c) { + return c + }) + } + }); + p("Array.prototype.keys", function (a) { + return a ? a : function () { + return ma(this, function (b) { + return b + }) + } + }); + + function v(a, b, c) { + if (null == a) throw new TypeError("The 'this' value for String.prototype." + c + " must not be null or undefined"); + if (b instanceof RegExp) throw new TypeError("First argument to String.prototype." + c + " must not be a regular expression"); + return a + "" + } + + p("String.prototype.endsWith", function (a) { + return a ? a : function (b, c) { + var d = v(this, b, "endsWith"); + void 0 === c && (c = d.length); + c = Math.max(0, Math.min(c | 0, d.length)); + for (var e = b.length; 0 < e && 0 < c;) if (d[--c] != b[--e]) return !1; + return 0 >= e + } + }); + + function na(a, b, c) { + a instanceof String && (a = String(a)); + for (var d = a.length, e = 0; e < d; e++) { + var h = a[e]; + if (b.call(c, h, e, a)) return {J: e, N: h} + } + return {J: -1, N: void 0} + } + + p("Array.prototype.find", function (a) { + return a ? a : function (b, c) { + return na(this, b, c).N + } + }); + p("String.prototype.startsWith", function (a) { + return a ? a : function (b, c) { + var d = v(this, b, "startsWith"), e = d.length, h = b.length; + c = Math.max(0, Math.min(c | 0, d.length)); + for (var f = 0; f < h && c < e;) if (d[c++] != b[f++]) return !1; + return f >= h + } + }); + p("Number.isFinite", function (a) { + return a ? a : function (b) { + return "number" !== typeof b ? !1 : !isNaN(b) && Infinity !== b && -Infinity !== b + } + }); + p("String.prototype.repeat", function (a) { + return a ? a : function (b) { + var c = v(this, null, "repeat"); + if (0 > b || 1342177279 < b) throw new RangeError("Invalid count value"); + b |= 0; + for (var d = ""; b;) if (b & 1 && (d += c), b >>>= 1) c += c; + return d + } + }); + p("Array.from", function (a) { + return a ? a : function (b, c, d) { + c = null != c ? c : function (g) { + return g + }; + var e = [], h = "undefined" != typeof Symbol && Symbol.iterator && b[Symbol.iterator]; + if ("function" == typeof h) { + b = h.call(b); + for (var f = 0; !(h = b.next()).done;) e.push(c.call(d, h.value, f++)) + } else for (h = b.length, f = 0; f < h; f++) e.push(c.call(d, b[f], f)); + return e + } + }); + p("String.prototype.trimLeft", function (a) { + function b() { + return this.replace(/^[\s\xa0]+/, "") + } + + return a || b + }); + p("String.prototype.trimStart", function (a) { + return a || String.prototype.trimLeft + }); + p("Object.is", function (a) { + return a ? a : function (b, c) { + return b === c ? 0 !== b || 1 / b === 1 / c : b !== b && c !== c + } + }); + p("Array.prototype.includes", function (a) { + return a ? a : function (b, c) { + var d = this; + d instanceof String && (d = String(d)); + var e = d.length; + c = c || 0; + for (0 > c && (c = Math.max(c + e, 0)); c < e; c++) { + var h = d[c]; + if (h === b || Object.is(h, b)) return !0 + } + return !1 + } + }); + p("String.prototype.includes", function (a) { + return a ? a : function (b, c) { + return -1 !== v(this, b, "includes").indexOf(b, c || 0) + } + }); + p("Math.trunc", function (a) { + return a ? a : function (b) { + b = Number(b); + if (isNaN(b) || Infinity === b || -Infinity === b || 0 === b) return b; + var c = Math.floor(Math.abs(b)); + return 0 > b ? -c : c + } + }); + + function oa(a) { + a = Math.trunc(a) || 0; + 0 > a && (a += this.length); + if (!(0 > a || a >= this.length)) return this[a] + } + + p("Array.prototype.at", function (a) { + return a ? a : oa + }); + p("Array.prototype.copyWithin", function (a) { + function b(c) { + c = Number(c); + return Infinity === c || -Infinity === c ? c : c | 0 + } + + return a ? a : function (c, d, e) { + var h = this.length; + c = b(c); + d = b(d); + e = void 0 === e ? h : b(e); + c = 0 > c ? Math.max(h + c, 0) : Math.min(c, h); + d = 0 > d ? Math.max(h + d, 0) : Math.min(d, h); + e = 0 > e ? Math.max(h + e, 0) : Math.min(e, h); + if (c < d) for (; d < e;) d in this ? this[c++] = this[d++] : (delete this[c++], d++); else for (e = Math.min(e, h + d - c), c += e - d; e > d;) --e in this ? this[--c] = this[e] : delete this[--c]; + return this + } + }); + p("Array.prototype.entries", function (a) { + return a ? a : function () { + return ma(this, function (b, c) { + return [b, c] + }) + } + }); + p("Array.prototype.fill", function (a) { + return a ? a : function (b, c, d) { + var e = this.length || 0; + 0 > c && (c = Math.max(0, e + c)); + if (null == d || d > e) d = e; + d = Number(d); + 0 > d && (d = Math.max(0, e + d)); + for (c = Number(c || 0); c < d; c++) this[c] = b; + return this + } + }); + p("Array.prototype.findIndex", function (a) { + return a ? a : function (b, c) { + return na(this, b, c).J + } + }); + p("Array.prototype.flat", function (a) { + return a ? a : function (b) { + b = void 0 === b ? 1 : b; + var c = []; + Array.prototype.forEach.call(this, function (d) { + Array.isArray(d) && 0 < b ? (d = Array.prototype.flat.call(d, b - 1), c.push.apply(c, d)) : c.push(d) + }); + return c + } + }); + p("Array.prototype.flatMap", function (a) { + return a ? a : function (b, c) { + var d = []; + Array.prototype.forEach.call(this, function (e, h) { + e = b.call(c, e, h, this); + Array.isArray(e) ? d.push.apply(d, e) : d.push(e) + }); + return d + } + }); + p("Array.of", function (a) { + return a ? a : function (b) { + return Array.from(arguments) + } + }); + p("globalThis", function (a) { + return a || l + }); + p("Math.acosh", function (a) { + return a ? a : function (b) { + b = Number(b); + return Math.log(b + Math.sqrt(b * b - 1)) + } + }); + p("Math.asinh", function (a) { + return a ? a : function (b) { + b = Number(b); + if (0 === b) return b; + var c = Math.log(Math.abs(b) + Math.sqrt(b * b + 1)); + return 0 > b ? -c : c + } + }); + p("Math.log1p", function (a) { + return a ? a : function (b) { + b = Number(b); + if (.25 > b && -.25 < b) { + for (var c = b, d = 1, e = b, h = 0, f = 1; h != e;) c *= b, f *= -1, e = (h = e) + f * c / ++d; + return e + } + return Math.log(1 + b) + } + }); + p("Math.atanh", function (a) { + if (a) return a; + var b = Math.log1p; + return function (c) { + c = Number(c); + return (b(c) - b(-c)) / 2 + } + }); + p("Math.cbrt", function (a) { + return a ? a : function (b) { + if (0 === b) return b; + b = Number(b); + var c = Math.pow(Math.abs(b), 1 / 3); + return 0 > b ? -c : c + } + }); + p("Math.clz32", function (a) { + return a ? a : function (b) { + b = Number(b) >>> 0; + if (0 === b) return 32; + var c = 0; + 0 === (b & 4294901760) && (b <<= 16, c += 16); + 0 === (b & 4278190080) && (b <<= 8, c += 8); + 0 === (b & 4026531840) && (b <<= 4, c += 4); + 0 === (b & 3221225472) && (b <<= 2, c += 2); + 0 === (b & 2147483648) && c++; + return c + } + }); + p("Math.cosh", function (a) { + if (a) return a; + var b = Math.exp; + return function (c) { + c = Number(c); + return (b(c) + b(-c)) / 2 + } + }); + p("Math.expm1", function (a) { + return a ? a : function (b) { + b = Number(b); + if (.25 > b && -.25 < b) { + for (var c = b, d = 1, e = b, h = 0; h != e;) c *= b / ++d, e = (h = e) + c; + return e + } + return Math.exp(b) - 1 + } + }); + p("Math.fround", function (a) { + if (a) return a; + if ("function" !== typeof Float32Array) return function (c) { + return c + }; + var b = new Float32Array(1); + return function (c) { + b[0] = c; + return b[0] + } + }); + p("Math.hypot", function (a) { + return a ? a : function (b) { + if (2 > arguments.length) return arguments.length ? Math.abs(arguments[0]) : 0; + var c, d, e; + for (c = e = 0; c < arguments.length; c++) e = Math.max(e, Math.abs(arguments[c])); + if (1E100 < e || 1E-100 > e) { + if (!e) return e; + for (c = d = 0; c < arguments.length; c++) { + var h = Number(arguments[c]) / e; + d += h * h + } + return Math.sqrt(d) * e + } + for (c = d = 0; c < arguments.length; c++) h = Number(arguments[c]), d += h * h; + return Math.sqrt(d) + } + }); + p("Math.imul", function (a) { + return a ? a : function (b, c) { + b = Number(b); + c = Number(c); + var d = b & 65535, e = c & 65535; + return d * e + ((b >>> 16 & 65535) * e + d * (c >>> 16 & 65535) << 16 >>> 0) | 0 + } + }); + p("Math.log10", function (a) { + return a ? a : function (b) { + return Math.log(b) / Math.LN10 + } + }); + p("Math.log2", function (a) { + return a ? a : function (b) { + return Math.log(b) / Math.LN2 + } + }); + p("Math.sign", function (a) { + return a ? a : function (b) { + b = Number(b); + return 0 === b || isNaN(b) ? b : 0 < b ? 1 : -1 + } + }); + p("Math.sinh", function (a) { + if (a) return a; + var b = Math.exp; + return function (c) { + c = Number(c); + return 0 === c ? c : (b(c) - b(-c)) / 2 + } + }); + p("Math.tanh", function (a) { + return a ? a : function (b) { + b = Number(b); + if (0 === b) return b; + var c = Math.exp(-2 * Math.abs(b)); + c = (1 - c) / (1 + c); + return 0 > b ? -c : c + } + }); + p("Number.EPSILON", function () { + return Math.pow(2, -52) + }); + p("Number.MAX_SAFE_INTEGER", function () { + return 9007199254740991 + }); + p("Number.MIN_SAFE_INTEGER", function () { + return -9007199254740991 + }); + p("Number.isInteger", function (a) { + return a ? a : function (b) { + return Number.isFinite(b) ? b === Math.floor(b) : !1 + } + }); + p("Number.isNaN", function (a) { + return a ? a : function (b) { + return "number" === typeof b && isNaN(b) + } + }); + p("Number.isSafeInteger", function (a) { + return a ? a : function (b) { + return Number.isInteger(b) && Math.abs(b) <= Number.MAX_SAFE_INTEGER + } + }); + p("Number.parseFloat", function (a) { + return a || parseFloat + }); + p("Number.parseInt", function (a) { + return a || parseInt + }); + p("Object.entries", function (a) { + return a ? a : function (b) { + var c = [], d; + for (d in b) r(b, d) && c.push([d, b[d]]); + return c + } + }); + p("Object.fromEntries", function (a) { + return a ? a : function (b) { + var c = {}; + if (!(Symbol.iterator in b)) throw new TypeError("" + b + " is not iterable"); + b = b[Symbol.iterator].call(b); + for (var d = b.next(); !d.done; d = b.next()) { + d = d.value; + if (Object(d) !== d) throw new TypeError("iterable for fromEntries should yield objects"); + c[d[0]] = d[1] + } + return c + } + }); + p("Reflect", function (a) { + return a ? a : {} + }); + p("Object.getOwnPropertySymbols", function (a) { + return a ? a : function () { + return [] + } + }); + p("Reflect.ownKeys", function (a) { + return a ? a : function (b) { + var c = [], d = Object.getOwnPropertyNames(b); + b = Object.getOwnPropertySymbols(b); + for (var e = 0; e < d.length; e++) ("jscomp_symbol_" == d[e].substring(0, 14) ? b : c).push(d[e]); + return c.concat(b) + } + }); + p("Object.getOwnPropertyDescriptors", function (a) { + return a ? a : function (b) { + for (var c = {}, d = Reflect.ownKeys(b), e = 0; e < d.length; e++) c[d[e]] = Object.getOwnPropertyDescriptor(b, d[e]); + return c + } + }); + p("Object.values", function (a) { + return a ? a : function (b) { + var c = [], d; + for (d in b) r(b, d) && c.push(b[d]); + return c + } + }); + p("Object.hasOwn", function (a) { + return a ? a : function (b, c) { + return Object.prototype.hasOwnProperty.call(b, c) + } + }); + p("Promise.allSettled", function (a) { + function b(d) { + return {status: "fulfilled", value: d} + } + + function c(d) { + return {status: "rejected", reason: d} + } + + return a ? a : function (d) { + var e = this; + d = Array.from(d, function (h) { + return e.resolve(h).then(b, c) + }); + return e.all(d) + } + }); + p("Promise.prototype.finally", function (a) { + return a ? a : function (b) { + return this.then(function (c) { + return Promise.resolve(b()).then(function () { + return c + }) + }, function (c) { + return Promise.resolve(b()).then(function () { + throw c; + }) + }) + } + }); + var pa = "function" == typeof Object.create ? Object.create : function (a) { + function b() { + } + + b.prototype = a; + return new b + }; + + function qa(a, b) { + a.prototype = pa(b.prototype); + a.prototype.constructor = a; + if (t) t(a, b); else for (var c in b) if ("prototype" != c) if (Object.defineProperties) { + var d = Object.getOwnPropertyDescriptor(b, c); + d && Object.defineProperty(a, c, d) + } else a[c] = b[c]; + a.T = b.prototype + } + + p("AggregateError", function (a) { + function b(c, d) { + d = Error(d); + "stack" in d && (this.stack = d.stack); + this.errors = c; + this.message = d.message + } + + if (a) return a; + qa(b, Error); + b.prototype.name = "AggregateError"; + return b + }); + p("Promise.any", function (a) { + return a ? a : function (b) { + b = b instanceof Array ? b : Array.from(b); + return Promise.all(b.map(function (c) { + return Promise.resolve(c).then(function (d) { + throw d; + }, function (d) { + return d + }) + })).then(function (c) { + throw new AggregateError(c, "All promises were rejected"); + }, function (c) { + return c + }) + } + }); + p("Reflect.apply", function (a) { + if (a) return a; + var b = Function.prototype.apply; + return function (c, d, e) { + return b.call(c, d, e) + } + }); + var ta = function () { + function a() { + function c() { + } + + new c; + Reflect.construct(c, [], function () { + }); + return new c instanceof c + } + + if ("undefined" != typeof Reflect && Reflect.construct) { + if (a()) return Reflect.construct; + var b = Reflect.construct; + return function (c, d, e) { + c = b(c, d); + e && Reflect.setPrototypeOf(c, e.prototype); + return c + } + } + return function (c, d, e) { + void 0 === e && (e = c); + e = pa(e.prototype || Object.prototype); + return Function.prototype.apply.call(c, e, d) || e + } + }(); + p("Reflect.construct", function () { + return ta + }); + p("Reflect.defineProperty", function (a) { + return a ? a : function (b, c, d) { + try { + Object.defineProperty(b, c, d); + var e = Object.getOwnPropertyDescriptor(b, c); + return e ? e.configurable === (d.configurable || !1) && e.enumerable === (d.enumerable || !1) && ("value" in e ? e.value === d.value && e.writable === (d.writable || !1) : e.get === d.get && e.set === d.set) : !1 + } catch (h) { + return !1 + } + } + }); + p("Reflect.deleteProperty", function (a) { + return a ? a : function (b, c) { + if (!r(b, c)) return !0; + try { + return delete b[c] + } catch (d) { + return !1 + } + } + }); + p("Reflect.getOwnPropertyDescriptor", function (a) { + return a || Object.getOwnPropertyDescriptor + }); + p("Reflect.getPrototypeOf", function (a) { + return a || Object.getPrototypeOf + }); + + function ua(a, b) { + for (; a;) { + var c = Reflect.getOwnPropertyDescriptor(a, b); + if (c) return c; + a = Reflect.getPrototypeOf(a) + } + } + + p("Reflect.get", function (a) { + return a ? a : function (b, c, d) { + if (2 >= arguments.length) return b[c]; + var e = ua(b, c); + if (e) return e.get ? e.get.call(d) : e.value + } + }); + p("Reflect.has", function (a) { + return a ? a : function (b, c) { + return c in b + } + }); + p("Reflect.isExtensible", function (a) { + return a ? a : "function" == typeof Object.isExtensible ? Object.isExtensible : function () { + return !0 + } + }); + p("Reflect.preventExtensions", function (a) { + return a ? a : "function" != typeof Object.preventExtensions ? function () { + return !1 + } : function (b) { + Object.preventExtensions(b); + return !Object.isExtensible(b) + } + }); + p("Reflect.set", function (a) { + return a ? a : function (b, c, d, e) { + var h = ua(b, c); + return h ? h.set ? (h.set.call(3 < arguments.length ? e : b, d), !0) : h.writable && !Object.isFrozen(b) ? (b[c] = d, !0) : !1 : Reflect.isExtensible(b) ? (b[c] = d, !0) : !1 + } + }); + p("Reflect.setPrototypeOf", function (a) { + return a ? a : t ? function (b, c) { + try { + return t(b, c), !0 + } catch (d) { + return !1 + } + } : null + }); + p("Set", function (a) { + function b(c) { + this.g = new Map; + if (c) { + c = q(c); + for (var d; !(d = c.next()).done;) this.add(d.value) + } + this.size = this.g.size + } + + if (function () { + if (!a || "function" != typeof a || !a.prototype.entries || "function" != typeof Object.seal) return !1; + try { + var c = Object.seal({x: 4}), d = new a(q([c])); + if (!d.has(c) || 1 != d.size || d.add(c) != d || 1 != d.size || d.add({x: 4}) != d || 2 != d.size) return !1; + var e = d.entries(), h = e.next(); + if (h.done || h.value[0] != c || h.value[1] != c) return !1; + h = e.next(); + return h.done || h.value[0] == c || 4 != h.value[0].x || + h.value[1] != h.value[0] ? !1 : e.next().done + } catch (f) { + return !1 + } + }()) return a; + b.prototype.add = function (c) { + c = 0 === c ? 0 : c; + this.g.set(c, c); + this.size = this.g.size; + return this + }; + b.prototype.delete = function (c) { + c = this.g.delete(c); + this.size = this.g.size; + return c + }; + b.prototype.clear = function () { + this.g.clear(); + this.size = 0 + }; + b.prototype.has = function (c) { + return this.g.has(c) + }; + b.prototype.entries = function () { + return this.g.entries() + }; + b.prototype.values = function () { + return this.g.values() + }; + b.prototype.keys = b.prototype.values; + b.prototype[Symbol.iterator] = + b.prototype.values; + b.prototype.forEach = function (c, d) { + var e = this; + this.g.forEach(function (h) { + return c.call(d, h, h, e) + }) + }; + return b + }); + p("String.prototype.at", function (a) { + return a ? a : oa + }); + p("String.prototype.codePointAt", function (a) { + return a ? a : function (b) { + var c = v(this, null, "codePointAt"), d = c.length; + b = Number(b) || 0; + if (0 <= b && b < d) { + b |= 0; + var e = c.charCodeAt(b); + if (55296 > e || 56319 < e || b + 1 === d) return e; + b = c.charCodeAt(b + 1); + return 56320 > b || 57343 < b ? e : 1024 * (e - 55296) + b + 9216 + } + } + }); + p("String.fromCodePoint", function (a) { + return a ? a : function (b) { + for (var c = "", d = 0; d < arguments.length; d++) { + var e = Number(arguments[d]); + if (0 > e || 1114111 < e || e !== Math.floor(e)) throw new RangeError("invalid_code_point " + e); + 65535 >= e ? c += String.fromCharCode(e) : (e -= 65536, c += String.fromCharCode(e >>> 10 & 1023 | 55296), c += String.fromCharCode(e & 1023 | 56320)) + } + return c + } + }); + p("String.prototype.matchAll", function (a) { + return a ? a : function (b) { + if (b instanceof RegExp && !b.global) throw new TypeError("RegExp passed into String.prototype.matchAll() must have global tag."); + var c = new RegExp(b, b instanceof RegExp ? void 0 : "g"), d = this, e = !1, h = { + next: function () { + if (e) return {value: void 0, done: !0}; + var f = c.exec(d); + if (!f) return e = !0, {value: void 0, done: !0}; + "" === f[0] && (c.lastIndex += 1); + return {value: f, done: !1} + } + }; + h[Symbol.iterator] = function () { + return h + }; + return h + } + }); + + function va(a, b) { + a = void 0 !== a ? String(a) : " "; + return 0 < b && a ? a.repeat(Math.ceil(b / a.length)).substring(0, b) : "" + } + + p("String.prototype.padEnd", function (a) { + return a ? a : function (b, c) { + var d = v(this, null, "padStart"); + return d + va(c, b - d.length) + } + }); + p("String.prototype.padStart", function (a) { + return a ? a : function (b, c) { + var d = v(this, null, "padStart"); + return va(c, b - d.length) + d + } + }); + p("String.raw", function (a) { + return a ? a : function (b, c) { + if (null == b) throw new TypeError("Cannot convert undefined or null to object"); + for (var d = b.raw, e = d.length, h = "", f = 0; f < e; ++f) h += d[f], f + 1 < e && f + 1 < arguments.length && (h += String(arguments[f + 1])); + return h + } + }); + p("String.prototype.replaceAll", function (a) { + return a ? a : function (b, c) { + if (b instanceof RegExp && !b.global) throw new TypeError("String.prototype.replaceAll called with a non-global RegExp argument."); + return b instanceof RegExp ? this.replace(b, c) : this.replace(new RegExp(String(b).replace(/([-()\[\]{}+?*.$\^|,:# a.length ? "&" : "") + encodeURIComponent(d) + "=" + encodeURIComponent(String(f))) + } + } + return b + };var Sa = Array.prototype.some ? function (a, b) { + return Array.prototype.some.call(a, b, void 0) + } : function (a, b) { + for (var c = a.length, d = "string" === typeof a ? a.split("") : a, e = 0; e < c; e++) if (e in d && b.call(void 0, d[e], e, a)) return !0; + return !1 + }; + + function Ta() { + }; + + function Ua(a, b) { + for (var c in a) b.call(void 0, a[c], c, a) + } + + var Va = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); + + function Wa(a, b) { + for (var c, d, e = 1; e < arguments.length; e++) { + d = arguments[e]; + for (c in d) a[c] = d[c]; + for (var h = 0; h < Va.length; h++) c = Va[h], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]) + } + };var Xa, Ya = B("CLOSURE_FLAGS"), Za = Ya && Ya[610401301]; + Xa = null != Za ? Za : !1; + + function $a() { + var a = A.navigator; + return a && (a = a.userAgent) ? a : "" + } + + var K, ab = A.navigator; + K = ab ? ab.userAgentData || null : null; + + function bb(a, b) { + a:{ + var c = (a.ownerDocument && a.ownerDocument.defaultView || A).document; + if (c.querySelector && (c = c.querySelector("script[nonce]")) && (c = c.nonce || c.getAttribute("nonce")) && cb.test(c)) break a; + c = "" + } + c && a.setAttribute("nonce", c); + a.src = Ka(b) + } + + var cb = /^[\w+/_-]+[=]{0,2}$/; + var db = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"); + + function eb(a, b) { + if (a) { + a = a.split("&"); + for (var c = 0; c < a.length; c++) { + var d = a[c].indexOf("="), e = null; + if (0 <= d) { + var h = a[c].substring(0, d); + e = a[c].substring(d + 1) + } else h = a[c]; + b(h, e ? decodeURIComponent(e.replace(/\+/g, " ")) : "") + } + } + }; + + function L(a) { + this.g = this.o = this.j = ""; + this.u = null; + this.m = this.h = ""; + this.l = !1; + var b; + a instanceof L ? (this.l = a.l, fb(this, a.j), this.o = a.o, this.g = a.g, gb(this, a.u), this.h = a.h, hb(this, ib(a.i)), this.m = a.m) : a && (b = String(a).match(db)) ? (this.l = !1, fb(this, b[1] || "", !0), this.o = M(b[2] || ""), this.g = M(b[3] || "", !0), gb(this, b[4]), this.h = M(b[5] || "", !0), hb(this, b[6] || "", !0), this.m = M(b[7] || "")) : (this.l = !1, this.i = new N(null, this.l)) + } + + L.prototype.toString = function () { + var a = [], b = this.j; + b && a.push(O(b, jb, !0), ":"); + var c = this.g; + if (c || "file" == b) a.push("//"), (b = this.o) && a.push(O(b, jb, !0), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.u, null != c && a.push(":", String(c)); + if (c = this.h) this.g && "/" != c.charAt(0) && a.push("/"), a.push(O(c, "/" == c.charAt(0) ? kb : lb, !0)); + (c = this.i.toString()) && a.push("?", c); + (c = this.m) && a.push("#", O(c, mb)); + return a.join("") + }; + L.prototype.resolve = function (a) { + var b = new L(this), c = !!a.j; + c ? fb(b, a.j) : c = !!a.o; + c ? b.o = a.o : c = !!a.g; + c ? b.g = a.g : c = null != a.u; + var d = a.h; + if (c) gb(b, a.u); else if (c = !!a.h) { + if ("/" != d.charAt(0)) if (this.g && !this.h) d = "/" + d; else { + var e = b.h.lastIndexOf("/"); + -1 != e && (d = b.h.slice(0, e + 1) + d) + } + e = d; + if (".." == e || "." == e) d = ""; else if (-1 != e.indexOf("./") || -1 != e.indexOf("/.")) { + d = 0 == e.lastIndexOf("/", 0); + e = e.split("/"); + for (var h = [], f = 0; f < e.length;) { + var g = e[f++]; + "." == g ? d && f == e.length && h.push("") : ".." == g ? ((1 < h.length || 1 == h.length && "" != + h[0]) && h.pop(), d && f == e.length && h.push("")) : (h.push(g), d = !0) + } + d = h.join("/") + } else d = e + } + c ? b.h = d : c = "" !== a.i.toString(); + c ? hb(b, ib(a.i)) : c = !!a.m; + c && (b.m = a.m); + return b + }; + + function fb(a, b, c) { + a.j = c ? M(b, !0) : b; + a.j && (a.j = a.j.replace(/:$/, "")) + } + + function gb(a, b) { + if (b) { + b = Number(b); + if (isNaN(b) || 0 > b) throw Error("Bad port number " + b); + a.u = b + } else a.u = null + } + + function hb(a, b, c) { + b instanceof N ? (a.i = b, nb(a.i, a.l)) : (c || (b = O(b, ob)), a.i = new N(b, a.l)) + } + + function M(a, b) { + return a ? b ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : "" + } + + function O(a, b, c) { + return "string" === typeof a ? (a = encodeURI(a).replace(b, pb), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null + } + + function pb(a) { + a = a.charCodeAt(0); + return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16) + } + + var jb = /[#\/\?@]/g, lb = /[#\?:]/g, kb = /[#\?]/g, ob = /[#\?@]/g, mb = /#/g; + + function N(a, b) { + this.h = this.g = null; + this.i = a || null; + this.j = !!b + } + + function P(a) { + a.g || (a.g = new Map, a.h = 0, a.i && eb(a.i, function (b, c) { + a.add(decodeURIComponent(b.replace(/\+/g, " ")), c) + })) + } + + N.prototype.add = function (a, b) { + P(this); + this.i = null; + a = Q(this, a); + var c = this.g.get(a); + c || this.g.set(a, c = []); + c.push(b); + this.h += 1; + return this + }; + + function qb(a, b) { + P(a); + b = Q(a, b); + a.g.has(b) && (a.i = null, a.h -= a.g.get(b).length, a.g.delete(b)) + } + + function rb(a, b) { + P(a); + b = Q(a, b); + return a.g.has(b) + } + + N.prototype.forEach = function (a, b) { + P(this); + this.g.forEach(function (c, d) { + c.forEach(function (e) { + a.call(b, e, d, this) + }, this) + }, this) + }; + + function sb(a, b) { + P(a); + var c = []; + if ("string" === typeof b) rb(a, b) && (c = c.concat(a.g.get(Q(a, b)))); else for (a = Array.from(a.g.values()), b = 0; b < a.length; b++) c = c.concat(a[b]); + return c + } + + N.prototype.set = function (a, b) { + P(this); + this.i = null; + a = Q(this, a); + rb(this, a) && (this.h -= this.g.get(a).length); + this.g.set(a, [b]); + this.h += 1; + return this + }; + N.prototype.get = function (a, b) { + if (!a) return b; + a = sb(this, a); + return 0 < a.length ? String(a[0]) : b + }; + N.prototype.toString = function () { + if (this.i) return this.i; + if (!this.g) return ""; + for (var a = [], b = Array.from(this.g.keys()), c = 0; c < b.length; c++) { + var d = b[c], e = encodeURIComponent(String(d)); + d = sb(this, d); + for (var h = 0; h < d.length; h++) { + var f = e; + "" !== d[h] && (f += "=" + encodeURIComponent(String(d[h]))); + a.push(f) + } + } + return this.i = a.join("&") + }; + + function ib(a) { + var b = new N; + b.i = a.i; + a.g && (b.g = new Map(a.g), b.h = a.h); + return b + } + + function Q(a, b) { + b = String(b); + a.j && (b = b.toLowerCase()); + return b + } + + function nb(a, b) { + b && !a.j && (P(a), a.i = null, a.g.forEach(function (c, d) { + var e = d.toLowerCase(); + if (d != e && (qb(this, d), qb(this, e), 0 < c.length)) { + this.i = null; + d = this.g; + var h = d.set; + e = Q(this, e); + var f = c.length; + if (0 < f) { + for (var g = Array(f), k = 0; k < f; k++) g[k] = c[k]; + f = g + } else f = []; + h.call(d, e, f); + this.h += c.length + } + }, a)); + a.j = b + }; + + function tb(a, b) { + Ua(b, function (c, d) { + c && "object" == typeof c && c.K && (c = c.I()); + "style" == d ? a.style.cssText = c : "class" == d ? a.className = c : "for" == d ? a.htmlFor = c : ub.hasOwnProperty(d) ? a.setAttribute(ub[d], c) : 0 == d.lastIndexOf("aria-", 0) || 0 == d.lastIndexOf("data-", 0) ? a.setAttribute(d, c) : a[d] = c + }) + } + + var ub = { + cellpadding: "cellPadding", + cellspacing: "cellSpacing", + colspan: "colSpan", + frameborder: "frameBorder", + height: "height", + maxlength: "maxLength", + nonce: "nonce", + role: "role", + rowspan: "rowSpan", + type: "type", + usemap: "useMap", + valign: "vAlign", + width: "width" + }; + + function vb(a, b) { + b = String(b); + "application/xhtml+xml" === a.contentType && (b = b.toLowerCase()); + return a.createElement(b) + } + + function wb(a) { + this.g = a || A.document || document + }; + + function xb() { + }; + + function yb(a, b) { + this.i = a; + this.j = b; + this.h = 0; + this.g = null + } + + yb.prototype.get = function () { + if (0 < this.h) { + this.h--; + var a = this.g; + this.g = a.next; + a.next = null + } else a = this.i(); + return a + }; + + function zb(a, b) { + a.j(b); + 100 > a.h && (a.h++, b.next = a.g, a.g = b) + };var Ab; + + function Bb() { + var a = A.MessageChannel; + "undefined" === typeof a && "undefined" !== typeof window && window.postMessage && window.addEventListener && -1 == $a().indexOf("Presto") && (a = function () { + var e = vb(document, "IFRAME"); + e.style.display = "none"; + document.documentElement.appendChild(e); + var h = e.contentWindow; + e = h.document; + e.open(); + e.close(); + var f = "callImmediate" + Math.random(), + g = "file:" == h.location.protocol ? "*" : h.location.protocol + "//" + h.location.host; + e = C(function (k) { + if (("*" == g || k.origin == g) && k.data == f) this.port1.onmessage() + }, this); + h.addEventListener("message", e, !1); + this.port1 = {}; + this.port2 = { + postMessage: function () { + h.postMessage(f, g) + } + } + }); + if ("undefined" !== typeof a && (Xa && K && 0 < K.brands.length || -1 == $a().indexOf("Trident") && -1 == $a().indexOf("MSIE"))) { + var b = new a, c = {}, d = c; + b.port1.onmessage = function () { + if (void 0 !== c.next) { + c = c.next; + var e = c.H; + c.H = null; + e() + } + }; + return function (e) { + d.next = {H: e}; + d = d.next; + b.port2.postMessage(0) + } + } + return function (e) { + A.setTimeout(e, 0) + } + }; + + function Cb(a) { + A.setTimeout(function () { + throw a; + }, 0) + }; + + function Db() { + this.h = this.g = null + } + + Db.prototype.add = function (a, b) { + var c = Eb.get(); + c.set(a, b); + this.h ? this.h.next = c : this.g = c; + this.h = c + }; + + function Fb() { + var a = Gb, b = null; + a.g && (b = a.g, a.g = a.g.next, a.g || (a.h = null), b.next = null); + return b + } + + var Eb = new yb(function () { + return new Hb + }, function (a) { + return a.reset() + }); + + function Hb() { + this.next = this.g = this.h = null + } + + Hb.prototype.set = function (a, b) { + this.h = a; + this.g = b; + this.next = null + }; + Hb.prototype.reset = function () { + this.next = this.g = this.h = null + }; + var Ib, Jb = !1, Gb = new Db; + + function Kb(a, b) { + Ib || Lb(); + Jb || (Ib(), Jb = !0); + Gb.add(a, b) + } + + function Lb() { + if (A.Promise && A.Promise.resolve) { + var a = A.Promise.resolve(void 0); + Ib = function () { + a.then(Mb) + } + } else Ib = function () { + var b = Mb; + "function" !== typeof A.setImmediate || A.Window && A.Window.prototype && (Xa && K && 0 < K.brands.length || -1 == $a().indexOf("Edge")) && A.Window.prototype.setImmediate == A.setImmediate ? (Ab || (Ab = Bb()), Ab(b)) : A.setImmediate(b) + } + } + + function Mb() { + for (var a; a = Fb();) { + try { + a.h.call(a.g) + } catch (b) { + Cb(b) + } + zb(Eb, a) + } + Jb = !1 + }; + + function Nb(a) { + if (!a) return !1; + try { + return !!a.$goog_Thenable + } catch (b) { + return !1 + } + }; + + function R(a) { + this.g = 0; + this.o = void 0; + this.j = this.h = this.i = null; + this.l = this.m = !1; + if (a != Ta) try { + var b = this; + a.call(void 0, function (c) { + S(b, 2, c) + }, function (c) { + S(b, 3, c) + }) + } catch (c) { + S(this, 3, c) + } + } + + function Ob() { + this.next = this.i = this.h = this.j = this.g = null; + this.l = !1 + } + + Ob.prototype.reset = function () { + this.i = this.h = this.j = this.g = null; + this.l = !1 + }; + var Pb = new yb(function () { + return new Ob + }, function (a) { + a.reset() + }); + + function Qb(a, b, c) { + var d = Pb.get(); + d.j = a; + d.h = b; + d.i = c; + return d + } + + R.prototype.then = function (a, b, c) { + return Rb(this, "function" === typeof a ? a : null, "function" === typeof b ? b : null, c) + }; + R.prototype.$goog_Thenable = !0; + R.prototype.cancel = function (a) { + if (0 == this.g) { + var b = new T(a); + Kb(function () { + Sb(this, b) + }, this) + } + }; + + function Sb(a, b) { + if (0 == a.g) if (a.i) { + var c = a.i; + if (c.h) { + for (var d = 0, e = null, h = null, f = c.h; f && (f.l || (d++, f.g == a && (e = f), !(e && 1 < d))); f = f.next) e || (h = f); + e && (0 == c.g && 1 == d ? Sb(c, b) : (h ? (d = h, d.next == c.j && (c.j = d), d.next = d.next.next) : Tb(c), Ub(c, e, 3, b))) + } + a.i = null + } else S(a, 3, b) + } + + function Vb(a, b) { + a.h || 2 != a.g && 3 != a.g || Wb(a); + a.j ? a.j.next = b : a.h = b; + a.j = b + } + + function Rb(a, b, c, d) { + var e = Qb(null, null, null); + e.g = new R(function (h, f) { + e.j = b ? function (g) { + try { + var k = b.call(d, g); + h(k) + } catch (m) { + f(m) + } + } : h; + e.h = c ? function (g) { + try { + var k = c.call(d, g); + void 0 === k && g instanceof T ? f(g) : h(k) + } catch (m) { + f(m) + } + } : f + }); + e.g.i = a; + Vb(a, e); + return e.g + } + + R.prototype.A = function (a) { + this.g = 0; + S(this, 2, a) + }; + R.prototype.B = function (a) { + this.g = 0; + S(this, 3, a) + }; + + function S(a, b, c) { + if (0 == a.g) { + a === c && (b = 3, c = new TypeError("Promise cannot resolve to itself")); + a.g = 1; + a:{ + var d = c, e = a.A, h = a.B; + if (d instanceof R) { + Vb(d, Qb(e || Ta, h || null, a)); + var f = !0 + } else if (Nb(d)) d.then(e, h, a), f = !0; else { + if (wa(d)) try { + var g = d.then; + if ("function" === typeof g) { + Xb(d, g, e, h, a); + f = !0; + break a + } + } catch (k) { + h.call(a, k); + f = !0; + break a + } + f = !1 + } + } + f || (a.o = c, a.g = b, a.i = null, Wb(a), 3 != b || c instanceof T || Yb(a, c)) + } + } + + function Xb(a, b, c, d, e) { + function h(k) { + g || (g = !0, d.call(e, k)) + } + + function f(k) { + g || (g = !0, c.call(e, k)) + } + + var g = !1; + try { + b.call(a, f, h) + } catch (k) { + h(k) + } + } + + function Wb(a) { + a.m || (a.m = !0, Kb(a.u, a)) + } + + function Tb(a) { + var b = null; + a.h && (b = a.h, a.h = b.next, b.next = null); + a.h || (a.j = null); + return b + } + + R.prototype.u = function () { + for (var a; a = Tb(this);) Ub(this, a, this.g, this.o); + this.m = !1 + }; + + function Ub(a, b, c, d) { + if (3 == c && b.h && !b.l) for (; a && a.l; a = a.i) a.l = !1; + if (b.g) b.g.i = null, Zb(b, c, d); else try { + b.l ? b.j.call(b.i) : Zb(b, c, d) + } catch (e) { + $b.call(null, e) + } + zb(Pb, b) + } + + function Zb(a, b, c) { + 2 == b ? a.j.call(a.i, c) : a.h && a.h.call(a.i, c) + } + + function Yb(a, b) { + a.l = !0; + Kb(function () { + a.l && $b.call(null, b) + }) + } + + var $b = Cb; + + function T(a) { + F.call(this, a) + } + + E(T, F); + T.prototype.name = "cancel";/* + + Copyright 2005, 2007 Bob Ippolito. All Rights Reserved. + Copyright The Closure Library Authors. + SPDX-License-Identifier: MIT +*/ + function U(a, b) { + this.l = []; + this.D = a; + this.C = b || null; + this.j = this.i = !1; + this.h = void 0; + this.A = this.G = this.o = !1; + this.m = 0; + this.g = null; + this.u = 0 + } + + E(U, xb); + U.prototype.cancel = function (a) { + if (this.i) this.h instanceof U && this.h.cancel(); else { + if (this.g) { + var b = this.g; + delete this.g; + a ? b.cancel(a) : (b.u--, 0 >= b.u && b.cancel()) + } + this.D ? this.D.call(this.C, this) : this.A = !0; + this.i || (a = new V(this), ac(this), W(this, !1, a)) + } + }; + U.prototype.B = function (a, b) { + this.o = !1; + W(this, a, b) + }; + + function W(a, b, c) { + a.i = !0; + a.h = c; + a.j = !b; + bc(a) + } + + function ac(a) { + if (a.i) { + if (!a.A) throw new cc(a); + a.A = !1 + } + } + + function dc(a, b, c, d) { + a.l.push([b, c, d]); + a.i && bc(a) + } + + U.prototype.then = function (a, b, c) { + var d, e, h = new R(function (f, g) { + e = f; + d = g + }); + dc(this, e, function (f) { + f instanceof V ? h.cancel() : d(f); + return ec + }, this); + return h.then(a, b, c) + }; + U.prototype.$goog_Thenable = !0; + + function fc(a) { + return Sa(a.l, function (b) { + return "function" === typeof b[1] + }) + } + + var ec = {}; + + function bc(a) { + if (a.m && a.i && fc(a)) { + var b = a.m, c = gc[b]; + c && (A.clearTimeout(c.g), delete gc[b]); + a.m = 0 + } + a.g && (a.g.u--, delete a.g); + b = a.h; + for (var d = c = !1; a.l.length && !a.o;) { + var e = a.l.shift(), h = e[0], f = e[1]; + e = e[2]; + if (h = a.j ? f : h) try { + var g = h.call(e || a.C, b); + g === ec && (g = void 0); + void 0 !== g && (a.j = a.j && (g == b || g instanceof Error), a.h = b = g); + if (Nb(b) || "function" === typeof A.Promise && b instanceof A.Promise) d = !0, a.o = !0 + } catch (k) { + b = k, a.j = !0, fc(a) || (c = !0) + } + } + a.h = b; + d && (g = C(a.B, a, !0), d = C(a.B, a, !1), b instanceof U ? (dc(b, g, d), b.G = !0) : + b.then(g, d)); + c && (b = new hc(b), gc[b.g] = b, a.m = b.g) + } + + function cc() { + F.call(this) + } + + E(cc, F); + cc.prototype.message = "Deferred has already fired"; + cc.prototype.name = "AlreadyCalledError"; + + function V() { + F.call(this) + } + + E(V, F); + V.prototype.message = "Deferred was canceled"; + V.prototype.name = "CanceledError"; + + function hc(a) { + this.g = A.setTimeout(C(this.i, this), 0); + this.h = a + } + + hc.prototype.i = function () { + delete gc[this.g]; + throw this.h; + }; + var gc = {}; + + function ic(a) { + var b; + return (b = (a || document).getElementsByTagName("HEAD")) && 0 !== b.length ? b[0] : a.documentElement + } + + function jc() { + if (this && this.L) { + var a = this.L; + a && "SCRIPT" == a.tagName && kc(a, !0, this.M) + } + } + + function kc(a, b, c) { + null != c && A.clearTimeout(c); + a.onload = function () { + }; + a.onerror = function () { + }; + a.onreadystatechange = function () { + }; + b && window.setTimeout(function () { + a && a.parentNode && a.parentNode.removeChild(a) + }, 0) + } + + function lc(a, b) { + var c = "Jsloader error (code #" + a + ")"; + b && (c += ": " + b); + F.call(this, c); + this.code = a + } + + E(lc, F);/* + + Copyright 2021 Google LLC + This code is released under the MIT license. + SPDX-License-Identifier: MIT +*/ + function mc(a) { + return Qa(a.format, a.R, a.X || {}) + } + + function nc(a) { + var b = {timeout: 3E4, attributes: {async: !1, defer: !1}}, c = b.document || document, d = Ka(a).toString(), + e = vb((new wb(c)).g, "SCRIPT"), h = {L: e, M: void 0}, f = new U(jc, h), g = null, + k = null != b.timeout ? b.timeout : 5E3; + 0 < k && (g = window.setTimeout(function () { + kc(e, !0); + var m = new lc(1, "Timeout reached for loading script " + d); + ac(f); + W(f, !1, m) + }, k), h.M = g); + e.onload = e.onreadystatechange = function () { + e.readyState && "loaded" != e.readyState && "complete" != e.readyState || (kc(e, b.V || !1, g), ac(f), W(f, !0, null)) + }; + e.onerror = function () { + kc(e, + !0, g); + var m = new lc(0, "Error while loading script " + d); + ac(f); + W(f, !1, m) + }; + h = b.attributes || {}; + Wa(h, {type: "text/javascript", charset: "UTF-8"}); + tb(e, h); + bb(e, a); + ic(c).appendChild(e); + return f + } + + function oc(a, b, c) { + c = c || {}; + a = Qa(a, b, c); + var d = nc(a); + return new Promise(function (e) { + dc(d, e, null) + }) + };/* + + Copyright 2021 Google LLC + This code is released under the MIT license. + SPDX-License-Identifier: MIT + +*/ + function pc() { + return new Promise(function (a) { + "undefined" === typeof window || "complete" === document.readyState ? a() : window.addEventListener ? (document.addEventListener("DOMContentLoaded", a, !0), window.addEventListener("load", a, !0)) : window.attachEvent ? window.attachEvent("onload", a) : "function" !== typeof window.onload ? window.onload = a : window.onload = function (b) { + if (window.onload) window.onload(b); + a() + } + }) + };var X = "", Y = "", qc, Z, rc = null, sc; + + function tc(a) { + var b = a, c, d = a.match(/^testing-/); + d && (b = b.replace(/^testing-/, "")); + a = b; + do { + if (b === Ha[b]) throw Error("Infinite loop in version mapping: " + b); + (c = Ha[b]) && (b = c) + } while (c); + c = (d ? "testing-" : "") + b; + a = "pre-45" == b ? a : c; + return {version: a, S: c} + } + + function uc(a) { + var b = Da[sc].loader, c = tc(a); + return oc(b, {version: c.S}).then(function () { + var d = B("google.charts.loader.versionSpecific.load") || B("google.charts.loader.VersionSpecific.load") || B("google.charts.loader.publicLoad") || B("google.charts.versionSpecific.load"); + if (!d) throw Error("Bad version: " + a); + rc = function (e) { + e = d(c.version, e); + if (null == e || null == e.then) { + var h = B("google.charts.loader.publicSetOnLoadCallback") || B("google.charts.versionSpecific.setOnLoadCallback"); + e = new Promise(function (f) { + h(f) + }); + e.then = h + } + return e + } + }) + } + + function vc(a) { + "string" === typeof a && (a = [a]); + Array.isArray(a) && 0 !== a.length || (a = Ea); + var b = []; + a.forEach(function (c) { + c = c.toLowerCase(); + b = b.concat(c.split(/[\s,]+\s*/)) + }); + return b + } + + function wc(a) { + a = a || ""; + for (var b = a.replace(/-/g, "_").toLowerCase(); "string" === typeof b;) a = b, b = Ga[b], b === a && (b = !1); + b || (a.match(/_[^_]+$/) ? (a = a.replace(/_[^_]+$/, ""), a = wc(a)) : a = "en"); + return a + } + + function xc(a) { + a = a || ""; + "" !== X && X !== a && (console.warn(" Attempting to load version '" + a + "' of Google Charts, but the previously loaded '" + (X + "' will be used instead.")), a = X); + return X = a || "" + } + + function yc(a) { + a = a || ""; + "" !== Y && Y !== a && (console.warn(" Attempting to load Google Charts for language '" + a + "', but the previously loaded '" + (Y + "' will be used instead.")), a = Y); + "en" === a && (a = ""); + return Y = a || "" + } + + function zc(a) { + var b = {}, c; + for (c in a) b[c] = a[c]; + return b + } + + function Ac(a, b) { + b = zc(b); + b.domain = sc; + b.callback = Bc(b.callback); + a = xc(a); + var c = b.language; + c = yc(wc(c)); + b.language = c; + if (!qc) { + if (b.enableUrlSettings && window.URLSearchParams) try { + a = (new URLSearchParams(top.location.search)).get("charts-version") || a + } catch (d) { + console.info("Failed to get charts-version from top URL", d) + } + qc = uc(a) + } + b.packages = vc(b.packages); + return Z = qc.then(function () { + return rc(b) + }) + } + + function Cc(a) { + if (!Z) throw Error("Must call google.charts.load before google.charts.setOnLoadCallback"); + return a ? Z.then(a) : Z + } + + D("google.charts.safeLoad", function (a) { + return Dc(Object.assign({}, a, {safeMode: !0})) + }); + + function Dc() { + var a = la.apply(0, arguments), b = 0; + "visualization" === a[b] && b++; + var c = "current"; + if ("string" === typeof a[b] || "number" === typeof a[b]) c = String(a[b]), b++; + var d = {}; + wa(a[b]) && (d = a[b]); + return Ac(c, d) + } + + D("google.charts.load", Dc); + D("google.charts.setOnLoadCallback", Cc); + var Ec = I("https://maps.googleapis.com/maps/api/js?jsapiRedirect=true"), + Fc = I("https://maps-api-ssl.google.com/maps?jsapiRedirect=true&file=googleapi"); + + function Gc(a, b, c) { + console.warn("Loading Maps API with the jsapi loader is deprecated."); + c = c || {}; + a = c.key || c.client; + var d = c.libraries, e = function (g) { + for (var k = {}, m = 0; m < g.length; m++) { + var n = g[m]; + k[n[0]] = n[1] + } + return k + }(c.other_params ? c.other_params.split("&").map(function (g) { + return g.split("=") + }) : []), h = Object.assign({}, {key: a, W: d}, e), f = "2" === b ? Fc : Ec; + Z = new Promise(function (g) { + var k = Bc(c && c.callback); + oc(f, {}, h).then(k).then(g) + }) + } + + var Hc = I("https://www.gstatic.com/inputtools/js/ita/inputtools_3.js"); + + function Ic(a, b, c) { + wa(c) && c.packages ? (Array.isArray(c.packages) ? c.packages : [c.packages]).includes("inputtools") ? (console.warn('Loading "elements" with the jsapi loader is deprecated.\nPlease load ' + (Hc + " directly.")), Z = new Promise(function (d) { + var e = Bc(c && c.callback); + oc(Hc, {}, {}).then(e).then(d) + })) : console.error('Loading "elements" other than "inputtools" is unsupported.') : console.error("google.load of elements was invoked without specifying packages") + } + + var Jc = I("https://ajax.googleapis.com/ajax/libs/%{module}/%{version}/%{file}"); + + function Kc(a, b) { + var c; + do { + if (a === b[a]) throw Error("Infinite loop in version mapping for version " + a); + (c = b[a]) && (a = c) + } while (c); + return a + } + + function Lc(a, b, c) { + var d = Fa[a]; + if (d) { + b = Kc(b, d.aliases); + d = d.versions[b]; + if (!d) throw Error("Unknown version, " + b + ", of " + a + "."); + var e = {module: a, version: b || "", file: d.compressed}; + b = Ka(mc({format: Jc, R: e})).toString(); + console.warn("Loading modules with the jsapi loader is deprecated.\nPlease load " + (a + " directly from " + b + ".")); + Z = new Promise(function (h) { + var f = Bc(c && c.callback); + oc(Jc, e).then(f).then(h) + }) + } else setTimeout(function () { + throw Error('Module "' + a + '" is not supported.'); + }, 0) + } + + function Bc(a) { + return function () { + if ("function" === typeof a) a(); else if ("string" === typeof a && "" !== a) try { + var b = B(a); + if ("function" !== typeof b) throw Error("Type of '" + a + "' is " + typeof b + "."); + b() + } catch (c) { + throw Error("Callback of " + a + " failed with: " + c); + } + } + } + + function Mc() { + var a = la.apply(0, arguments); + switch (a[0]) { + case "maps": + Gc.apply(null, ea(a)); + break; + case "elements": + Ic.apply(null, ea(a)); + break; + case "visualization": + Dc.apply(null, ea(a)); + break; + default: + Lc.apply(null, ea(a)) + } + } + + D("google.loader.LoadFailure", !1); + if (sc) console.warn("Google Charts loader.js should only be loaded once."); else { + Y = X = ""; + rc = Z = qc = null; + B("google.load") || (D("google.load", Mc), D("google.setOnLoadCallback", Cc)); + var Nc = document.getElementsByTagName("script"), + Oc = (document.currentScript || Nc[Nc.length - 1]).getAttribute("src"), Pc = new L(Oc), Qc = Pc.g; + sc = Qc = Qc.match(/^www\.gstatic\.cn/) ? "gstatic.cn" : "gstatic.com"; + var Rc = new N(Pc.i.toString()), Sc = Rc.get("callback"); + if ("string" === typeof Sc) { + var Tc = Bc(Sc); + pc().then(Tc) + } + var Uc = Rc.get("autoload"); + if ("string" === + typeof Uc) try { + if ("" !== Uc) for (var Vc = JSON.parse(Uc).modules, Wc = 0; Wc < Vc.length; Wc++) { + var Xc = Vc[Wc]; + Mc(Xc.name, Xc.version, Xc) + } + } catch (a) { + throw Error("Autoload failed with: " + a); + } + } + ; +}).call(this); \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle-fill.svg new file mode 100644 index 0000000..2f5f026 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle.svg new file mode 100644 index 0000000..5e84c8c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square-fill.svg new file mode 100644 index 0000000..cca049b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square.svg new file mode 100644 index 0000000..73b7bc1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/0-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle-fill.svg new file mode 100644 index 0000000..b10d0f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle.svg new file mode 100644 index 0000000..2aa21f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square-fill.svg new file mode 100644 index 0000000..2ce792f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square.svg new file mode 100644 index 0000000..773534a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/1-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/123.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/123.svg new file mode 100644 index 0000000..277d405 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/123.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle-fill.svg new file mode 100644 index 0000000..169df3a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle.svg new file mode 100644 index 0000000..00260b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square-fill.svg new file mode 100644 index 0000000..2760ca7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square.svg new file mode 100644 index 0000000..4a79ed6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/2-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle-fill.svg new file mode 100644 index 0000000..9aedc47 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle.svg new file mode 100644 index 0000000..c2fc517 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square-fill.svg new file mode 100644 index 0000000..20c71a7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square.svg new file mode 100644 index 0000000..f0907cc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/3-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle-fill.svg new file mode 100644 index 0000000..51dc8a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle.svg new file mode 100644 index 0000000..e25df51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square-fill.svg new file mode 100644 index 0000000..ce3aa94 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square.svg new file mode 100644 index 0000000..769102d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/4-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle-fill.svg new file mode 100644 index 0000000..915462d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle.svg new file mode 100644 index 0000000..5ef620d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square-fill.svg new file mode 100644 index 0000000..2b066bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square.svg new file mode 100644 index 0000000..ad3e281 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/5-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle-fill.svg new file mode 100644 index 0000000..21b601a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle.svg new file mode 100644 index 0000000..fc036b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square-fill.svg new file mode 100644 index 0000000..908706d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square.svg new file mode 100644 index 0000000..ce28209 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/6-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle-fill.svg new file mode 100644 index 0000000..0f4f6d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle.svg new file mode 100644 index 0000000..796f45c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square-fill.svg new file mode 100644 index 0000000..604186d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square.svg new file mode 100644 index 0000000..f269032 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/7-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle-fill.svg new file mode 100644 index 0000000..579846b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle.svg new file mode 100644 index 0000000..2dbb93e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square-fill.svg new file mode 100644 index 0000000..f8efe93 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square.svg new file mode 100644 index 0000000..f29d225 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/8-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle-fill.svg new file mode 100644 index 0000000..b19b3f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle.svg new file mode 100644 index 0000000..ff91949 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square-fill.svg new file mode 100644 index 0000000..e2ca2c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square.svg new file mode 100644 index 0000000..3410f7b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/9-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/activity.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/activity.svg new file mode 100644 index 0000000..1ca946e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/activity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines-fill.svg new file mode 100644 index 0000000..3d8f185 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines.svg new file mode 100644 index 0000000..2efc31e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-engines.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-fill.svg new file mode 100644 index 0000000..b1e4fa3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane.svg new file mode 100644 index 0000000..5f937e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/airplane.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm-fill.svg new file mode 100644 index 0000000..a53c88f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm.svg new file mode 100644 index 0000000..27160b3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alarm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alexa.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alexa.svg new file mode 100644 index 0000000..0827c41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alexa.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-bottom.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-bottom.svg new file mode 100644 index 0000000..5c2569f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-bottom.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-center.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-center.svg new file mode 100644 index 0000000..ea4290b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-end.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-end.svg new file mode 100644 index 0000000..15429bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-end.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-middle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-middle.svg new file mode 100644 index 0000000..82f6801 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-middle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-start.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-start.svg new file mode 100644 index 0000000..75dca50 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-start.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-top.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-top.svg new file mode 100644 index 0000000..f354fc5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/align-top.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alipay.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alipay.svg new file mode 100644 index 0000000..30b6fe7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alipay.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet-uppercase.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet-uppercase.svg new file mode 100644 index 0000000..d0887b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet-uppercase.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet.svg new file mode 100644 index 0000000..5d097d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alphabet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alt.svg new file mode 100644 index 0000000..2141bcb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amazon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amazon.svg new file mode 100644 index 0000000..0752545 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amazon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amd.svg new file mode 100644 index 0000000..ef0757c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/amd.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android.svg new file mode 100644 index 0000000..4c1f097 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android2.svg new file mode 100644 index 0000000..f49c14e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/android2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app-indicator.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app-indicator.svg new file mode 100644 index 0000000..b28e219 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app-indicator.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app.svg new file mode 100644 index 0000000..b361308 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/app.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/apple.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/apple.svg new file mode 100644 index 0000000..58235c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/apple.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive-fill.svg new file mode 100644 index 0000000..e5ea32b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive.svg new file mode 100644 index 0000000..7bc5eb2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/archive.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-down.svg new file mode 100644 index 0000000..7459597 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-left.svg new file mode 100644 index 0000000..4e17ab4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-right.svg new file mode 100644 index 0000000..9fb6363 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-up.svg new file mode 100644 index 0000000..11be0de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-90deg-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-down.svg new file mode 100644 index 0000000..1b212d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-left.svg new file mode 100644 index 0000000..621bf2a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-right.svg new file mode 100644 index 0000000..0210410 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-up.svg new file mode 100644 index 0000000..d5510da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-bar-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-clockwise.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-clockwise.svg new file mode 100644 index 0000000..324d5af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-clockwise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-counterclockwise.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-counterclockwise.svg new file mode 100644 index 0000000..3d9ff62 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-counterclockwise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle-fill.svg new file mode 100644 index 0000000..242eb58 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle.svg new file mode 100644 index 0000000..42e96b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle-fill.svg new file mode 100644 index 0000000..e7f4735 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle.svg new file mode 100644 index 0000000..f67491f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square-fill.svg new file mode 100644 index 0000000..6e03bf2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square.svg new file mode 100644 index 0000000..1278d39 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left.svg new file mode 100644 index 0000000..4011c77 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle-fill.svg new file mode 100644 index 0000000..4ff73b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle.svg new file mode 100644 index 0000000..054e83f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square-fill.svg new file mode 100644 index 0000000..a556e06 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square.svg new file mode 100644 index 0000000..4bfb679 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right.svg new file mode 100644 index 0000000..08aef16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-short.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-short.svg new file mode 100644 index 0000000..66b7fa1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square-fill.svg new file mode 100644 index 0000000..c9020dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square.svg new file mode 100644 index 0000000..c492b71 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-up.svg new file mode 100644 index 0000000..04cb3a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down.svg new file mode 100644 index 0000000..f66f74b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle-fill.svg new file mode 100644 index 0000000..ae19d97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle.svg new file mode 100644 index 0000000..f3246ea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-right.svg new file mode 100644 index 0000000..89c4003 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-short.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-short.svg new file mode 100644 index 0000000..abb15dd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square-fill.svg new file mode 100644 index 0000000..3ee717e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square.svg new file mode 100644 index 0000000..8f09a48 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left.svg new file mode 100644 index 0000000..587d4fe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-repeat.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-repeat.svg new file mode 100644 index 0000000..b17dba4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-repeat.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-left.svg new file mode 100644 index 0000000..3c13fc4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-right.svg new file mode 100644 index 0000000..60d282c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-return-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle-fill.svg new file mode 100644 index 0000000..32c21ea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle.svg new file mode 100644 index 0000000..ad7293e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-short.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-short.svg new file mode 100644 index 0000000..fa238ff --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square-fill.svg new file mode 100644 index 0000000..c7c8eec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square.svg new file mode 100644 index 0000000..7a4b78b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right.svg new file mode 100644 index 0000000..2362904 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart-fill.svg new file mode 100644 index 0000000..e98bce1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart.svg new file mode 100644 index 0000000..daf397b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-through-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle-fill.svg new file mode 100644 index 0000000..9e7ef36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle.svg new file mode 100644 index 0000000..e18a689 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle-fill.svg new file mode 100644 index 0000000..e1e2e97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle.svg new file mode 100644 index 0000000..3101b65 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square-fill.svg new file mode 100644 index 0000000..e699865 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square.svg new file mode 100644 index 0000000..4f31190 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left.svg new file mode 100644 index 0000000..938d0d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle-fill.svg new file mode 100644 index 0000000..0eb9b54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle.svg new file mode 100644 index 0000000..ed6ae41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square-fill.svg new file mode 100644 index 0000000..c2246ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square.svg new file mode 100644 index 0000000..b14940f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right.svg new file mode 100644 index 0000000..7b3794b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-short.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-short.svg new file mode 100644 index 0000000..543089a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-short.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square-fill.svg new file mode 100644 index 0000000..9d7f65f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square.svg new file mode 100644 index 0000000..bec15c4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up.svg new file mode 100644 index 0000000..951521a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrow-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-contract.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-contract.svg new file mode 100644 index 0000000..1aa7875 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-expand.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-expand.svg new file mode 100644 index 0000000..578d3b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-angle-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse-vertical.svg new file mode 100644 index 0000000..0fc4477 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse.svg new file mode 100644 index 0000000..ca055c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-collapse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand-vertical.svg new file mode 100644 index 0000000..9dbfac4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand.svg new file mode 100644 index 0000000..99eb276 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-fullscreen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-fullscreen.svg new file mode 100644 index 0000000..7633e3f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-fullscreen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-move.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-move.svg new file mode 100644 index 0000000..ef2b885 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-move.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-vertical.svg new file mode 100644 index 0000000..22f60fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows.svg new file mode 100644 index 0000000..a6bd3d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/arrows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio-fill.svg new file mode 100644 index 0000000..6d6cb8d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio.svg new file mode 100644 index 0000000..ee634b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/aspect-ratio.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/asterisk.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/asterisk.svg new file mode 100644 index 0000000..fbc13b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/asterisk.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/at.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/at.svg new file mode 100644 index 0000000..3cab29e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/at.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award-fill.svg new file mode 100644 index 0000000..f996790 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award.svg new file mode 100644 index 0000000..67c760b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/award.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/back.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/back.svg new file mode 100644 index 0000000..9f55340 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/back.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack-fill.svg new file mode 100644 index 0000000..ec737a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack.svg new file mode 100644 index 0000000..819aa29 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2-fill.svg new file mode 100644 index 0000000..3c9b4da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2.svg new file mode 100644 index 0000000..e0e4fe5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack2.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3-fill.svg new file mode 100644 index 0000000..4583c4f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3.svg new file mode 100644 index 0000000..819f8df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4-fill.svg new file mode 100644 index 0000000..a3bba3a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4.svg new file mode 100644 index 0000000..140a12d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backpack4.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-fill.svg new file mode 100644 index 0000000..0787578 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse-fill.svg new file mode 100644 index 0000000..41c8dbb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse.svg new file mode 100644 index 0000000..7b3fafd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace.svg new file mode 100644 index 0000000..39b688f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/backspace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d-fill.svg new file mode 100644 index 0000000..750598c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d.svg new file mode 100644 index 0000000..b3153f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-3d.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k-fill.svg new file mode 100644 index 0000000..72f34b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k.svg new file mode 100644 index 0000000..3dfc9b1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-4k.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k-fill.svg new file mode 100644 index 0000000..4bd9b80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k.svg new file mode 100644 index 0000000..d11f82d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-8k.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad-fill.svg new file mode 100644 index 0000000..023f210 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad.svg new file mode 100644 index 0000000..616ad74 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ad.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar-fill.svg new file mode 100644 index 0000000..48aee0f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar.svg new file mode 100644 index 0000000..0fc1975 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-ar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc-fill.svg new file mode 100644 index 0000000..0f3d1f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc.svg new file mode 100644 index 0000000..d5f42e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-cc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd-fill.svg new file mode 100644 index 0000000..96f0875 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd.svg new file mode 100644 index 0000000..5689042 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-hd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd-fill.svg new file mode 100644 index 0000000..a37154a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd.svg new file mode 100644 index 0000000..df8d029 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-sd.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm-fill.svg new file mode 100644 index 0000000..632b569 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm.svg new file mode 100644 index 0000000..33de5c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-tm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo-fill.svg new file mode 100644 index 0000000..1d27b07 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo.svg new file mode 100644 index 0000000..f5e2ece --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vo.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr-fill.svg new file mode 100644 index 0000000..e614af6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr.svg new file mode 100644 index 0000000..c1c73dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-vr.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc-fill.svg new file mode 100644 index 0000000..d16436a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc.svg new file mode 100644 index 0000000..ea459ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/badge-wc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check-fill.svg new file mode 100644 index 0000000..9976d5c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check.svg new file mode 100644 index 0000000..a4e3278 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash-fill.svg new file mode 100644 index 0000000..ccb5589 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash.svg new file mode 100644 index 0000000..0997f33 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-fill.svg new file mode 100644 index 0000000..812fcfc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart-fill.svg new file mode 100644 index 0000000..4938b83 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart.svg new file mode 100644 index 0000000..e7b906a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus-fill.svg new file mode 100644 index 0000000..b98f6b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus.svg new file mode 100644 index 0000000..0d7ddc6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x-fill.svg new file mode 100644 index 0000000..cbe77df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x.svg new file mode 100644 index 0000000..4f38008 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag.svg new file mode 100644 index 0000000..acd0287 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-fill.svg new file mode 100644 index 0000000..2d57e2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart-fill.svg new file mode 100644 index 0000000..ab17865 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart.svg new file mode 100644 index 0000000..0e056cb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon.svg new file mode 100644 index 0000000..6906cb3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/balloon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban-fill.svg new file mode 100644 index 0000000..0bb7df0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban.svg new file mode 100644 index 0000000..5acfd41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ban.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid-fill.svg new file mode 100644 index 0000000..052ad73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid.svg new file mode 100644 index 0000000..e09850e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bandaid.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank.svg new file mode 100644 index 0000000..2e7f4f0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank2.svg new file mode 100644 index 0000000..acc8ef9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bank2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-fill.svg new file mode 100644 index 0000000..7e4ebee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line-fill.svg new file mode 100644 index 0000000..6808e6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line.svg new file mode 100644 index 0000000..567a808 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-line.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-steps.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-steps.svg new file mode 100644 index 0000000..346e97b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart-steps.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart.svg new file mode 100644 index 0000000..8e57c80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bar-chart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket-fill.svg new file mode 100644 index 0000000..b2e01f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket.svg new file mode 100644 index 0000000..418a5f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2-fill.svg new file mode 100644 index 0000000..03c7079 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2.svg new file mode 100644 index 0000000..9b78be2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3-fill.svg new file mode 100644 index 0000000..e26f0ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3.svg new file mode 100644 index 0000000..57fa6a0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/basket3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-charging.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-charging.svg new file mode 100644 index 0000000..4ae74d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-charging.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-full.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-full.svg new file mode 100644 index 0000000..bff6a3f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-full.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-half.svg new file mode 100644 index 0000000..de57848 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery.svg new file mode 100644 index 0000000..2bacfa8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/battery.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/behance.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/behance.svg new file mode 100644 index 0000000..805f142 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/behance.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-fill.svg new file mode 100644 index 0000000..a537c3a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash-fill.svg new file mode 100644 index 0000000..534dd13 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash.svg new file mode 100644 index 0000000..7817e2b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell.svg new file mode 100644 index 0000000..a71eba3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bell.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier.svg new file mode 100644 index 0000000..075b721 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier2.svg new file mode 100644 index 0000000..8a59238 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bezier2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bicycle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bicycle.svg new file mode 100644 index 0000000..3956545 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bicycle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bing.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bing.svg new file mode 100644 index 0000000..9368917 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bing.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars-fill.svg new file mode 100644 index 0000000..d6d6dc0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars.svg new file mode 100644 index 0000000..015d622 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/binoculars.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-left.svg new file mode 100644 index 0000000..f8b6b2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-right.svg new file mode 100644 index 0000000..afc81c9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/blockquote-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bluetooth.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bluetooth.svg new file mode 100644 index 0000000..8726e22 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bluetooth.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/body-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/body-text.svg new file mode 100644 index 0000000..fd5e435 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/body-text.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-fill.svg new file mode 100644 index 0000000..ddb0000 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-half.svg new file mode 100644 index 0000000..8eabe81 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book.svg new file mode 100644 index 0000000..302acf0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/book.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check-fill.svg new file mode 100644 index 0000000..325fbde --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check.svg new file mode 100644 index 0000000..f4c9149 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash-fill.svg new file mode 100644 index 0000000..dbf9cc1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash.svg new file mode 100644 index 0000000..115b448 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-fill.svg new file mode 100644 index 0000000..3c237a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart-fill.svg new file mode 100644 index 0000000..6647b7c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart.svg new file mode 100644 index 0000000..c368f5d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus-fill.svg new file mode 100644 index 0000000..41e0733 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus.svg new file mode 100644 index 0000000..37b137c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star-fill.svg new file mode 100644 index 0000000..89fd335 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star.svg new file mode 100644 index 0000000..2f792de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-star.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x-fill.svg new file mode 100644 index 0000000..acac0cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x.svg new file mode 100644 index 0000000..eb85c76 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark.svg new file mode 100644 index 0000000..a21b14b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks-fill.svg new file mode 100644 index 0000000..abf5800 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks.svg new file mode 100644 index 0000000..ceb92bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookmarks.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookshelf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookshelf.svg new file mode 100644 index 0000000..7f435d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bookshelf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox-fill.svg new file mode 100644 index 0000000..299e95e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox.svg new file mode 100644 index 0000000..35af807 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boombox.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-fill.svg new file mode 100644 index 0000000..21253b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-icons.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-icons.svg new file mode 100644 index 0000000..b7d55a8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-reboot.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-reboot.svg new file mode 100644 index 0000000..8d21030 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap-reboot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap.svg new file mode 100644 index 0000000..089e31f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bootstrap.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-all.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-all.svg new file mode 100644 index 0000000..19128f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-all.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-bottom.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-bottom.svg new file mode 100644 index 0000000..84edcca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-bottom.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-center.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-center.svg new file mode 100644 index 0000000..a9cf9c4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-inner.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-inner.svg new file mode 100644 index 0000000..6369007 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-inner.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-left.svg new file mode 100644 index 0000000..483c804 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-middle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-middle.svg new file mode 100644 index 0000000..c9de407 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-middle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-outer.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-outer.svg new file mode 100644 index 0000000..4791bcb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-outer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-right.svg new file mode 100644 index 0000000..23e09dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-style.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-style.svg new file mode 100644 index 0000000..cec3fef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-style.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-top.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-top.svg new file mode 100644 index 0000000..77189df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-top.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-width.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-width.svg new file mode 100644 index 0000000..6175326 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border-width.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border.svg new file mode 100644 index 0000000..a6390f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/border.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box-circles.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box-circles.svg new file mode 100644 index 0000000..02113ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box-circles.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box.svg new file mode 100644 index 0000000..e8be147 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bounding-box.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-left.svg new file mode 100644 index 0000000..20ffed9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-right.svg new file mode 100644 index 0000000..33780ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down.svg new file mode 100644 index 0000000..bf33d51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-left.svg new file mode 100644 index 0000000..fe3c579 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-right.svg new file mode 100644 index 0000000..07082eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down.svg new file mode 100644 index 0000000..3b185d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-left.svg new file mode 100644 index 0000000..1e1bc9a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-right.svg new file mode 100644 index 0000000..5d78def --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-left.svg new file mode 100644 index 0000000..8401c43 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-right.svg new file mode 100644 index 0000000..8a95e00 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up.svg new file mode 100644 index 0000000..6197bc3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-in-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-left.svg new file mode 100644 index 0000000..5d142b4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-right.svg new file mode 100644 index 0000000..682e033 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-left.svg new file mode 100644 index 0000000..7dec12d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-right.svg new file mode 100644 index 0000000..03f68d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up.svg new file mode 100644 index 0000000..8f76892 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-fill.svg new file mode 100644 index 0000000..b1fe407 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam-fill.svg new file mode 100644 index 0000000..b9283c7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam.svg new file mode 100644 index 0000000..ec2cb8a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box-seam.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box.svg new file mode 100644 index 0000000..01b34c7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-fill.svg new file mode 100644 index 0000000..78e7583 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart-fill.svg new file mode 100644 index 0000000..49da486 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart.svg new file mode 100644 index 0000000..a5e413a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2.svg new file mode 100644 index 0000000..bfeb554 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/box2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boxes.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boxes.svg new file mode 100644 index 0000000..af0d1d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/boxes.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces-asterisk.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces-asterisk.svg new file mode 100644 index 0000000..e159e9c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces-asterisk.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces.svg new file mode 100644 index 0000000..d345d3b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/braces.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bricks.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bricks.svg new file mode 100644 index 0000000..23c2c36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bricks.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase-fill.svg new file mode 100644 index 0000000..b37f2be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase.svg new file mode 100644 index 0000000..712998d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/briefcase.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high-fill.svg new file mode 100644 index 0000000..06f7d0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high.svg new file mode 100644 index 0000000..e519ca7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-high.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low-fill.svg new file mode 100644 index 0000000..ab30837 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low.svg new file mode 100644 index 0000000..58bf6ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-alt-low.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high-fill.svg new file mode 100644 index 0000000..b759b04 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high.svg new file mode 100644 index 0000000..f00d050 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-high.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low-fill.svg new file mode 100644 index 0000000..fc55680 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low.svg new file mode 100644 index 0000000..317918e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brightness-low.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brilliance.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brilliance.svg new file mode 100644 index 0000000..f6b5da6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brilliance.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast-pin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast-pin.svg new file mode 100644 index 0000000..9c5f4a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast-pin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast.svg new file mode 100644 index 0000000..b420a0b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/broadcast.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-chrome.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-chrome.svg new file mode 100644 index 0000000..63c344b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-chrome.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-edge.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-edge.svg new file mode 100644 index 0000000..ed1dc7c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-edge.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-firefox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-firefox.svg new file mode 100644 index 0000000..ce0eabb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-firefox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-safari.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-safari.svg new file mode 100644 index 0000000..8c01296 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/browser-safari.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush-fill.svg new file mode 100644 index 0000000..db77615 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush.svg new file mode 100644 index 0000000..86d88ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/brush.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket-fill.svg new file mode 100644 index 0000000..c0c95ab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket.svg new file mode 100644 index 0000000..252e75b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bucket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug-fill.svg new file mode 100644 index 0000000..a36ff37 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug.svg new file mode 100644 index 0000000..296ef32 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-add.svg new file mode 100644 index 0000000..c2c3670 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-add.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-check.svg new file mode 100644 index 0000000..95c3c54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-dash.svg new file mode 100644 index 0000000..1e1634b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-dash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-down.svg new file mode 100644 index 0000000..8538cf6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-exclamation.svg new file mode 100644 index 0000000..ebfc709 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-add.svg new file mode 100644 index 0000000..6bbe567 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-check.svg new file mode 100644 index 0000000..c4f1881 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-dash.svg new file mode 100644 index 0000000..1ce28a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-down.svg new file mode 100644 index 0000000..b1c55cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-exclamation.svg new file mode 100644 index 0000000..3491f24 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-gear.svg new file mode 100644 index 0000000..747a1bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-lock.svg new file mode 100644 index 0000000..be73a41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-slash.svg new file mode 100644 index 0000000..d867309 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-up.svg new file mode 100644 index 0000000..d8cc4bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-x.svg new file mode 100644 index 0000000..236aae3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill.svg new file mode 100644 index 0000000..6924b41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-gear.svg new file mode 100644 index 0000000..eabe790 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-lock.svg new file mode 100644 index 0000000..591a2e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-slash.svg new file mode 100644 index 0000000..c3f7787 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-slash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-up.svg new file mode 100644 index 0000000..ff2d5d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-x.svg new file mode 100644 index 0000000..70e67a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building.svg new file mode 100644 index 0000000..916b049 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/building.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings-fill.svg new file mode 100644 index 0000000..6aea68d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings.svg new file mode 100644 index 0000000..3028498 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/buildings.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bullseye.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bullseye.svg new file mode 100644 index 0000000..16c2207 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bullseye.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front-fill.svg new file mode 100644 index 0000000..de21228 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front.svg new file mode 100644 index 0000000..95c5df5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/bus-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle-fill.svg new file mode 100644 index 0000000..c0adc18 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle.svg new file mode 100644 index 0000000..ac3dfac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square-fill.svg new file mode 100644 index 0000000..b26a27e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square.svg new file mode 100644 index 0000000..cdd74a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/c-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake-fill.svg new file mode 100644 index 0000000..4370e02 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake.svg new file mode 100644 index 0000000..500747b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2-fill.svg new file mode 100644 index 0000000..1ed25f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2.svg new file mode 100644 index 0000000..a10dc80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cake2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator-fill.svg new file mode 100644 index 0000000..2933419 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator.svg new file mode 100644 index 0000000..cc9761e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calculator.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check-fill.svg new file mode 100644 index 0000000..967d182 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check.svg new file mode 100644 index 0000000..f778cd2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date-fill.svg new file mode 100644 index 0000000..59b31f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date.svg new file mode 100644 index 0000000..b73c8f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-date.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day-fill.svg new file mode 100644 index 0000000..b9bcbf8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day.svg new file mode 100644 index 0000000..6f8d871 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-day.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event-fill.svg new file mode 100644 index 0000000..5b09eea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event.svg new file mode 100644 index 0000000..57c734b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-fill.svg new file mode 100644 index 0000000..789eb8b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart-fill.svg new file mode 100644 index 0000000..63d9e4c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart.svg new file mode 100644 index 0000000..8ed9c38 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus-fill.svg new file mode 100644 index 0000000..8dad6e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus.svg new file mode 100644 index 0000000..ecd4e97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month-fill.svg new file mode 100644 index 0000000..d8d56fe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month.svg new file mode 100644 index 0000000..95b6419 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-month.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus-fill.svg new file mode 100644 index 0000000..0ed0c83 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus.svg new file mode 100644 index 0000000..189b152 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range-fill.svg new file mode 100644 index 0000000..324def0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range.svg new file mode 100644 index 0000000..7db0947 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week-fill.svg new file mode 100644 index 0000000..ab2128d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week.svg new file mode 100644 index 0000000..b5dbcc9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x-fill.svg new file mode 100644 index 0000000..450e114 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x.svg new file mode 100644 index 0000000..dc85a91 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar.svg new file mode 100644 index 0000000..d32ebe7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check-fill.svg new file mode 100644 index 0000000..a0c36c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check.svg new file mode 100644 index 0000000..5429842 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date-fill.svg new file mode 100644 index 0000000..93b3941 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date.svg new file mode 100644 index 0000000..61193cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-date.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day-fill.svg new file mode 100644 index 0000000..b605453 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day.svg new file mode 100644 index 0000000..ce59878 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-day.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event-fill.svg new file mode 100644 index 0000000..2b245d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event.svg new file mode 100644 index 0000000..36910dd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-event.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-fill.svg new file mode 100644 index 0000000..b28e594 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart-fill.svg new file mode 100644 index 0000000..f3723cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart.svg new file mode 100644 index 0000000..995d9b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus-fill.svg new file mode 100644 index 0000000..bf52a36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus.svg new file mode 100644 index 0000000..62e6bbc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month-fill.svg new file mode 100644 index 0000000..24b9c69 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month.svg new file mode 100644 index 0000000..65d8295 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-month.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus-fill.svg new file mode 100644 index 0000000..26a2047 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus.svg new file mode 100644 index 0000000..728148f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range-fill.svg new file mode 100644 index 0000000..1ba46b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range.svg new file mode 100644 index 0000000..9a657f4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week-fill.svg new file mode 100644 index 0000000..f358667 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week.svg new file mode 100644 index 0000000..07906a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x-fill.svg new file mode 100644 index 0000000..def799d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x.svg new file mode 100644 index 0000000..d6f9e6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2.svg new file mode 100644 index 0000000..957f993 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event-fill.svg new file mode 100644 index 0000000..d228ccb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event.svg new file mode 100644 index 0000000..f702c36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-fill.svg new file mode 100644 index 0000000..f3bc116 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range-fill.svg new file mode 100644 index 0000000..e21d0ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range.svg new file mode 100644 index 0000000..c19d9ca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week-fill.svg new file mode 100644 index 0000000..d828d85 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week.svg new file mode 100644 index 0000000..6d577b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3.svg new file mode 100644 index 0000000..8e2aedf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-event.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-event.svg new file mode 100644 index 0000000..0d29c0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-event.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-range.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-range.svg new file mode 100644 index 0000000..b260479 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-range.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-week.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-week.svg new file mode 100644 index 0000000..d934881 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4-week.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4.svg new file mode 100644 index 0000000..69c474c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/calendar4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-fill.svg new file mode 100644 index 0000000..6aa0240 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels-fill.svg new file mode 100644 index 0000000..6bd48de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels.svg new file mode 100644 index 0000000..0c6eca8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-reels.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-fill.svg new file mode 100644 index 0000000..72dee37 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off-fill.svg new file mode 100644 index 0000000..290dc19 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off.svg new file mode 100644 index 0000000..c9eb587 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video.svg new file mode 100644 index 0000000..a042d1a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera-video.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera.svg new file mode 100644 index 0000000..3a926d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera2.svg new file mode 100644 index 0000000..ba9521e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/camera2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock-fill.svg new file mode 100644 index 0000000..f1c0bab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock.svg new file mode 100644 index 0000000..b0b894a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capslock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule-pill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule-pill.svg new file mode 100644 index 0000000..b9f3b54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule-pill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule.svg new file mode 100644 index 0000000..53d1a66 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/capsule.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front-fill.svg new file mode 100644 index 0000000..a47a870 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front.svg new file mode 100644 index 0000000..890e4cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/car-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-checklist.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-checklist.svg new file mode 100644 index 0000000..3044e68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-checklist.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-heading.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-heading.svg new file mode 100644 index 0000000..a6be873 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-heading.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-image.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-image.svg new file mode 100644 index 0000000..7343f77 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-list.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-list.svg new file mode 100644 index 0000000..6270802 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-list.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-text.svg new file mode 100644 index 0000000..8f7470c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/card-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-fill.svg new file mode 100644 index 0000000..d7c3990 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square-fill.svg new file mode 100644 index 0000000..63199bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square.svg new file mode 100644 index 0000000..0372625 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down.svg new file mode 100644 index 0000000..627258a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-fill.svg new file mode 100644 index 0000000..d989dff --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square-fill.svg new file mode 100644 index 0000000..cc7e3a8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square.svg new file mode 100644 index 0000000..5e8cb20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left.svg new file mode 100644 index 0000000..4415336 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-fill.svg new file mode 100644 index 0000000..b445551 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square-fill.svg new file mode 100644 index 0000000..2aded36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square.svg new file mode 100644 index 0000000..a3a44e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right.svg new file mode 100644 index 0000000..7bcd8bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-fill.svg new file mode 100644 index 0000000..a87820e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square-fill.svg new file mode 100644 index 0000000..348fcf2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square.svg new file mode 100644 index 0000000..8ac2af4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up.svg new file mode 100644 index 0000000..8e33519 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/caret-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check-fill.svg new file mode 100644 index 0000000..612358c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check.svg new file mode 100644 index 0000000..68301db --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash-fill.svg new file mode 100644 index 0000000..a335b07 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash.svg new file mode 100644 index 0000000..9c97c3b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-fill.svg new file mode 100644 index 0000000..974fc29 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus-fill.svg new file mode 100644 index 0000000..59e46e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus.svg new file mode 100644 index 0000000..2baaae4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x-fill.svg new file mode 100644 index 0000000..7ca0688 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x.svg new file mode 100644 index 0000000..2d8f213 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart.svg new file mode 100644 index 0000000..0e0f96c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart2.svg new file mode 100644 index 0000000..ea7f696 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart3.svg new file mode 100644 index 0000000..af1b3c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart4.svg new file mode 100644 index 0000000..4631ac9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cart4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-coin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-coin.svg new file mode 100644 index 0000000..2904f15 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-coin.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-stack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-stack.svg new file mode 100644 index 0000000..fc8c282 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash-stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash.svg new file mode 100644 index 0000000..18cbff3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette-fill.svg new file mode 100644 index 0000000..18fd5e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette.svg new file mode 100644 index 0000000..2effe71 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cassette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cast.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cast.svg new file mode 100644 index 0000000..01a9795 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cast.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle-fill.svg new file mode 100644 index 0000000..483d90c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle.svg new file mode 100644 index 0000000..2dc2b4b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square-fill.svg new file mode 100644 index 0000000..b0a8350 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square.svg new file mode 100644 index 0000000..b0f05b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cc-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots-fill.svg new file mode 100644 index 0000000..5f74345 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots.svg new file mode 100644 index 0000000..20137cc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-fill.svg new file mode 100644 index 0000000..c896939 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart-fill.svg new file mode 100644 index 0000000..ea01c34 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart.svg new file mode 100644 index 0000000..8ea104e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots-fill.svg new file mode 100644 index 0000000..a6614c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots.svg new file mode 100644 index 0000000..35f466a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-fill.svg new file mode 100644 index 0000000..0de6e13 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart-fill.svg new file mode 100644 index 0000000..cc9502c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart.svg new file mode 100644 index 0000000..ec11692 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote-fill.svg new file mode 100644 index 0000000..d634a12 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote.svg new file mode 100644 index 0000000..376ceb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text-fill.svg new file mode 100644 index 0000000..a78e343 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text.svg new file mode 100644 index 0000000..88d1906 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left.svg new file mode 100644 index 0000000..d93f0af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote-fill.svg new file mode 100644 index 0000000..7150c44 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote.svg new file mode 100644 index 0000000..aa0edc4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots-fill.svg new file mode 100644 index 0000000..1020581 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots.svg new file mode 100644 index 0000000..d9b8bd2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-fill.svg new file mode 100644 index 0000000..6381ddc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart-fill.svg new file mode 100644 index 0000000..cf4abfe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart.svg new file mode 100644 index 0000000..e6b3880 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote-fill.svg new file mode 100644 index 0000000..1c4e536 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote.svg new file mode 100644 index 0000000..e9091bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text-fill.svg new file mode 100644 index 0000000..3455983 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text.svg new file mode 100644 index 0000000..88341af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right.svg new file mode 100644 index 0000000..a930c9a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots-fill.svg new file mode 100644 index 0000000..09c97d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots.svg new file mode 100644 index 0000000..b06c02f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-dots.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-fill.svg new file mode 100644 index 0000000..4688831 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart-fill.svg new file mode 100644 index 0000000..902e0b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart.svg new file mode 100644 index 0000000..6ba687e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote-fill.svg new file mode 100644 index 0000000..2496b70 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote.svg new file mode 100644 index 0000000..a8f6b09 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text-fill.svg new file mode 100644 index 0000000..6ebf567 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text.svg new file mode 100644 index 0000000..1296f92 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square.svg new file mode 100644 index 0000000..4e13ae8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text-fill.svg new file mode 100644 index 0000000..93639f1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text.svg new file mode 100644 index 0000000..f64f43f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat.svg new file mode 100644 index 0000000..487d142 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-all.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-all.svg new file mode 100644 index 0000000..f91fd77 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-all.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle-fill.svg new file mode 100644 index 0000000..0b7f412 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle.svg new file mode 100644 index 0000000..016f607 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-lg.svg new file mode 100644 index 0000000..63a8a3d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square-fill.svg new file mode 100644 index 0000000..cbb56ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square.svg new file mode 100644 index 0000000..b7d1116 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check.svg new file mode 100644 index 0000000..11ab547 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-all.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-all.svg new file mode 100644 index 0000000..cccc0b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-all.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-circle.svg new file mode 100644 index 0000000..166e661 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-square.svg new file mode 100644 index 0000000..64c3669 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2.svg new file mode 100644 index 0000000..87168de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/check2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-contract.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-contract.svg new file mode 100644 index 0000000..52ec3f6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-down.svg new file mode 100644 index 0000000..8c10216 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-expand.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-expand.svg new file mode 100644 index 0000000..1260a20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-left.svg new file mode 100644 index 0000000..36afeb7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-right.svg new file mode 100644 index 0000000..b71e040 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-up.svg new file mode 100644 index 0000000..c5da175 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-bar-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-down.svg new file mode 100644 index 0000000..53d9d9a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-left.svg new file mode 100644 index 0000000..277ddd8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-right.svg new file mode 100644 index 0000000..24b5309 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-up.svg new file mode 100644 index 0000000..2a4f354 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-compact-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-contract.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-contract.svg new file mode 100644 index 0000000..354ee86 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-contract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-down.svg new file mode 100644 index 0000000..bc99e59 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-left.svg new file mode 100644 index 0000000..c4cd7f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-right.svg new file mode 100644 index 0000000..dccd6c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-up.svg new file mode 100644 index 0000000..ad7ba12 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-double-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-down.svg new file mode 100644 index 0000000..a281907 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-expand.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-expand.svg new file mode 100644 index 0000000..33e4ad8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-expand.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-left.svg new file mode 100644 index 0000000..5bcc1bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-right.svg new file mode 100644 index 0000000..ab39af8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-up.svg new file mode 100644 index 0000000..4f3c7a0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/chevron-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-fill.svg new file mode 100644 index 0000000..e0d1b51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-half.svg new file mode 100644 index 0000000..497f6b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-square.svg new file mode 100644 index 0000000..c0f62b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle.svg new file mode 100644 index 0000000..9bbabca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check-fill.svg new file mode 100644 index 0000000..598e850 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check.svg new file mode 100644 index 0000000..cb9d8a2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data-fill.svg new file mode 100644 index 0000000..e4a9425 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data.svg new file mode 100644 index 0000000..622acbf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-data.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-fill.svg new file mode 100644 index 0000000..176c5e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart-fill.svg new file mode 100644 index 0000000..92de0a8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart.svg new file mode 100644 index 0000000..c430ed2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-heart.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus-fill.svg new file mode 100644 index 0000000..e47f43f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus.svg new file mode 100644 index 0000000..d3675c4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus-fill.svg new file mode 100644 index 0000000..8140aa8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus.svg new file mode 100644 index 0000000..1d095d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-pulse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-pulse.svg new file mode 100644 index 0000000..a357209 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-pulse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x-fill.svg new file mode 100644 index 0000000..10fba82 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x.svg new file mode 100644 index 0000000..46df235 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard.svg new file mode 100644 index 0000000..b92f42a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check-fill.svg new file mode 100644 index 0000000..b640432 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check.svg new file mode 100644 index 0000000..aba15bf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data-fill.svg new file mode 100644 index 0000000..56c127e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data.svg new file mode 100644 index 0000000..75ac6c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-data.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-fill.svg new file mode 100644 index 0000000..6898571 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart-fill.svg new file mode 100644 index 0000000..ce98945 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart.svg new file mode 100644 index 0000000..879fef2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-heart.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus-fill.svg new file mode 100644 index 0000000..fcd4b56 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus.svg new file mode 100644 index 0000000..f8c10e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus-fill.svg new file mode 100644 index 0000000..be310e5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus.svg new file mode 100644 index 0000000..33eaa28 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse-fill.svg new file mode 100644 index 0000000..bc7d6b3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse.svg new file mode 100644 index 0000000..c641c61 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-pulse.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x-fill.svg new file mode 100644 index 0000000..08828c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x.svg new file mode 100644 index 0000000..06832cc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2.svg new file mode 100644 index 0000000..d0f4529 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clipboard2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-fill.svg new file mode 100644 index 0000000..148abcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-history.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-history.svg new file mode 100644 index 0000000..f685e10 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock-history.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock.svg new file mode 100644 index 0000000..31c3c64 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down-fill.svg new file mode 100644 index 0000000..1b23dc9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down.svg new file mode 100644 index 0000000..bb79bbe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up-fill.svg new file mode 100644 index 0000000..8366f05 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up.svg new file mode 100644 index 0000000..704756b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check-fill.svg new file mode 100644 index 0000000..a71feee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check.svg new file mode 100644 index 0000000..d7599e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download-fill.svg new file mode 100644 index 0000000..c8a44ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download.svg new file mode 100644 index 0000000..b71d7d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle-fill.svg new file mode 100644 index 0000000..0d381ae --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle.svg new file mode 100644 index 0000000..f3c8599 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-drizzle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fill.svg new file mode 100644 index 0000000..8849faa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog-fill.svg new file mode 100644 index 0000000..214caba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog.svg new file mode 100644 index 0000000..26a574a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2-fill.svg new file mode 100644 index 0000000..8f67dea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2.svg new file mode 100644 index 0000000..9b0664f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-fog2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail-fill.svg new file mode 100644 index 0000000..0fa737f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail.svg new file mode 100644 index 0000000..3206a02 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-hail.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze-fill.svg new file mode 100644 index 0000000..aa16c2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze.svg new file mode 100644 index 0000000..578a565 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2-fill.svg new file mode 100644 index 0000000..3e22656 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2.svg new file mode 100644 index 0000000..c43d91c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-haze2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-fill.svg new file mode 100644 index 0000000..88fd930 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain-fill.svg new file mode 100644 index 0000000..f5cd845 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain.svg new file mode 100644 index 0000000..588b274 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning-rain.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning.svg new file mode 100644 index 0000000..20c2680 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-lightning.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus-fill.svg new file mode 100644 index 0000000..2fcc2bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus.svg new file mode 100644 index 0000000..54f47b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon-fill.svg new file mode 100644 index 0000000..232dd4e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon.svg new file mode 100644 index 0000000..cc91617 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-moon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus-fill.svg new file mode 100644 index 0000000..5337dc4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus.svg new file mode 100644 index 0000000..9448796 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-fill.svg new file mode 100644 index 0000000..3ffee56 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy-fill.svg new file mode 100644 index 0000000..d92411b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy.svg new file mode 100644 index 0000000..ee9ef85 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain-heavy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain.svg new file mode 100644 index 0000000..e22f16c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-rain.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash-fill.svg new file mode 100644 index 0000000..08a709b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash.svg new file mode 100644 index 0000000..d7b680c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet-fill.svg new file mode 100644 index 0000000..1df3f33 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet.svg new file mode 100644 index 0000000..edc48c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sleet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow-fill.svg new file mode 100644 index 0000000..32cda8d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow.svg new file mode 100644 index 0000000..26150c4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-snow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun-fill.svg new file mode 100644 index 0000000..da5ecac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun.svg new file mode 100644 index 0000000..caa95e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-sun.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload-fill.svg new file mode 100644 index 0000000..2d0df59 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload.svg new file mode 100644 index 0000000..e5ca56e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud-upload.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud.svg new file mode 100644 index 0000000..de877ab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloud.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds-fill.svg new file mode 100644 index 0000000..d70e817 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds.svg new file mode 100644 index 0000000..7e253e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/clouds.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy-fill.svg new file mode 100644 index 0000000..7bf27b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy.svg new file mode 100644 index 0000000..87c2017 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cloudy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-slash.svg new file mode 100644 index 0000000..51a5c57 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-square.svg new file mode 100644 index 0000000..30fdef3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code.svg new file mode 100644 index 0000000..c0760e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/code.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/coin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/coin.svg new file mode 100644 index 0000000..fb94cc5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/coin.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-fill.svg new file mode 100644 index 0000000..4e5fbce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play-fill.svg new file mode 100644 index 0000000..b6820d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play.svg new file mode 100644 index 0000000..0c59f5d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection.svg new file mode 100644 index 0000000..8b5d5fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/collection.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns-gap.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns-gap.svg new file mode 100644 index 0000000..8b4bb4e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns.svg new file mode 100644 index 0000000..17632df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/command.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/command.svg new file mode 100644 index 0000000..64fa00b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/command.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass-fill.svg new file mode 100644 index 0000000..1396c1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass.svg new file mode 100644 index 0000000..9b402f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/compass.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone-striped.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone-striped.svg new file mode 100644 index 0000000..28a9529 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone-striped.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone.svg new file mode 100644 index 0000000..b1a7d97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/controller.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/controller.svg new file mode 100644 index 0000000..b7ceedb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/controller.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cookie.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cookie.svg new file mode 100644 index 0000000..7a4b2fa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cookie.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/copy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/copy.svg new file mode 100644 index 0000000..b590680 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/copy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu-fill.svg new file mode 100644 index 0000000..ce6e294 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu.svg new file mode 100644 index 0000000..88c0d56 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cpu.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back-fill.svg new file mode 100644 index 0000000..032fb4a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back.svg new file mode 100644 index 0000000..b29419c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-back.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front-fill.svg new file mode 100644 index 0000000..06684d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front.svg new file mode 100644 index 0000000..0bbc290 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-2-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-fill.svg new file mode 100644 index 0000000..a4f899a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card.svg new file mode 100644 index 0000000..406233d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/credit-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crop.svg new file mode 100644 index 0000000..3b4bb60 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair.svg new file mode 100644 index 0000000..13bed74 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair2.svg new file mode 100644 index 0000000..3c28586 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/crosshair2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-fill.svg new file mode 100644 index 0000000..7173787 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot-fill.svg new file mode 100644 index 0000000..9d7c465 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot.svg new file mode 100644 index 0000000..a6f7e89 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-hot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-straw.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-straw.svg new file mode 100644 index 0000000..9388da9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup-straw.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup.svg new file mode 100644 index 0000000..2694ac8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cup.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-bitcoin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-bitcoin.svg new file mode 100644 index 0000000..0477ff8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-bitcoin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-dollar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-dollar.svg new file mode 100644 index 0000000..7ead9a7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-dollar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-euro.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-euro.svg new file mode 100644 index 0000000..90c83d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-euro.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-exchange.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-exchange.svg new file mode 100644 index 0000000..e332aa7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-exchange.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-pound.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-pound.svg new file mode 100644 index 0000000..4650876 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-pound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-rupee.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-rupee.svg new file mode 100644 index 0000000..4fdf9a2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-rupee.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-yen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-yen.svg new file mode 100644 index 0000000..5bbf1a2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/currency-yen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-fill.svg new file mode 100644 index 0000000..093372b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-text.svg new file mode 100644 index 0000000..27c057b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor-text.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor.svg new file mode 100644 index 0000000..e23e3fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/cursor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-dotted.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-dotted.svg new file mode 100644 index 0000000..1c011e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-fill.svg new file mode 100644 index 0000000..ac4eae0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle.svg new file mode 100644 index 0000000..c4abdd2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-lg.svg new file mode 100644 index 0000000..454aa7d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-dotted.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-dotted.svg new file mode 100644 index 0000000..90886c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-fill.svg new file mode 100644 index 0000000..dbe0db2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square.svg new file mode 100644 index 0000000..9381872 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash.svg new file mode 100644 index 0000000..c3834b4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-add.svg new file mode 100644 index 0000000..5f76340 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-check.svg new file mode 100644 index 0000000..29c02b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-dash.svg new file mode 100644 index 0000000..184db0a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-down.svg new file mode 100644 index 0000000..e077452 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-exclamation.svg new file mode 100644 index 0000000..dbde50f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-add.svg new file mode 100644 index 0000000..4273d5d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-check.svg new file mode 100644 index 0000000..7690eed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-dash.svg new file mode 100644 index 0000000..48c468d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-down.svg new file mode 100644 index 0000000..c3560d8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-exclamation.svg new file mode 100644 index 0000000..00073d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-exclamation.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-gear.svg new file mode 100644 index 0000000..94fc2e6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-lock.svg new file mode 100644 index 0000000..a948205 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-lock.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-slash.svg new file mode 100644 index 0000000..467e6bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-up.svg new file mode 100644 index 0000000..07f2d39 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-x.svg new file mode 100644 index 0000000..73ff269 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill.svg new file mode 100644 index 0000000..8603874 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-fill.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-gear.svg new file mode 100644 index 0000000..451763c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-lock.svg new file mode 100644 index 0000000..e150cd2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-slash.svg new file mode 100644 index 0000000..e0cc9f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-up.svg new file mode 100644 index 0000000..63f7a10 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-x.svg new file mode 100644 index 0000000..f97779b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database.svg new file mode 100644 index 0000000..231c50c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/database.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd-fill.svg new file mode 100644 index 0000000..d5380c0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd.svg new file mode 100644 index 0000000..5163a58 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-hdd.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd-fill.svg new file mode 100644 index 0000000..0d1f9c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd.svg new file mode 100644 index 0000000..8405f21 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/device-ssd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2-fill.svg new file mode 100644 index 0000000..397ae15 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2.svg new file mode 100644 index 0000000..a6e5439 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3-fill.svg new file mode 100644 index 0000000..7e47423 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3.svg new file mode 100644 index 0000000..ee3fd6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diagram-3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-fill.svg new file mode 100644 index 0000000..1f86d1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-half.svg new file mode 100644 index 0000000..68254b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond.svg new file mode 100644 index 0000000..44e2855 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1-fill.svg new file mode 100644 index 0000000..a32e2cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1.svg new file mode 100644 index 0000000..afc64b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-1.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2-fill.svg new file mode 100644 index 0000000..131013e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2.svg new file mode 100644 index 0000000..ba1a79c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3-fill.svg new file mode 100644 index 0000000..158065d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3.svg new file mode 100644 index 0000000..b64c675 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4-fill.svg new file mode 100644 index 0000000..7cf6e2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4.svg new file mode 100644 index 0000000..bd8bbf7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-4.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5-fill.svg new file mode 100644 index 0000000..289cb45 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5.svg new file mode 100644 index 0000000..cc96a35 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-5.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6-fill.svg new file mode 100644 index 0000000..9b3d652 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6.svg new file mode 100644 index 0000000..47ba0aa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dice-6.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc-fill.svg new file mode 100644 index 0000000..0d2d7f1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc.svg new file mode 100644 index 0000000..360034c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/disc.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/discord.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/discord.svg new file mode 100644 index 0000000..9905364 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/discord.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display-fill.svg new file mode 100644 index 0000000..ed8e17e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display.svg new file mode 100644 index 0000000..40a7d4d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/display.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport-fill.svg new file mode 100644 index 0000000..503a960 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport.svg new file mode 100644 index 0000000..6b9e0bf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/displayport.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-horizontal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-horizontal.svg new file mode 100644 index 0000000..3f7044f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-horizontal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-vertical.svg new file mode 100644 index 0000000..cb77d1e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/distribute-vertical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed-fill.svg new file mode 100644 index 0000000..1cad66b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed.svg new file mode 100644 index 0000000..e20b918 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-closed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open-fill.svg new file mode 100644 index 0000000..38eaff0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open.svg new file mode 100644 index 0000000..328f353 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/door-open.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dot.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dot.svg new file mode 100644 index 0000000..edc674e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dot.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/download.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/download.svg new file mode 100644 index 0000000..90a34a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad-fill.svg new file mode 100644 index 0000000..1c1153a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad.svg new file mode 100644 index 0000000..71ddb24 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dpad.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dribbble.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dribbble.svg new file mode 100644 index 0000000..725ff7f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dribbble.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dropbox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dropbox.svg new file mode 100644 index 0000000..d052f25 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/dropbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-fill.svg new file mode 100644 index 0000000..85feddf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-half.svg new file mode 100644 index 0000000..bcd1c76 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet.svg new file mode 100644 index 0000000..204ec67 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/droplet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle-fill.svg new file mode 100644 index 0000000..885ee80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle.svg new file mode 100644 index 0000000..1180de8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/duffle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear-fill.svg new file mode 100644 index 0000000..2d135d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear.svg new file mode 100644 index 0000000..061fe2f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ear.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/earbuds.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/earbuds.svg new file mode 100644 index 0000000..923bfca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/earbuds.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel-fill.svg new file mode 100644 index 0000000..8086507 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel.svg new file mode 100644 index 0000000..5c0f5a2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2-fill.svg new file mode 100644 index 0000000..309b438 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2.svg new file mode 100644 index 0000000..74372fb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3-fill.svg new file mode 100644 index 0000000..fc547ea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3.svg new file mode 100644 index 0000000..f06a868 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/easel3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fill.svg new file mode 100644 index 0000000..b70cf16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fried.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fried.svg new file mode 100644 index 0000000..b0cefbc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg-fried.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg.svg new file mode 100644 index 0000000..f23d8d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/egg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject-fill.svg new file mode 100644 index 0000000..9604988 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject.svg new file mode 100644 index 0000000..71a3ab6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eject.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry-fill.svg new file mode 100644 index 0000000..d14d92d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry.svg new file mode 100644 index 0000000..ee925fe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-angry.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished-fill.svg new file mode 100644 index 0000000..22a566f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished.svg new file mode 100644 index 0000000..13f7cdd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-astonished.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy-fill.svg new file mode 100644 index 0000000..98ab490 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy.svg new file mode 100644 index 0000000..fcef602 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-dizzy.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless-fill.svg new file mode 100644 index 0000000..17ac348 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless.svg new file mode 100644 index 0000000..8d7f68f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-expressionless.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown-fill.svg new file mode 100644 index 0000000..7a16dfb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown.svg new file mode 100644 index 0000000..696031b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-frown.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace-fill.svg new file mode 100644 index 0000000..6cabf80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace.svg new file mode 100644 index 0000000..75a2a09 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grimace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin-fill.svg new file mode 100644 index 0000000..08c675e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin.svg new file mode 100644 index 0000000..32bbf51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-grin.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes-fill.svg new file mode 100644 index 0000000..d34f6e8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes.svg new file mode 100644 index 0000000..5832822 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-heart-eyes.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss-fill.svg new file mode 100644 index 0000000..15a9cdd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss.svg new file mode 100644 index 0000000..2348d97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-kiss.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing-fill.svg new file mode 100644 index 0000000..0130bf4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing.svg new file mode 100644 index 0000000..76b87f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-laughing.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral-fill.svg new file mode 100644 index 0000000..662603a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral.svg new file mode 100644 index 0000000..d6b60f8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-neutral.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-fill.svg new file mode 100644 index 0000000..439dff0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down-fill.svg new file mode 100644 index 0000000..2d6acca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down.svg new file mode 100644 index 0000000..d2d93ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile-upside-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile.svg new file mode 100644 index 0000000..bba78da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-smile.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses-fill.svg new file mode 100644 index 0000000..a1318c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses.svg new file mode 100644 index 0000000..188b56c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-sunglasses.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise-fill.svg new file mode 100644 index 0000000..9f6f620 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise.svg new file mode 100644 index 0000000..af246bf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-surprise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear-fill.svg new file mode 100644 index 0000000..3ccf87d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear.svg new file mode 100644 index 0000000..31b6597 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-tear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink-fill.svg new file mode 100644 index 0000000..2f3e480 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink.svg new file mode 100644 index 0000000..7fe9116 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/emoji-wink.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down-fill.svg new file mode 100644 index 0000000..a5160e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down.svg new file mode 100644 index 0000000..36b6f54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up-fill.svg new file mode 100644 index 0000000..2757974 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up.svg new file mode 100644 index 0000000..ff2fae0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at-fill.svg new file mode 100644 index 0000000..e39ff38 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at.svg new file mode 100644 index 0000000..163c3ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-at.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check-fill.svg new file mode 100644 index 0000000..26d753a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check.svg new file mode 100644 index 0000000..fbc765b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash-fill.svg new file mode 100644 index 0000000..6e9e745 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash.svg new file mode 100644 index 0000000..d6457cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation-fill.svg new file mode 100644 index 0000000..e14f047 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation.svg new file mode 100644 index 0000000..4aca0a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-fill.svg new file mode 100644 index 0000000..966ef94 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart-fill.svg new file mode 100644 index 0000000..4158841 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart.svg new file mode 100644 index 0000000..c886df2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-fill.svg new file mode 100644 index 0000000..972d0e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart-fill.svg new file mode 100644 index 0000000..13263fa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart.svg new file mode 100644 index 0000000..7018116 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open.svg new file mode 100644 index 0000000..3daa2eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-open.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-fill.svg new file mode 100644 index 0000000..c8a187c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart-fill.svg new file mode 100644 index 0000000..7f58d57 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart.svg new file mode 100644 index 0000000..73b91d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper.svg new file mode 100644 index 0000000..20fcc2a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-paper.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus-fill.svg new file mode 100644 index 0000000..453a9fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus.svg new file mode 100644 index 0000000..7e960a0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash-fill.svg new file mode 100644 index 0000000..90eb7ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash.svg new file mode 100644 index 0000000..65cb167 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x-fill.svg new file mode 100644 index 0000000..8f6a79c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x.svg new file mode 100644 index 0000000..ea74027 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope.svg new file mode 100644 index 0000000..78bf1de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/envelope.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser-fill.svg new file mode 100644 index 0000000..c3866e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser.svg new file mode 100644 index 0000000..fe62336 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eraser.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/escape.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/escape.svg new file mode 100644 index 0000000..66176b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/escape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ethernet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ethernet.svg new file mode 100644 index 0000000..739a2de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ethernet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front-fill.svg new file mode 100644 index 0000000..53b947d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front.svg new file mode 100644 index 0000000..7f053a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station-fill.svg new file mode 100644 index 0000000..a1ad007 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station.svg new file mode 100644 index 0000000..90470f6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ev-station.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle-fill.svg new file mode 100644 index 0000000..13ce7ab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle.svg new file mode 100644 index 0000000..f3befe0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond-fill.svg new file mode 100644 index 0000000..cb14aee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond.svg new file mode 100644 index 0000000..4881e6d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-diamond.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-lg.svg new file mode 100644 index 0000000..18f6a87 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon-fill.svg new file mode 100644 index 0000000..494010b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon.svg new file mode 100644 index 0000000..7f25938 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square-fill.svg new file mode 100644 index 0000000..d80a4e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square.svg new file mode 100644 index 0000000..2a0f2ae --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle-fill.svg new file mode 100644 index 0000000..52fd508 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle.svg new file mode 100644 index 0000000..506b777 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation-triangle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation.svg new file mode 100644 index 0000000..d39cb95 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclamation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclude.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclude.svg new file mode 100644 index 0000000..ef18355 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exclude.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit-fill.svg new file mode 100644 index 0000000..c0cb6f0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit.svg new file mode 100644 index 0000000..a7ffae7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/explicit.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exposure.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exposure.svg new file mode 100644 index 0000000..9de0e64 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/exposure.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-fill.svg new file mode 100644 index 0000000..288d2eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash-fill.svg new file mode 100644 index 0000000..10cca74 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash.svg new file mode 100644 index 0000000..359c270 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye-slash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye.svg new file mode 100644 index 0000000..393b485 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eye.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyedropper.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyedropper.svg new file mode 100644 index 0000000..4579888 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyedropper.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyeglasses.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyeglasses.svg new file mode 100644 index 0000000..6b2eb97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/eyeglasses.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/facebook.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/facebook.svg new file mode 100644 index 0000000..5fc7cec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/facebook.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fan.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fan.svg new file mode 100644 index 0000000..ec8fe20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fan.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn-fill.svg new file mode 100644 index 0000000..fd750fe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn.svg new file mode 100644 index 0000000..5e68554 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle-fill.svg new file mode 100644 index 0000000..3946fa3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle.svg new file mode 100644 index 0000000..e7f7158 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-fill.svg new file mode 100644 index 0000000..ae17a7e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward.svg new file mode 100644 index 0000000..2142979 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fast-forward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather.svg new file mode 100644 index 0000000..f0462c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather2.svg new file mode 100644 index 0000000..badc17a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/feather2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down-fill.svg new file mode 100644 index 0000000..5b5c552 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down.svg new file mode 100644 index 0000000..f504b98 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up-fill.svg new file mode 100644 index 0000000..ef56199 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up.svg new file mode 100644 index 0000000..9c88467 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph-fill.svg new file mode 100644 index 0000000..686b60b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph.svg new file mode 100644 index 0000000..f953927 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-bar-graph.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary-fill.svg new file mode 100644 index 0000000..920c2a7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary.svg new file mode 100644 index 0000000..0ecece7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-binary.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break-fill.svg new file mode 100644 index 0000000..bdbe1b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break.svg new file mode 100644 index 0000000..e94b3a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-break.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check-fill.svg new file mode 100644 index 0000000..cf165d3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check.svg new file mode 100644 index 0000000..10863e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code-fill.svg new file mode 100644 index 0000000..912ed0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code.svg new file mode 100644 index 0000000..58b0014 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-code.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff-fill.svg new file mode 100644 index 0000000..c108b87 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff.svg new file mode 100644 index 0000000..088c6de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-diff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down-fill.svg new file mode 100644 index 0000000..3941f1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down.svg new file mode 100644 index 0000000..37c4cd5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up-fill.svg new file mode 100644 index 0000000..97a339d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up.svg new file mode 100644 index 0000000..1c827e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph-fill.svg new file mode 100644 index 0000000..a4c69b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph.svg new file mode 100644 index 0000000..d367eca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-bar-graph.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary-fill.svg new file mode 100644 index 0000000..a1f9933 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary.svg new file mode 100644 index 0000000..1528578 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-binary.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break-fill.svg new file mode 100644 index 0000000..e9aadce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break.svg new file mode 100644 index 0000000..4874715 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-break.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check-fill.svg new file mode 100644 index 0000000..f3e9eb3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check.svg new file mode 100644 index 0000000..dc36963 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code-fill.svg new file mode 100644 index 0000000..2c154fa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code.svg new file mode 100644 index 0000000..ccd3528 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-code.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff-fill.svg new file mode 100644 index 0000000..3b71e66 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff.svg new file mode 100644 index 0000000..97dfc0b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-diff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel-fill.svg new file mode 100644 index 0000000..e74c974 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel.svg new file mode 100644 index 0000000..2feeabc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-easel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel-fill.svg new file mode 100644 index 0000000..405a572 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel.svg new file mode 100644 index 0000000..5432bcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-excel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-fill.svg new file mode 100644 index 0000000..2f3ef6c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font-fill.svg new file mode 100644 index 0000000..d3014bf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font.svg new file mode 100644 index 0000000..c9864cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-font.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image-fill.svg new file mode 100644 index 0000000..3ec76dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image.svg new file mode 100644 index 0000000..1c3815d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock-fill.svg new file mode 100644 index 0000000..4c45a61 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock.svg new file mode 100644 index 0000000..c8319a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2-fill.svg new file mode 100644 index 0000000..76e8bd8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2.svg new file mode 100644 index 0000000..bd8f592 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-lock2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical-fill.svg new file mode 100644 index 0000000..42a0581 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical.svg new file mode 100644 index 0000000..e24c90c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-medical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus-fill.svg new file mode 100644 index 0000000..a5dca2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus.svg new file mode 100644 index 0000000..cdc0026 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music-fill.svg new file mode 100644 index 0000000..b865e4e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music.svg new file mode 100644 index 0000000..e18ec85 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-music.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf-fill.svg new file mode 100644 index 0000000..219c5a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf.svg new file mode 100644 index 0000000..51b9975 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-pdf.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person-fill.svg new file mode 100644 index 0000000..49ceda6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person.svg new file mode 100644 index 0000000..08a78cc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-person.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play-fill.svg new file mode 100644 index 0000000..341eb37 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play.svg new file mode 100644 index 0000000..abe215b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus-fill.svg new file mode 100644 index 0000000..ef99c8a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus.svg new file mode 100644 index 0000000..964e855 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post-fill.svg new file mode 100644 index 0000000..548773f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post.svg new file mode 100644 index 0000000..d9f44a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-post.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt-fill.svg new file mode 100644 index 0000000..e96a461 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt.svg new file mode 100644 index 0000000..cab71bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ppt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext-fill.svg new file mode 100644 index 0000000..55da25c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext.svg new file mode 100644 index 0000000..3f3a6ad --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-richtext.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled-fill.svg new file mode 100644 index 0000000..ee90c80 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled.svg new file mode 100644 index 0000000..ebd617e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-ruled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides-fill.svg new file mode 100644 index 0000000..e7f76f4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides.svg new file mode 100644 index 0000000..e643cd3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-slides.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet-fill.svg new file mode 100644 index 0000000..02ac9ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet.svg new file mode 100644 index 0000000..a6bb6e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-spreadsheet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text-fill.svg new file mode 100644 index 0000000..bfedd6b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text.svg new file mode 100644 index 0000000..7ae53fc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word-fill.svg new file mode 100644 index 0000000..259e767 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word.svg new file mode 100644 index 0000000..ef4727c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-word.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x-fill.svg new file mode 100644 index 0000000..f683966 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x.svg new file mode 100644 index 0000000..4dd9da9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip-fill.svg new file mode 100644 index 0000000..a17fa9e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip.svg new file mode 100644 index 0000000..f5f8ccc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark-zip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark.svg new file mode 100644 index 0000000..d8d8774 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-earmark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel-fill.svg new file mode 100644 index 0000000..fa9f915 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel.svg new file mode 100644 index 0000000..6366bc0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-easel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel-fill.svg new file mode 100644 index 0000000..bddcea2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel.svg new file mode 100644 index 0000000..8bf2f5e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-excel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-fill.svg new file mode 100644 index 0000000..e5f8c4a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font-fill.svg new file mode 100644 index 0000000..6bda7b1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font.svg new file mode 100644 index 0000000..b75f9a4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-font.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image-fill.svg new file mode 100644 index 0000000..7c73ece --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image.svg new file mode 100644 index 0000000..b063628 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock-fill.svg new file mode 100644 index 0000000..1f7c3f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock.svg new file mode 100644 index 0000000..195deef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2-fill.svg new file mode 100644 index 0000000..82426e8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2.svg new file mode 100644 index 0000000..125a747 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-lock2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical-fill.svg new file mode 100644 index 0000000..2f4d3b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical.svg new file mode 100644 index 0000000..07e8495 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-medical.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus-fill.svg new file mode 100644 index 0000000..99f7d53 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus.svg new file mode 100644 index 0000000..880409b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music-fill.svg new file mode 100644 index 0000000..38099f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music.svg new file mode 100644 index 0000000..a24d41e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-music.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf-fill.svg new file mode 100644 index 0000000..c88d1b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf.svg new file mode 100644 index 0000000..e7bdcba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-pdf.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person-fill.svg new file mode 100644 index 0000000..c212b00 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person.svg new file mode 100644 index 0000000..e102abf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-person.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play-fill.svg new file mode 100644 index 0000000..a6dce8a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play.svg new file mode 100644 index 0000000..d5505e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus-fill.svg new file mode 100644 index 0000000..bdb7ee0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus.svg new file mode 100644 index 0000000..af41ae1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post-fill.svg new file mode 100644 index 0000000..336f219 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post.svg new file mode 100644 index 0000000..6807724 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-post.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt-fill.svg new file mode 100644 index 0000000..b8c3973 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt.svg new file mode 100644 index 0000000..bee27d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ppt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext-fill.svg new file mode 100644 index 0000000..a98e5d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext.svg new file mode 100644 index 0000000..3ceb420 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-richtext.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled-fill.svg new file mode 100644 index 0000000..8bfe726 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled.svg new file mode 100644 index 0000000..7236cfc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-ruled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides-fill.svg new file mode 100644 index 0000000..b75d3f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides.svg new file mode 100644 index 0000000..0e63548 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-slides.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet-fill.svg new file mode 100644 index 0000000..6db7eb6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet.svg new file mode 100644 index 0000000..55b53ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-spreadsheet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text-fill.svg new file mode 100644 index 0000000..6da36b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text.svg new file mode 100644 index 0000000..95dc704 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word-fill.svg new file mode 100644 index 0000000..6f578f0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word.svg new file mode 100644 index 0000000..732b59a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-word.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x-fill.svg new file mode 100644 index 0000000..0455659 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x.svg new file mode 100644 index 0000000..5ab0b48 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip-fill.svg new file mode 100644 index 0000000..1d80366 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip.svg new file mode 100644 index 0000000..e3b633e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file-zip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file.svg new file mode 100644 index 0000000..4a5dd73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/file.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files-alt.svg new file mode 100644 index 0000000..b42d764 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files.svg new file mode 100644 index 0000000..6170ab5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/files.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-aac.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-aac.svg new file mode 100644 index 0000000..b6a5c47 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-aac.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ai.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ai.svg new file mode 100644 index 0000000..fe2bcaa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ai.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-bmp.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-bmp.svg new file mode 100644 index 0000000..587381c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-bmp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-cs.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-cs.svg new file mode 100644 index 0000000..90ed8de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-cs.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-css.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-css.svg new file mode 100644 index 0000000..8f0864f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-css.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-csv.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-csv.svg new file mode 100644 index 0000000..fa097aa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-csv.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-doc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-doc.svg new file mode 100644 index 0000000..f75847f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-doc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-docx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-docx.svg new file mode 100644 index 0000000..1b6c172 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-docx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-exe.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-exe.svg new file mode 100644 index 0000000..cdafeb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-exe.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-gif.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-gif.svg new file mode 100644 index 0000000..b39234f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-gif.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-heic.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-heic.svg new file mode 100644 index 0000000..a022060 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-heic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-html.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-html.svg new file mode 100644 index 0000000..1661a94 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-html.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-java.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-java.svg new file mode 100644 index 0000000..eeeab41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-java.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jpg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jpg.svg new file mode 100644 index 0000000..7d939ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jpg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-js.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-js.svg new file mode 100644 index 0000000..4f4a00c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-js.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-json.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-json.svg new file mode 100644 index 0000000..a4ccced --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-json.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jsx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jsx.svg new file mode 100644 index 0000000..256b5c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-jsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-key.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-key.svg new file mode 100644 index 0000000..d164bc8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-key.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-m4p.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-m4p.svg new file mode 100644 index 0000000..ae8f611 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-m4p.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-md.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-md.svg new file mode 100644 index 0000000..40e5139 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-md.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mdx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mdx.svg new file mode 100644 index 0000000..43a9153 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mdx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mov.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mov.svg new file mode 100644 index 0000000..27e6391 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mov.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp3.svg new file mode 100644 index 0000000..f25e6a8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp4.svg new file mode 100644 index 0000000..d27e9ff --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-mp4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-otf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-otf.svg new file mode 100644 index 0000000..f16eb61 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-otf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pdf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pdf.svg new file mode 100644 index 0000000..e8bb772 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pdf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-php.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-php.svg new file mode 100644 index 0000000..4d532df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-php.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-png.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-png.svg new file mode 100644 index 0000000..659e266 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-png.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ppt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ppt.svg new file mode 100644 index 0000000..e53b1ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ppt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pptx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pptx.svg new file mode 100644 index 0000000..f68e939 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-pptx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-psd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-psd.svg new file mode 100644 index 0000000..6fefd08 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-psd.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-py.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-py.svg new file mode 100644 index 0000000..14fd4ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-py.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-raw.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-raw.svg new file mode 100644 index 0000000..da98185 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-raw.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-rb.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-rb.svg new file mode 100644 index 0000000..3466a1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-rb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sass.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sass.svg new file mode 100644 index 0000000..3632662 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sass.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-scss.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-scss.svg new file mode 100644 index 0000000..8d1935f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-scss.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sh.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sh.svg new file mode 100644 index 0000000..592c408 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sh.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sql.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sql.svg new file mode 100644 index 0000000..814137d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-sql.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-svg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-svg.svg new file mode 100644 index 0000000..222d9ac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-svg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tiff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tiff.svg new file mode 100644 index 0000000..e101575 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tiff.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tsx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tsx.svg new file mode 100644 index 0000000..73dd643 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-tsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ttf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ttf.svg new file mode 100644 index 0000000..9c93584 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-ttf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-txt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-txt.svg new file mode 100644 index 0000000..1e27bcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-txt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-wav.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-wav.svg new file mode 100644 index 0000000..6725640 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-wav.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-woff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-woff.svg new file mode 100644 index 0000000..f29a4b1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-woff.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xls.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xls.svg new file mode 100644 index 0000000..5f79b16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xls.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xlsx.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xlsx.svg new file mode 100644 index 0000000..5202bf7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xlsx.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xml.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xml.svg new file mode 100644 index 0000000..ba9ffb6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-xml.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-yml.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-yml.svg new file mode 100644 index 0000000..17a9ebe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filetype-yml.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/film.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/film.svg new file mode 100644 index 0000000..40c2eb9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/film.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle-fill.svg new file mode 100644 index 0000000..1aa0f39 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle.svg new file mode 100644 index 0000000..42c1b84 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-left.svg new file mode 100644 index 0000000..bb1ee92 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-right.svg new file mode 100644 index 0000000..6a5083c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square-fill.svg new file mode 100644 index 0000000..438b8c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square.svg new file mode 100644 index 0000000..d243b0b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter.svg new file mode 100644 index 0000000..a7d7dac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/filter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fingerprint.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fingerprint.svg new file mode 100644 index 0000000..08252bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fingerprint.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fire.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fire.svg new file mode 100644 index 0000000..a58e6dd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fire.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag-fill.svg new file mode 100644 index 0000000..8b92331 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag.svg new file mode 100644 index 0000000..f8b6dab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy-fill.svg new file mode 100644 index 0000000..87a43ce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy.svg new file mode 100644 index 0000000..65ae562 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2-fill.svg new file mode 100644 index 0000000..61a6cdb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2.svg new file mode 100644 index 0000000..2412389 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/floppy2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower1.svg new file mode 100644 index 0000000..3495858 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower2.svg new file mode 100644 index 0000000..664a9c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower3.svg new file mode 100644 index 0000000..66845c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/flower3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-check.svg new file mode 100644 index 0000000..57c6466 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-fill.svg new file mode 100644 index 0000000..113350c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-minus.svg new file mode 100644 index 0000000..41db30b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-plus.svg new file mode 100644 index 0000000..85b5a18 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink-fill.svg new file mode 100644 index 0000000..6407400 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink.svg new file mode 100644 index 0000000..7137637 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-symlink.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-x.svg new file mode 100644 index 0000000..a6ed341 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder.svg new file mode 100644 index 0000000..a30c452 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2-open.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2-open.svg new file mode 100644 index 0000000..7ffbb54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2-open.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2.svg new file mode 100644 index 0000000..ce6a1af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/folder2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.css b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.css new file mode 100644 index 0000000..bc84a5f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.css @@ -0,0 +1,2078 @@ +/*! + * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/) + * Copyright 2019-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */ + +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url("./fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6") format("woff2"), +url("./fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } +.bi-alphabet-uppercase::before { content: "\f2a5"; } +.bi-alphabet::before { content: "\f68a"; } +.bi-amazon::before { content: "\f68d"; } +.bi-arrows-collapse-vertical::before { content: "\f690"; } +.bi-arrows-expand-vertical::before { content: "\f695"; } +.bi-arrows-vertical::before { content: "\f698"; } +.bi-arrows::before { content: "\f6a2"; } +.bi-ban-fill::before { content: "\f6a3"; } +.bi-ban::before { content: "\f6b6"; } +.bi-bing::before { content: "\f6c2"; } +.bi-cake::before { content: "\f6e0"; } +.bi-cake2::before { content: "\f6ed"; } +.bi-cookie::before { content: "\f6ee"; } +.bi-copy::before { content: "\f759"; } +.bi-crosshair::before { content: "\f769"; } +.bi-crosshair2::before { content: "\f794"; } +.bi-emoji-astonished-fill::before { content: "\f795"; } +.bi-emoji-astonished::before { content: "\f79a"; } +.bi-emoji-grimace-fill::before { content: "\f79b"; } +.bi-emoji-grimace::before { content: "\f7a0"; } +.bi-emoji-grin-fill::before { content: "\f7a1"; } +.bi-emoji-grin::before { content: "\f7a6"; } +.bi-emoji-surprise-fill::before { content: "\f7a7"; } +.bi-emoji-surprise::before { content: "\f7ac"; } +.bi-emoji-tear-fill::before { content: "\f7ad"; } +.bi-emoji-tear::before { content: "\f7b2"; } +.bi-envelope-arrow-down-fill::before { content: "\f7b3"; } +.bi-envelope-arrow-down::before { content: "\f7b8"; } +.bi-envelope-arrow-up-fill::before { content: "\f7b9"; } +.bi-envelope-arrow-up::before { content: "\f7be"; } +.bi-feather::before { content: "\f7bf"; } +.bi-feather2::before { content: "\f7c4"; } +.bi-floppy-fill::before { content: "\f7c5"; } +.bi-floppy::before { content: "\f7d8"; } +.bi-floppy2-fill::before { content: "\f7d9"; } +.bi-floppy2::before { content: "\f7e4"; } +.bi-gitlab::before { content: "\f7e5"; } +.bi-highlighter::before { content: "\f7f8"; } +.bi-marker-tip::before { content: "\f802"; } +.bi-nvme-fill::before { content: "\f803"; } +.bi-nvme::before { content: "\f80c"; } +.bi-opencollective::before { content: "\f80d"; } +.bi-pci-card-network::before { content: "\f8cd"; } +.bi-pci-card-sound::before { content: "\f8ce"; } +.bi-radar::before { content: "\f8cf"; } +.bi-send-arrow-down-fill::before { content: "\f8d0"; } +.bi-send-arrow-down::before { content: "\f8d1"; } +.bi-send-arrow-up-fill::before { content: "\f8d2"; } +.bi-send-arrow-up::before { content: "\f8d3"; } +.bi-sim-slash-fill::before { content: "\f8d4"; } +.bi-sim-slash::before { content: "\f8d5"; } +.bi-sourceforge::before { content: "\f8d6"; } +.bi-substack::before { content: "\f8d7"; } +.bi-threads-fill::before { content: "\f8d8"; } +.bi-threads::before { content: "\f8d9"; } +.bi-transparency::before { content: "\f8da"; } +.bi-twitter-x::before { content: "\f8db"; } +.bi-type-h4::before { content: "\f8dc"; } +.bi-type-h5::before { content: "\f8dd"; } +.bi-type-h6::before { content: "\f8de"; } +.bi-backpack-fill::before { content: "\f8df"; } +.bi-backpack::before { content: "\f8e0"; } +.bi-backpack2-fill::before { content: "\f8e1"; } +.bi-backpack2::before { content: "\f8e2"; } +.bi-backpack3-fill::before { content: "\f8e3"; } +.bi-backpack3::before { content: "\f8e4"; } +.bi-backpack4-fill::before { content: "\f8e5"; } +.bi-backpack4::before { content: "\f8e6"; } +.bi-brilliance::before { content: "\f8e7"; } +.bi-cake-fill::before { content: "\f8e8"; } +.bi-cake2-fill::before { content: "\f8e9"; } +.bi-duffle-fill::before { content: "\f8ea"; } +.bi-duffle::before { content: "\f8eb"; } +.bi-exposure::before { content: "\f8ec"; } +.bi-gender-neuter::before { content: "\f8ed"; } +.bi-highlights::before { content: "\f8ee"; } +.bi-luggage-fill::before { content: "\f8ef"; } +.bi-luggage::before { content: "\f8f0"; } +.bi-mailbox-flag::before { content: "\f8f1"; } +.bi-mailbox2-flag::before { content: "\f8f2"; } +.bi-noise-reduction::before { content: "\f8f3"; } +.bi-passport-fill::before { content: "\f8f4"; } +.bi-passport::before { content: "\f8f5"; } +.bi-person-arms-up::before { content: "\f8f6"; } +.bi-person-raised-hand::before { content: "\f8f7"; } +.bi-person-standing-dress::before { content: "\f8f8"; } +.bi-person-standing::before { content: "\f8f9"; } +.bi-person-walking::before { content: "\f8fa"; } +.bi-person-wheelchair::before { content: "\f8fb"; } +.bi-shadows::before { content: "\f8fc"; } +.bi-suitcase-fill::before { content: "\f8fd"; } +.bi-suitcase-lg-fill::before { content: "\f8fe"; } +.bi-suitcase-lg::before { content: "\f8ff"; } +.bi-suitcase::before { content: "\f900"; } +.bi-suitcase2-fill::before { content: "\f901"; } +.bi-suitcase2::before { content: "\f902"; } +.bi-vignette::before { content: "\f903"; } diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.json b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.json new file mode 100644 index 0000000..56247e5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.json @@ -0,0 +1,2052 @@ +{ + "123": 63103, + "alarm-fill": 61697, + "alarm": 61698, + "align-bottom": 61699, + "align-center": 61700, + "align-end": 61701, + "align-middle": 61702, + "align-start": 61703, + "align-top": 61704, + "alt": 61705, + "app-indicator": 61706, + "app": 61707, + "archive-fill": 61708, + "archive": 61709, + "arrow-90deg-down": 61710, + "arrow-90deg-left": 61711, + "arrow-90deg-right": 61712, + "arrow-90deg-up": 61713, + "arrow-bar-down": 61714, + "arrow-bar-left": 61715, + "arrow-bar-right": 61716, + "arrow-bar-up": 61717, + "arrow-clockwise": 61718, + "arrow-counterclockwise": 61719, + "arrow-down-circle-fill": 61720, + "arrow-down-circle": 61721, + "arrow-down-left-circle-fill": 61722, + "arrow-down-left-circle": 61723, + "arrow-down-left-square-fill": 61724, + "arrow-down-left-square": 61725, + "arrow-down-left": 61726, + "arrow-down-right-circle-fill": 61727, + "arrow-down-right-circle": 61728, + "arrow-down-right-square-fill": 61729, + "arrow-down-right-square": 61730, + "arrow-down-right": 61731, + "arrow-down-short": 61732, + "arrow-down-square-fill": 61733, + "arrow-down-square": 61734, + "arrow-down-up": 61735, + "arrow-down": 61736, + "arrow-left-circle-fill": 61737, + "arrow-left-circle": 61738, + "arrow-left-right": 61739, + "arrow-left-short": 61740, + "arrow-left-square-fill": 61741, + "arrow-left-square": 61742, + "arrow-left": 61743, + "arrow-repeat": 61744, + "arrow-return-left": 61745, + "arrow-return-right": 61746, + "arrow-right-circle-fill": 61747, + "arrow-right-circle": 61748, + "arrow-right-short": 61749, + "arrow-right-square-fill": 61750, + "arrow-right-square": 61751, + "arrow-right": 61752, + "arrow-up-circle-fill": 61753, + "arrow-up-circle": 61754, + "arrow-up-left-circle-fill": 61755, + "arrow-up-left-circle": 61756, + "arrow-up-left-square-fill": 61757, + "arrow-up-left-square": 61758, + "arrow-up-left": 61759, + "arrow-up-right-circle-fill": 61760, + "arrow-up-right-circle": 61761, + "arrow-up-right-square-fill": 61762, + "arrow-up-right-square": 61763, + "arrow-up-right": 61764, + "arrow-up-short": 61765, + "arrow-up-square-fill": 61766, + "arrow-up-square": 61767, + "arrow-up": 61768, + "arrows-angle-contract": 61769, + "arrows-angle-expand": 61770, + "arrows-collapse": 61771, + "arrows-expand": 61772, + "arrows-fullscreen": 61773, + "arrows-move": 61774, + "aspect-ratio-fill": 61775, + "aspect-ratio": 61776, + "asterisk": 61777, + "at": 61778, + "award-fill": 61779, + "award": 61780, + "back": 61781, + "backspace-fill": 61782, + "backspace-reverse-fill": 61783, + "backspace-reverse": 61784, + "backspace": 61785, + "badge-3d-fill": 61786, + "badge-3d": 61787, + "badge-4k-fill": 61788, + "badge-4k": 61789, + "badge-8k-fill": 61790, + "badge-8k": 61791, + "badge-ad-fill": 61792, + "badge-ad": 61793, + "badge-ar-fill": 61794, + "badge-ar": 61795, + "badge-cc-fill": 61796, + "badge-cc": 61797, + "badge-hd-fill": 61798, + "badge-hd": 61799, + "badge-tm-fill": 61800, + "badge-tm": 61801, + "badge-vo-fill": 61802, + "badge-vo": 61803, + "badge-vr-fill": 61804, + "badge-vr": 61805, + "badge-wc-fill": 61806, + "badge-wc": 61807, + "bag-check-fill": 61808, + "bag-check": 61809, + "bag-dash-fill": 61810, + "bag-dash": 61811, + "bag-fill": 61812, + "bag-plus-fill": 61813, + "bag-plus": 61814, + "bag-x-fill": 61815, + "bag-x": 61816, + "bag": 61817, + "bar-chart-fill": 61818, + "bar-chart-line-fill": 61819, + "bar-chart-line": 61820, + "bar-chart-steps": 61821, + "bar-chart": 61822, + "basket-fill": 61823, + "basket": 61824, + "basket2-fill": 61825, + "basket2": 61826, + "basket3-fill": 61827, + "basket3": 61828, + "battery-charging": 61829, + "battery-full": 61830, + "battery-half": 61831, + "battery": 61832, + "bell-fill": 61833, + "bell": 61834, + "bezier": 61835, + "bezier2": 61836, + "bicycle": 61837, + "binoculars-fill": 61838, + "binoculars": 61839, + "blockquote-left": 61840, + "blockquote-right": 61841, + "book-fill": 61842, + "book-half": 61843, + "book": 61844, + "bookmark-check-fill": 61845, + "bookmark-check": 61846, + "bookmark-dash-fill": 61847, + "bookmark-dash": 61848, + "bookmark-fill": 61849, + "bookmark-heart-fill": 61850, + "bookmark-heart": 61851, + "bookmark-plus-fill": 61852, + "bookmark-plus": 61853, + "bookmark-star-fill": 61854, + "bookmark-star": 61855, + "bookmark-x-fill": 61856, + "bookmark-x": 61857, + "bookmark": 61858, + "bookmarks-fill": 61859, + "bookmarks": 61860, + "bookshelf": 61861, + "bootstrap-fill": 61862, + "bootstrap-reboot": 61863, + "bootstrap": 61864, + "border-all": 61865, + "border-bottom": 61866, + "border-center": 61867, + "border-inner": 61868, + "border-left": 61869, + "border-middle": 61870, + "border-outer": 61871, + "border-right": 61872, + "border-style": 61873, + "border-top": 61874, + "border-width": 61875, + "border": 61876, + "bounding-box-circles": 61877, + "bounding-box": 61878, + "box-arrow-down-left": 61879, + "box-arrow-down-right": 61880, + "box-arrow-down": 61881, + "box-arrow-in-down-left": 61882, + "box-arrow-in-down-right": 61883, + "box-arrow-in-down": 61884, + "box-arrow-in-left": 61885, + "box-arrow-in-right": 61886, + "box-arrow-in-up-left": 61887, + "box-arrow-in-up-right": 61888, + "box-arrow-in-up": 61889, + "box-arrow-left": 61890, + "box-arrow-right": 61891, + "box-arrow-up-left": 61892, + "box-arrow-up-right": 61893, + "box-arrow-up": 61894, + "box-seam": 61895, + "box": 61896, + "braces": 61897, + "bricks": 61898, + "briefcase-fill": 61899, + "briefcase": 61900, + "brightness-alt-high-fill": 61901, + "brightness-alt-high": 61902, + "brightness-alt-low-fill": 61903, + "brightness-alt-low": 61904, + "brightness-high-fill": 61905, + "brightness-high": 61906, + "brightness-low-fill": 61907, + "brightness-low": 61908, + "broadcast-pin": 61909, + "broadcast": 61910, + "brush-fill": 61911, + "brush": 61912, + "bucket-fill": 61913, + "bucket": 61914, + "bug-fill": 61915, + "bug": 61916, + "building": 61917, + "bullseye": 61918, + "calculator-fill": 61919, + "calculator": 61920, + "calendar-check-fill": 61921, + "calendar-check": 61922, + "calendar-date-fill": 61923, + "calendar-date": 61924, + "calendar-day-fill": 61925, + "calendar-day": 61926, + "calendar-event-fill": 61927, + "calendar-event": 61928, + "calendar-fill": 61929, + "calendar-minus-fill": 61930, + "calendar-minus": 61931, + "calendar-month-fill": 61932, + "calendar-month": 61933, + "calendar-plus-fill": 61934, + "calendar-plus": 61935, + "calendar-range-fill": 61936, + "calendar-range": 61937, + "calendar-week-fill": 61938, + "calendar-week": 61939, + "calendar-x-fill": 61940, + "calendar-x": 61941, + "calendar": 61942, + "calendar2-check-fill": 61943, + "calendar2-check": 61944, + "calendar2-date-fill": 61945, + "calendar2-date": 61946, + "calendar2-day-fill": 61947, + "calendar2-day": 61948, + "calendar2-event-fill": 61949, + "calendar2-event": 61950, + "calendar2-fill": 61951, + "calendar2-minus-fill": 61952, + "calendar2-minus": 61953, + "calendar2-month-fill": 61954, + "calendar2-month": 61955, + "calendar2-plus-fill": 61956, + "calendar2-plus": 61957, + "calendar2-range-fill": 61958, + "calendar2-range": 61959, + "calendar2-week-fill": 61960, + "calendar2-week": 61961, + "calendar2-x-fill": 61962, + "calendar2-x": 61963, + "calendar2": 61964, + "calendar3-event-fill": 61965, + "calendar3-event": 61966, + "calendar3-fill": 61967, + "calendar3-range-fill": 61968, + "calendar3-range": 61969, + "calendar3-week-fill": 61970, + "calendar3-week": 61971, + "calendar3": 61972, + "calendar4-event": 61973, + "calendar4-range": 61974, + "calendar4-week": 61975, + "calendar4": 61976, + "camera-fill": 61977, + "camera-reels-fill": 61978, + "camera-reels": 61979, + "camera-video-fill": 61980, + "camera-video-off-fill": 61981, + "camera-video-off": 61982, + "camera-video": 61983, + "camera": 61984, + "camera2": 61985, + "capslock-fill": 61986, + "capslock": 61987, + "card-checklist": 61988, + "card-heading": 61989, + "card-image": 61990, + "card-list": 61991, + "card-text": 61992, + "caret-down-fill": 61993, + "caret-down-square-fill": 61994, + "caret-down-square": 61995, + "caret-down": 61996, + "caret-left-fill": 61997, + "caret-left-square-fill": 61998, + "caret-left-square": 61999, + "caret-left": 62000, + "caret-right-fill": 62001, + "caret-right-square-fill": 62002, + "caret-right-square": 62003, + "caret-right": 62004, + "caret-up-fill": 62005, + "caret-up-square-fill": 62006, + "caret-up-square": 62007, + "caret-up": 62008, + "cart-check-fill": 62009, + "cart-check": 62010, + "cart-dash-fill": 62011, + "cart-dash": 62012, + "cart-fill": 62013, + "cart-plus-fill": 62014, + "cart-plus": 62015, + "cart-x-fill": 62016, + "cart-x": 62017, + "cart": 62018, + "cart2": 62019, + "cart3": 62020, + "cart4": 62021, + "cash-stack": 62022, + "cash": 62023, + "cast": 62024, + "chat-dots-fill": 62025, + "chat-dots": 62026, + "chat-fill": 62027, + "chat-left-dots-fill": 62028, + "chat-left-dots": 62029, + "chat-left-fill": 62030, + "chat-left-quote-fill": 62031, + "chat-left-quote": 62032, + "chat-left-text-fill": 62033, + "chat-left-text": 62034, + "chat-left": 62035, + "chat-quote-fill": 62036, + "chat-quote": 62037, + "chat-right-dots-fill": 62038, + "chat-right-dots": 62039, + "chat-right-fill": 62040, + "chat-right-quote-fill": 62041, + "chat-right-quote": 62042, + "chat-right-text-fill": 62043, + "chat-right-text": 62044, + "chat-right": 62045, + "chat-square-dots-fill": 62046, + "chat-square-dots": 62047, + "chat-square-fill": 62048, + "chat-square-quote-fill": 62049, + "chat-square-quote": 62050, + "chat-square-text-fill": 62051, + "chat-square-text": 62052, + "chat-square": 62053, + "chat-text-fill": 62054, + "chat-text": 62055, + "chat": 62056, + "check-all": 62057, + "check-circle-fill": 62058, + "check-circle": 62059, + "check-square-fill": 62060, + "check-square": 62061, + "check": 62062, + "check2-all": 62063, + "check2-circle": 62064, + "check2-square": 62065, + "check2": 62066, + "chevron-bar-contract": 62067, + "chevron-bar-down": 62068, + "chevron-bar-expand": 62069, + "chevron-bar-left": 62070, + "chevron-bar-right": 62071, + "chevron-bar-up": 62072, + "chevron-compact-down": 62073, + "chevron-compact-left": 62074, + "chevron-compact-right": 62075, + "chevron-compact-up": 62076, + "chevron-contract": 62077, + "chevron-double-down": 62078, + "chevron-double-left": 62079, + "chevron-double-right": 62080, + "chevron-double-up": 62081, + "chevron-down": 62082, + "chevron-expand": 62083, + "chevron-left": 62084, + "chevron-right": 62085, + "chevron-up": 62086, + "circle-fill": 62087, + "circle-half": 62088, + "circle-square": 62089, + "circle": 62090, + "clipboard-check": 62091, + "clipboard-data": 62092, + "clipboard-minus": 62093, + "clipboard-plus": 62094, + "clipboard-x": 62095, + "clipboard": 62096, + "clock-fill": 62097, + "clock-history": 62098, + "clock": 62099, + "cloud-arrow-down-fill": 62100, + "cloud-arrow-down": 62101, + "cloud-arrow-up-fill": 62102, + "cloud-arrow-up": 62103, + "cloud-check-fill": 62104, + "cloud-check": 62105, + "cloud-download-fill": 62106, + "cloud-download": 62107, + "cloud-drizzle-fill": 62108, + "cloud-drizzle": 62109, + "cloud-fill": 62110, + "cloud-fog-fill": 62111, + "cloud-fog": 62112, + "cloud-fog2-fill": 62113, + "cloud-fog2": 62114, + "cloud-hail-fill": 62115, + "cloud-hail": 62116, + "cloud-haze-fill": 62118, + "cloud-haze": 62119, + "cloud-haze2-fill": 62120, + "cloud-lightning-fill": 62121, + "cloud-lightning-rain-fill": 62122, + "cloud-lightning-rain": 62123, + "cloud-lightning": 62124, + "cloud-minus-fill": 62125, + "cloud-minus": 62126, + "cloud-moon-fill": 62127, + "cloud-moon": 62128, + "cloud-plus-fill": 62129, + "cloud-plus": 62130, + "cloud-rain-fill": 62131, + "cloud-rain-heavy-fill": 62132, + "cloud-rain-heavy": 62133, + "cloud-rain": 62134, + "cloud-slash-fill": 62135, + "cloud-slash": 62136, + "cloud-sleet-fill": 62137, + "cloud-sleet": 62138, + "cloud-snow-fill": 62139, + "cloud-snow": 62140, + "cloud-sun-fill": 62141, + "cloud-sun": 62142, + "cloud-upload-fill": 62143, + "cloud-upload": 62144, + "cloud": 62145, + "clouds-fill": 62146, + "clouds": 62147, + "cloudy-fill": 62148, + "cloudy": 62149, + "code-slash": 62150, + "code-square": 62151, + "code": 62152, + "collection-fill": 62153, + "collection-play-fill": 62154, + "collection-play": 62155, + "collection": 62156, + "columns-gap": 62157, + "columns": 62158, + "command": 62159, + "compass-fill": 62160, + "compass": 62161, + "cone-striped": 62162, + "cone": 62163, + "controller": 62164, + "cpu-fill": 62165, + "cpu": 62166, + "credit-card-2-back-fill": 62167, + "credit-card-2-back": 62168, + "credit-card-2-front-fill": 62169, + "credit-card-2-front": 62170, + "credit-card-fill": 62171, + "credit-card": 62172, + "crop": 62173, + "cup-fill": 62174, + "cup-straw": 62175, + "cup": 62176, + "cursor-fill": 62177, + "cursor-text": 62178, + "cursor": 62179, + "dash-circle-dotted": 62180, + "dash-circle-fill": 62181, + "dash-circle": 62182, + "dash-square-dotted": 62183, + "dash-square-fill": 62184, + "dash-square": 62185, + "dash": 62186, + "diagram-2-fill": 62187, + "diagram-2": 62188, + "diagram-3-fill": 62189, + "diagram-3": 62190, + "diamond-fill": 62191, + "diamond-half": 62192, + "diamond": 62193, + "dice-1-fill": 62194, + "dice-1": 62195, + "dice-2-fill": 62196, + "dice-2": 62197, + "dice-3-fill": 62198, + "dice-3": 62199, + "dice-4-fill": 62200, + "dice-4": 62201, + "dice-5-fill": 62202, + "dice-5": 62203, + "dice-6-fill": 62204, + "dice-6": 62205, + "disc-fill": 62206, + "disc": 62207, + "discord": 62208, + "display-fill": 62209, + "display": 62210, + "distribute-horizontal": 62211, + "distribute-vertical": 62212, + "door-closed-fill": 62213, + "door-closed": 62214, + "door-open-fill": 62215, + "door-open": 62216, + "dot": 62217, + "download": 62218, + "droplet-fill": 62219, + "droplet-half": 62220, + "droplet": 62221, + "earbuds": 62222, + "easel-fill": 62223, + "easel": 62224, + "egg-fill": 62225, + "egg-fried": 62226, + "egg": 62227, + "eject-fill": 62228, + "eject": 62229, + "emoji-angry-fill": 62230, + "emoji-angry": 62231, + "emoji-dizzy-fill": 62232, + "emoji-dizzy": 62233, + "emoji-expressionless-fill": 62234, + "emoji-expressionless": 62235, + "emoji-frown-fill": 62236, + "emoji-frown": 62237, + "emoji-heart-eyes-fill": 62238, + "emoji-heart-eyes": 62239, + "emoji-laughing-fill": 62240, + "emoji-laughing": 62241, + "emoji-neutral-fill": 62242, + "emoji-neutral": 62243, + "emoji-smile-fill": 62244, + "emoji-smile-upside-down-fill": 62245, + "emoji-smile-upside-down": 62246, + "emoji-smile": 62247, + "emoji-sunglasses-fill": 62248, + "emoji-sunglasses": 62249, + "emoji-wink-fill": 62250, + "emoji-wink": 62251, + "envelope-fill": 62252, + "envelope-open-fill": 62253, + "envelope-open": 62254, + "envelope": 62255, + "eraser-fill": 62256, + "eraser": 62257, + "exclamation-circle-fill": 62258, + "exclamation-circle": 62259, + "exclamation-diamond-fill": 62260, + "exclamation-diamond": 62261, + "exclamation-octagon-fill": 62262, + "exclamation-octagon": 62263, + "exclamation-square-fill": 62264, + "exclamation-square": 62265, + "exclamation-triangle-fill": 62266, + "exclamation-triangle": 62267, + "exclamation": 62268, + "exclude": 62269, + "eye-fill": 62270, + "eye-slash-fill": 62271, + "eye-slash": 62272, + "eye": 62273, + "eyedropper": 62274, + "eyeglasses": 62275, + "facebook": 62276, + "file-arrow-down-fill": 62277, + "file-arrow-down": 62278, + "file-arrow-up-fill": 62279, + "file-arrow-up": 62280, + "file-bar-graph-fill": 62281, + "file-bar-graph": 62282, + "file-binary-fill": 62283, + "file-binary": 62284, + "file-break-fill": 62285, + "file-break": 62286, + "file-check-fill": 62287, + "file-check": 62288, + "file-code-fill": 62289, + "file-code": 62290, + "file-diff-fill": 62291, + "file-diff": 62292, + "file-earmark-arrow-down-fill": 62293, + "file-earmark-arrow-down": 62294, + "file-earmark-arrow-up-fill": 62295, + "file-earmark-arrow-up": 62296, + "file-earmark-bar-graph-fill": 62297, + "file-earmark-bar-graph": 62298, + "file-earmark-binary-fill": 62299, + "file-earmark-binary": 62300, + "file-earmark-break-fill": 62301, + "file-earmark-break": 62302, + "file-earmark-check-fill": 62303, + "file-earmark-check": 62304, + "file-earmark-code-fill": 62305, + "file-earmark-code": 62306, + "file-earmark-diff-fill": 62307, + "file-earmark-diff": 62308, + "file-earmark-easel-fill": 62309, + "file-earmark-easel": 62310, + "file-earmark-excel-fill": 62311, + "file-earmark-excel": 62312, + "file-earmark-fill": 62313, + "file-earmark-font-fill": 62314, + "file-earmark-font": 62315, + "file-earmark-image-fill": 62316, + "file-earmark-image": 62317, + "file-earmark-lock-fill": 62318, + "file-earmark-lock": 62319, + "file-earmark-lock2-fill": 62320, + "file-earmark-lock2": 62321, + "file-earmark-medical-fill": 62322, + "file-earmark-medical": 62323, + "file-earmark-minus-fill": 62324, + "file-earmark-minus": 62325, + "file-earmark-music-fill": 62326, + "file-earmark-music": 62327, + "file-earmark-person-fill": 62328, + "file-earmark-person": 62329, + "file-earmark-play-fill": 62330, + "file-earmark-play": 62331, + "file-earmark-plus-fill": 62332, + "file-earmark-plus": 62333, + "file-earmark-post-fill": 62334, + "file-earmark-post": 62335, + "file-earmark-ppt-fill": 62336, + "file-earmark-ppt": 62337, + "file-earmark-richtext-fill": 62338, + "file-earmark-richtext": 62339, + "file-earmark-ruled-fill": 62340, + "file-earmark-ruled": 62341, + "file-earmark-slides-fill": 62342, + "file-earmark-slides": 62343, + "file-earmark-spreadsheet-fill": 62344, + "file-earmark-spreadsheet": 62345, + "file-earmark-text-fill": 62346, + "file-earmark-text": 62347, + "file-earmark-word-fill": 62348, + "file-earmark-word": 62349, + "file-earmark-x-fill": 62350, + "file-earmark-x": 62351, + "file-earmark-zip-fill": 62352, + "file-earmark-zip": 62353, + "file-earmark": 62354, + "file-easel-fill": 62355, + "file-easel": 62356, + "file-excel-fill": 62357, + "file-excel": 62358, + "file-fill": 62359, + "file-font-fill": 62360, + "file-font": 62361, + "file-image-fill": 62362, + "file-image": 62363, + "file-lock-fill": 62364, + "file-lock": 62365, + "file-lock2-fill": 62366, + "file-lock2": 62367, + "file-medical-fill": 62368, + "file-medical": 62369, + "file-minus-fill": 62370, + "file-minus": 62371, + "file-music-fill": 62372, + "file-music": 62373, + "file-person-fill": 62374, + "file-person": 62375, + "file-play-fill": 62376, + "file-play": 62377, + "file-plus-fill": 62378, + "file-plus": 62379, + "file-post-fill": 62380, + "file-post": 62381, + "file-ppt-fill": 62382, + "file-ppt": 62383, + "file-richtext-fill": 62384, + "file-richtext": 62385, + "file-ruled-fill": 62386, + "file-ruled": 62387, + "file-slides-fill": 62388, + "file-slides": 62389, + "file-spreadsheet-fill": 62390, + "file-spreadsheet": 62391, + "file-text-fill": 62392, + "file-text": 62393, + "file-word-fill": 62394, + "file-word": 62395, + "file-x-fill": 62396, + "file-x": 62397, + "file-zip-fill": 62398, + "file-zip": 62399, + "file": 62400, + "files-alt": 62401, + "files": 62402, + "film": 62403, + "filter-circle-fill": 62404, + "filter-circle": 62405, + "filter-left": 62406, + "filter-right": 62407, + "filter-square-fill": 62408, + "filter-square": 62409, + "filter": 62410, + "flag-fill": 62411, + "flag": 62412, + "flower1": 62413, + "flower2": 62414, + "flower3": 62415, + "folder-check": 62416, + "folder-fill": 62417, + "folder-minus": 62418, + "folder-plus": 62419, + "folder-symlink-fill": 62420, + "folder-symlink": 62421, + "folder-x": 62422, + "folder": 62423, + "folder2-open": 62424, + "folder2": 62425, + "fonts": 62426, + "forward-fill": 62427, + "forward": 62428, + "front": 62429, + "fullscreen-exit": 62430, + "fullscreen": 62431, + "funnel-fill": 62432, + "funnel": 62433, + "gear-fill": 62434, + "gear-wide-connected": 62435, + "gear-wide": 62436, + "gear": 62437, + "gem": 62438, + "geo-alt-fill": 62439, + "geo-alt": 62440, + "geo-fill": 62441, + "geo": 62442, + "gift-fill": 62443, + "gift": 62444, + "github": 62445, + "globe": 62446, + "globe2": 62447, + "google": 62448, + "graph-down": 62449, + "graph-up": 62450, + "grid-1x2-fill": 62451, + "grid-1x2": 62452, + "grid-3x2-gap-fill": 62453, + "grid-3x2-gap": 62454, + "grid-3x2": 62455, + "grid-3x3-gap-fill": 62456, + "grid-3x3-gap": 62457, + "grid-3x3": 62458, + "grid-fill": 62459, + "grid": 62460, + "grip-horizontal": 62461, + "grip-vertical": 62462, + "hammer": 62463, + "hand-index-fill": 62464, + "hand-index-thumb-fill": 62465, + "hand-index-thumb": 62466, + "hand-index": 62467, + "hand-thumbs-down-fill": 62468, + "hand-thumbs-down": 62469, + "hand-thumbs-up-fill": 62470, + "hand-thumbs-up": 62471, + "handbag-fill": 62472, + "handbag": 62473, + "hash": 62474, + "hdd-fill": 62475, + "hdd-network-fill": 62476, + "hdd-network": 62477, + "hdd-rack-fill": 62478, + "hdd-rack": 62479, + "hdd-stack-fill": 62480, + "hdd-stack": 62481, + "hdd": 62482, + "headphones": 62483, + "headset": 62484, + "heart-fill": 62485, + "heart-half": 62486, + "heart": 62487, + "heptagon-fill": 62488, + "heptagon-half": 62489, + "heptagon": 62490, + "hexagon-fill": 62491, + "hexagon-half": 62492, + "hexagon": 62493, + "hourglass-bottom": 62494, + "hourglass-split": 62495, + "hourglass-top": 62496, + "hourglass": 62497, + "house-door-fill": 62498, + "house-door": 62499, + "house-fill": 62500, + "house": 62501, + "hr": 62502, + "hurricane": 62503, + "image-alt": 62504, + "image-fill": 62505, + "image": 62506, + "images": 62507, + "inbox-fill": 62508, + "inbox": 62509, + "inboxes-fill": 62510, + "inboxes": 62511, + "info-circle-fill": 62512, + "info-circle": 62513, + "info-square-fill": 62514, + "info-square": 62515, + "info": 62516, + "input-cursor-text": 62517, + "input-cursor": 62518, + "instagram": 62519, + "intersect": 62520, + "journal-album": 62521, + "journal-arrow-down": 62522, + "journal-arrow-up": 62523, + "journal-bookmark-fill": 62524, + "journal-bookmark": 62525, + "journal-check": 62526, + "journal-code": 62527, + "journal-medical": 62528, + "journal-minus": 62529, + "journal-plus": 62530, + "journal-richtext": 62531, + "journal-text": 62532, + "journal-x": 62533, + "journal": 62534, + "journals": 62535, + "joystick": 62536, + "justify-left": 62537, + "justify-right": 62538, + "justify": 62539, + "kanban-fill": 62540, + "kanban": 62541, + "key-fill": 62542, + "key": 62543, + "keyboard-fill": 62544, + "keyboard": 62545, + "ladder": 62546, + "lamp-fill": 62547, + "lamp": 62548, + "laptop-fill": 62549, + "laptop": 62550, + "layer-backward": 62551, + "layer-forward": 62552, + "layers-fill": 62553, + "layers-half": 62554, + "layers": 62555, + "layout-sidebar-inset-reverse": 62556, + "layout-sidebar-inset": 62557, + "layout-sidebar-reverse": 62558, + "layout-sidebar": 62559, + "layout-split": 62560, + "layout-text-sidebar-reverse": 62561, + "layout-text-sidebar": 62562, + "layout-text-window-reverse": 62563, + "layout-text-window": 62564, + "layout-three-columns": 62565, + "layout-wtf": 62566, + "life-preserver": 62567, + "lightbulb-fill": 62568, + "lightbulb-off-fill": 62569, + "lightbulb-off": 62570, + "lightbulb": 62571, + "lightning-charge-fill": 62572, + "lightning-charge": 62573, + "lightning-fill": 62574, + "lightning": 62575, + "link-45deg": 62576, + "link": 62577, + "linkedin": 62578, + "list-check": 62579, + "list-nested": 62580, + "list-ol": 62581, + "list-stars": 62582, + "list-task": 62583, + "list-ul": 62584, + "list": 62585, + "lock-fill": 62586, + "lock": 62587, + "mailbox": 62588, + "mailbox2": 62589, + "map-fill": 62590, + "map": 62591, + "markdown-fill": 62592, + "markdown": 62593, + "mask": 62594, + "megaphone-fill": 62595, + "megaphone": 62596, + "menu-app-fill": 62597, + "menu-app": 62598, + "menu-button-fill": 62599, + "menu-button-wide-fill": 62600, + "menu-button-wide": 62601, + "menu-button": 62602, + "menu-down": 62603, + "menu-up": 62604, + "mic-fill": 62605, + "mic-mute-fill": 62606, + "mic-mute": 62607, + "mic": 62608, + "minecart-loaded": 62609, + "minecart": 62610, + "moisture": 62611, + "moon-fill": 62612, + "moon-stars-fill": 62613, + "moon-stars": 62614, + "moon": 62615, + "mouse-fill": 62616, + "mouse": 62617, + "mouse2-fill": 62618, + "mouse2": 62619, + "mouse3-fill": 62620, + "mouse3": 62621, + "music-note-beamed": 62622, + "music-note-list": 62623, + "music-note": 62624, + "music-player-fill": 62625, + "music-player": 62626, + "newspaper": 62627, + "node-minus-fill": 62628, + "node-minus": 62629, + "node-plus-fill": 62630, + "node-plus": 62631, + "nut-fill": 62632, + "nut": 62633, + "octagon-fill": 62634, + "octagon-half": 62635, + "octagon": 62636, + "option": 62637, + "outlet": 62638, + "paint-bucket": 62639, + "palette-fill": 62640, + "palette": 62641, + "palette2": 62642, + "paperclip": 62643, + "paragraph": 62644, + "patch-check-fill": 62645, + "patch-check": 62646, + "patch-exclamation-fill": 62647, + "patch-exclamation": 62648, + "patch-minus-fill": 62649, + "patch-minus": 62650, + "patch-plus-fill": 62651, + "patch-plus": 62652, + "patch-question-fill": 62653, + "patch-question": 62654, + "pause-btn-fill": 62655, + "pause-btn": 62656, + "pause-circle-fill": 62657, + "pause-circle": 62658, + "pause-fill": 62659, + "pause": 62660, + "peace-fill": 62661, + "peace": 62662, + "pen-fill": 62663, + "pen": 62664, + "pencil-fill": 62665, + "pencil-square": 62666, + "pencil": 62667, + "pentagon-fill": 62668, + "pentagon-half": 62669, + "pentagon": 62670, + "people-fill": 62671, + "people": 62672, + "percent": 62673, + "person-badge-fill": 62674, + "person-badge": 62675, + "person-bounding-box": 62676, + "person-check-fill": 62677, + "person-check": 62678, + "person-circle": 62679, + "person-dash-fill": 62680, + "person-dash": 62681, + "person-fill": 62682, + "person-lines-fill": 62683, + "person-plus-fill": 62684, + "person-plus": 62685, + "person-square": 62686, + "person-x-fill": 62687, + "person-x": 62688, + "person": 62689, + "phone-fill": 62690, + "phone-landscape-fill": 62691, + "phone-landscape": 62692, + "phone-vibrate-fill": 62693, + "phone-vibrate": 62694, + "phone": 62695, + "pie-chart-fill": 62696, + "pie-chart": 62697, + "pin-angle-fill": 62698, + "pin-angle": 62699, + "pin-fill": 62700, + "pin": 62701, + "pip-fill": 62702, + "pip": 62703, + "play-btn-fill": 62704, + "play-btn": 62705, + "play-circle-fill": 62706, + "play-circle": 62707, + "play-fill": 62708, + "play": 62709, + "plug-fill": 62710, + "plug": 62711, + "plus-circle-dotted": 62712, + "plus-circle-fill": 62713, + "plus-circle": 62714, + "plus-square-dotted": 62715, + "plus-square-fill": 62716, + "plus-square": 62717, + "plus": 62718, + "power": 62719, + "printer-fill": 62720, + "printer": 62721, + "puzzle-fill": 62722, + "puzzle": 62723, + "question-circle-fill": 62724, + "question-circle": 62725, + "question-diamond-fill": 62726, + "question-diamond": 62727, + "question-octagon-fill": 62728, + "question-octagon": 62729, + "question-square-fill": 62730, + "question-square": 62731, + "question": 62732, + "rainbow": 62733, + "receipt-cutoff": 62734, + "receipt": 62735, + "reception-0": 62736, + "reception-1": 62737, + "reception-2": 62738, + "reception-3": 62739, + "reception-4": 62740, + "record-btn-fill": 62741, + "record-btn": 62742, + "record-circle-fill": 62743, + "record-circle": 62744, + "record-fill": 62745, + "record": 62746, + "record2-fill": 62747, + "record2": 62748, + "reply-all-fill": 62749, + "reply-all": 62750, + "reply-fill": 62751, + "reply": 62752, + "rss-fill": 62753, + "rss": 62754, + "rulers": 62755, + "save-fill": 62756, + "save": 62757, + "save2-fill": 62758, + "save2": 62759, + "scissors": 62760, + "screwdriver": 62761, + "search": 62762, + "segmented-nav": 62763, + "server": 62764, + "share-fill": 62765, + "share": 62766, + "shield-check": 62767, + "shield-exclamation": 62768, + "shield-fill-check": 62769, + "shield-fill-exclamation": 62770, + "shield-fill-minus": 62771, + "shield-fill-plus": 62772, + "shield-fill-x": 62773, + "shield-fill": 62774, + "shield-lock-fill": 62775, + "shield-lock": 62776, + "shield-minus": 62777, + "shield-plus": 62778, + "shield-shaded": 62779, + "shield-slash-fill": 62780, + "shield-slash": 62781, + "shield-x": 62782, + "shield": 62783, + "shift-fill": 62784, + "shift": 62785, + "shop-window": 62786, + "shop": 62787, + "shuffle": 62788, + "signpost-2-fill": 62789, + "signpost-2": 62790, + "signpost-fill": 62791, + "signpost-split-fill": 62792, + "signpost-split": 62793, + "signpost": 62794, + "sim-fill": 62795, + "sim": 62796, + "skip-backward-btn-fill": 62797, + "skip-backward-btn": 62798, + "skip-backward-circle-fill": 62799, + "skip-backward-circle": 62800, + "skip-backward-fill": 62801, + "skip-backward": 62802, + "skip-end-btn-fill": 62803, + "skip-end-btn": 62804, + "skip-end-circle-fill": 62805, + "skip-end-circle": 62806, + "skip-end-fill": 62807, + "skip-end": 62808, + "skip-forward-btn-fill": 62809, + "skip-forward-btn": 62810, + "skip-forward-circle-fill": 62811, + "skip-forward-circle": 62812, + "skip-forward-fill": 62813, + "skip-forward": 62814, + "skip-start-btn-fill": 62815, + "skip-start-btn": 62816, + "skip-start-circle-fill": 62817, + "skip-start-circle": 62818, + "skip-start-fill": 62819, + "skip-start": 62820, + "slack": 62821, + "slash-circle-fill": 62822, + "slash-circle": 62823, + "slash-square-fill": 62824, + "slash-square": 62825, + "slash": 62826, + "sliders": 62827, + "smartwatch": 62828, + "snow": 62829, + "snow2": 62830, + "snow3": 62831, + "sort-alpha-down-alt": 62832, + "sort-alpha-down": 62833, + "sort-alpha-up-alt": 62834, + "sort-alpha-up": 62835, + "sort-down-alt": 62836, + "sort-down": 62837, + "sort-numeric-down-alt": 62838, + "sort-numeric-down": 62839, + "sort-numeric-up-alt": 62840, + "sort-numeric-up": 62841, + "sort-up-alt": 62842, + "sort-up": 62843, + "soundwave": 62844, + "speaker-fill": 62845, + "speaker": 62846, + "speedometer": 62847, + "speedometer2": 62848, + "spellcheck": 62849, + "square-fill": 62850, + "square-half": 62851, + "square": 62852, + "stack": 62853, + "star-fill": 62854, + "star-half": 62855, + "star": 62856, + "stars": 62857, + "stickies-fill": 62858, + "stickies": 62859, + "sticky-fill": 62860, + "sticky": 62861, + "stop-btn-fill": 62862, + "stop-btn": 62863, + "stop-circle-fill": 62864, + "stop-circle": 62865, + "stop-fill": 62866, + "stop": 62867, + "stoplights-fill": 62868, + "stoplights": 62869, + "stopwatch-fill": 62870, + "stopwatch": 62871, + "subtract": 62872, + "suit-club-fill": 62873, + "suit-club": 62874, + "suit-diamond-fill": 62875, + "suit-diamond": 62876, + "suit-heart-fill": 62877, + "suit-heart": 62878, + "suit-spade-fill": 62879, + "suit-spade": 62880, + "sun-fill": 62881, + "sun": 62882, + "sunglasses": 62883, + "sunrise-fill": 62884, + "sunrise": 62885, + "sunset-fill": 62886, + "sunset": 62887, + "symmetry-horizontal": 62888, + "symmetry-vertical": 62889, + "table": 62890, + "tablet-fill": 62891, + "tablet-landscape-fill": 62892, + "tablet-landscape": 62893, + "tablet": 62894, + "tag-fill": 62895, + "tag": 62896, + "tags-fill": 62897, + "tags": 62898, + "telegram": 62899, + "telephone-fill": 62900, + "telephone-forward-fill": 62901, + "telephone-forward": 62902, + "telephone-inbound-fill": 62903, + "telephone-inbound": 62904, + "telephone-minus-fill": 62905, + "telephone-minus": 62906, + "telephone-outbound-fill": 62907, + "telephone-outbound": 62908, + "telephone-plus-fill": 62909, + "telephone-plus": 62910, + "telephone-x-fill": 62911, + "telephone-x": 62912, + "telephone": 62913, + "terminal-fill": 62914, + "terminal": 62915, + "text-center": 62916, + "text-indent-left": 62917, + "text-indent-right": 62918, + "text-left": 62919, + "text-paragraph": 62920, + "text-right": 62921, + "textarea-resize": 62922, + "textarea-t": 62923, + "textarea": 62924, + "thermometer-half": 62925, + "thermometer-high": 62926, + "thermometer-low": 62927, + "thermometer-snow": 62928, + "thermometer-sun": 62929, + "thermometer": 62930, + "three-dots-vertical": 62931, + "three-dots": 62932, + "toggle-off": 62933, + "toggle-on": 62934, + "toggle2-off": 62935, + "toggle2-on": 62936, + "toggles": 62937, + "toggles2": 62938, + "tools": 62939, + "tornado": 62940, + "trash-fill": 62941, + "trash": 62942, + "trash2-fill": 62943, + "trash2": 62944, + "tree-fill": 62945, + "tree": 62946, + "triangle-fill": 62947, + "triangle-half": 62948, + "triangle": 62949, + "trophy-fill": 62950, + "trophy": 62951, + "tropical-storm": 62952, + "truck-flatbed": 62953, + "truck": 62954, + "tsunami": 62955, + "tv-fill": 62956, + "tv": 62957, + "twitch": 62958, + "twitter": 62959, + "type-bold": 62960, + "type-h1": 62961, + "type-h2": 62962, + "type-h3": 62963, + "type-italic": 62964, + "type-strikethrough": 62965, + "type-underline": 62966, + "type": 62967, + "ui-checks-grid": 62968, + "ui-checks": 62969, + "ui-radios-grid": 62970, + "ui-radios": 62971, + "umbrella-fill": 62972, + "umbrella": 62973, + "union": 62974, + "unlock-fill": 62975, + "unlock": 62976, + "upc-scan": 62977, + "upc": 62978, + "upload": 62979, + "vector-pen": 62980, + "view-list": 62981, + "view-stacked": 62982, + "vinyl-fill": 62983, + "vinyl": 62984, + "voicemail": 62985, + "volume-down-fill": 62986, + "volume-down": 62987, + "volume-mute-fill": 62988, + "volume-mute": 62989, + "volume-off-fill": 62990, + "volume-off": 62991, + "volume-up-fill": 62992, + "volume-up": 62993, + "vr": 62994, + "wallet-fill": 62995, + "wallet": 62996, + "wallet2": 62997, + "watch": 62998, + "water": 62999, + "whatsapp": 63000, + "wifi-1": 63001, + "wifi-2": 63002, + "wifi-off": 63003, + "wifi": 63004, + "wind": 63005, + "window-dock": 63006, + "window-sidebar": 63007, + "window": 63008, + "wrench": 63009, + "x-circle-fill": 63010, + "x-circle": 63011, + "x-diamond-fill": 63012, + "x-diamond": 63013, + "x-octagon-fill": 63014, + "x-octagon": 63015, + "x-square-fill": 63016, + "x-square": 63017, + "x": 63018, + "youtube": 63019, + "zoom-in": 63020, + "zoom-out": 63021, + "bank": 63022, + "bank2": 63023, + "bell-slash-fill": 63024, + "bell-slash": 63025, + "cash-coin": 63026, + "check-lg": 63027, + "coin": 63028, + "currency-bitcoin": 63029, + "currency-dollar": 63030, + "currency-euro": 63031, + "currency-exchange": 63032, + "currency-pound": 63033, + "currency-yen": 63034, + "dash-lg": 63035, + "exclamation-lg": 63036, + "file-earmark-pdf-fill": 63037, + "file-earmark-pdf": 63038, + "file-pdf-fill": 63039, + "file-pdf": 63040, + "gender-ambiguous": 63041, + "gender-female": 63042, + "gender-male": 63043, + "gender-trans": 63044, + "headset-vr": 63045, + "info-lg": 63046, + "mastodon": 63047, + "messenger": 63048, + "piggy-bank-fill": 63049, + "piggy-bank": 63050, + "pin-map-fill": 63051, + "pin-map": 63052, + "plus-lg": 63053, + "question-lg": 63054, + "recycle": 63055, + "reddit": 63056, + "safe-fill": 63057, + "safe2-fill": 63058, + "safe2": 63059, + "sd-card-fill": 63060, + "sd-card": 63061, + "skype": 63062, + "slash-lg": 63063, + "translate": 63064, + "x-lg": 63065, + "safe": 63066, + "apple": 63067, + "microsoft": 63069, + "windows": 63070, + "behance": 63068, + "dribbble": 63071, + "line": 63072, + "medium": 63073, + "paypal": 63074, + "pinterest": 63075, + "signal": 63076, + "snapchat": 63077, + "spotify": 63078, + "stack-overflow": 63079, + "strava": 63080, + "wordpress": 63081, + "vimeo": 63082, + "activity": 63083, + "easel2-fill": 63084, + "easel2": 63085, + "easel3-fill": 63086, + "easel3": 63087, + "fan": 63088, + "fingerprint": 63089, + "graph-down-arrow": 63090, + "graph-up-arrow": 63091, + "hypnotize": 63092, + "magic": 63093, + "person-rolodex": 63094, + "person-video": 63095, + "person-video2": 63096, + "person-video3": 63097, + "person-workspace": 63098, + "radioactive": 63099, + "webcam-fill": 63100, + "webcam": 63101, + "yin-yang": 63102, + "bandaid-fill": 63104, + "bandaid": 63105, + "bluetooth": 63106, + "body-text": 63107, + "boombox": 63108, + "boxes": 63109, + "dpad-fill": 63110, + "dpad": 63111, + "ear-fill": 63112, + "ear": 63113, + "envelope-check-fill": 63115, + "envelope-check": 63116, + "envelope-dash-fill": 63118, + "envelope-dash": 63119, + "envelope-exclamation-fill": 63121, + "envelope-exclamation": 63122, + "envelope-plus-fill": 63123, + "envelope-plus": 63124, + "envelope-slash-fill": 63126, + "envelope-slash": 63127, + "envelope-x-fill": 63129, + "envelope-x": 63130, + "explicit-fill": 63131, + "explicit": 63132, + "git": 63133, + "infinity": 63134, + "list-columns-reverse": 63135, + "list-columns": 63136, + "meta": 63137, + "nintendo-switch": 63140, + "pc-display-horizontal": 63141, + "pc-display": 63142, + "pc-horizontal": 63143, + "pc": 63144, + "playstation": 63145, + "plus-slash-minus": 63146, + "projector-fill": 63147, + "projector": 63148, + "qr-code-scan": 63149, + "qr-code": 63150, + "quora": 63151, + "quote": 63152, + "robot": 63153, + "send-check-fill": 63154, + "send-check": 63155, + "send-dash-fill": 63156, + "send-dash": 63157, + "send-exclamation-fill": 63159, + "send-exclamation": 63160, + "send-fill": 63161, + "send-plus-fill": 63162, + "send-plus": 63163, + "send-slash-fill": 63164, + "send-slash": 63165, + "send-x-fill": 63166, + "send-x": 63167, + "send": 63168, + "steam": 63169, + "terminal-dash": 63171, + "terminal-plus": 63172, + "terminal-split": 63173, + "ticket-detailed-fill": 63174, + "ticket-detailed": 63175, + "ticket-fill": 63176, + "ticket-perforated-fill": 63177, + "ticket-perforated": 63178, + "ticket": 63179, + "tiktok": 63180, + "window-dash": 63181, + "window-desktop": 63182, + "window-fullscreen": 63183, + "window-plus": 63184, + "window-split": 63185, + "window-stack": 63186, + "window-x": 63187, + "xbox": 63188, + "ethernet": 63189, + "hdmi-fill": 63190, + "hdmi": 63191, + "usb-c-fill": 63192, + "usb-c": 63193, + "usb-fill": 63194, + "usb-plug-fill": 63195, + "usb-plug": 63196, + "usb-symbol": 63197, + "usb": 63198, + "boombox-fill": 63199, + "displayport": 63201, + "gpu-card": 63202, + "memory": 63203, + "modem-fill": 63204, + "modem": 63205, + "motherboard-fill": 63206, + "motherboard": 63207, + "optical-audio-fill": 63208, + "optical-audio": 63209, + "pci-card": 63210, + "router-fill": 63211, + "router": 63212, + "thunderbolt-fill": 63215, + "thunderbolt": 63216, + "usb-drive-fill": 63217, + "usb-drive": 63218, + "usb-micro-fill": 63219, + "usb-micro": 63220, + "usb-mini-fill": 63221, + "usb-mini": 63222, + "cloud-haze2": 63223, + "device-hdd-fill": 63224, + "device-hdd": 63225, + "device-ssd-fill": 63226, + "device-ssd": 63227, + "displayport-fill": 63228, + "mortarboard-fill": 63229, + "mortarboard": 63230, + "terminal-x": 63231, + "arrow-through-heart-fill": 63232, + "arrow-through-heart": 63233, + "badge-sd-fill": 63234, + "badge-sd": 63235, + "bag-heart-fill": 63236, + "bag-heart": 63237, + "balloon-fill": 63238, + "balloon-heart-fill": 63239, + "balloon-heart": 63240, + "balloon": 63241, + "box2-fill": 63242, + "box2-heart-fill": 63243, + "box2-heart": 63244, + "box2": 63245, + "braces-asterisk": 63246, + "calendar-heart-fill": 63247, + "calendar-heart": 63248, + "calendar2-heart-fill": 63249, + "calendar2-heart": 63250, + "chat-heart-fill": 63251, + "chat-heart": 63252, + "chat-left-heart-fill": 63253, + "chat-left-heart": 63254, + "chat-right-heart-fill": 63255, + "chat-right-heart": 63256, + "chat-square-heart-fill": 63257, + "chat-square-heart": 63258, + "clipboard-check-fill": 63259, + "clipboard-data-fill": 63260, + "clipboard-fill": 63261, + "clipboard-heart-fill": 63262, + "clipboard-heart": 63263, + "clipboard-minus-fill": 63264, + "clipboard-plus-fill": 63265, + "clipboard-pulse": 63266, + "clipboard-x-fill": 63267, + "clipboard2-check-fill": 63268, + "clipboard2-check": 63269, + "clipboard2-data-fill": 63270, + "clipboard2-data": 63271, + "clipboard2-fill": 63272, + "clipboard2-heart-fill": 63273, + "clipboard2-heart": 63274, + "clipboard2-minus-fill": 63275, + "clipboard2-minus": 63276, + "clipboard2-plus-fill": 63277, + "clipboard2-plus": 63278, + "clipboard2-pulse-fill": 63279, + "clipboard2-pulse": 63280, + "clipboard2-x-fill": 63281, + "clipboard2-x": 63282, + "clipboard2": 63283, + "emoji-kiss-fill": 63284, + "emoji-kiss": 63285, + "envelope-heart-fill": 63286, + "envelope-heart": 63287, + "envelope-open-heart-fill": 63288, + "envelope-open-heart": 63289, + "envelope-paper-fill": 63290, + "envelope-paper-heart-fill": 63291, + "envelope-paper-heart": 63292, + "envelope-paper": 63293, + "filetype-aac": 63294, + "filetype-ai": 63295, + "filetype-bmp": 63296, + "filetype-cs": 63297, + "filetype-css": 63298, + "filetype-csv": 63299, + "filetype-doc": 63300, + "filetype-docx": 63301, + "filetype-exe": 63302, + "filetype-gif": 63303, + "filetype-heic": 63304, + "filetype-html": 63305, + "filetype-java": 63306, + "filetype-jpg": 63307, + "filetype-js": 63308, + "filetype-jsx": 63309, + "filetype-key": 63310, + "filetype-m4p": 63311, + "filetype-md": 63312, + "filetype-mdx": 63313, + "filetype-mov": 63314, + "filetype-mp3": 63315, + "filetype-mp4": 63316, + "filetype-otf": 63317, + "filetype-pdf": 63318, + "filetype-php": 63319, + "filetype-png": 63320, + "filetype-ppt": 63322, + "filetype-psd": 63323, + "filetype-py": 63324, + "filetype-raw": 63325, + "filetype-rb": 63326, + "filetype-sass": 63327, + "filetype-scss": 63328, + "filetype-sh": 63329, + "filetype-svg": 63330, + "filetype-tiff": 63331, + "filetype-tsx": 63332, + "filetype-ttf": 63333, + "filetype-txt": 63334, + "filetype-wav": 63335, + "filetype-woff": 63336, + "filetype-xls": 63338, + "filetype-xml": 63339, + "filetype-yml": 63340, + "heart-arrow": 63341, + "heart-pulse-fill": 63342, + "heart-pulse": 63343, + "heartbreak-fill": 63344, + "heartbreak": 63345, + "hearts": 63346, + "hospital-fill": 63347, + "hospital": 63348, + "house-heart-fill": 63349, + "house-heart": 63350, + "incognito": 63351, + "magnet-fill": 63352, + "magnet": 63353, + "person-heart": 63354, + "person-hearts": 63355, + "phone-flip": 63356, + "plugin": 63357, + "postage-fill": 63358, + "postage-heart-fill": 63359, + "postage-heart": 63360, + "postage": 63361, + "postcard-fill": 63362, + "postcard-heart-fill": 63363, + "postcard-heart": 63364, + "postcard": 63365, + "search-heart-fill": 63366, + "search-heart": 63367, + "sliders2-vertical": 63368, + "sliders2": 63369, + "trash3-fill": 63370, + "trash3": 63371, + "valentine": 63372, + "valentine2": 63373, + "wrench-adjustable-circle-fill": 63374, + "wrench-adjustable-circle": 63375, + "wrench-adjustable": 63376, + "filetype-json": 63377, + "filetype-pptx": 63378, + "filetype-xlsx": 63379, + "1-circle-fill": 63382, + "1-circle": 63383, + "1-square-fill": 63384, + "1-square": 63385, + "2-circle-fill": 63388, + "2-circle": 63389, + "2-square-fill": 63390, + "2-square": 63391, + "3-circle-fill": 63394, + "3-circle": 63395, + "3-square-fill": 63396, + "3-square": 63397, + "4-circle-fill": 63400, + "4-circle": 63401, + "4-square-fill": 63402, + "4-square": 63403, + "5-circle-fill": 63406, + "5-circle": 63407, + "5-square-fill": 63408, + "5-square": 63409, + "6-circle-fill": 63412, + "6-circle": 63413, + "6-square-fill": 63414, + "6-square": 63415, + "7-circle-fill": 63418, + "7-circle": 63419, + "7-square-fill": 63420, + "7-square": 63421, + "8-circle-fill": 63424, + "8-circle": 63425, + "8-square-fill": 63426, + "8-square": 63427, + "9-circle-fill": 63430, + "9-circle": 63431, + "9-square-fill": 63432, + "9-square": 63433, + "airplane-engines-fill": 63434, + "airplane-engines": 63435, + "airplane-fill": 63436, + "airplane": 63437, + "alexa": 63438, + "alipay": 63439, + "android": 63440, + "android2": 63441, + "box-fill": 63442, + "box-seam-fill": 63443, + "browser-chrome": 63444, + "browser-edge": 63445, + "browser-firefox": 63446, + "browser-safari": 63447, + "c-circle-fill": 63450, + "c-circle": 63451, + "c-square-fill": 63452, + "c-square": 63453, + "capsule-pill": 63454, + "capsule": 63455, + "car-front-fill": 63456, + "car-front": 63457, + "cassette-fill": 63458, + "cassette": 63459, + "cc-circle-fill": 63462, + "cc-circle": 63463, + "cc-square-fill": 63464, + "cc-square": 63465, + "cup-hot-fill": 63466, + "cup-hot": 63467, + "currency-rupee": 63468, + "dropbox": 63469, + "escape": 63470, + "fast-forward-btn-fill": 63471, + "fast-forward-btn": 63472, + "fast-forward-circle-fill": 63473, + "fast-forward-circle": 63474, + "fast-forward-fill": 63475, + "fast-forward": 63476, + "filetype-sql": 63477, + "fire": 63478, + "google-play": 63479, + "h-circle-fill": 63482, + "h-circle": 63483, + "h-square-fill": 63484, + "h-square": 63485, + "indent": 63486, + "lungs-fill": 63487, + "lungs": 63488, + "microsoft-teams": 63489, + "p-circle-fill": 63492, + "p-circle": 63493, + "p-square-fill": 63494, + "p-square": 63495, + "pass-fill": 63496, + "pass": 63497, + "prescription": 63498, + "prescription2": 63499, + "r-circle-fill": 63502, + "r-circle": 63503, + "r-square-fill": 63504, + "r-square": 63505, + "repeat-1": 63506, + "repeat": 63507, + "rewind-btn-fill": 63508, + "rewind-btn": 63509, + "rewind-circle-fill": 63510, + "rewind-circle": 63511, + "rewind-fill": 63512, + "rewind": 63513, + "train-freight-front-fill": 63514, + "train-freight-front": 63515, + "train-front-fill": 63516, + "train-front": 63517, + "train-lightrail-front-fill": 63518, + "train-lightrail-front": 63519, + "truck-front-fill": 63520, + "truck-front": 63521, + "ubuntu": 63522, + "unindent": 63523, + "unity": 63524, + "universal-access-circle": 63525, + "universal-access": 63526, + "virus": 63527, + "virus2": 63528, + "wechat": 63529, + "yelp": 63530, + "sign-stop-fill": 63531, + "sign-stop-lights-fill": 63532, + "sign-stop-lights": 63533, + "sign-stop": 63534, + "sign-turn-left-fill": 63535, + "sign-turn-left": 63536, + "sign-turn-right-fill": 63537, + "sign-turn-right": 63538, + "sign-turn-slight-left-fill": 63539, + "sign-turn-slight-left": 63540, + "sign-turn-slight-right-fill": 63541, + "sign-turn-slight-right": 63542, + "sign-yield-fill": 63543, + "sign-yield": 63544, + "ev-station-fill": 63545, + "ev-station": 63546, + "fuel-pump-diesel-fill": 63547, + "fuel-pump-diesel": 63548, + "fuel-pump-fill": 63549, + "fuel-pump": 63550, + "0-circle-fill": 63551, + "0-circle": 63552, + "0-square-fill": 63553, + "0-square": 63554, + "rocket-fill": 63555, + "rocket-takeoff-fill": 63556, + "rocket-takeoff": 63557, + "rocket": 63558, + "stripe": 63559, + "subscript": 63560, + "superscript": 63561, + "trello": 63562, + "envelope-at-fill": 63563, + "envelope-at": 63564, + "regex": 63565, + "text-wrap": 63566, + "sign-dead-end-fill": 63567, + "sign-dead-end": 63568, + "sign-do-not-enter-fill": 63569, + "sign-do-not-enter": 63570, + "sign-intersection-fill": 63571, + "sign-intersection-side-fill": 63572, + "sign-intersection-side": 63573, + "sign-intersection-t-fill": 63574, + "sign-intersection-t": 63575, + "sign-intersection-y-fill": 63576, + "sign-intersection-y": 63577, + "sign-intersection": 63578, + "sign-merge-left-fill": 63579, + "sign-merge-left": 63580, + "sign-merge-right-fill": 63581, + "sign-merge-right": 63582, + "sign-no-left-turn-fill": 63583, + "sign-no-left-turn": 63584, + "sign-no-parking-fill": 63585, + "sign-no-parking": 63586, + "sign-no-right-turn-fill": 63587, + "sign-no-right-turn": 63588, + "sign-railroad-fill": 63589, + "sign-railroad": 63590, + "building-add": 63591, + "building-check": 63592, + "building-dash": 63593, + "building-down": 63594, + "building-exclamation": 63595, + "building-fill-add": 63596, + "building-fill-check": 63597, + "building-fill-dash": 63598, + "building-fill-down": 63599, + "building-fill-exclamation": 63600, + "building-fill-gear": 63601, + "building-fill-lock": 63602, + "building-fill-slash": 63603, + "building-fill-up": 63604, + "building-fill-x": 63605, + "building-fill": 63606, + "building-gear": 63607, + "building-lock": 63608, + "building-slash": 63609, + "building-up": 63610, + "building-x": 63611, + "buildings-fill": 63612, + "buildings": 63613, + "bus-front-fill": 63614, + "bus-front": 63615, + "ev-front-fill": 63616, + "ev-front": 63617, + "globe-americas": 63618, + "globe-asia-australia": 63619, + "globe-central-south-asia": 63620, + "globe-europe-africa": 63621, + "house-add-fill": 63622, + "house-add": 63623, + "house-check-fill": 63624, + "house-check": 63625, + "house-dash-fill": 63626, + "house-dash": 63627, + "house-down-fill": 63628, + "house-down": 63629, + "house-exclamation-fill": 63630, + "house-exclamation": 63631, + "house-gear-fill": 63632, + "house-gear": 63633, + "house-lock-fill": 63634, + "house-lock": 63635, + "house-slash-fill": 63636, + "house-slash": 63637, + "house-up-fill": 63638, + "house-up": 63639, + "house-x-fill": 63640, + "house-x": 63641, + "person-add": 63642, + "person-down": 63643, + "person-exclamation": 63644, + "person-fill-add": 63645, + "person-fill-check": 63646, + "person-fill-dash": 63647, + "person-fill-down": 63648, + "person-fill-exclamation": 63649, + "person-fill-gear": 63650, + "person-fill-lock": 63651, + "person-fill-slash": 63652, + "person-fill-up": 63653, + "person-fill-x": 63654, + "person-gear": 63655, + "person-lock": 63656, + "person-slash": 63657, + "person-up": 63658, + "scooter": 63659, + "taxi-front-fill": 63660, + "taxi-front": 63661, + "amd": 63662, + "database-add": 63663, + "database-check": 63664, + "database-dash": 63665, + "database-down": 63666, + "database-exclamation": 63667, + "database-fill-add": 63668, + "database-fill-check": 63669, + "database-fill-dash": 63670, + "database-fill-down": 63671, + "database-fill-exclamation": 63672, + "database-fill-gear": 63673, + "database-fill-lock": 63674, + "database-fill-slash": 63675, + "database-fill-up": 63676, + "database-fill-x": 63677, + "database-fill": 63678, + "database-gear": 63679, + "database-lock": 63680, + "database-slash": 63681, + "database-up": 63682, + "database-x": 63683, + "database": 63684, + "houses-fill": 63685, + "houses": 63686, + "nvidia": 63687, + "person-vcard-fill": 63688, + "person-vcard": 63689, + "sina-weibo": 63690, + "tencent-qq": 63691, + "wikipedia": 63692, + "alphabet-uppercase": 62117, + "alphabet": 63114, + "amazon": 63117, + "arrows-collapse-vertical": 63120, + "arrows-expand-vertical": 63125, + "arrows-vertical": 63128, + "arrows": 63138, + "ban-fill": 63139, + "ban": 63158, + "bing": 63170, + "cake": 63200, + "cake2": 63213, + "cookie": 63214, + "copy": 63321, + "crosshair": 63337, + "crosshair2": 63380, + "emoji-astonished-fill": 63381, + "emoji-astonished": 63386, + "emoji-grimace-fill": 63387, + "emoji-grimace": 63392, + "emoji-grin-fill": 63393, + "emoji-grin": 63398, + "emoji-surprise-fill": 63399, + "emoji-surprise": 63404, + "emoji-tear-fill": 63405, + "emoji-tear": 63410, + "envelope-arrow-down-fill": 63411, + "envelope-arrow-down": 63416, + "envelope-arrow-up-fill": 63417, + "envelope-arrow-up": 63422, + "feather": 63423, + "feather2": 63428, + "floppy-fill": 63429, + "floppy": 63448, + "floppy2-fill": 63449, + "floppy2": 63460, + "gitlab": 63461, + "highlighter": 63480, + "marker-tip": 63490, + "nvme-fill": 63491, + "nvme": 63500, + "opencollective": 63501, + "pci-card-network": 63693, + "pci-card-sound": 63694, + "radar": 63695, + "send-arrow-down-fill": 63696, + "send-arrow-down": 63697, + "send-arrow-up-fill": 63698, + "send-arrow-up": 63699, + "sim-slash-fill": 63700, + "sim-slash": 63701, + "sourceforge": 63702, + "substack": 63703, + "threads-fill": 63704, + "threads": 63705, + "transparency": 63706, + "twitter-x": 63707, + "type-h4": 63708, + "type-h5": 63709, + "type-h6": 63710, + "backpack-fill": 63711, + "backpack": 63712, + "backpack2-fill": 63713, + "backpack2": 63714, + "backpack3-fill": 63715, + "backpack3": 63716, + "backpack4-fill": 63717, + "backpack4": 63718, + "brilliance": 63719, + "cake-fill": 63720, + "cake2-fill": 63721, + "duffle-fill": 63722, + "duffle": 63723, + "exposure": 63724, + "gender-neuter": 63725, + "highlights": 63726, + "luggage-fill": 63727, + "luggage": 63728, + "mailbox-flag": 63729, + "mailbox2-flag": 63730, + "noise-reduction": 63731, + "passport-fill": 63732, + "passport": 63733, + "person-arms-up": 63734, + "person-raised-hand": 63735, + "person-standing-dress": 63736, + "person-standing": 63737, + "person-walking": 63738, + "person-wheelchair": 63739, + "shadows": 63740, + "suitcase-fill": 63741, + "suitcase-lg-fill": 63742, + "suitcase-lg": 63743, + "suitcase": 63744, + "suitcase2-fill": 63745, + "suitcase2": 63746, + "vignette": 63747 +} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.min.css b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.min.css new file mode 100644 index 0000000..dadd6dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/) + * Copyright 2019-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */@font-face{font-display:block;font-family:bootstrap-icons;src:url("fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6") format("woff2"),url("fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6") format("woff")}.bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:"\f67f"}.bi-alarm-fill::before{content:"\f101"}.bi-alarm::before{content:"\f102"}.bi-align-bottom::before{content:"\f103"}.bi-align-center::before{content:"\f104"}.bi-align-end::before{content:"\f105"}.bi-align-middle::before{content:"\f106"}.bi-align-start::before{content:"\f107"}.bi-align-top::before{content:"\f108"}.bi-alt::before{content:"\f109"}.bi-app-indicator::before{content:"\f10a"}.bi-app::before{content:"\f10b"}.bi-archive-fill::before{content:"\f10c"}.bi-archive::before{content:"\f10d"}.bi-arrow-90deg-down::before{content:"\f10e"}.bi-arrow-90deg-left::before{content:"\f10f"}.bi-arrow-90deg-right::before{content:"\f110"}.bi-arrow-90deg-up::before{content:"\f111"}.bi-arrow-bar-down::before{content:"\f112"}.bi-arrow-bar-left::before{content:"\f113"}.bi-arrow-bar-right::before{content:"\f114"}.bi-arrow-bar-up::before{content:"\f115"}.bi-arrow-clockwise::before{content:"\f116"}.bi-arrow-counterclockwise::before{content:"\f117"}.bi-arrow-down-circle-fill::before{content:"\f118"}.bi-arrow-down-circle::before{content:"\f119"}.bi-arrow-down-left-circle-fill::before{content:"\f11a"}.bi-arrow-down-left-circle::before{content:"\f11b"}.bi-arrow-down-left-square-fill::before{content:"\f11c"}.bi-arrow-down-left-square::before{content:"\f11d"}.bi-arrow-down-left::before{content:"\f11e"}.bi-arrow-down-right-circle-fill::before{content:"\f11f"}.bi-arrow-down-right-circle::before{content:"\f120"}.bi-arrow-down-right-square-fill::before{content:"\f121"}.bi-arrow-down-right-square::before{content:"\f122"}.bi-arrow-down-right::before{content:"\f123"}.bi-arrow-down-short::before{content:"\f124"}.bi-arrow-down-square-fill::before{content:"\f125"}.bi-arrow-down-square::before{content:"\f126"}.bi-arrow-down-up::before{content:"\f127"}.bi-arrow-down::before{content:"\f128"}.bi-arrow-left-circle-fill::before{content:"\f129"}.bi-arrow-left-circle::before{content:"\f12a"}.bi-arrow-left-right::before{content:"\f12b"}.bi-arrow-left-short::before{content:"\f12c"}.bi-arrow-left-square-fill::before{content:"\f12d"}.bi-arrow-left-square::before{content:"\f12e"}.bi-arrow-left::before{content:"\f12f"}.bi-arrow-repeat::before{content:"\f130"}.bi-arrow-return-left::before{content:"\f131"}.bi-arrow-return-right::before{content:"\f132"}.bi-arrow-right-circle-fill::before{content:"\f133"}.bi-arrow-right-circle::before{content:"\f134"}.bi-arrow-right-short::before{content:"\f135"}.bi-arrow-right-square-fill::before{content:"\f136"}.bi-arrow-right-square::before{content:"\f137"}.bi-arrow-right::before{content:"\f138"}.bi-arrow-up-circle-fill::before{content:"\f139"}.bi-arrow-up-circle::before{content:"\f13a"}.bi-arrow-up-left-circle-fill::before{content:"\f13b"}.bi-arrow-up-left-circle::before{content:"\f13c"}.bi-arrow-up-left-square-fill::before{content:"\f13d"}.bi-arrow-up-left-square::before{content:"\f13e"}.bi-arrow-up-left::before{content:"\f13f"}.bi-arrow-up-right-circle-fill::before{content:"\f140"}.bi-arrow-up-right-circle::before{content:"\f141"}.bi-arrow-up-right-square-fill::before{content:"\f142"}.bi-arrow-up-right-square::before{content:"\f143"}.bi-arrow-up-right::before{content:"\f144"}.bi-arrow-up-short::before{content:"\f145"}.bi-arrow-up-square-fill::before{content:"\f146"}.bi-arrow-up-square::before{content:"\f147"}.bi-arrow-up::before{content:"\f148"}.bi-arrows-angle-contract::before{content:"\f149"}.bi-arrows-angle-expand::before{content:"\f14a"}.bi-arrows-collapse::before{content:"\f14b"}.bi-arrows-expand::before{content:"\f14c"}.bi-arrows-fullscreen::before{content:"\f14d"}.bi-arrows-move::before{content:"\f14e"}.bi-aspect-ratio-fill::before{content:"\f14f"}.bi-aspect-ratio::before{content:"\f150"}.bi-asterisk::before{content:"\f151"}.bi-at::before{content:"\f152"}.bi-award-fill::before{content:"\f153"}.bi-award::before{content:"\f154"}.bi-back::before{content:"\f155"}.bi-backspace-fill::before{content:"\f156"}.bi-backspace-reverse-fill::before{content:"\f157"}.bi-backspace-reverse::before{content:"\f158"}.bi-backspace::before{content:"\f159"}.bi-badge-3d-fill::before{content:"\f15a"}.bi-badge-3d::before{content:"\f15b"}.bi-badge-4k-fill::before{content:"\f15c"}.bi-badge-4k::before{content:"\f15d"}.bi-badge-8k-fill::before{content:"\f15e"}.bi-badge-8k::before{content:"\f15f"}.bi-badge-ad-fill::before{content:"\f160"}.bi-badge-ad::before{content:"\f161"}.bi-badge-ar-fill::before{content:"\f162"}.bi-badge-ar::before{content:"\f163"}.bi-badge-cc-fill::before{content:"\f164"}.bi-badge-cc::before{content:"\f165"}.bi-badge-hd-fill::before{content:"\f166"}.bi-badge-hd::before{content:"\f167"}.bi-badge-tm-fill::before{content:"\f168"}.bi-badge-tm::before{content:"\f169"}.bi-badge-vo-fill::before{content:"\f16a"}.bi-badge-vo::before{content:"\f16b"}.bi-badge-vr-fill::before{content:"\f16c"}.bi-badge-vr::before{content:"\f16d"}.bi-badge-wc-fill::before{content:"\f16e"}.bi-badge-wc::before{content:"\f16f"}.bi-bag-check-fill::before{content:"\f170"}.bi-bag-check::before{content:"\f171"}.bi-bag-dash-fill::before{content:"\f172"}.bi-bag-dash::before{content:"\f173"}.bi-bag-fill::before{content:"\f174"}.bi-bag-plus-fill::before{content:"\f175"}.bi-bag-plus::before{content:"\f176"}.bi-bag-x-fill::before{content:"\f177"}.bi-bag-x::before{content:"\f178"}.bi-bag::before{content:"\f179"}.bi-bar-chart-fill::before{content:"\f17a"}.bi-bar-chart-line-fill::before{content:"\f17b"}.bi-bar-chart-line::before{content:"\f17c"}.bi-bar-chart-steps::before{content:"\f17d"}.bi-bar-chart::before{content:"\f17e"}.bi-basket-fill::before{content:"\f17f"}.bi-basket::before{content:"\f180"}.bi-basket2-fill::before{content:"\f181"}.bi-basket2::before{content:"\f182"}.bi-basket3-fill::before{content:"\f183"}.bi-basket3::before{content:"\f184"}.bi-battery-charging::before{content:"\f185"}.bi-battery-full::before{content:"\f186"}.bi-battery-half::before{content:"\f187"}.bi-battery::before{content:"\f188"}.bi-bell-fill::before{content:"\f189"}.bi-bell::before{content:"\f18a"}.bi-bezier::before{content:"\f18b"}.bi-bezier2::before{content:"\f18c"}.bi-bicycle::before{content:"\f18d"}.bi-binoculars-fill::before{content:"\f18e"}.bi-binoculars::before{content:"\f18f"}.bi-blockquote-left::before{content:"\f190"}.bi-blockquote-right::before{content:"\f191"}.bi-book-fill::before{content:"\f192"}.bi-book-half::before{content:"\f193"}.bi-book::before{content:"\f194"}.bi-bookmark-check-fill::before{content:"\f195"}.bi-bookmark-check::before{content:"\f196"}.bi-bookmark-dash-fill::before{content:"\f197"}.bi-bookmark-dash::before{content:"\f198"}.bi-bookmark-fill::before{content:"\f199"}.bi-bookmark-heart-fill::before{content:"\f19a"}.bi-bookmark-heart::before{content:"\f19b"}.bi-bookmark-plus-fill::before{content:"\f19c"}.bi-bookmark-plus::before{content:"\f19d"}.bi-bookmark-star-fill::before{content:"\f19e"}.bi-bookmark-star::before{content:"\f19f"}.bi-bookmark-x-fill::before{content:"\f1a0"}.bi-bookmark-x::before{content:"\f1a1"}.bi-bookmark::before{content:"\f1a2"}.bi-bookmarks-fill::before{content:"\f1a3"}.bi-bookmarks::before{content:"\f1a4"}.bi-bookshelf::before{content:"\f1a5"}.bi-bootstrap-fill::before{content:"\f1a6"}.bi-bootstrap-reboot::before{content:"\f1a7"}.bi-bootstrap::before{content:"\f1a8"}.bi-border-all::before{content:"\f1a9"}.bi-border-bottom::before{content:"\f1aa"}.bi-border-center::before{content:"\f1ab"}.bi-border-inner::before{content:"\f1ac"}.bi-border-left::before{content:"\f1ad"}.bi-border-middle::before{content:"\f1ae"}.bi-border-outer::before{content:"\f1af"}.bi-border-right::before{content:"\f1b0"}.bi-border-style::before{content:"\f1b1"}.bi-border-top::before{content:"\f1b2"}.bi-border-width::before{content:"\f1b3"}.bi-border::before{content:"\f1b4"}.bi-bounding-box-circles::before{content:"\f1b5"}.bi-bounding-box::before{content:"\f1b6"}.bi-box-arrow-down-left::before{content:"\f1b7"}.bi-box-arrow-down-right::before{content:"\f1b8"}.bi-box-arrow-down::before{content:"\f1b9"}.bi-box-arrow-in-down-left::before{content:"\f1ba"}.bi-box-arrow-in-down-right::before{content:"\f1bb"}.bi-box-arrow-in-down::before{content:"\f1bc"}.bi-box-arrow-in-left::before{content:"\f1bd"}.bi-box-arrow-in-right::before{content:"\f1be"}.bi-box-arrow-in-up-left::before{content:"\f1bf"}.bi-box-arrow-in-up-right::before{content:"\f1c0"}.bi-box-arrow-in-up::before{content:"\f1c1"}.bi-box-arrow-left::before{content:"\f1c2"}.bi-box-arrow-right::before{content:"\f1c3"}.bi-box-arrow-up-left::before{content:"\f1c4"}.bi-box-arrow-up-right::before{content:"\f1c5"}.bi-box-arrow-up::before{content:"\f1c6"}.bi-box-seam::before{content:"\f1c7"}.bi-box::before{content:"\f1c8"}.bi-braces::before{content:"\f1c9"}.bi-bricks::before{content:"\f1ca"}.bi-briefcase-fill::before{content:"\f1cb"}.bi-briefcase::before{content:"\f1cc"}.bi-brightness-alt-high-fill::before{content:"\f1cd"}.bi-brightness-alt-high::before{content:"\f1ce"}.bi-brightness-alt-low-fill::before{content:"\f1cf"}.bi-brightness-alt-low::before{content:"\f1d0"}.bi-brightness-high-fill::before{content:"\f1d1"}.bi-brightness-high::before{content:"\f1d2"}.bi-brightness-low-fill::before{content:"\f1d3"}.bi-brightness-low::before{content:"\f1d4"}.bi-broadcast-pin::before{content:"\f1d5"}.bi-broadcast::before{content:"\f1d6"}.bi-brush-fill::before{content:"\f1d7"}.bi-brush::before{content:"\f1d8"}.bi-bucket-fill::before{content:"\f1d9"}.bi-bucket::before{content:"\f1da"}.bi-bug-fill::before{content:"\f1db"}.bi-bug::before{content:"\f1dc"}.bi-building::before{content:"\f1dd"}.bi-bullseye::before{content:"\f1de"}.bi-calculator-fill::before{content:"\f1df"}.bi-calculator::before{content:"\f1e0"}.bi-calendar-check-fill::before{content:"\f1e1"}.bi-calendar-check::before{content:"\f1e2"}.bi-calendar-date-fill::before{content:"\f1e3"}.bi-calendar-date::before{content:"\f1e4"}.bi-calendar-day-fill::before{content:"\f1e5"}.bi-calendar-day::before{content:"\f1e6"}.bi-calendar-event-fill::before{content:"\f1e7"}.bi-calendar-event::before{content:"\f1e8"}.bi-calendar-fill::before{content:"\f1e9"}.bi-calendar-minus-fill::before{content:"\f1ea"}.bi-calendar-minus::before{content:"\f1eb"}.bi-calendar-month-fill::before{content:"\f1ec"}.bi-calendar-month::before{content:"\f1ed"}.bi-calendar-plus-fill::before{content:"\f1ee"}.bi-calendar-plus::before{content:"\f1ef"}.bi-calendar-range-fill::before{content:"\f1f0"}.bi-calendar-range::before{content:"\f1f1"}.bi-calendar-week-fill::before{content:"\f1f2"}.bi-calendar-week::before{content:"\f1f3"}.bi-calendar-x-fill::before{content:"\f1f4"}.bi-calendar-x::before{content:"\f1f5"}.bi-calendar::before{content:"\f1f6"}.bi-calendar2-check-fill::before{content:"\f1f7"}.bi-calendar2-check::before{content:"\f1f8"}.bi-calendar2-date-fill::before{content:"\f1f9"}.bi-calendar2-date::before{content:"\f1fa"}.bi-calendar2-day-fill::before{content:"\f1fb"}.bi-calendar2-day::before{content:"\f1fc"}.bi-calendar2-event-fill::before{content:"\f1fd"}.bi-calendar2-event::before{content:"\f1fe"}.bi-calendar2-fill::before{content:"\f1ff"}.bi-calendar2-minus-fill::before{content:"\f200"}.bi-calendar2-minus::before{content:"\f201"}.bi-calendar2-month-fill::before{content:"\f202"}.bi-calendar2-month::before{content:"\f203"}.bi-calendar2-plus-fill::before{content:"\f204"}.bi-calendar2-plus::before{content:"\f205"}.bi-calendar2-range-fill::before{content:"\f206"}.bi-calendar2-range::before{content:"\f207"}.bi-calendar2-week-fill::before{content:"\f208"}.bi-calendar2-week::before{content:"\f209"}.bi-calendar2-x-fill::before{content:"\f20a"}.bi-calendar2-x::before{content:"\f20b"}.bi-calendar2::before{content:"\f20c"}.bi-calendar3-event-fill::before{content:"\f20d"}.bi-calendar3-event::before{content:"\f20e"}.bi-calendar3-fill::before{content:"\f20f"}.bi-calendar3-range-fill::before{content:"\f210"}.bi-calendar3-range::before{content:"\f211"}.bi-calendar3-week-fill::before{content:"\f212"}.bi-calendar3-week::before{content:"\f213"}.bi-calendar3::before{content:"\f214"}.bi-calendar4-event::before{content:"\f215"}.bi-calendar4-range::before{content:"\f216"}.bi-calendar4-week::before{content:"\f217"}.bi-calendar4::before{content:"\f218"}.bi-camera-fill::before{content:"\f219"}.bi-camera-reels-fill::before{content:"\f21a"}.bi-camera-reels::before{content:"\f21b"}.bi-camera-video-fill::before{content:"\f21c"}.bi-camera-video-off-fill::before{content:"\f21d"}.bi-camera-video-off::before{content:"\f21e"}.bi-camera-video::before{content:"\f21f"}.bi-camera::before{content:"\f220"}.bi-camera2::before{content:"\f221"}.bi-capslock-fill::before{content:"\f222"}.bi-capslock::before{content:"\f223"}.bi-card-checklist::before{content:"\f224"}.bi-card-heading::before{content:"\f225"}.bi-card-image::before{content:"\f226"}.bi-card-list::before{content:"\f227"}.bi-card-text::before{content:"\f228"}.bi-caret-down-fill::before{content:"\f229"}.bi-caret-down-square-fill::before{content:"\f22a"}.bi-caret-down-square::before{content:"\f22b"}.bi-caret-down::before{content:"\f22c"}.bi-caret-left-fill::before{content:"\f22d"}.bi-caret-left-square-fill::before{content:"\f22e"}.bi-caret-left-square::before{content:"\f22f"}.bi-caret-left::before{content:"\f230"}.bi-caret-right-fill::before{content:"\f231"}.bi-caret-right-square-fill::before{content:"\f232"}.bi-caret-right-square::before{content:"\f233"}.bi-caret-right::before{content:"\f234"}.bi-caret-up-fill::before{content:"\f235"}.bi-caret-up-square-fill::before{content:"\f236"}.bi-caret-up-square::before{content:"\f237"}.bi-caret-up::before{content:"\f238"}.bi-cart-check-fill::before{content:"\f239"}.bi-cart-check::before{content:"\f23a"}.bi-cart-dash-fill::before{content:"\f23b"}.bi-cart-dash::before{content:"\f23c"}.bi-cart-fill::before{content:"\f23d"}.bi-cart-plus-fill::before{content:"\f23e"}.bi-cart-plus::before{content:"\f23f"}.bi-cart-x-fill::before{content:"\f240"}.bi-cart-x::before{content:"\f241"}.bi-cart::before{content:"\f242"}.bi-cart2::before{content:"\f243"}.bi-cart3::before{content:"\f244"}.bi-cart4::before{content:"\f245"}.bi-cash-stack::before{content:"\f246"}.bi-cash::before{content:"\f247"}.bi-cast::before{content:"\f248"}.bi-chat-dots-fill::before{content:"\f249"}.bi-chat-dots::before{content:"\f24a"}.bi-chat-fill::before{content:"\f24b"}.bi-chat-left-dots-fill::before{content:"\f24c"}.bi-chat-left-dots::before{content:"\f24d"}.bi-chat-left-fill::before{content:"\f24e"}.bi-chat-left-quote-fill::before{content:"\f24f"}.bi-chat-left-quote::before{content:"\f250"}.bi-chat-left-text-fill::before{content:"\f251"}.bi-chat-left-text::before{content:"\f252"}.bi-chat-left::before{content:"\f253"}.bi-chat-quote-fill::before{content:"\f254"}.bi-chat-quote::before{content:"\f255"}.bi-chat-right-dots-fill::before{content:"\f256"}.bi-chat-right-dots::before{content:"\f257"}.bi-chat-right-fill::before{content:"\f258"}.bi-chat-right-quote-fill::before{content:"\f259"}.bi-chat-right-quote::before{content:"\f25a"}.bi-chat-right-text-fill::before{content:"\f25b"}.bi-chat-right-text::before{content:"\f25c"}.bi-chat-right::before{content:"\f25d"}.bi-chat-square-dots-fill::before{content:"\f25e"}.bi-chat-square-dots::before{content:"\f25f"}.bi-chat-square-fill::before{content:"\f260"}.bi-chat-square-quote-fill::before{content:"\f261"}.bi-chat-square-quote::before{content:"\f262"}.bi-chat-square-text-fill::before{content:"\f263"}.bi-chat-square-text::before{content:"\f264"}.bi-chat-square::before{content:"\f265"}.bi-chat-text-fill::before{content:"\f266"}.bi-chat-text::before{content:"\f267"}.bi-chat::before{content:"\f268"}.bi-check-all::before{content:"\f269"}.bi-check-circle-fill::before{content:"\f26a"}.bi-check-circle::before{content:"\f26b"}.bi-check-square-fill::before{content:"\f26c"}.bi-check-square::before{content:"\f26d"}.bi-check::before{content:"\f26e"}.bi-check2-all::before{content:"\f26f"}.bi-check2-circle::before{content:"\f270"}.bi-check2-square::before{content:"\f271"}.bi-check2::before{content:"\f272"}.bi-chevron-bar-contract::before{content:"\f273"}.bi-chevron-bar-down::before{content:"\f274"}.bi-chevron-bar-expand::before{content:"\f275"}.bi-chevron-bar-left::before{content:"\f276"}.bi-chevron-bar-right::before{content:"\f277"}.bi-chevron-bar-up::before{content:"\f278"}.bi-chevron-compact-down::before{content:"\f279"}.bi-chevron-compact-left::before{content:"\f27a"}.bi-chevron-compact-right::before{content:"\f27b"}.bi-chevron-compact-up::before{content:"\f27c"}.bi-chevron-contract::before{content:"\f27d"}.bi-chevron-double-down::before{content:"\f27e"}.bi-chevron-double-left::before{content:"\f27f"}.bi-chevron-double-right::before{content:"\f280"}.bi-chevron-double-up::before{content:"\f281"}.bi-chevron-down::before{content:"\f282"}.bi-chevron-expand::before{content:"\f283"}.bi-chevron-left::before{content:"\f284"}.bi-chevron-right::before{content:"\f285"}.bi-chevron-up::before{content:"\f286"}.bi-circle-fill::before{content:"\f287"}.bi-circle-half::before{content:"\f288"}.bi-circle-square::before{content:"\f289"}.bi-circle::before{content:"\f28a"}.bi-clipboard-check::before{content:"\f28b"}.bi-clipboard-data::before{content:"\f28c"}.bi-clipboard-minus::before{content:"\f28d"}.bi-clipboard-plus::before{content:"\f28e"}.bi-clipboard-x::before{content:"\f28f"}.bi-clipboard::before{content:"\f290"}.bi-clock-fill::before{content:"\f291"}.bi-clock-history::before{content:"\f292"}.bi-clock::before{content:"\f293"}.bi-cloud-arrow-down-fill::before{content:"\f294"}.bi-cloud-arrow-down::before{content:"\f295"}.bi-cloud-arrow-up-fill::before{content:"\f296"}.bi-cloud-arrow-up::before{content:"\f297"}.bi-cloud-check-fill::before{content:"\f298"}.bi-cloud-check::before{content:"\f299"}.bi-cloud-download-fill::before{content:"\f29a"}.bi-cloud-download::before{content:"\f29b"}.bi-cloud-drizzle-fill::before{content:"\f29c"}.bi-cloud-drizzle::before{content:"\f29d"}.bi-cloud-fill::before{content:"\f29e"}.bi-cloud-fog-fill::before{content:"\f29f"}.bi-cloud-fog::before{content:"\f2a0"}.bi-cloud-fog2-fill::before{content:"\f2a1"}.bi-cloud-fog2::before{content:"\f2a2"}.bi-cloud-hail-fill::before{content:"\f2a3"}.bi-cloud-hail::before{content:"\f2a4"}.bi-cloud-haze-fill::before{content:"\f2a6"}.bi-cloud-haze::before{content:"\f2a7"}.bi-cloud-haze2-fill::before{content:"\f2a8"}.bi-cloud-lightning-fill::before{content:"\f2a9"}.bi-cloud-lightning-rain-fill::before{content:"\f2aa"}.bi-cloud-lightning-rain::before{content:"\f2ab"}.bi-cloud-lightning::before{content:"\f2ac"}.bi-cloud-minus-fill::before{content:"\f2ad"}.bi-cloud-minus::before{content:"\f2ae"}.bi-cloud-moon-fill::before{content:"\f2af"}.bi-cloud-moon::before{content:"\f2b0"}.bi-cloud-plus-fill::before{content:"\f2b1"}.bi-cloud-plus::before{content:"\f2b2"}.bi-cloud-rain-fill::before{content:"\f2b3"}.bi-cloud-rain-heavy-fill::before{content:"\f2b4"}.bi-cloud-rain-heavy::before{content:"\f2b5"}.bi-cloud-rain::before{content:"\f2b6"}.bi-cloud-slash-fill::before{content:"\f2b7"}.bi-cloud-slash::before{content:"\f2b8"}.bi-cloud-sleet-fill::before{content:"\f2b9"}.bi-cloud-sleet::before{content:"\f2ba"}.bi-cloud-snow-fill::before{content:"\f2bb"}.bi-cloud-snow::before{content:"\f2bc"}.bi-cloud-sun-fill::before{content:"\f2bd"}.bi-cloud-sun::before{content:"\f2be"}.bi-cloud-upload-fill::before{content:"\f2bf"}.bi-cloud-upload::before{content:"\f2c0"}.bi-cloud::before{content:"\f2c1"}.bi-clouds-fill::before{content:"\f2c2"}.bi-clouds::before{content:"\f2c3"}.bi-cloudy-fill::before{content:"\f2c4"}.bi-cloudy::before{content:"\f2c5"}.bi-code-slash::before{content:"\f2c6"}.bi-code-square::before{content:"\f2c7"}.bi-code::before{content:"\f2c8"}.bi-collection-fill::before{content:"\f2c9"}.bi-collection-play-fill::before{content:"\f2ca"}.bi-collection-play::before{content:"\f2cb"}.bi-collection::before{content:"\f2cc"}.bi-columns-gap::before{content:"\f2cd"}.bi-columns::before{content:"\f2ce"}.bi-command::before{content:"\f2cf"}.bi-compass-fill::before{content:"\f2d0"}.bi-compass::before{content:"\f2d1"}.bi-cone-striped::before{content:"\f2d2"}.bi-cone::before{content:"\f2d3"}.bi-controller::before{content:"\f2d4"}.bi-cpu-fill::before{content:"\f2d5"}.bi-cpu::before{content:"\f2d6"}.bi-credit-card-2-back-fill::before{content:"\f2d7"}.bi-credit-card-2-back::before{content:"\f2d8"}.bi-credit-card-2-front-fill::before{content:"\f2d9"}.bi-credit-card-2-front::before{content:"\f2da"}.bi-credit-card-fill::before{content:"\f2db"}.bi-credit-card::before{content:"\f2dc"}.bi-crop::before{content:"\f2dd"}.bi-cup-fill::before{content:"\f2de"}.bi-cup-straw::before{content:"\f2df"}.bi-cup::before{content:"\f2e0"}.bi-cursor-fill::before{content:"\f2e1"}.bi-cursor-text::before{content:"\f2e2"}.bi-cursor::before{content:"\f2e3"}.bi-dash-circle-dotted::before{content:"\f2e4"}.bi-dash-circle-fill::before{content:"\f2e5"}.bi-dash-circle::before{content:"\f2e6"}.bi-dash-square-dotted::before{content:"\f2e7"}.bi-dash-square-fill::before{content:"\f2e8"}.bi-dash-square::before{content:"\f2e9"}.bi-dash::before{content:"\f2ea"}.bi-diagram-2-fill::before{content:"\f2eb"}.bi-diagram-2::before{content:"\f2ec"}.bi-diagram-3-fill::before{content:"\f2ed"}.bi-diagram-3::before{content:"\f2ee"}.bi-diamond-fill::before{content:"\f2ef"}.bi-diamond-half::before{content:"\f2f0"}.bi-diamond::before{content:"\f2f1"}.bi-dice-1-fill::before{content:"\f2f2"}.bi-dice-1::before{content:"\f2f3"}.bi-dice-2-fill::before{content:"\f2f4"}.bi-dice-2::before{content:"\f2f5"}.bi-dice-3-fill::before{content:"\f2f6"}.bi-dice-3::before{content:"\f2f7"}.bi-dice-4-fill::before{content:"\f2f8"}.bi-dice-4::before{content:"\f2f9"}.bi-dice-5-fill::before{content:"\f2fa"}.bi-dice-5::before{content:"\f2fb"}.bi-dice-6-fill::before{content:"\f2fc"}.bi-dice-6::before{content:"\f2fd"}.bi-disc-fill::before{content:"\f2fe"}.bi-disc::before{content:"\f2ff"}.bi-discord::before{content:"\f300"}.bi-display-fill::before{content:"\f301"}.bi-display::before{content:"\f302"}.bi-distribute-horizontal::before{content:"\f303"}.bi-distribute-vertical::before{content:"\f304"}.bi-door-closed-fill::before{content:"\f305"}.bi-door-closed::before{content:"\f306"}.bi-door-open-fill::before{content:"\f307"}.bi-door-open::before{content:"\f308"}.bi-dot::before{content:"\f309"}.bi-download::before{content:"\f30a"}.bi-droplet-fill::before{content:"\f30b"}.bi-droplet-half::before{content:"\f30c"}.bi-droplet::before{content:"\f30d"}.bi-earbuds::before{content:"\f30e"}.bi-easel-fill::before{content:"\f30f"}.bi-easel::before{content:"\f310"}.bi-egg-fill::before{content:"\f311"}.bi-egg-fried::before{content:"\f312"}.bi-egg::before{content:"\f313"}.bi-eject-fill::before{content:"\f314"}.bi-eject::before{content:"\f315"}.bi-emoji-angry-fill::before{content:"\f316"}.bi-emoji-angry::before{content:"\f317"}.bi-emoji-dizzy-fill::before{content:"\f318"}.bi-emoji-dizzy::before{content:"\f319"}.bi-emoji-expressionless-fill::before{content:"\f31a"}.bi-emoji-expressionless::before{content:"\f31b"}.bi-emoji-frown-fill::before{content:"\f31c"}.bi-emoji-frown::before{content:"\f31d"}.bi-emoji-heart-eyes-fill::before{content:"\f31e"}.bi-emoji-heart-eyes::before{content:"\f31f"}.bi-emoji-laughing-fill::before{content:"\f320"}.bi-emoji-laughing::before{content:"\f321"}.bi-emoji-neutral-fill::before{content:"\f322"}.bi-emoji-neutral::before{content:"\f323"}.bi-emoji-smile-fill::before{content:"\f324"}.bi-emoji-smile-upside-down-fill::before{content:"\f325"}.bi-emoji-smile-upside-down::before{content:"\f326"}.bi-emoji-smile::before{content:"\f327"}.bi-emoji-sunglasses-fill::before{content:"\f328"}.bi-emoji-sunglasses::before{content:"\f329"}.bi-emoji-wink-fill::before{content:"\f32a"}.bi-emoji-wink::before{content:"\f32b"}.bi-envelope-fill::before{content:"\f32c"}.bi-envelope-open-fill::before{content:"\f32d"}.bi-envelope-open::before{content:"\f32e"}.bi-envelope::before{content:"\f32f"}.bi-eraser-fill::before{content:"\f330"}.bi-eraser::before{content:"\f331"}.bi-exclamation-circle-fill::before{content:"\f332"}.bi-exclamation-circle::before{content:"\f333"}.bi-exclamation-diamond-fill::before{content:"\f334"}.bi-exclamation-diamond::before{content:"\f335"}.bi-exclamation-octagon-fill::before{content:"\f336"}.bi-exclamation-octagon::before{content:"\f337"}.bi-exclamation-square-fill::before{content:"\f338"}.bi-exclamation-square::before{content:"\f339"}.bi-exclamation-triangle-fill::before{content:"\f33a"}.bi-exclamation-triangle::before{content:"\f33b"}.bi-exclamation::before{content:"\f33c"}.bi-exclude::before{content:"\f33d"}.bi-eye-fill::before{content:"\f33e"}.bi-eye-slash-fill::before{content:"\f33f"}.bi-eye-slash::before{content:"\f340"}.bi-eye::before{content:"\f341"}.bi-eyedropper::before{content:"\f342"}.bi-eyeglasses::before{content:"\f343"}.bi-facebook::before{content:"\f344"}.bi-file-arrow-down-fill::before{content:"\f345"}.bi-file-arrow-down::before{content:"\f346"}.bi-file-arrow-up-fill::before{content:"\f347"}.bi-file-arrow-up::before{content:"\f348"}.bi-file-bar-graph-fill::before{content:"\f349"}.bi-file-bar-graph::before{content:"\f34a"}.bi-file-binary-fill::before{content:"\f34b"}.bi-file-binary::before{content:"\f34c"}.bi-file-break-fill::before{content:"\f34d"}.bi-file-break::before{content:"\f34e"}.bi-file-check-fill::before{content:"\f34f"}.bi-file-check::before{content:"\f350"}.bi-file-code-fill::before{content:"\f351"}.bi-file-code::before{content:"\f352"}.bi-file-diff-fill::before{content:"\f353"}.bi-file-diff::before{content:"\f354"}.bi-file-earmark-arrow-down-fill::before{content:"\f355"}.bi-file-earmark-arrow-down::before{content:"\f356"}.bi-file-earmark-arrow-up-fill::before{content:"\f357"}.bi-file-earmark-arrow-up::before{content:"\f358"}.bi-file-earmark-bar-graph-fill::before{content:"\f359"}.bi-file-earmark-bar-graph::before{content:"\f35a"}.bi-file-earmark-binary-fill::before{content:"\f35b"}.bi-file-earmark-binary::before{content:"\f35c"}.bi-file-earmark-break-fill::before{content:"\f35d"}.bi-file-earmark-break::before{content:"\f35e"}.bi-file-earmark-check-fill::before{content:"\f35f"}.bi-file-earmark-check::before{content:"\f360"}.bi-file-earmark-code-fill::before{content:"\f361"}.bi-file-earmark-code::before{content:"\f362"}.bi-file-earmark-diff-fill::before{content:"\f363"}.bi-file-earmark-diff::before{content:"\f364"}.bi-file-earmark-easel-fill::before{content:"\f365"}.bi-file-earmark-easel::before{content:"\f366"}.bi-file-earmark-excel-fill::before{content:"\f367"}.bi-file-earmark-excel::before{content:"\f368"}.bi-file-earmark-fill::before{content:"\f369"}.bi-file-earmark-font-fill::before{content:"\f36a"}.bi-file-earmark-font::before{content:"\f36b"}.bi-file-earmark-image-fill::before{content:"\f36c"}.bi-file-earmark-image::before{content:"\f36d"}.bi-file-earmark-lock-fill::before{content:"\f36e"}.bi-file-earmark-lock::before{content:"\f36f"}.bi-file-earmark-lock2-fill::before{content:"\f370"}.bi-file-earmark-lock2::before{content:"\f371"}.bi-file-earmark-medical-fill::before{content:"\f372"}.bi-file-earmark-medical::before{content:"\f373"}.bi-file-earmark-minus-fill::before{content:"\f374"}.bi-file-earmark-minus::before{content:"\f375"}.bi-file-earmark-music-fill::before{content:"\f376"}.bi-file-earmark-music::before{content:"\f377"}.bi-file-earmark-person-fill::before{content:"\f378"}.bi-file-earmark-person::before{content:"\f379"}.bi-file-earmark-play-fill::before{content:"\f37a"}.bi-file-earmark-play::before{content:"\f37b"}.bi-file-earmark-plus-fill::before{content:"\f37c"}.bi-file-earmark-plus::before{content:"\f37d"}.bi-file-earmark-post-fill::before{content:"\f37e"}.bi-file-earmark-post::before{content:"\f37f"}.bi-file-earmark-ppt-fill::before{content:"\f380"}.bi-file-earmark-ppt::before{content:"\f381"}.bi-file-earmark-richtext-fill::before{content:"\f382"}.bi-file-earmark-richtext::before{content:"\f383"}.bi-file-earmark-ruled-fill::before{content:"\f384"}.bi-file-earmark-ruled::before{content:"\f385"}.bi-file-earmark-slides-fill::before{content:"\f386"}.bi-file-earmark-slides::before{content:"\f387"}.bi-file-earmark-spreadsheet-fill::before{content:"\f388"}.bi-file-earmark-spreadsheet::before{content:"\f389"}.bi-file-earmark-text-fill::before{content:"\f38a"}.bi-file-earmark-text::before{content:"\f38b"}.bi-file-earmark-word-fill::before{content:"\f38c"}.bi-file-earmark-word::before{content:"\f38d"}.bi-file-earmark-x-fill::before{content:"\f38e"}.bi-file-earmark-x::before{content:"\f38f"}.bi-file-earmark-zip-fill::before{content:"\f390"}.bi-file-earmark-zip::before{content:"\f391"}.bi-file-earmark::before{content:"\f392"}.bi-file-easel-fill::before{content:"\f393"}.bi-file-easel::before{content:"\f394"}.bi-file-excel-fill::before{content:"\f395"}.bi-file-excel::before{content:"\f396"}.bi-file-fill::before{content:"\f397"}.bi-file-font-fill::before{content:"\f398"}.bi-file-font::before{content:"\f399"}.bi-file-image-fill::before{content:"\f39a"}.bi-file-image::before{content:"\f39b"}.bi-file-lock-fill::before{content:"\f39c"}.bi-file-lock::before{content:"\f39d"}.bi-file-lock2-fill::before{content:"\f39e"}.bi-file-lock2::before{content:"\f39f"}.bi-file-medical-fill::before{content:"\f3a0"}.bi-file-medical::before{content:"\f3a1"}.bi-file-minus-fill::before{content:"\f3a2"}.bi-file-minus::before{content:"\f3a3"}.bi-file-music-fill::before{content:"\f3a4"}.bi-file-music::before{content:"\f3a5"}.bi-file-person-fill::before{content:"\f3a6"}.bi-file-person::before{content:"\f3a7"}.bi-file-play-fill::before{content:"\f3a8"}.bi-file-play::before{content:"\f3a9"}.bi-file-plus-fill::before{content:"\f3aa"}.bi-file-plus::before{content:"\f3ab"}.bi-file-post-fill::before{content:"\f3ac"}.bi-file-post::before{content:"\f3ad"}.bi-file-ppt-fill::before{content:"\f3ae"}.bi-file-ppt::before{content:"\f3af"}.bi-file-richtext-fill::before{content:"\f3b0"}.bi-file-richtext::before{content:"\f3b1"}.bi-file-ruled-fill::before{content:"\f3b2"}.bi-file-ruled::before{content:"\f3b3"}.bi-file-slides-fill::before{content:"\f3b4"}.bi-file-slides::before{content:"\f3b5"}.bi-file-spreadsheet-fill::before{content:"\f3b6"}.bi-file-spreadsheet::before{content:"\f3b7"}.bi-file-text-fill::before{content:"\f3b8"}.bi-file-text::before{content:"\f3b9"}.bi-file-word-fill::before{content:"\f3ba"}.bi-file-word::before{content:"\f3bb"}.bi-file-x-fill::before{content:"\f3bc"}.bi-file-x::before{content:"\f3bd"}.bi-file-zip-fill::before{content:"\f3be"}.bi-file-zip::before{content:"\f3bf"}.bi-file::before{content:"\f3c0"}.bi-files-alt::before{content:"\f3c1"}.bi-files::before{content:"\f3c2"}.bi-film::before{content:"\f3c3"}.bi-filter-circle-fill::before{content:"\f3c4"}.bi-filter-circle::before{content:"\f3c5"}.bi-filter-left::before{content:"\f3c6"}.bi-filter-right::before{content:"\f3c7"}.bi-filter-square-fill::before{content:"\f3c8"}.bi-filter-square::before{content:"\f3c9"}.bi-filter::before{content:"\f3ca"}.bi-flag-fill::before{content:"\f3cb"}.bi-flag::before{content:"\f3cc"}.bi-flower1::before{content:"\f3cd"}.bi-flower2::before{content:"\f3ce"}.bi-flower3::before{content:"\f3cf"}.bi-folder-check::before{content:"\f3d0"}.bi-folder-fill::before{content:"\f3d1"}.bi-folder-minus::before{content:"\f3d2"}.bi-folder-plus::before{content:"\f3d3"}.bi-folder-symlink-fill::before{content:"\f3d4"}.bi-folder-symlink::before{content:"\f3d5"}.bi-folder-x::before{content:"\f3d6"}.bi-folder::before{content:"\f3d7"}.bi-folder2-open::before{content:"\f3d8"}.bi-folder2::before{content:"\f3d9"}.bi-fonts::before{content:"\f3da"}.bi-forward-fill::before{content:"\f3db"}.bi-forward::before{content:"\f3dc"}.bi-front::before{content:"\f3dd"}.bi-fullscreen-exit::before{content:"\f3de"}.bi-fullscreen::before{content:"\f3df"}.bi-funnel-fill::before{content:"\f3e0"}.bi-funnel::before{content:"\f3e1"}.bi-gear-fill::before{content:"\f3e2"}.bi-gear-wide-connected::before{content:"\f3e3"}.bi-gear-wide::before{content:"\f3e4"}.bi-gear::before{content:"\f3e5"}.bi-gem::before{content:"\f3e6"}.bi-geo-alt-fill::before{content:"\f3e7"}.bi-geo-alt::before{content:"\f3e8"}.bi-geo-fill::before{content:"\f3e9"}.bi-geo::before{content:"\f3ea"}.bi-gift-fill::before{content:"\f3eb"}.bi-gift::before{content:"\f3ec"}.bi-github::before{content:"\f3ed"}.bi-globe::before{content:"\f3ee"}.bi-globe2::before{content:"\f3ef"}.bi-google::before{content:"\f3f0"}.bi-graph-down::before{content:"\f3f1"}.bi-graph-up::before{content:"\f3f2"}.bi-grid-1x2-fill::before{content:"\f3f3"}.bi-grid-1x2::before{content:"\f3f4"}.bi-grid-3x2-gap-fill::before{content:"\f3f5"}.bi-grid-3x2-gap::before{content:"\f3f6"}.bi-grid-3x2::before{content:"\f3f7"}.bi-grid-3x3-gap-fill::before{content:"\f3f8"}.bi-grid-3x3-gap::before{content:"\f3f9"}.bi-grid-3x3::before{content:"\f3fa"}.bi-grid-fill::before{content:"\f3fb"}.bi-grid::before{content:"\f3fc"}.bi-grip-horizontal::before{content:"\f3fd"}.bi-grip-vertical::before{content:"\f3fe"}.bi-hammer::before{content:"\f3ff"}.bi-hand-index-fill::before{content:"\f400"}.bi-hand-index-thumb-fill::before{content:"\f401"}.bi-hand-index-thumb::before{content:"\f402"}.bi-hand-index::before{content:"\f403"}.bi-hand-thumbs-down-fill::before{content:"\f404"}.bi-hand-thumbs-down::before{content:"\f405"}.bi-hand-thumbs-up-fill::before{content:"\f406"}.bi-hand-thumbs-up::before{content:"\f407"}.bi-handbag-fill::before{content:"\f408"}.bi-handbag::before{content:"\f409"}.bi-hash::before{content:"\f40a"}.bi-hdd-fill::before{content:"\f40b"}.bi-hdd-network-fill::before{content:"\f40c"}.bi-hdd-network::before{content:"\f40d"}.bi-hdd-rack-fill::before{content:"\f40e"}.bi-hdd-rack::before{content:"\f40f"}.bi-hdd-stack-fill::before{content:"\f410"}.bi-hdd-stack::before{content:"\f411"}.bi-hdd::before{content:"\f412"}.bi-headphones::before{content:"\f413"}.bi-headset::before{content:"\f414"}.bi-heart-fill::before{content:"\f415"}.bi-heart-half::before{content:"\f416"}.bi-heart::before{content:"\f417"}.bi-heptagon-fill::before{content:"\f418"}.bi-heptagon-half::before{content:"\f419"}.bi-heptagon::before{content:"\f41a"}.bi-hexagon-fill::before{content:"\f41b"}.bi-hexagon-half::before{content:"\f41c"}.bi-hexagon::before{content:"\f41d"}.bi-hourglass-bottom::before{content:"\f41e"}.bi-hourglass-split::before{content:"\f41f"}.bi-hourglass-top::before{content:"\f420"}.bi-hourglass::before{content:"\f421"}.bi-house-door-fill::before{content:"\f422"}.bi-house-door::before{content:"\f423"}.bi-house-fill::before{content:"\f424"}.bi-house::before{content:"\f425"}.bi-hr::before{content:"\f426"}.bi-hurricane::before{content:"\f427"}.bi-image-alt::before{content:"\f428"}.bi-image-fill::before{content:"\f429"}.bi-image::before{content:"\f42a"}.bi-images::before{content:"\f42b"}.bi-inbox-fill::before{content:"\f42c"}.bi-inbox::before{content:"\f42d"}.bi-inboxes-fill::before{content:"\f42e"}.bi-inboxes::before{content:"\f42f"}.bi-info-circle-fill::before{content:"\f430"}.bi-info-circle::before{content:"\f431"}.bi-info-square-fill::before{content:"\f432"}.bi-info-square::before{content:"\f433"}.bi-info::before{content:"\f434"}.bi-input-cursor-text::before{content:"\f435"}.bi-input-cursor::before{content:"\f436"}.bi-instagram::before{content:"\f437"}.bi-intersect::before{content:"\f438"}.bi-journal-album::before{content:"\f439"}.bi-journal-arrow-down::before{content:"\f43a"}.bi-journal-arrow-up::before{content:"\f43b"}.bi-journal-bookmark-fill::before{content:"\f43c"}.bi-journal-bookmark::before{content:"\f43d"}.bi-journal-check::before{content:"\f43e"}.bi-journal-code::before{content:"\f43f"}.bi-journal-medical::before{content:"\f440"}.bi-journal-minus::before{content:"\f441"}.bi-journal-plus::before{content:"\f442"}.bi-journal-richtext::before{content:"\f443"}.bi-journal-text::before{content:"\f444"}.bi-journal-x::before{content:"\f445"}.bi-journal::before{content:"\f446"}.bi-journals::before{content:"\f447"}.bi-joystick::before{content:"\f448"}.bi-justify-left::before{content:"\f449"}.bi-justify-right::before{content:"\f44a"}.bi-justify::before{content:"\f44b"}.bi-kanban-fill::before{content:"\f44c"}.bi-kanban::before{content:"\f44d"}.bi-key-fill::before{content:"\f44e"}.bi-key::before{content:"\f44f"}.bi-keyboard-fill::before{content:"\f450"}.bi-keyboard::before{content:"\f451"}.bi-ladder::before{content:"\f452"}.bi-lamp-fill::before{content:"\f453"}.bi-lamp::before{content:"\f454"}.bi-laptop-fill::before{content:"\f455"}.bi-laptop::before{content:"\f456"}.bi-layer-backward::before{content:"\f457"}.bi-layer-forward::before{content:"\f458"}.bi-layers-fill::before{content:"\f459"}.bi-layers-half::before{content:"\f45a"}.bi-layers::before{content:"\f45b"}.bi-layout-sidebar-inset-reverse::before{content:"\f45c"}.bi-layout-sidebar-inset::before{content:"\f45d"}.bi-layout-sidebar-reverse::before{content:"\f45e"}.bi-layout-sidebar::before{content:"\f45f"}.bi-layout-split::before{content:"\f460"}.bi-layout-text-sidebar-reverse::before{content:"\f461"}.bi-layout-text-sidebar::before{content:"\f462"}.bi-layout-text-window-reverse::before{content:"\f463"}.bi-layout-text-window::before{content:"\f464"}.bi-layout-three-columns::before{content:"\f465"}.bi-layout-wtf::before{content:"\f466"}.bi-life-preserver::before{content:"\f467"}.bi-lightbulb-fill::before{content:"\f468"}.bi-lightbulb-off-fill::before{content:"\f469"}.bi-lightbulb-off::before{content:"\f46a"}.bi-lightbulb::before{content:"\f46b"}.bi-lightning-charge-fill::before{content:"\f46c"}.bi-lightning-charge::before{content:"\f46d"}.bi-lightning-fill::before{content:"\f46e"}.bi-lightning::before{content:"\f46f"}.bi-link-45deg::before{content:"\f470"}.bi-link::before{content:"\f471"}.bi-linkedin::before{content:"\f472"}.bi-list-check::before{content:"\f473"}.bi-list-nested::before{content:"\f474"}.bi-list-ol::before{content:"\f475"}.bi-list-stars::before{content:"\f476"}.bi-list-task::before{content:"\f477"}.bi-list-ul::before{content:"\f478"}.bi-list::before{content:"\f479"}.bi-lock-fill::before{content:"\f47a"}.bi-lock::before{content:"\f47b"}.bi-mailbox::before{content:"\f47c"}.bi-mailbox2::before{content:"\f47d"}.bi-map-fill::before{content:"\f47e"}.bi-map::before{content:"\f47f"}.bi-markdown-fill::before{content:"\f480"}.bi-markdown::before{content:"\f481"}.bi-mask::before{content:"\f482"}.bi-megaphone-fill::before{content:"\f483"}.bi-megaphone::before{content:"\f484"}.bi-menu-app-fill::before{content:"\f485"}.bi-menu-app::before{content:"\f486"}.bi-menu-button-fill::before{content:"\f487"}.bi-menu-button-wide-fill::before{content:"\f488"}.bi-menu-button-wide::before{content:"\f489"}.bi-menu-button::before{content:"\f48a"}.bi-menu-down::before{content:"\f48b"}.bi-menu-up::before{content:"\f48c"}.bi-mic-fill::before{content:"\f48d"}.bi-mic-mute-fill::before{content:"\f48e"}.bi-mic-mute::before{content:"\f48f"}.bi-mic::before{content:"\f490"}.bi-minecart-loaded::before{content:"\f491"}.bi-minecart::before{content:"\f492"}.bi-moisture::before{content:"\f493"}.bi-moon-fill::before{content:"\f494"}.bi-moon-stars-fill::before{content:"\f495"}.bi-moon-stars::before{content:"\f496"}.bi-moon::before{content:"\f497"}.bi-mouse-fill::before{content:"\f498"}.bi-mouse::before{content:"\f499"}.bi-mouse2-fill::before{content:"\f49a"}.bi-mouse2::before{content:"\f49b"}.bi-mouse3-fill::before{content:"\f49c"}.bi-mouse3::before{content:"\f49d"}.bi-music-note-beamed::before{content:"\f49e"}.bi-music-note-list::before{content:"\f49f"}.bi-music-note::before{content:"\f4a0"}.bi-music-player-fill::before{content:"\f4a1"}.bi-music-player::before{content:"\f4a2"}.bi-newspaper::before{content:"\f4a3"}.bi-node-minus-fill::before{content:"\f4a4"}.bi-node-minus::before{content:"\f4a5"}.bi-node-plus-fill::before{content:"\f4a6"}.bi-node-plus::before{content:"\f4a7"}.bi-nut-fill::before{content:"\f4a8"}.bi-nut::before{content:"\f4a9"}.bi-octagon-fill::before{content:"\f4aa"}.bi-octagon-half::before{content:"\f4ab"}.bi-octagon::before{content:"\f4ac"}.bi-option::before{content:"\f4ad"}.bi-outlet::before{content:"\f4ae"}.bi-paint-bucket::before{content:"\f4af"}.bi-palette-fill::before{content:"\f4b0"}.bi-palette::before{content:"\f4b1"}.bi-palette2::before{content:"\f4b2"}.bi-paperclip::before{content:"\f4b3"}.bi-paragraph::before{content:"\f4b4"}.bi-patch-check-fill::before{content:"\f4b5"}.bi-patch-check::before{content:"\f4b6"}.bi-patch-exclamation-fill::before{content:"\f4b7"}.bi-patch-exclamation::before{content:"\f4b8"}.bi-patch-minus-fill::before{content:"\f4b9"}.bi-patch-minus::before{content:"\f4ba"}.bi-patch-plus-fill::before{content:"\f4bb"}.bi-patch-plus::before{content:"\f4bc"}.bi-patch-question-fill::before{content:"\f4bd"}.bi-patch-question::before{content:"\f4be"}.bi-pause-btn-fill::before{content:"\f4bf"}.bi-pause-btn::before{content:"\f4c0"}.bi-pause-circle-fill::before{content:"\f4c1"}.bi-pause-circle::before{content:"\f4c2"}.bi-pause-fill::before{content:"\f4c3"}.bi-pause::before{content:"\f4c4"}.bi-peace-fill::before{content:"\f4c5"}.bi-peace::before{content:"\f4c6"}.bi-pen-fill::before{content:"\f4c7"}.bi-pen::before{content:"\f4c8"}.bi-pencil-fill::before{content:"\f4c9"}.bi-pencil-square::before{content:"\f4ca"}.bi-pencil::before{content:"\f4cb"}.bi-pentagon-fill::before{content:"\f4cc"}.bi-pentagon-half::before{content:"\f4cd"}.bi-pentagon::before{content:"\f4ce"}.bi-people-fill::before{content:"\f4cf"}.bi-people::before{content:"\f4d0"}.bi-percent::before{content:"\f4d1"}.bi-person-badge-fill::before{content:"\f4d2"}.bi-person-badge::before{content:"\f4d3"}.bi-person-bounding-box::before{content:"\f4d4"}.bi-person-check-fill::before{content:"\f4d5"}.bi-person-check::before{content:"\f4d6"}.bi-person-circle::before{content:"\f4d7"}.bi-person-dash-fill::before{content:"\f4d8"}.bi-person-dash::before{content:"\f4d9"}.bi-person-fill::before{content:"\f4da"}.bi-person-lines-fill::before{content:"\f4db"}.bi-person-plus-fill::before{content:"\f4dc"}.bi-person-plus::before{content:"\f4dd"}.bi-person-square::before{content:"\f4de"}.bi-person-x-fill::before{content:"\f4df"}.bi-person-x::before{content:"\f4e0"}.bi-person::before{content:"\f4e1"}.bi-phone-fill::before{content:"\f4e2"}.bi-phone-landscape-fill::before{content:"\f4e3"}.bi-phone-landscape::before{content:"\f4e4"}.bi-phone-vibrate-fill::before{content:"\f4e5"}.bi-phone-vibrate::before{content:"\f4e6"}.bi-phone::before{content:"\f4e7"}.bi-pie-chart-fill::before{content:"\f4e8"}.bi-pie-chart::before{content:"\f4e9"}.bi-pin-angle-fill::before{content:"\f4ea"}.bi-pin-angle::before{content:"\f4eb"}.bi-pin-fill::before{content:"\f4ec"}.bi-pin::before{content:"\f4ed"}.bi-pip-fill::before{content:"\f4ee"}.bi-pip::before{content:"\f4ef"}.bi-play-btn-fill::before{content:"\f4f0"}.bi-play-btn::before{content:"\f4f1"}.bi-play-circle-fill::before{content:"\f4f2"}.bi-play-circle::before{content:"\f4f3"}.bi-play-fill::before{content:"\f4f4"}.bi-play::before{content:"\f4f5"}.bi-plug-fill::before{content:"\f4f6"}.bi-plug::before{content:"\f4f7"}.bi-plus-circle-dotted::before{content:"\f4f8"}.bi-plus-circle-fill::before{content:"\f4f9"}.bi-plus-circle::before{content:"\f4fa"}.bi-plus-square-dotted::before{content:"\f4fb"}.bi-plus-square-fill::before{content:"\f4fc"}.bi-plus-square::before{content:"\f4fd"}.bi-plus::before{content:"\f4fe"}.bi-power::before{content:"\f4ff"}.bi-printer-fill::before{content:"\f500"}.bi-printer::before{content:"\f501"}.bi-puzzle-fill::before{content:"\f502"}.bi-puzzle::before{content:"\f503"}.bi-question-circle-fill::before{content:"\f504"}.bi-question-circle::before{content:"\f505"}.bi-question-diamond-fill::before{content:"\f506"}.bi-question-diamond::before{content:"\f507"}.bi-question-octagon-fill::before{content:"\f508"}.bi-question-octagon::before{content:"\f509"}.bi-question-square-fill::before{content:"\f50a"}.bi-question-square::before{content:"\f50b"}.bi-question::before{content:"\f50c"}.bi-rainbow::before{content:"\f50d"}.bi-receipt-cutoff::before{content:"\f50e"}.bi-receipt::before{content:"\f50f"}.bi-reception-0::before{content:"\f510"}.bi-reception-1::before{content:"\f511"}.bi-reception-2::before{content:"\f512"}.bi-reception-3::before{content:"\f513"}.bi-reception-4::before{content:"\f514"}.bi-record-btn-fill::before{content:"\f515"}.bi-record-btn::before{content:"\f516"}.bi-record-circle-fill::before{content:"\f517"}.bi-record-circle::before{content:"\f518"}.bi-record-fill::before{content:"\f519"}.bi-record::before{content:"\f51a"}.bi-record2-fill::before{content:"\f51b"}.bi-record2::before{content:"\f51c"}.bi-reply-all-fill::before{content:"\f51d"}.bi-reply-all::before{content:"\f51e"}.bi-reply-fill::before{content:"\f51f"}.bi-reply::before{content:"\f520"}.bi-rss-fill::before{content:"\f521"}.bi-rss::before{content:"\f522"}.bi-rulers::before{content:"\f523"}.bi-save-fill::before{content:"\f524"}.bi-save::before{content:"\f525"}.bi-save2-fill::before{content:"\f526"}.bi-save2::before{content:"\f527"}.bi-scissors::before{content:"\f528"}.bi-screwdriver::before{content:"\f529"}.bi-search::before{content:"\f52a"}.bi-segmented-nav::before{content:"\f52b"}.bi-server::before{content:"\f52c"}.bi-share-fill::before{content:"\f52d"}.bi-share::before{content:"\f52e"}.bi-shield-check::before{content:"\f52f"}.bi-shield-exclamation::before{content:"\f530"}.bi-shield-fill-check::before{content:"\f531"}.bi-shield-fill-exclamation::before{content:"\f532"}.bi-shield-fill-minus::before{content:"\f533"}.bi-shield-fill-plus::before{content:"\f534"}.bi-shield-fill-x::before{content:"\f535"}.bi-shield-fill::before{content:"\f536"}.bi-shield-lock-fill::before{content:"\f537"}.bi-shield-lock::before{content:"\f538"}.bi-shield-minus::before{content:"\f539"}.bi-shield-plus::before{content:"\f53a"}.bi-shield-shaded::before{content:"\f53b"}.bi-shield-slash-fill::before{content:"\f53c"}.bi-shield-slash::before{content:"\f53d"}.bi-shield-x::before{content:"\f53e"}.bi-shield::before{content:"\f53f"}.bi-shift-fill::before{content:"\f540"}.bi-shift::before{content:"\f541"}.bi-shop-window::before{content:"\f542"}.bi-shop::before{content:"\f543"}.bi-shuffle::before{content:"\f544"}.bi-signpost-2-fill::before{content:"\f545"}.bi-signpost-2::before{content:"\f546"}.bi-signpost-fill::before{content:"\f547"}.bi-signpost-split-fill::before{content:"\f548"}.bi-signpost-split::before{content:"\f549"}.bi-signpost::before{content:"\f54a"}.bi-sim-fill::before{content:"\f54b"}.bi-sim::before{content:"\f54c"}.bi-skip-backward-btn-fill::before{content:"\f54d"}.bi-skip-backward-btn::before{content:"\f54e"}.bi-skip-backward-circle-fill::before{content:"\f54f"}.bi-skip-backward-circle::before{content:"\f550"}.bi-skip-backward-fill::before{content:"\f551"}.bi-skip-backward::before{content:"\f552"}.bi-skip-end-btn-fill::before{content:"\f553"}.bi-skip-end-btn::before{content:"\f554"}.bi-skip-end-circle-fill::before{content:"\f555"}.bi-skip-end-circle::before{content:"\f556"}.bi-skip-end-fill::before{content:"\f557"}.bi-skip-end::before{content:"\f558"}.bi-skip-forward-btn-fill::before{content:"\f559"}.bi-skip-forward-btn::before{content:"\f55a"}.bi-skip-forward-circle-fill::before{content:"\f55b"}.bi-skip-forward-circle::before{content:"\f55c"}.bi-skip-forward-fill::before{content:"\f55d"}.bi-skip-forward::before{content:"\f55e"}.bi-skip-start-btn-fill::before{content:"\f55f"}.bi-skip-start-btn::before{content:"\f560"}.bi-skip-start-circle-fill::before{content:"\f561"}.bi-skip-start-circle::before{content:"\f562"}.bi-skip-start-fill::before{content:"\f563"}.bi-skip-start::before{content:"\f564"}.bi-slack::before{content:"\f565"}.bi-slash-circle-fill::before{content:"\f566"}.bi-slash-circle::before{content:"\f567"}.bi-slash-square-fill::before{content:"\f568"}.bi-slash-square::before{content:"\f569"}.bi-slash::before{content:"\f56a"}.bi-sliders::before{content:"\f56b"}.bi-smartwatch::before{content:"\f56c"}.bi-snow::before{content:"\f56d"}.bi-snow2::before{content:"\f56e"}.bi-snow3::before{content:"\f56f"}.bi-sort-alpha-down-alt::before{content:"\f570"}.bi-sort-alpha-down::before{content:"\f571"}.bi-sort-alpha-up-alt::before{content:"\f572"}.bi-sort-alpha-up::before{content:"\f573"}.bi-sort-down-alt::before{content:"\f574"}.bi-sort-down::before{content:"\f575"}.bi-sort-numeric-down-alt::before{content:"\f576"}.bi-sort-numeric-down::before{content:"\f577"}.bi-sort-numeric-up-alt::before{content:"\f578"}.bi-sort-numeric-up::before{content:"\f579"}.bi-sort-up-alt::before{content:"\f57a"}.bi-sort-up::before{content:"\f57b"}.bi-soundwave::before{content:"\f57c"}.bi-speaker-fill::before{content:"\f57d"}.bi-speaker::before{content:"\f57e"}.bi-speedometer::before{content:"\f57f"}.bi-speedometer2::before{content:"\f580"}.bi-spellcheck::before{content:"\f581"}.bi-square-fill::before{content:"\f582"}.bi-square-half::before{content:"\f583"}.bi-square::before{content:"\f584"}.bi-stack::before{content:"\f585"}.bi-star-fill::before{content:"\f586"}.bi-star-half::before{content:"\f587"}.bi-star::before{content:"\f588"}.bi-stars::before{content:"\f589"}.bi-stickies-fill::before{content:"\f58a"}.bi-stickies::before{content:"\f58b"}.bi-sticky-fill::before{content:"\f58c"}.bi-sticky::before{content:"\f58d"}.bi-stop-btn-fill::before{content:"\f58e"}.bi-stop-btn::before{content:"\f58f"}.bi-stop-circle-fill::before{content:"\f590"}.bi-stop-circle::before{content:"\f591"}.bi-stop-fill::before{content:"\f592"}.bi-stop::before{content:"\f593"}.bi-stoplights-fill::before{content:"\f594"}.bi-stoplights::before{content:"\f595"}.bi-stopwatch-fill::before{content:"\f596"}.bi-stopwatch::before{content:"\f597"}.bi-subtract::before{content:"\f598"}.bi-suit-club-fill::before{content:"\f599"}.bi-suit-club::before{content:"\f59a"}.bi-suit-diamond-fill::before{content:"\f59b"}.bi-suit-diamond::before{content:"\f59c"}.bi-suit-heart-fill::before{content:"\f59d"}.bi-suit-heart::before{content:"\f59e"}.bi-suit-spade-fill::before{content:"\f59f"}.bi-suit-spade::before{content:"\f5a0"}.bi-sun-fill::before{content:"\f5a1"}.bi-sun::before{content:"\f5a2"}.bi-sunglasses::before{content:"\f5a3"}.bi-sunrise-fill::before{content:"\f5a4"}.bi-sunrise::before{content:"\f5a5"}.bi-sunset-fill::before{content:"\f5a6"}.bi-sunset::before{content:"\f5a7"}.bi-symmetry-horizontal::before{content:"\f5a8"}.bi-symmetry-vertical::before{content:"\f5a9"}.bi-table::before{content:"\f5aa"}.bi-tablet-fill::before{content:"\f5ab"}.bi-tablet-landscape-fill::before{content:"\f5ac"}.bi-tablet-landscape::before{content:"\f5ad"}.bi-tablet::before{content:"\f5ae"}.bi-tag-fill::before{content:"\f5af"}.bi-tag::before{content:"\f5b0"}.bi-tags-fill::before{content:"\f5b1"}.bi-tags::before{content:"\f5b2"}.bi-telegram::before{content:"\f5b3"}.bi-telephone-fill::before{content:"\f5b4"}.bi-telephone-forward-fill::before{content:"\f5b5"}.bi-telephone-forward::before{content:"\f5b6"}.bi-telephone-inbound-fill::before{content:"\f5b7"}.bi-telephone-inbound::before{content:"\f5b8"}.bi-telephone-minus-fill::before{content:"\f5b9"}.bi-telephone-minus::before{content:"\f5ba"}.bi-telephone-outbound-fill::before{content:"\f5bb"}.bi-telephone-outbound::before{content:"\f5bc"}.bi-telephone-plus-fill::before{content:"\f5bd"}.bi-telephone-plus::before{content:"\f5be"}.bi-telephone-x-fill::before{content:"\f5bf"}.bi-telephone-x::before{content:"\f5c0"}.bi-telephone::before{content:"\f5c1"}.bi-terminal-fill::before{content:"\f5c2"}.bi-terminal::before{content:"\f5c3"}.bi-text-center::before{content:"\f5c4"}.bi-text-indent-left::before{content:"\f5c5"}.bi-text-indent-right::before{content:"\f5c6"}.bi-text-left::before{content:"\f5c7"}.bi-text-paragraph::before{content:"\f5c8"}.bi-text-right::before{content:"\f5c9"}.bi-textarea-resize::before{content:"\f5ca"}.bi-textarea-t::before{content:"\f5cb"}.bi-textarea::before{content:"\f5cc"}.bi-thermometer-half::before{content:"\f5cd"}.bi-thermometer-high::before{content:"\f5ce"}.bi-thermometer-low::before{content:"\f5cf"}.bi-thermometer-snow::before{content:"\f5d0"}.bi-thermometer-sun::before{content:"\f5d1"}.bi-thermometer::before{content:"\f5d2"}.bi-three-dots-vertical::before{content:"\f5d3"}.bi-three-dots::before{content:"\f5d4"}.bi-toggle-off::before{content:"\f5d5"}.bi-toggle-on::before{content:"\f5d6"}.bi-toggle2-off::before{content:"\f5d7"}.bi-toggle2-on::before{content:"\f5d8"}.bi-toggles::before{content:"\f5d9"}.bi-toggles2::before{content:"\f5da"}.bi-tools::before{content:"\f5db"}.bi-tornado::before{content:"\f5dc"}.bi-trash-fill::before{content:"\f5dd"}.bi-trash::before{content:"\f5de"}.bi-trash2-fill::before{content:"\f5df"}.bi-trash2::before{content:"\f5e0"}.bi-tree-fill::before{content:"\f5e1"}.bi-tree::before{content:"\f5e2"}.bi-triangle-fill::before{content:"\f5e3"}.bi-triangle-half::before{content:"\f5e4"}.bi-triangle::before{content:"\f5e5"}.bi-trophy-fill::before{content:"\f5e6"}.bi-trophy::before{content:"\f5e7"}.bi-tropical-storm::before{content:"\f5e8"}.bi-truck-flatbed::before{content:"\f5e9"}.bi-truck::before{content:"\f5ea"}.bi-tsunami::before{content:"\f5eb"}.bi-tv-fill::before{content:"\f5ec"}.bi-tv::before{content:"\f5ed"}.bi-twitch::before{content:"\f5ee"}.bi-twitter::before{content:"\f5ef"}.bi-type-bold::before{content:"\f5f0"}.bi-type-h1::before{content:"\f5f1"}.bi-type-h2::before{content:"\f5f2"}.bi-type-h3::before{content:"\f5f3"}.bi-type-italic::before{content:"\f5f4"}.bi-type-strikethrough::before{content:"\f5f5"}.bi-type-underline::before{content:"\f5f6"}.bi-type::before{content:"\f5f7"}.bi-ui-checks-grid::before{content:"\f5f8"}.bi-ui-checks::before{content:"\f5f9"}.bi-ui-radios-grid::before{content:"\f5fa"}.bi-ui-radios::before{content:"\f5fb"}.bi-umbrella-fill::before{content:"\f5fc"}.bi-umbrella::before{content:"\f5fd"}.bi-union::before{content:"\f5fe"}.bi-unlock-fill::before{content:"\f5ff"}.bi-unlock::before{content:"\f600"}.bi-upc-scan::before{content:"\f601"}.bi-upc::before{content:"\f602"}.bi-upload::before{content:"\f603"}.bi-vector-pen::before{content:"\f604"}.bi-view-list::before{content:"\f605"}.bi-view-stacked::before{content:"\f606"}.bi-vinyl-fill::before{content:"\f607"}.bi-vinyl::before{content:"\f608"}.bi-voicemail::before{content:"\f609"}.bi-volume-down-fill::before{content:"\f60a"}.bi-volume-down::before{content:"\f60b"}.bi-volume-mute-fill::before{content:"\f60c"}.bi-volume-mute::before{content:"\f60d"}.bi-volume-off-fill::before{content:"\f60e"}.bi-volume-off::before{content:"\f60f"}.bi-volume-up-fill::before{content:"\f610"}.bi-volume-up::before{content:"\f611"}.bi-vr::before{content:"\f612"}.bi-wallet-fill::before{content:"\f613"}.bi-wallet::before{content:"\f614"}.bi-wallet2::before{content:"\f615"}.bi-watch::before{content:"\f616"}.bi-water::before{content:"\f617"}.bi-whatsapp::before{content:"\f618"}.bi-wifi-1::before{content:"\f619"}.bi-wifi-2::before{content:"\f61a"}.bi-wifi-off::before{content:"\f61b"}.bi-wifi::before{content:"\f61c"}.bi-wind::before{content:"\f61d"}.bi-window-dock::before{content:"\f61e"}.bi-window-sidebar::before{content:"\f61f"}.bi-window::before{content:"\f620"}.bi-wrench::before{content:"\f621"}.bi-x-circle-fill::before{content:"\f622"}.bi-x-circle::before{content:"\f623"}.bi-x-diamond-fill::before{content:"\f624"}.bi-x-diamond::before{content:"\f625"}.bi-x-octagon-fill::before{content:"\f626"}.bi-x-octagon::before{content:"\f627"}.bi-x-square-fill::before{content:"\f628"}.bi-x-square::before{content:"\f629"}.bi-x::before{content:"\f62a"}.bi-youtube::before{content:"\f62b"}.bi-zoom-in::before{content:"\f62c"}.bi-zoom-out::before{content:"\f62d"}.bi-bank::before{content:"\f62e"}.bi-bank2::before{content:"\f62f"}.bi-bell-slash-fill::before{content:"\f630"}.bi-bell-slash::before{content:"\f631"}.bi-cash-coin::before{content:"\f632"}.bi-check-lg::before{content:"\f633"}.bi-coin::before{content:"\f634"}.bi-currency-bitcoin::before{content:"\f635"}.bi-currency-dollar::before{content:"\f636"}.bi-currency-euro::before{content:"\f637"}.bi-currency-exchange::before{content:"\f638"}.bi-currency-pound::before{content:"\f639"}.bi-currency-yen::before{content:"\f63a"}.bi-dash-lg::before{content:"\f63b"}.bi-exclamation-lg::before{content:"\f63c"}.bi-file-earmark-pdf-fill::before{content:"\f63d"}.bi-file-earmark-pdf::before{content:"\f63e"}.bi-file-pdf-fill::before{content:"\f63f"}.bi-file-pdf::before{content:"\f640"}.bi-gender-ambiguous::before{content:"\f641"}.bi-gender-female::before{content:"\f642"}.bi-gender-male::before{content:"\f643"}.bi-gender-trans::before{content:"\f644"}.bi-headset-vr::before{content:"\f645"}.bi-info-lg::before{content:"\f646"}.bi-mastodon::before{content:"\f647"}.bi-messenger::before{content:"\f648"}.bi-piggy-bank-fill::before{content:"\f649"}.bi-piggy-bank::before{content:"\f64a"}.bi-pin-map-fill::before{content:"\f64b"}.bi-pin-map::before{content:"\f64c"}.bi-plus-lg::before{content:"\f64d"}.bi-question-lg::before{content:"\f64e"}.bi-recycle::before{content:"\f64f"}.bi-reddit::before{content:"\f650"}.bi-safe-fill::before{content:"\f651"}.bi-safe2-fill::before{content:"\f652"}.bi-safe2::before{content:"\f653"}.bi-sd-card-fill::before{content:"\f654"}.bi-sd-card::before{content:"\f655"}.bi-skype::before{content:"\f656"}.bi-slash-lg::before{content:"\f657"}.bi-translate::before{content:"\f658"}.bi-x-lg::before{content:"\f659"}.bi-safe::before{content:"\f65a"}.bi-apple::before{content:"\f65b"}.bi-microsoft::before{content:"\f65d"}.bi-windows::before{content:"\f65e"}.bi-behance::before{content:"\f65c"}.bi-dribbble::before{content:"\f65f"}.bi-line::before{content:"\f660"}.bi-medium::before{content:"\f661"}.bi-paypal::before{content:"\f662"}.bi-pinterest::before{content:"\f663"}.bi-signal::before{content:"\f664"}.bi-snapchat::before{content:"\f665"}.bi-spotify::before{content:"\f666"}.bi-stack-overflow::before{content:"\f667"}.bi-strava::before{content:"\f668"}.bi-wordpress::before{content:"\f669"}.bi-vimeo::before{content:"\f66a"}.bi-activity::before{content:"\f66b"}.bi-easel2-fill::before{content:"\f66c"}.bi-easel2::before{content:"\f66d"}.bi-easel3-fill::before{content:"\f66e"}.bi-easel3::before{content:"\f66f"}.bi-fan::before{content:"\f670"}.bi-fingerprint::before{content:"\f671"}.bi-graph-down-arrow::before{content:"\f672"}.bi-graph-up-arrow::before{content:"\f673"}.bi-hypnotize::before{content:"\f674"}.bi-magic::before{content:"\f675"}.bi-person-rolodex::before{content:"\f676"}.bi-person-video::before{content:"\f677"}.bi-person-video2::before{content:"\f678"}.bi-person-video3::before{content:"\f679"}.bi-person-workspace::before{content:"\f67a"}.bi-radioactive::before{content:"\f67b"}.bi-webcam-fill::before{content:"\f67c"}.bi-webcam::before{content:"\f67d"}.bi-yin-yang::before{content:"\f67e"}.bi-bandaid-fill::before{content:"\f680"}.bi-bandaid::before{content:"\f681"}.bi-bluetooth::before{content:"\f682"}.bi-body-text::before{content:"\f683"}.bi-boombox::before{content:"\f684"}.bi-boxes::before{content:"\f685"}.bi-dpad-fill::before{content:"\f686"}.bi-dpad::before{content:"\f687"}.bi-ear-fill::before{content:"\f688"}.bi-ear::before{content:"\f689"}.bi-envelope-check-fill::before{content:"\f68b"}.bi-envelope-check::before{content:"\f68c"}.bi-envelope-dash-fill::before{content:"\f68e"}.bi-envelope-dash::before{content:"\f68f"}.bi-envelope-exclamation-fill::before{content:"\f691"}.bi-envelope-exclamation::before{content:"\f692"}.bi-envelope-plus-fill::before{content:"\f693"}.bi-envelope-plus::before{content:"\f694"}.bi-envelope-slash-fill::before{content:"\f696"}.bi-envelope-slash::before{content:"\f697"}.bi-envelope-x-fill::before{content:"\f699"}.bi-envelope-x::before{content:"\f69a"}.bi-explicit-fill::before{content:"\f69b"}.bi-explicit::before{content:"\f69c"}.bi-git::before{content:"\f69d"}.bi-infinity::before{content:"\f69e"}.bi-list-columns-reverse::before{content:"\f69f"}.bi-list-columns::before{content:"\f6a0"}.bi-meta::before{content:"\f6a1"}.bi-nintendo-switch::before{content:"\f6a4"}.bi-pc-display-horizontal::before{content:"\f6a5"}.bi-pc-display::before{content:"\f6a6"}.bi-pc-horizontal::before{content:"\f6a7"}.bi-pc::before{content:"\f6a8"}.bi-playstation::before{content:"\f6a9"}.bi-plus-slash-minus::before{content:"\f6aa"}.bi-projector-fill::before{content:"\f6ab"}.bi-projector::before{content:"\f6ac"}.bi-qr-code-scan::before{content:"\f6ad"}.bi-qr-code::before{content:"\f6ae"}.bi-quora::before{content:"\f6af"}.bi-quote::before{content:"\f6b0"}.bi-robot::before{content:"\f6b1"}.bi-send-check-fill::before{content:"\f6b2"}.bi-send-check::before{content:"\f6b3"}.bi-send-dash-fill::before{content:"\f6b4"}.bi-send-dash::before{content:"\f6b5"}.bi-send-exclamation-fill::before{content:"\f6b7"}.bi-send-exclamation::before{content:"\f6b8"}.bi-send-fill::before{content:"\f6b9"}.bi-send-plus-fill::before{content:"\f6ba"}.bi-send-plus::before{content:"\f6bb"}.bi-send-slash-fill::before{content:"\f6bc"}.bi-send-slash::before{content:"\f6bd"}.bi-send-x-fill::before{content:"\f6be"}.bi-send-x::before{content:"\f6bf"}.bi-send::before{content:"\f6c0"}.bi-steam::before{content:"\f6c1"}.bi-terminal-dash::before{content:"\f6c3"}.bi-terminal-plus::before{content:"\f6c4"}.bi-terminal-split::before{content:"\f6c5"}.bi-ticket-detailed-fill::before{content:"\f6c6"}.bi-ticket-detailed::before{content:"\f6c7"}.bi-ticket-fill::before{content:"\f6c8"}.bi-ticket-perforated-fill::before{content:"\f6c9"}.bi-ticket-perforated::before{content:"\f6ca"}.bi-ticket::before{content:"\f6cb"}.bi-tiktok::before{content:"\f6cc"}.bi-window-dash::before{content:"\f6cd"}.bi-window-desktop::before{content:"\f6ce"}.bi-window-fullscreen::before{content:"\f6cf"}.bi-window-plus::before{content:"\f6d0"}.bi-window-split::before{content:"\f6d1"}.bi-window-stack::before{content:"\f6d2"}.bi-window-x::before{content:"\f6d3"}.bi-xbox::before{content:"\f6d4"}.bi-ethernet::before{content:"\f6d5"}.bi-hdmi-fill::before{content:"\f6d6"}.bi-hdmi::before{content:"\f6d7"}.bi-usb-c-fill::before{content:"\f6d8"}.bi-usb-c::before{content:"\f6d9"}.bi-usb-fill::before{content:"\f6da"}.bi-usb-plug-fill::before{content:"\f6db"}.bi-usb-plug::before{content:"\f6dc"}.bi-usb-symbol::before{content:"\f6dd"}.bi-usb::before{content:"\f6de"}.bi-boombox-fill::before{content:"\f6df"}.bi-displayport::before{content:"\f6e1"}.bi-gpu-card::before{content:"\f6e2"}.bi-memory::before{content:"\f6e3"}.bi-modem-fill::before{content:"\f6e4"}.bi-modem::before{content:"\f6e5"}.bi-motherboard-fill::before{content:"\f6e6"}.bi-motherboard::before{content:"\f6e7"}.bi-optical-audio-fill::before{content:"\f6e8"}.bi-optical-audio::before{content:"\f6e9"}.bi-pci-card::before{content:"\f6ea"}.bi-router-fill::before{content:"\f6eb"}.bi-router::before{content:"\f6ec"}.bi-thunderbolt-fill::before{content:"\f6ef"}.bi-thunderbolt::before{content:"\f6f0"}.bi-usb-drive-fill::before{content:"\f6f1"}.bi-usb-drive::before{content:"\f6f2"}.bi-usb-micro-fill::before{content:"\f6f3"}.bi-usb-micro::before{content:"\f6f4"}.bi-usb-mini-fill::before{content:"\f6f5"}.bi-usb-mini::before{content:"\f6f6"}.bi-cloud-haze2::before{content:"\f6f7"}.bi-device-hdd-fill::before{content:"\f6f8"}.bi-device-hdd::before{content:"\f6f9"}.bi-device-ssd-fill::before{content:"\f6fa"}.bi-device-ssd::before{content:"\f6fb"}.bi-displayport-fill::before{content:"\f6fc"}.bi-mortarboard-fill::before{content:"\f6fd"}.bi-mortarboard::before{content:"\f6fe"}.bi-terminal-x::before{content:"\f6ff"}.bi-arrow-through-heart-fill::before{content:"\f700"}.bi-arrow-through-heart::before{content:"\f701"}.bi-badge-sd-fill::before{content:"\f702"}.bi-badge-sd::before{content:"\f703"}.bi-bag-heart-fill::before{content:"\f704"}.bi-bag-heart::before{content:"\f705"}.bi-balloon-fill::before{content:"\f706"}.bi-balloon-heart-fill::before{content:"\f707"}.bi-balloon-heart::before{content:"\f708"}.bi-balloon::before{content:"\f709"}.bi-box2-fill::before{content:"\f70a"}.bi-box2-heart-fill::before{content:"\f70b"}.bi-box2-heart::before{content:"\f70c"}.bi-box2::before{content:"\f70d"}.bi-braces-asterisk::before{content:"\f70e"}.bi-calendar-heart-fill::before{content:"\f70f"}.bi-calendar-heart::before{content:"\f710"}.bi-calendar2-heart-fill::before{content:"\f711"}.bi-calendar2-heart::before{content:"\f712"}.bi-chat-heart-fill::before{content:"\f713"}.bi-chat-heart::before{content:"\f714"}.bi-chat-left-heart-fill::before{content:"\f715"}.bi-chat-left-heart::before{content:"\f716"}.bi-chat-right-heart-fill::before{content:"\f717"}.bi-chat-right-heart::before{content:"\f718"}.bi-chat-square-heart-fill::before{content:"\f719"}.bi-chat-square-heart::before{content:"\f71a"}.bi-clipboard-check-fill::before{content:"\f71b"}.bi-clipboard-data-fill::before{content:"\f71c"}.bi-clipboard-fill::before{content:"\f71d"}.bi-clipboard-heart-fill::before{content:"\f71e"}.bi-clipboard-heart::before{content:"\f71f"}.bi-clipboard-minus-fill::before{content:"\f720"}.bi-clipboard-plus-fill::before{content:"\f721"}.bi-clipboard-pulse::before{content:"\f722"}.bi-clipboard-x-fill::before{content:"\f723"}.bi-clipboard2-check-fill::before{content:"\f724"}.bi-clipboard2-check::before{content:"\f725"}.bi-clipboard2-data-fill::before{content:"\f726"}.bi-clipboard2-data::before{content:"\f727"}.bi-clipboard2-fill::before{content:"\f728"}.bi-clipboard2-heart-fill::before{content:"\f729"}.bi-clipboard2-heart::before{content:"\f72a"}.bi-clipboard2-minus-fill::before{content:"\f72b"}.bi-clipboard2-minus::before{content:"\f72c"}.bi-clipboard2-plus-fill::before{content:"\f72d"}.bi-clipboard2-plus::before{content:"\f72e"}.bi-clipboard2-pulse-fill::before{content:"\f72f"}.bi-clipboard2-pulse::before{content:"\f730"}.bi-clipboard2-x-fill::before{content:"\f731"}.bi-clipboard2-x::before{content:"\f732"}.bi-clipboard2::before{content:"\f733"}.bi-emoji-kiss-fill::before{content:"\f734"}.bi-emoji-kiss::before{content:"\f735"}.bi-envelope-heart-fill::before{content:"\f736"}.bi-envelope-heart::before{content:"\f737"}.bi-envelope-open-heart-fill::before{content:"\f738"}.bi-envelope-open-heart::before{content:"\f739"}.bi-envelope-paper-fill::before{content:"\f73a"}.bi-envelope-paper-heart-fill::before{content:"\f73b"}.bi-envelope-paper-heart::before{content:"\f73c"}.bi-envelope-paper::before{content:"\f73d"}.bi-filetype-aac::before{content:"\f73e"}.bi-filetype-ai::before{content:"\f73f"}.bi-filetype-bmp::before{content:"\f740"}.bi-filetype-cs::before{content:"\f741"}.bi-filetype-css::before{content:"\f742"}.bi-filetype-csv::before{content:"\f743"}.bi-filetype-doc::before{content:"\f744"}.bi-filetype-docx::before{content:"\f745"}.bi-filetype-exe::before{content:"\f746"}.bi-filetype-gif::before{content:"\f747"}.bi-filetype-heic::before{content:"\f748"}.bi-filetype-html::before{content:"\f749"}.bi-filetype-java::before{content:"\f74a"}.bi-filetype-jpg::before{content:"\f74b"}.bi-filetype-js::before{content:"\f74c"}.bi-filetype-jsx::before{content:"\f74d"}.bi-filetype-key::before{content:"\f74e"}.bi-filetype-m4p::before{content:"\f74f"}.bi-filetype-md::before{content:"\f750"}.bi-filetype-mdx::before{content:"\f751"}.bi-filetype-mov::before{content:"\f752"}.bi-filetype-mp3::before{content:"\f753"}.bi-filetype-mp4::before{content:"\f754"}.bi-filetype-otf::before{content:"\f755"}.bi-filetype-pdf::before{content:"\f756"}.bi-filetype-php::before{content:"\f757"}.bi-filetype-png::before{content:"\f758"}.bi-filetype-ppt::before{content:"\f75a"}.bi-filetype-psd::before{content:"\f75b"}.bi-filetype-py::before{content:"\f75c"}.bi-filetype-raw::before{content:"\f75d"}.bi-filetype-rb::before{content:"\f75e"}.bi-filetype-sass::before{content:"\f75f"}.bi-filetype-scss::before{content:"\f760"}.bi-filetype-sh::before{content:"\f761"}.bi-filetype-svg::before{content:"\f762"}.bi-filetype-tiff::before{content:"\f763"}.bi-filetype-tsx::before{content:"\f764"}.bi-filetype-ttf::before{content:"\f765"}.bi-filetype-txt::before{content:"\f766"}.bi-filetype-wav::before{content:"\f767"}.bi-filetype-woff::before{content:"\f768"}.bi-filetype-xls::before{content:"\f76a"}.bi-filetype-xml::before{content:"\f76b"}.bi-filetype-yml::before{content:"\f76c"}.bi-heart-arrow::before{content:"\f76d"}.bi-heart-pulse-fill::before{content:"\f76e"}.bi-heart-pulse::before{content:"\f76f"}.bi-heartbreak-fill::before{content:"\f770"}.bi-heartbreak::before{content:"\f771"}.bi-hearts::before{content:"\f772"}.bi-hospital-fill::before{content:"\f773"}.bi-hospital::before{content:"\f774"}.bi-house-heart-fill::before{content:"\f775"}.bi-house-heart::before{content:"\f776"}.bi-incognito::before{content:"\f777"}.bi-magnet-fill::before{content:"\f778"}.bi-magnet::before{content:"\f779"}.bi-person-heart::before{content:"\f77a"}.bi-person-hearts::before{content:"\f77b"}.bi-phone-flip::before{content:"\f77c"}.bi-plugin::before{content:"\f77d"}.bi-postage-fill::before{content:"\f77e"}.bi-postage-heart-fill::before{content:"\f77f"}.bi-postage-heart::before{content:"\f780"}.bi-postage::before{content:"\f781"}.bi-postcard-fill::before{content:"\f782"}.bi-postcard-heart-fill::before{content:"\f783"}.bi-postcard-heart::before{content:"\f784"}.bi-postcard::before{content:"\f785"}.bi-search-heart-fill::before{content:"\f786"}.bi-search-heart::before{content:"\f787"}.bi-sliders2-vertical::before{content:"\f788"}.bi-sliders2::before{content:"\f789"}.bi-trash3-fill::before{content:"\f78a"}.bi-trash3::before{content:"\f78b"}.bi-valentine::before{content:"\f78c"}.bi-valentine2::before{content:"\f78d"}.bi-wrench-adjustable-circle-fill::before{content:"\f78e"}.bi-wrench-adjustable-circle::before{content:"\f78f"}.bi-wrench-adjustable::before{content:"\f790"}.bi-filetype-json::before{content:"\f791"}.bi-filetype-pptx::before{content:"\f792"}.bi-filetype-xlsx::before{content:"\f793"}.bi-1-circle-fill::before{content:"\f796"}.bi-1-circle::before{content:"\f797"}.bi-1-square-fill::before{content:"\f798"}.bi-1-square::before{content:"\f799"}.bi-2-circle-fill::before{content:"\f79c"}.bi-2-circle::before{content:"\f79d"}.bi-2-square-fill::before{content:"\f79e"}.bi-2-square::before{content:"\f79f"}.bi-3-circle-fill::before{content:"\f7a2"}.bi-3-circle::before{content:"\f7a3"}.bi-3-square-fill::before{content:"\f7a4"}.bi-3-square::before{content:"\f7a5"}.bi-4-circle-fill::before{content:"\f7a8"}.bi-4-circle::before{content:"\f7a9"}.bi-4-square-fill::before{content:"\f7aa"}.bi-4-square::before{content:"\f7ab"}.bi-5-circle-fill::before{content:"\f7ae"}.bi-5-circle::before{content:"\f7af"}.bi-5-square-fill::before{content:"\f7b0"}.bi-5-square::before{content:"\f7b1"}.bi-6-circle-fill::before{content:"\f7b4"}.bi-6-circle::before{content:"\f7b5"}.bi-6-square-fill::before{content:"\f7b6"}.bi-6-square::before{content:"\f7b7"}.bi-7-circle-fill::before{content:"\f7ba"}.bi-7-circle::before{content:"\f7bb"}.bi-7-square-fill::before{content:"\f7bc"}.bi-7-square::before{content:"\f7bd"}.bi-8-circle-fill::before{content:"\f7c0"}.bi-8-circle::before{content:"\f7c1"}.bi-8-square-fill::before{content:"\f7c2"}.bi-8-square::before{content:"\f7c3"}.bi-9-circle-fill::before{content:"\f7c6"}.bi-9-circle::before{content:"\f7c7"}.bi-9-square-fill::before{content:"\f7c8"}.bi-9-square::before{content:"\f7c9"}.bi-airplane-engines-fill::before{content:"\f7ca"}.bi-airplane-engines::before{content:"\f7cb"}.bi-airplane-fill::before{content:"\f7cc"}.bi-airplane::before{content:"\f7cd"}.bi-alexa::before{content:"\f7ce"}.bi-alipay::before{content:"\f7cf"}.bi-android::before{content:"\f7d0"}.bi-android2::before{content:"\f7d1"}.bi-box-fill::before{content:"\f7d2"}.bi-box-seam-fill::before{content:"\f7d3"}.bi-browser-chrome::before{content:"\f7d4"}.bi-browser-edge::before{content:"\f7d5"}.bi-browser-firefox::before{content:"\f7d6"}.bi-browser-safari::before{content:"\f7d7"}.bi-c-circle-fill::before{content:"\f7da"}.bi-c-circle::before{content:"\f7db"}.bi-c-square-fill::before{content:"\f7dc"}.bi-c-square::before{content:"\f7dd"}.bi-capsule-pill::before{content:"\f7de"}.bi-capsule::before{content:"\f7df"}.bi-car-front-fill::before{content:"\f7e0"}.bi-car-front::before{content:"\f7e1"}.bi-cassette-fill::before{content:"\f7e2"}.bi-cassette::before{content:"\f7e3"}.bi-cc-circle-fill::before{content:"\f7e6"}.bi-cc-circle::before{content:"\f7e7"}.bi-cc-square-fill::before{content:"\f7e8"}.bi-cc-square::before{content:"\f7e9"}.bi-cup-hot-fill::before{content:"\f7ea"}.bi-cup-hot::before{content:"\f7eb"}.bi-currency-rupee::before{content:"\f7ec"}.bi-dropbox::before{content:"\f7ed"}.bi-escape::before{content:"\f7ee"}.bi-fast-forward-btn-fill::before{content:"\f7ef"}.bi-fast-forward-btn::before{content:"\f7f0"}.bi-fast-forward-circle-fill::before{content:"\f7f1"}.bi-fast-forward-circle::before{content:"\f7f2"}.bi-fast-forward-fill::before{content:"\f7f3"}.bi-fast-forward::before{content:"\f7f4"}.bi-filetype-sql::before{content:"\f7f5"}.bi-fire::before{content:"\f7f6"}.bi-google-play::before{content:"\f7f7"}.bi-h-circle-fill::before{content:"\f7fa"}.bi-h-circle::before{content:"\f7fb"}.bi-h-square-fill::before{content:"\f7fc"}.bi-h-square::before{content:"\f7fd"}.bi-indent::before{content:"\f7fe"}.bi-lungs-fill::before{content:"\f7ff"}.bi-lungs::before{content:"\f800"}.bi-microsoft-teams::before{content:"\f801"}.bi-p-circle-fill::before{content:"\f804"}.bi-p-circle::before{content:"\f805"}.bi-p-square-fill::before{content:"\f806"}.bi-p-square::before{content:"\f807"}.bi-pass-fill::before{content:"\f808"}.bi-pass::before{content:"\f809"}.bi-prescription::before{content:"\f80a"}.bi-prescription2::before{content:"\f80b"}.bi-r-circle-fill::before{content:"\f80e"}.bi-r-circle::before{content:"\f80f"}.bi-r-square-fill::before{content:"\f810"}.bi-r-square::before{content:"\f811"}.bi-repeat-1::before{content:"\f812"}.bi-repeat::before{content:"\f813"}.bi-rewind-btn-fill::before{content:"\f814"}.bi-rewind-btn::before{content:"\f815"}.bi-rewind-circle-fill::before{content:"\f816"}.bi-rewind-circle::before{content:"\f817"}.bi-rewind-fill::before{content:"\f818"}.bi-rewind::before{content:"\f819"}.bi-train-freight-front-fill::before{content:"\f81a"}.bi-train-freight-front::before{content:"\f81b"}.bi-train-front-fill::before{content:"\f81c"}.bi-train-front::before{content:"\f81d"}.bi-train-lightrail-front-fill::before{content:"\f81e"}.bi-train-lightrail-front::before{content:"\f81f"}.bi-truck-front-fill::before{content:"\f820"}.bi-truck-front::before{content:"\f821"}.bi-ubuntu::before{content:"\f822"}.bi-unindent::before{content:"\f823"}.bi-unity::before{content:"\f824"}.bi-universal-access-circle::before{content:"\f825"}.bi-universal-access::before{content:"\f826"}.bi-virus::before{content:"\f827"}.bi-virus2::before{content:"\f828"}.bi-wechat::before{content:"\f829"}.bi-yelp::before{content:"\f82a"}.bi-sign-stop-fill::before{content:"\f82b"}.bi-sign-stop-lights-fill::before{content:"\f82c"}.bi-sign-stop-lights::before{content:"\f82d"}.bi-sign-stop::before{content:"\f82e"}.bi-sign-turn-left-fill::before{content:"\f82f"}.bi-sign-turn-left::before{content:"\f830"}.bi-sign-turn-right-fill::before{content:"\f831"}.bi-sign-turn-right::before{content:"\f832"}.bi-sign-turn-slight-left-fill::before{content:"\f833"}.bi-sign-turn-slight-left::before{content:"\f834"}.bi-sign-turn-slight-right-fill::before{content:"\f835"}.bi-sign-turn-slight-right::before{content:"\f836"}.bi-sign-yield-fill::before{content:"\f837"}.bi-sign-yield::before{content:"\f838"}.bi-ev-station-fill::before{content:"\f839"}.bi-ev-station::before{content:"\f83a"}.bi-fuel-pump-diesel-fill::before{content:"\f83b"}.bi-fuel-pump-diesel::before{content:"\f83c"}.bi-fuel-pump-fill::before{content:"\f83d"}.bi-fuel-pump::before{content:"\f83e"}.bi-0-circle-fill::before{content:"\f83f"}.bi-0-circle::before{content:"\f840"}.bi-0-square-fill::before{content:"\f841"}.bi-0-square::before{content:"\f842"}.bi-rocket-fill::before{content:"\f843"}.bi-rocket-takeoff-fill::before{content:"\f844"}.bi-rocket-takeoff::before{content:"\f845"}.bi-rocket::before{content:"\f846"}.bi-stripe::before{content:"\f847"}.bi-subscript::before{content:"\f848"}.bi-superscript::before{content:"\f849"}.bi-trello::before{content:"\f84a"}.bi-envelope-at-fill::before{content:"\f84b"}.bi-envelope-at::before{content:"\f84c"}.bi-regex::before{content:"\f84d"}.bi-text-wrap::before{content:"\f84e"}.bi-sign-dead-end-fill::before{content:"\f84f"}.bi-sign-dead-end::before{content:"\f850"}.bi-sign-do-not-enter-fill::before{content:"\f851"}.bi-sign-do-not-enter::before{content:"\f852"}.bi-sign-intersection-fill::before{content:"\f853"}.bi-sign-intersection-side-fill::before{content:"\f854"}.bi-sign-intersection-side::before{content:"\f855"}.bi-sign-intersection-t-fill::before{content:"\f856"}.bi-sign-intersection-t::before{content:"\f857"}.bi-sign-intersection-y-fill::before{content:"\f858"}.bi-sign-intersection-y::before{content:"\f859"}.bi-sign-intersection::before{content:"\f85a"}.bi-sign-merge-left-fill::before{content:"\f85b"}.bi-sign-merge-left::before{content:"\f85c"}.bi-sign-merge-right-fill::before{content:"\f85d"}.bi-sign-merge-right::before{content:"\f85e"}.bi-sign-no-left-turn-fill::before{content:"\f85f"}.bi-sign-no-left-turn::before{content:"\f860"}.bi-sign-no-parking-fill::before{content:"\f861"}.bi-sign-no-parking::before{content:"\f862"}.bi-sign-no-right-turn-fill::before{content:"\f863"}.bi-sign-no-right-turn::before{content:"\f864"}.bi-sign-railroad-fill::before{content:"\f865"}.bi-sign-railroad::before{content:"\f866"}.bi-building-add::before{content:"\f867"}.bi-building-check::before{content:"\f868"}.bi-building-dash::before{content:"\f869"}.bi-building-down::before{content:"\f86a"}.bi-building-exclamation::before{content:"\f86b"}.bi-building-fill-add::before{content:"\f86c"}.bi-building-fill-check::before{content:"\f86d"}.bi-building-fill-dash::before{content:"\f86e"}.bi-building-fill-down::before{content:"\f86f"}.bi-building-fill-exclamation::before{content:"\f870"}.bi-building-fill-gear::before{content:"\f871"}.bi-building-fill-lock::before{content:"\f872"}.bi-building-fill-slash::before{content:"\f873"}.bi-building-fill-up::before{content:"\f874"}.bi-building-fill-x::before{content:"\f875"}.bi-building-fill::before{content:"\f876"}.bi-building-gear::before{content:"\f877"}.bi-building-lock::before{content:"\f878"}.bi-building-slash::before{content:"\f879"}.bi-building-up::before{content:"\f87a"}.bi-building-x::before{content:"\f87b"}.bi-buildings-fill::before{content:"\f87c"}.bi-buildings::before{content:"\f87d"}.bi-bus-front-fill::before{content:"\f87e"}.bi-bus-front::before{content:"\f87f"}.bi-ev-front-fill::before{content:"\f880"}.bi-ev-front::before{content:"\f881"}.bi-globe-americas::before{content:"\f882"}.bi-globe-asia-australia::before{content:"\f883"}.bi-globe-central-south-asia::before{content:"\f884"}.bi-globe-europe-africa::before{content:"\f885"}.bi-house-add-fill::before{content:"\f886"}.bi-house-add::before{content:"\f887"}.bi-house-check-fill::before{content:"\f888"}.bi-house-check::before{content:"\f889"}.bi-house-dash-fill::before{content:"\f88a"}.bi-house-dash::before{content:"\f88b"}.bi-house-down-fill::before{content:"\f88c"}.bi-house-down::before{content:"\f88d"}.bi-house-exclamation-fill::before{content:"\f88e"}.bi-house-exclamation::before{content:"\f88f"}.bi-house-gear-fill::before{content:"\f890"}.bi-house-gear::before{content:"\f891"}.bi-house-lock-fill::before{content:"\f892"}.bi-house-lock::before{content:"\f893"}.bi-house-slash-fill::before{content:"\f894"}.bi-house-slash::before{content:"\f895"}.bi-house-up-fill::before{content:"\f896"}.bi-house-up::before{content:"\f897"}.bi-house-x-fill::before{content:"\f898"}.bi-house-x::before{content:"\f899"}.bi-person-add::before{content:"\f89a"}.bi-person-down::before{content:"\f89b"}.bi-person-exclamation::before{content:"\f89c"}.bi-person-fill-add::before{content:"\f89d"}.bi-person-fill-check::before{content:"\f89e"}.bi-person-fill-dash::before{content:"\f89f"}.bi-person-fill-down::before{content:"\f8a0"}.bi-person-fill-exclamation::before{content:"\f8a1"}.bi-person-fill-gear::before{content:"\f8a2"}.bi-person-fill-lock::before{content:"\f8a3"}.bi-person-fill-slash::before{content:"\f8a4"}.bi-person-fill-up::before{content:"\f8a5"}.bi-person-fill-x::before{content:"\f8a6"}.bi-person-gear::before{content:"\f8a7"}.bi-person-lock::before{content:"\f8a8"}.bi-person-slash::before{content:"\f8a9"}.bi-person-up::before{content:"\f8aa"}.bi-scooter::before{content:"\f8ab"}.bi-taxi-front-fill::before{content:"\f8ac"}.bi-taxi-front::before{content:"\f8ad"}.bi-amd::before{content:"\f8ae"}.bi-database-add::before{content:"\f8af"}.bi-database-check::before{content:"\f8b0"}.bi-database-dash::before{content:"\f8b1"}.bi-database-down::before{content:"\f8b2"}.bi-database-exclamation::before{content:"\f8b3"}.bi-database-fill-add::before{content:"\f8b4"}.bi-database-fill-check::before{content:"\f8b5"}.bi-database-fill-dash::before{content:"\f8b6"}.bi-database-fill-down::before{content:"\f8b7"}.bi-database-fill-exclamation::before{content:"\f8b8"}.bi-database-fill-gear::before{content:"\f8b9"}.bi-database-fill-lock::before{content:"\f8ba"}.bi-database-fill-slash::before{content:"\f8bb"}.bi-database-fill-up::before{content:"\f8bc"}.bi-database-fill-x::before{content:"\f8bd"}.bi-database-fill::before{content:"\f8be"}.bi-database-gear::before{content:"\f8bf"}.bi-database-lock::before{content:"\f8c0"}.bi-database-slash::before{content:"\f8c1"}.bi-database-up::before{content:"\f8c2"}.bi-database-x::before{content:"\f8c3"}.bi-database::before{content:"\f8c4"}.bi-houses-fill::before{content:"\f8c5"}.bi-houses::before{content:"\f8c6"}.bi-nvidia::before{content:"\f8c7"}.bi-person-vcard-fill::before{content:"\f8c8"}.bi-person-vcard::before{content:"\f8c9"}.bi-sina-weibo::before{content:"\f8ca"}.bi-tencent-qq::before{content:"\f8cb"}.bi-wikipedia::before{content:"\f8cc"}.bi-alphabet-uppercase::before{content:"\f2a5"}.bi-alphabet::before{content:"\f68a"}.bi-amazon::before{content:"\f68d"}.bi-arrows-collapse-vertical::before{content:"\f690"}.bi-arrows-expand-vertical::before{content:"\f695"}.bi-arrows-vertical::before{content:"\f698"}.bi-arrows::before{content:"\f6a2"}.bi-ban-fill::before{content:"\f6a3"}.bi-ban::before{content:"\f6b6"}.bi-bing::before{content:"\f6c2"}.bi-cake::before{content:"\f6e0"}.bi-cake2::before{content:"\f6ed"}.bi-cookie::before{content:"\f6ee"}.bi-copy::before{content:"\f759"}.bi-crosshair::before{content:"\f769"}.bi-crosshair2::before{content:"\f794"}.bi-emoji-astonished-fill::before{content:"\f795"}.bi-emoji-astonished::before{content:"\f79a"}.bi-emoji-grimace-fill::before{content:"\f79b"}.bi-emoji-grimace::before{content:"\f7a0"}.bi-emoji-grin-fill::before{content:"\f7a1"}.bi-emoji-grin::before{content:"\f7a6"}.bi-emoji-surprise-fill::before{content:"\f7a7"}.bi-emoji-surprise::before{content:"\f7ac"}.bi-emoji-tear-fill::before{content:"\f7ad"}.bi-emoji-tear::before{content:"\f7b2"}.bi-envelope-arrow-down-fill::before{content:"\f7b3"}.bi-envelope-arrow-down::before{content:"\f7b8"}.bi-envelope-arrow-up-fill::before{content:"\f7b9"}.bi-envelope-arrow-up::before{content:"\f7be"}.bi-feather::before{content:"\f7bf"}.bi-feather2::before{content:"\f7c4"}.bi-floppy-fill::before{content:"\f7c5"}.bi-floppy::before{content:"\f7d8"}.bi-floppy2-fill::before{content:"\f7d9"}.bi-floppy2::before{content:"\f7e4"}.bi-gitlab::before{content:"\f7e5"}.bi-highlighter::before{content:"\f7f8"}.bi-marker-tip::before{content:"\f802"}.bi-nvme-fill::before{content:"\f803"}.bi-nvme::before{content:"\f80c"}.bi-opencollective::before{content:"\f80d"}.bi-pci-card-network::before{content:"\f8cd"}.bi-pci-card-sound::before{content:"\f8ce"}.bi-radar::before{content:"\f8cf"}.bi-send-arrow-down-fill::before{content:"\f8d0"}.bi-send-arrow-down::before{content:"\f8d1"}.bi-send-arrow-up-fill::before{content:"\f8d2"}.bi-send-arrow-up::before{content:"\f8d3"}.bi-sim-slash-fill::before{content:"\f8d4"}.bi-sim-slash::before{content:"\f8d5"}.bi-sourceforge::before{content:"\f8d6"}.bi-substack::before{content:"\f8d7"}.bi-threads-fill::before{content:"\f8d8"}.bi-threads::before{content:"\f8d9"}.bi-transparency::before{content:"\f8da"}.bi-twitter-x::before{content:"\f8db"}.bi-type-h4::before{content:"\f8dc"}.bi-type-h5::before{content:"\f8dd"}.bi-type-h6::before{content:"\f8de"}.bi-backpack-fill::before{content:"\f8df"}.bi-backpack::before{content:"\f8e0"}.bi-backpack2-fill::before{content:"\f8e1"}.bi-backpack2::before{content:"\f8e2"}.bi-backpack3-fill::before{content:"\f8e3"}.bi-backpack3::before{content:"\f8e4"}.bi-backpack4-fill::before{content:"\f8e5"}.bi-backpack4::before{content:"\f8e6"}.bi-brilliance::before{content:"\f8e7"}.bi-cake-fill::before{content:"\f8e8"}.bi-cake2-fill::before{content:"\f8e9"}.bi-duffle-fill::before{content:"\f8ea"}.bi-duffle::before{content:"\f8eb"}.bi-exposure::before{content:"\f8ec"}.bi-gender-neuter::before{content:"\f8ed"}.bi-highlights::before{content:"\f8ee"}.bi-luggage-fill::before{content:"\f8ef"}.bi-luggage::before{content:"\f8f0"}.bi-mailbox-flag::before{content:"\f8f1"}.bi-mailbox2-flag::before{content:"\f8f2"}.bi-noise-reduction::before{content:"\f8f3"}.bi-passport-fill::before{content:"\f8f4"}.bi-passport::before{content:"\f8f5"}.bi-person-arms-up::before{content:"\f8f6"}.bi-person-raised-hand::before{content:"\f8f7"}.bi-person-standing-dress::before{content:"\f8f8"}.bi-person-standing::before{content:"\f8f9"}.bi-person-walking::before{content:"\f8fa"}.bi-person-wheelchair::before{content:"\f8fb"}.bi-shadows::before{content:"\f8fc"}.bi-suitcase-fill::before{content:"\f8fd"}.bi-suitcase-lg-fill::before{content:"\f8fe"}.bi-suitcase-lg::before{content:"\f8ff"}.bi-suitcase::before{content:"\f900"}.bi-suitcase2-fill::before{content:"\f901"}.bi-suitcase2::before{content:"\f902"}.bi-vignette::before{content:"\f903"} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.scss b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.scss new file mode 100644 index 0000000..ea5c018 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/bootstrap-icons.scss @@ -0,0 +1,2090 @@ +/*! + * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/) + * Copyright 2019-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */ + +$bootstrap-icons-font: "bootstrap-icons" !default; +$bootstrap-icons-font-dir: "./fonts" !default; +$bootstrap-icons-font-file: "#{$bootstrap-icons-font-dir}/#{$bootstrap-icons-font}" !default; +$bootstrap-icons-font-hash: "24e3eb84d0bcaf83d77f904c78ac1f47" !default; +$bootstrap-icons-font-src: url("#{$bootstrap-icons-font-file}.woff2?#{$bootstrap-icons-font-hash}") format("woff2"), + url("#{$bootstrap-icons-font-file}.woff?#{$bootstrap-icons-font-hash}") format("woff") !default; + +@font-face { + font-display: block; + font-family: $bootstrap-icons-font; + src: $bootstrap-icons-font-src; +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: $bootstrap-icons-font !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +$bootstrap-icons-map: ( + "123": "\f67f", + "alarm-fill": "\f101", + "alarm": "\f102", + "align-bottom": "\f103", + "align-center": "\f104", + "align-end": "\f105", + "align-middle": "\f106", + "align-start": "\f107", + "align-top": "\f108", + "alt": "\f109", + "app-indicator": "\f10a", + "app": "\f10b", + "archive-fill": "\f10c", + "archive": "\f10d", + "arrow-90deg-down": "\f10e", + "arrow-90deg-left": "\f10f", + "arrow-90deg-right": "\f110", + "arrow-90deg-up": "\f111", + "arrow-bar-down": "\f112", + "arrow-bar-left": "\f113", + "arrow-bar-right": "\f114", + "arrow-bar-up": "\f115", + "arrow-clockwise": "\f116", + "arrow-counterclockwise": "\f117", + "arrow-down-circle-fill": "\f118", + "arrow-down-circle": "\f119", + "arrow-down-left-circle-fill": "\f11a", + "arrow-down-left-circle": "\f11b", + "arrow-down-left-square-fill": "\f11c", + "arrow-down-left-square": "\f11d", + "arrow-down-left": "\f11e", + "arrow-down-right-circle-fill": "\f11f", + "arrow-down-right-circle": "\f120", + "arrow-down-right-square-fill": "\f121", + "arrow-down-right-square": "\f122", + "arrow-down-right": "\f123", + "arrow-down-short": "\f124", + "arrow-down-square-fill": "\f125", + "arrow-down-square": "\f126", + "arrow-down-up": "\f127", + "arrow-down": "\f128", + "arrow-left-circle-fill": "\f129", + "arrow-left-circle": "\f12a", + "arrow-left-right": "\f12b", + "arrow-left-short": "\f12c", + "arrow-left-square-fill": "\f12d", + "arrow-left-square": "\f12e", + "arrow-left": "\f12f", + "arrow-repeat": "\f130", + "arrow-return-left": "\f131", + "arrow-return-right": "\f132", + "arrow-right-circle-fill": "\f133", + "arrow-right-circle": "\f134", + "arrow-right-short": "\f135", + "arrow-right-square-fill": "\f136", + "arrow-right-square": "\f137", + "arrow-right": "\f138", + "arrow-up-circle-fill": "\f139", + "arrow-up-circle": "\f13a", + "arrow-up-left-circle-fill": "\f13b", + "arrow-up-left-circle": "\f13c", + "arrow-up-left-square-fill": "\f13d", + "arrow-up-left-square": "\f13e", + "arrow-up-left": "\f13f", + "arrow-up-right-circle-fill": "\f140", + "arrow-up-right-circle": "\f141", + "arrow-up-right-square-fill": "\f142", + "arrow-up-right-square": "\f143", + "arrow-up-right": "\f144", + "arrow-up-short": "\f145", + "arrow-up-square-fill": "\f146", + "arrow-up-square": "\f147", + "arrow-up": "\f148", + "arrows-angle-contract": "\f149", + "arrows-angle-expand": "\f14a", + "arrows-collapse": "\f14b", + "arrows-expand": "\f14c", + "arrows-fullscreen": "\f14d", + "arrows-move": "\f14e", + "aspect-ratio-fill": "\f14f", + "aspect-ratio": "\f150", + "asterisk": "\f151", + "at": "\f152", + "award-fill": "\f153", + "award": "\f154", + "back": "\f155", + "backspace-fill": "\f156", + "backspace-reverse-fill": "\f157", + "backspace-reverse": "\f158", + "backspace": "\f159", + "badge-3d-fill": "\f15a", + "badge-3d": "\f15b", + "badge-4k-fill": "\f15c", + "badge-4k": "\f15d", + "badge-8k-fill": "\f15e", + "badge-8k": "\f15f", + "badge-ad-fill": "\f160", + "badge-ad": "\f161", + "badge-ar-fill": "\f162", + "badge-ar": "\f163", + "badge-cc-fill": "\f164", + "badge-cc": "\f165", + "badge-hd-fill": "\f166", + "badge-hd": "\f167", + "badge-tm-fill": "\f168", + "badge-tm": "\f169", + "badge-vo-fill": "\f16a", + "badge-vo": "\f16b", + "badge-vr-fill": "\f16c", + "badge-vr": "\f16d", + "badge-wc-fill": "\f16e", + "badge-wc": "\f16f", + "bag-check-fill": "\f170", + "bag-check": "\f171", + "bag-dash-fill": "\f172", + "bag-dash": "\f173", + "bag-fill": "\f174", + "bag-plus-fill": "\f175", + "bag-plus": "\f176", + "bag-x-fill": "\f177", + "bag-x": "\f178", + "bag": "\f179", + "bar-chart-fill": "\f17a", + "bar-chart-line-fill": "\f17b", + "bar-chart-line": "\f17c", + "bar-chart-steps": "\f17d", + "bar-chart": "\f17e", + "basket-fill": "\f17f", + "basket": "\f180", + "basket2-fill": "\f181", + "basket2": "\f182", + "basket3-fill": "\f183", + "basket3": "\f184", + "battery-charging": "\f185", + "battery-full": "\f186", + "battery-half": "\f187", + "battery": "\f188", + "bell-fill": "\f189", + "bell": "\f18a", + "bezier": "\f18b", + "bezier2": "\f18c", + "bicycle": "\f18d", + "binoculars-fill": "\f18e", + "binoculars": "\f18f", + "blockquote-left": "\f190", + "blockquote-right": "\f191", + "book-fill": "\f192", + "book-half": "\f193", + "book": "\f194", + "bookmark-check-fill": "\f195", + "bookmark-check": "\f196", + "bookmark-dash-fill": "\f197", + "bookmark-dash": "\f198", + "bookmark-fill": "\f199", + "bookmark-heart-fill": "\f19a", + "bookmark-heart": "\f19b", + "bookmark-plus-fill": "\f19c", + "bookmark-plus": "\f19d", + "bookmark-star-fill": "\f19e", + "bookmark-star": "\f19f", + "bookmark-x-fill": "\f1a0", + "bookmark-x": "\f1a1", + "bookmark": "\f1a2", + "bookmarks-fill": "\f1a3", + "bookmarks": "\f1a4", + "bookshelf": "\f1a5", + "bootstrap-fill": "\f1a6", + "bootstrap-reboot": "\f1a7", + "bootstrap": "\f1a8", + "border-all": "\f1a9", + "border-bottom": "\f1aa", + "border-center": "\f1ab", + "border-inner": "\f1ac", + "border-left": "\f1ad", + "border-middle": "\f1ae", + "border-outer": "\f1af", + "border-right": "\f1b0", + "border-style": "\f1b1", + "border-top": "\f1b2", + "border-width": "\f1b3", + "border": "\f1b4", + "bounding-box-circles": "\f1b5", + "bounding-box": "\f1b6", + "box-arrow-down-left": "\f1b7", + "box-arrow-down-right": "\f1b8", + "box-arrow-down": "\f1b9", + "box-arrow-in-down-left": "\f1ba", + "box-arrow-in-down-right": "\f1bb", + "box-arrow-in-down": "\f1bc", + "box-arrow-in-left": "\f1bd", + "box-arrow-in-right": "\f1be", + "box-arrow-in-up-left": "\f1bf", + "box-arrow-in-up-right": "\f1c0", + "box-arrow-in-up": "\f1c1", + "box-arrow-left": "\f1c2", + "box-arrow-right": "\f1c3", + "box-arrow-up-left": "\f1c4", + "box-arrow-up-right": "\f1c5", + "box-arrow-up": "\f1c6", + "box-seam": "\f1c7", + "box": "\f1c8", + "braces": "\f1c9", + "bricks": "\f1ca", + "briefcase-fill": "\f1cb", + "briefcase": "\f1cc", + "brightness-alt-high-fill": "\f1cd", + "brightness-alt-high": "\f1ce", + "brightness-alt-low-fill": "\f1cf", + "brightness-alt-low": "\f1d0", + "brightness-high-fill": "\f1d1", + "brightness-high": "\f1d2", + "brightness-low-fill": "\f1d3", + "brightness-low": "\f1d4", + "broadcast-pin": "\f1d5", + "broadcast": "\f1d6", + "brush-fill": "\f1d7", + "brush": "\f1d8", + "bucket-fill": "\f1d9", + "bucket": "\f1da", + "bug-fill": "\f1db", + "bug": "\f1dc", + "building": "\f1dd", + "bullseye": "\f1de", + "calculator-fill": "\f1df", + "calculator": "\f1e0", + "calendar-check-fill": "\f1e1", + "calendar-check": "\f1e2", + "calendar-date-fill": "\f1e3", + "calendar-date": "\f1e4", + "calendar-day-fill": "\f1e5", + "calendar-day": "\f1e6", + "calendar-event-fill": "\f1e7", + "calendar-event": "\f1e8", + "calendar-fill": "\f1e9", + "calendar-minus-fill": "\f1ea", + "calendar-minus": "\f1eb", + "calendar-month-fill": "\f1ec", + "calendar-month": "\f1ed", + "calendar-plus-fill": "\f1ee", + "calendar-plus": "\f1ef", + "calendar-range-fill": "\f1f0", + "calendar-range": "\f1f1", + "calendar-week-fill": "\f1f2", + "calendar-week": "\f1f3", + "calendar-x-fill": "\f1f4", + "calendar-x": "\f1f5", + "calendar": "\f1f6", + "calendar2-check-fill": "\f1f7", + "calendar2-check": "\f1f8", + "calendar2-date-fill": "\f1f9", + "calendar2-date": "\f1fa", + "calendar2-day-fill": "\f1fb", + "calendar2-day": "\f1fc", + "calendar2-event-fill": "\f1fd", + "calendar2-event": "\f1fe", + "calendar2-fill": "\f1ff", + "calendar2-minus-fill": "\f200", + "calendar2-minus": "\f201", + "calendar2-month-fill": "\f202", + "calendar2-month": "\f203", + "calendar2-plus-fill": "\f204", + "calendar2-plus": "\f205", + "calendar2-range-fill": "\f206", + "calendar2-range": "\f207", + "calendar2-week-fill": "\f208", + "calendar2-week": "\f209", + "calendar2-x-fill": "\f20a", + "calendar2-x": "\f20b", + "calendar2": "\f20c", + "calendar3-event-fill": "\f20d", + "calendar3-event": "\f20e", + "calendar3-fill": "\f20f", + "calendar3-range-fill": "\f210", + "calendar3-range": "\f211", + "calendar3-week-fill": "\f212", + "calendar3-week": "\f213", + "calendar3": "\f214", + "calendar4-event": "\f215", + "calendar4-range": "\f216", + "calendar4-week": "\f217", + "calendar4": "\f218", + "camera-fill": "\f219", + "camera-reels-fill": "\f21a", + "camera-reels": "\f21b", + "camera-video-fill": "\f21c", + "camera-video-off-fill": "\f21d", + "camera-video-off": "\f21e", + "camera-video": "\f21f", + "camera": "\f220", + "camera2": "\f221", + "capslock-fill": "\f222", + "capslock": "\f223", + "card-checklist": "\f224", + "card-heading": "\f225", + "card-image": "\f226", + "card-list": "\f227", + "card-text": "\f228", + "caret-down-fill": "\f229", + "caret-down-square-fill": "\f22a", + "caret-down-square": "\f22b", + "caret-down": "\f22c", + "caret-left-fill": "\f22d", + "caret-left-square-fill": "\f22e", + "caret-left-square": "\f22f", + "caret-left": "\f230", + "caret-right-fill": "\f231", + "caret-right-square-fill": "\f232", + "caret-right-square": "\f233", + "caret-right": "\f234", + "caret-up-fill": "\f235", + "caret-up-square-fill": "\f236", + "caret-up-square": "\f237", + "caret-up": "\f238", + "cart-check-fill": "\f239", + "cart-check": "\f23a", + "cart-dash-fill": "\f23b", + "cart-dash": "\f23c", + "cart-fill": "\f23d", + "cart-plus-fill": "\f23e", + "cart-plus": "\f23f", + "cart-x-fill": "\f240", + "cart-x": "\f241", + "cart": "\f242", + "cart2": "\f243", + "cart3": "\f244", + "cart4": "\f245", + "cash-stack": "\f246", + "cash": "\f247", + "cast": "\f248", + "chat-dots-fill": "\f249", + "chat-dots": "\f24a", + "chat-fill": "\f24b", + "chat-left-dots-fill": "\f24c", + "chat-left-dots": "\f24d", + "chat-left-fill": "\f24e", + "chat-left-quote-fill": "\f24f", + "chat-left-quote": "\f250", + "chat-left-text-fill": "\f251", + "chat-left-text": "\f252", + "chat-left": "\f253", + "chat-quote-fill": "\f254", + "chat-quote": "\f255", + "chat-right-dots-fill": "\f256", + "chat-right-dots": "\f257", + "chat-right-fill": "\f258", + "chat-right-quote-fill": "\f259", + "chat-right-quote": "\f25a", + "chat-right-text-fill": "\f25b", + "chat-right-text": "\f25c", + "chat-right": "\f25d", + "chat-square-dots-fill": "\f25e", + "chat-square-dots": "\f25f", + "chat-square-fill": "\f260", + "chat-square-quote-fill": "\f261", + "chat-square-quote": "\f262", + "chat-square-text-fill": "\f263", + "chat-square-text": "\f264", + "chat-square": "\f265", + "chat-text-fill": "\f266", + "chat-text": "\f267", + "chat": "\f268", + "check-all": "\f269", + "check-circle-fill": "\f26a", + "check-circle": "\f26b", + "check-square-fill": "\f26c", + "check-square": "\f26d", + "check": "\f26e", + "check2-all": "\f26f", + "check2-circle": "\f270", + "check2-square": "\f271", + "check2": "\f272", + "chevron-bar-contract": "\f273", + "chevron-bar-down": "\f274", + "chevron-bar-expand": "\f275", + "chevron-bar-left": "\f276", + "chevron-bar-right": "\f277", + "chevron-bar-up": "\f278", + "chevron-compact-down": "\f279", + "chevron-compact-left": "\f27a", + "chevron-compact-right": "\f27b", + "chevron-compact-up": "\f27c", + "chevron-contract": "\f27d", + "chevron-double-down": "\f27e", + "chevron-double-left": "\f27f", + "chevron-double-right": "\f280", + "chevron-double-up": "\f281", + "chevron-down": "\f282", + "chevron-expand": "\f283", + "chevron-left": "\f284", + "chevron-right": "\f285", + "chevron-up": "\f286", + "circle-fill": "\f287", + "circle-half": "\f288", + "circle-square": "\f289", + "circle": "\f28a", + "clipboard-check": "\f28b", + "clipboard-data": "\f28c", + "clipboard-minus": "\f28d", + "clipboard-plus": "\f28e", + "clipboard-x": "\f28f", + "clipboard": "\f290", + "clock-fill": "\f291", + "clock-history": "\f292", + "clock": "\f293", + "cloud-arrow-down-fill": "\f294", + "cloud-arrow-down": "\f295", + "cloud-arrow-up-fill": "\f296", + "cloud-arrow-up": "\f297", + "cloud-check-fill": "\f298", + "cloud-check": "\f299", + "cloud-download-fill": "\f29a", + "cloud-download": "\f29b", + "cloud-drizzle-fill": "\f29c", + "cloud-drizzle": "\f29d", + "cloud-fill": "\f29e", + "cloud-fog-fill": "\f29f", + "cloud-fog": "\f2a0", + "cloud-fog2-fill": "\f2a1", + "cloud-fog2": "\f2a2", + "cloud-hail-fill": "\f2a3", + "cloud-hail": "\f2a4", + "cloud-haze-fill": "\f2a6", + "cloud-haze": "\f2a7", + "cloud-haze2-fill": "\f2a8", + "cloud-lightning-fill": "\f2a9", + "cloud-lightning-rain-fill": "\f2aa", + "cloud-lightning-rain": "\f2ab", + "cloud-lightning": "\f2ac", + "cloud-minus-fill": "\f2ad", + "cloud-minus": "\f2ae", + "cloud-moon-fill": "\f2af", + "cloud-moon": "\f2b0", + "cloud-plus-fill": "\f2b1", + "cloud-plus": "\f2b2", + "cloud-rain-fill": "\f2b3", + "cloud-rain-heavy-fill": "\f2b4", + "cloud-rain-heavy": "\f2b5", + "cloud-rain": "\f2b6", + "cloud-slash-fill": "\f2b7", + "cloud-slash": "\f2b8", + "cloud-sleet-fill": "\f2b9", + "cloud-sleet": "\f2ba", + "cloud-snow-fill": "\f2bb", + "cloud-snow": "\f2bc", + "cloud-sun-fill": "\f2bd", + "cloud-sun": "\f2be", + "cloud-upload-fill": "\f2bf", + "cloud-upload": "\f2c0", + "cloud": "\f2c1", + "clouds-fill": "\f2c2", + "clouds": "\f2c3", + "cloudy-fill": "\f2c4", + "cloudy": "\f2c5", + "code-slash": "\f2c6", + "code-square": "\f2c7", + "code": "\f2c8", + "collection-fill": "\f2c9", + "collection-play-fill": "\f2ca", + "collection-play": "\f2cb", + "collection": "\f2cc", + "columns-gap": "\f2cd", + "columns": "\f2ce", + "command": "\f2cf", + "compass-fill": "\f2d0", + "compass": "\f2d1", + "cone-striped": "\f2d2", + "cone": "\f2d3", + "controller": "\f2d4", + "cpu-fill": "\f2d5", + "cpu": "\f2d6", + "credit-card-2-back-fill": "\f2d7", + "credit-card-2-back": "\f2d8", + "credit-card-2-front-fill": "\f2d9", + "credit-card-2-front": "\f2da", + "credit-card-fill": "\f2db", + "credit-card": "\f2dc", + "crop": "\f2dd", + "cup-fill": "\f2de", + "cup-straw": "\f2df", + "cup": "\f2e0", + "cursor-fill": "\f2e1", + "cursor-text": "\f2e2", + "cursor": "\f2e3", + "dash-circle-dotted": "\f2e4", + "dash-circle-fill": "\f2e5", + "dash-circle": "\f2e6", + "dash-square-dotted": "\f2e7", + "dash-square-fill": "\f2e8", + "dash-square": "\f2e9", + "dash": "\f2ea", + "diagram-2-fill": "\f2eb", + "diagram-2": "\f2ec", + "diagram-3-fill": "\f2ed", + "diagram-3": "\f2ee", + "diamond-fill": "\f2ef", + "diamond-half": "\f2f0", + "diamond": "\f2f1", + "dice-1-fill": "\f2f2", + "dice-1": "\f2f3", + "dice-2-fill": "\f2f4", + "dice-2": "\f2f5", + "dice-3-fill": "\f2f6", + "dice-3": "\f2f7", + "dice-4-fill": "\f2f8", + "dice-4": "\f2f9", + "dice-5-fill": "\f2fa", + "dice-5": "\f2fb", + "dice-6-fill": "\f2fc", + "dice-6": "\f2fd", + "disc-fill": "\f2fe", + "disc": "\f2ff", + "discord": "\f300", + "display-fill": "\f301", + "display": "\f302", + "distribute-horizontal": "\f303", + "distribute-vertical": "\f304", + "door-closed-fill": "\f305", + "door-closed": "\f306", + "door-open-fill": "\f307", + "door-open": "\f308", + "dot": "\f309", + "download": "\f30a", + "droplet-fill": "\f30b", + "droplet-half": "\f30c", + "droplet": "\f30d", + "earbuds": "\f30e", + "easel-fill": "\f30f", + "easel": "\f310", + "egg-fill": "\f311", + "egg-fried": "\f312", + "egg": "\f313", + "eject-fill": "\f314", + "eject": "\f315", + "emoji-angry-fill": "\f316", + "emoji-angry": "\f317", + "emoji-dizzy-fill": "\f318", + "emoji-dizzy": "\f319", + "emoji-expressionless-fill": "\f31a", + "emoji-expressionless": "\f31b", + "emoji-frown-fill": "\f31c", + "emoji-frown": "\f31d", + "emoji-heart-eyes-fill": "\f31e", + "emoji-heart-eyes": "\f31f", + "emoji-laughing-fill": "\f320", + "emoji-laughing": "\f321", + "emoji-neutral-fill": "\f322", + "emoji-neutral": "\f323", + "emoji-smile-fill": "\f324", + "emoji-smile-upside-down-fill": "\f325", + "emoji-smile-upside-down": "\f326", + "emoji-smile": "\f327", + "emoji-sunglasses-fill": "\f328", + "emoji-sunglasses": "\f329", + "emoji-wink-fill": "\f32a", + "emoji-wink": "\f32b", + "envelope-fill": "\f32c", + "envelope-open-fill": "\f32d", + "envelope-open": "\f32e", + "envelope": "\f32f", + "eraser-fill": "\f330", + "eraser": "\f331", + "exclamation-circle-fill": "\f332", + "exclamation-circle": "\f333", + "exclamation-diamond-fill": "\f334", + "exclamation-diamond": "\f335", + "exclamation-octagon-fill": "\f336", + "exclamation-octagon": "\f337", + "exclamation-square-fill": "\f338", + "exclamation-square": "\f339", + "exclamation-triangle-fill": "\f33a", + "exclamation-triangle": "\f33b", + "exclamation": "\f33c", + "exclude": "\f33d", + "eye-fill": "\f33e", + "eye-slash-fill": "\f33f", + "eye-slash": "\f340", + "eye": "\f341", + "eyedropper": "\f342", + "eyeglasses": "\f343", + "facebook": "\f344", + "file-arrow-down-fill": "\f345", + "file-arrow-down": "\f346", + "file-arrow-up-fill": "\f347", + "file-arrow-up": "\f348", + "file-bar-graph-fill": "\f349", + "file-bar-graph": "\f34a", + "file-binary-fill": "\f34b", + "file-binary": "\f34c", + "file-break-fill": "\f34d", + "file-break": "\f34e", + "file-check-fill": "\f34f", + "file-check": "\f350", + "file-code-fill": "\f351", + "file-code": "\f352", + "file-diff-fill": "\f353", + "file-diff": "\f354", + "file-earmark-arrow-down-fill": "\f355", + "file-earmark-arrow-down": "\f356", + "file-earmark-arrow-up-fill": "\f357", + "file-earmark-arrow-up": "\f358", + "file-earmark-bar-graph-fill": "\f359", + "file-earmark-bar-graph": "\f35a", + "file-earmark-binary-fill": "\f35b", + "file-earmark-binary": "\f35c", + "file-earmark-break-fill": "\f35d", + "file-earmark-break": "\f35e", + "file-earmark-check-fill": "\f35f", + "file-earmark-check": "\f360", + "file-earmark-code-fill": "\f361", + "file-earmark-code": "\f362", + "file-earmark-diff-fill": "\f363", + "file-earmark-diff": "\f364", + "file-earmark-easel-fill": "\f365", + "file-earmark-easel": "\f366", + "file-earmark-excel-fill": "\f367", + "file-earmark-excel": "\f368", + "file-earmark-fill": "\f369", + "file-earmark-font-fill": "\f36a", + "file-earmark-font": "\f36b", + "file-earmark-image-fill": "\f36c", + "file-earmark-image": "\f36d", + "file-earmark-lock-fill": "\f36e", + "file-earmark-lock": "\f36f", + "file-earmark-lock2-fill": "\f370", + "file-earmark-lock2": "\f371", + "file-earmark-medical-fill": "\f372", + "file-earmark-medical": "\f373", + "file-earmark-minus-fill": "\f374", + "file-earmark-minus": "\f375", + "file-earmark-music-fill": "\f376", + "file-earmark-music": "\f377", + "file-earmark-person-fill": "\f378", + "file-earmark-person": "\f379", + "file-earmark-play-fill": "\f37a", + "file-earmark-play": "\f37b", + "file-earmark-plus-fill": "\f37c", + "file-earmark-plus": "\f37d", + "file-earmark-post-fill": "\f37e", + "file-earmark-post": "\f37f", + "file-earmark-ppt-fill": "\f380", + "file-earmark-ppt": "\f381", + "file-earmark-richtext-fill": "\f382", + "file-earmark-richtext": "\f383", + "file-earmark-ruled-fill": "\f384", + "file-earmark-ruled": "\f385", + "file-earmark-slides-fill": "\f386", + "file-earmark-slides": "\f387", + "file-earmark-spreadsheet-fill": "\f388", + "file-earmark-spreadsheet": "\f389", + "file-earmark-text-fill": "\f38a", + "file-earmark-text": "\f38b", + "file-earmark-word-fill": "\f38c", + "file-earmark-word": "\f38d", + "file-earmark-x-fill": "\f38e", + "file-earmark-x": "\f38f", + "file-earmark-zip-fill": "\f390", + "file-earmark-zip": "\f391", + "file-earmark": "\f392", + "file-easel-fill": "\f393", + "file-easel": "\f394", + "file-excel-fill": "\f395", + "file-excel": "\f396", + "file-fill": "\f397", + "file-font-fill": "\f398", + "file-font": "\f399", + "file-image-fill": "\f39a", + "file-image": "\f39b", + "file-lock-fill": "\f39c", + "file-lock": "\f39d", + "file-lock2-fill": "\f39e", + "file-lock2": "\f39f", + "file-medical-fill": "\f3a0", + "file-medical": "\f3a1", + "file-minus-fill": "\f3a2", + "file-minus": "\f3a3", + "file-music-fill": "\f3a4", + "file-music": "\f3a5", + "file-person-fill": "\f3a6", + "file-person": "\f3a7", + "file-play-fill": "\f3a8", + "file-play": "\f3a9", + "file-plus-fill": "\f3aa", + "file-plus": "\f3ab", + "file-post-fill": "\f3ac", + "file-post": "\f3ad", + "file-ppt-fill": "\f3ae", + "file-ppt": "\f3af", + "file-richtext-fill": "\f3b0", + "file-richtext": "\f3b1", + "file-ruled-fill": "\f3b2", + "file-ruled": "\f3b3", + "file-slides-fill": "\f3b4", + "file-slides": "\f3b5", + "file-spreadsheet-fill": "\f3b6", + "file-spreadsheet": "\f3b7", + "file-text-fill": "\f3b8", + "file-text": "\f3b9", + "file-word-fill": "\f3ba", + "file-word": "\f3bb", + "file-x-fill": "\f3bc", + "file-x": "\f3bd", + "file-zip-fill": "\f3be", + "file-zip": "\f3bf", + "file": "\f3c0", + "files-alt": "\f3c1", + "files": "\f3c2", + "film": "\f3c3", + "filter-circle-fill": "\f3c4", + "filter-circle": "\f3c5", + "filter-left": "\f3c6", + "filter-right": "\f3c7", + "filter-square-fill": "\f3c8", + "filter-square": "\f3c9", + "filter": "\f3ca", + "flag-fill": "\f3cb", + "flag": "\f3cc", + "flower1": "\f3cd", + "flower2": "\f3ce", + "flower3": "\f3cf", + "folder-check": "\f3d0", + "folder-fill": "\f3d1", + "folder-minus": "\f3d2", + "folder-plus": "\f3d3", + "folder-symlink-fill": "\f3d4", + "folder-symlink": "\f3d5", + "folder-x": "\f3d6", + "folder": "\f3d7", + "folder2-open": "\f3d8", + "folder2": "\f3d9", + "fonts": "\f3da", + "forward-fill": "\f3db", + "forward": "\f3dc", + "front": "\f3dd", + "fullscreen-exit": "\f3de", + "fullscreen": "\f3df", + "funnel-fill": "\f3e0", + "funnel": "\f3e1", + "gear-fill": "\f3e2", + "gear-wide-connected": "\f3e3", + "gear-wide": "\f3e4", + "gear": "\f3e5", + "gem": "\f3e6", + "geo-alt-fill": "\f3e7", + "geo-alt": "\f3e8", + "geo-fill": "\f3e9", + "geo": "\f3ea", + "gift-fill": "\f3eb", + "gift": "\f3ec", + "github": "\f3ed", + "globe": "\f3ee", + "globe2": "\f3ef", + "google": "\f3f0", + "graph-down": "\f3f1", + "graph-up": "\f3f2", + "grid-1x2-fill": "\f3f3", + "grid-1x2": "\f3f4", + "grid-3x2-gap-fill": "\f3f5", + "grid-3x2-gap": "\f3f6", + "grid-3x2": "\f3f7", + "grid-3x3-gap-fill": "\f3f8", + "grid-3x3-gap": "\f3f9", + "grid-3x3": "\f3fa", + "grid-fill": "\f3fb", + "grid": "\f3fc", + "grip-horizontal": "\f3fd", + "grip-vertical": "\f3fe", + "hammer": "\f3ff", + "hand-index-fill": "\f400", + "hand-index-thumb-fill": "\f401", + "hand-index-thumb": "\f402", + "hand-index": "\f403", + "hand-thumbs-down-fill": "\f404", + "hand-thumbs-down": "\f405", + "hand-thumbs-up-fill": "\f406", + "hand-thumbs-up": "\f407", + "handbag-fill": "\f408", + "handbag": "\f409", + "hash": "\f40a", + "hdd-fill": "\f40b", + "hdd-network-fill": "\f40c", + "hdd-network": "\f40d", + "hdd-rack-fill": "\f40e", + "hdd-rack": "\f40f", + "hdd-stack-fill": "\f410", + "hdd-stack": "\f411", + "hdd": "\f412", + "headphones": "\f413", + "headset": "\f414", + "heart-fill": "\f415", + "heart-half": "\f416", + "heart": "\f417", + "heptagon-fill": "\f418", + "heptagon-half": "\f419", + "heptagon": "\f41a", + "hexagon-fill": "\f41b", + "hexagon-half": "\f41c", + "hexagon": "\f41d", + "hourglass-bottom": "\f41e", + "hourglass-split": "\f41f", + "hourglass-top": "\f420", + "hourglass": "\f421", + "house-door-fill": "\f422", + "house-door": "\f423", + "house-fill": "\f424", + "house": "\f425", + "hr": "\f426", + "hurricane": "\f427", + "image-alt": "\f428", + "image-fill": "\f429", + "image": "\f42a", + "images": "\f42b", + "inbox-fill": "\f42c", + "inbox": "\f42d", + "inboxes-fill": "\f42e", + "inboxes": "\f42f", + "info-circle-fill": "\f430", + "info-circle": "\f431", + "info-square-fill": "\f432", + "info-square": "\f433", + "info": "\f434", + "input-cursor-text": "\f435", + "input-cursor": "\f436", + "instagram": "\f437", + "intersect": "\f438", + "journal-album": "\f439", + "journal-arrow-down": "\f43a", + "journal-arrow-up": "\f43b", + "journal-bookmark-fill": "\f43c", + "journal-bookmark": "\f43d", + "journal-check": "\f43e", + "journal-code": "\f43f", + "journal-medical": "\f440", + "journal-minus": "\f441", + "journal-plus": "\f442", + "journal-richtext": "\f443", + "journal-text": "\f444", + "journal-x": "\f445", + "journal": "\f446", + "journals": "\f447", + "joystick": "\f448", + "justify-left": "\f449", + "justify-right": "\f44a", + "justify": "\f44b", + "kanban-fill": "\f44c", + "kanban": "\f44d", + "key-fill": "\f44e", + "key": "\f44f", + "keyboard-fill": "\f450", + "keyboard": "\f451", + "ladder": "\f452", + "lamp-fill": "\f453", + "lamp": "\f454", + "laptop-fill": "\f455", + "laptop": "\f456", + "layer-backward": "\f457", + "layer-forward": "\f458", + "layers-fill": "\f459", + "layers-half": "\f45a", + "layers": "\f45b", + "layout-sidebar-inset-reverse": "\f45c", + "layout-sidebar-inset": "\f45d", + "layout-sidebar-reverse": "\f45e", + "layout-sidebar": "\f45f", + "layout-split": "\f460", + "layout-text-sidebar-reverse": "\f461", + "layout-text-sidebar": "\f462", + "layout-text-window-reverse": "\f463", + "layout-text-window": "\f464", + "layout-three-columns": "\f465", + "layout-wtf": "\f466", + "life-preserver": "\f467", + "lightbulb-fill": "\f468", + "lightbulb-off-fill": "\f469", + "lightbulb-off": "\f46a", + "lightbulb": "\f46b", + "lightning-charge-fill": "\f46c", + "lightning-charge": "\f46d", + "lightning-fill": "\f46e", + "lightning": "\f46f", + "link-45deg": "\f470", + "link": "\f471", + "linkedin": "\f472", + "list-check": "\f473", + "list-nested": "\f474", + "list-ol": "\f475", + "list-stars": "\f476", + "list-task": "\f477", + "list-ul": "\f478", + "list": "\f479", + "lock-fill": "\f47a", + "lock": "\f47b", + "mailbox": "\f47c", + "mailbox2": "\f47d", + "map-fill": "\f47e", + "map": "\f47f", + "markdown-fill": "\f480", + "markdown": "\f481", + "mask": "\f482", + "megaphone-fill": "\f483", + "megaphone": "\f484", + "menu-app-fill": "\f485", + "menu-app": "\f486", + "menu-button-fill": "\f487", + "menu-button-wide-fill": "\f488", + "menu-button-wide": "\f489", + "menu-button": "\f48a", + "menu-down": "\f48b", + "menu-up": "\f48c", + "mic-fill": "\f48d", + "mic-mute-fill": "\f48e", + "mic-mute": "\f48f", + "mic": "\f490", + "minecart-loaded": "\f491", + "minecart": "\f492", + "moisture": "\f493", + "moon-fill": "\f494", + "moon-stars-fill": "\f495", + "moon-stars": "\f496", + "moon": "\f497", + "mouse-fill": "\f498", + "mouse": "\f499", + "mouse2-fill": "\f49a", + "mouse2": "\f49b", + "mouse3-fill": "\f49c", + "mouse3": "\f49d", + "music-note-beamed": "\f49e", + "music-note-list": "\f49f", + "music-note": "\f4a0", + "music-player-fill": "\f4a1", + "music-player": "\f4a2", + "newspaper": "\f4a3", + "node-minus-fill": "\f4a4", + "node-minus": "\f4a5", + "node-plus-fill": "\f4a6", + "node-plus": "\f4a7", + "nut-fill": "\f4a8", + "nut": "\f4a9", + "octagon-fill": "\f4aa", + "octagon-half": "\f4ab", + "octagon": "\f4ac", + "option": "\f4ad", + "outlet": "\f4ae", + "paint-bucket": "\f4af", + "palette-fill": "\f4b0", + "palette": "\f4b1", + "palette2": "\f4b2", + "paperclip": "\f4b3", + "paragraph": "\f4b4", + "patch-check-fill": "\f4b5", + "patch-check": "\f4b6", + "patch-exclamation-fill": "\f4b7", + "patch-exclamation": "\f4b8", + "patch-minus-fill": "\f4b9", + "patch-minus": "\f4ba", + "patch-plus-fill": "\f4bb", + "patch-plus": "\f4bc", + "patch-question-fill": "\f4bd", + "patch-question": "\f4be", + "pause-btn-fill": "\f4bf", + "pause-btn": "\f4c0", + "pause-circle-fill": "\f4c1", + "pause-circle": "\f4c2", + "pause-fill": "\f4c3", + "pause": "\f4c4", + "peace-fill": "\f4c5", + "peace": "\f4c6", + "pen-fill": "\f4c7", + "pen": "\f4c8", + "pencil-fill": "\f4c9", + "pencil-square": "\f4ca", + "pencil": "\f4cb", + "pentagon-fill": "\f4cc", + "pentagon-half": "\f4cd", + "pentagon": "\f4ce", + "people-fill": "\f4cf", + "people": "\f4d0", + "percent": "\f4d1", + "person-badge-fill": "\f4d2", + "person-badge": "\f4d3", + "person-bounding-box": "\f4d4", + "person-check-fill": "\f4d5", + "person-check": "\f4d6", + "person-circle": "\f4d7", + "person-dash-fill": "\f4d8", + "person-dash": "\f4d9", + "person-fill": "\f4da", + "person-lines-fill": "\f4db", + "person-plus-fill": "\f4dc", + "person-plus": "\f4dd", + "person-square": "\f4de", + "person-x-fill": "\f4df", + "person-x": "\f4e0", + "person": "\f4e1", + "phone-fill": "\f4e2", + "phone-landscape-fill": "\f4e3", + "phone-landscape": "\f4e4", + "phone-vibrate-fill": "\f4e5", + "phone-vibrate": "\f4e6", + "phone": "\f4e7", + "pie-chart-fill": "\f4e8", + "pie-chart": "\f4e9", + "pin-angle-fill": "\f4ea", + "pin-angle": "\f4eb", + "pin-fill": "\f4ec", + "pin": "\f4ed", + "pip-fill": "\f4ee", + "pip": "\f4ef", + "play-btn-fill": "\f4f0", + "play-btn": "\f4f1", + "play-circle-fill": "\f4f2", + "play-circle": "\f4f3", + "play-fill": "\f4f4", + "play": "\f4f5", + "plug-fill": "\f4f6", + "plug": "\f4f7", + "plus-circle-dotted": "\f4f8", + "plus-circle-fill": "\f4f9", + "plus-circle": "\f4fa", + "plus-square-dotted": "\f4fb", + "plus-square-fill": "\f4fc", + "plus-square": "\f4fd", + "plus": "\f4fe", + "power": "\f4ff", + "printer-fill": "\f500", + "printer": "\f501", + "puzzle-fill": "\f502", + "puzzle": "\f503", + "question-circle-fill": "\f504", + "question-circle": "\f505", + "question-diamond-fill": "\f506", + "question-diamond": "\f507", + "question-octagon-fill": "\f508", + "question-octagon": "\f509", + "question-square-fill": "\f50a", + "question-square": "\f50b", + "question": "\f50c", + "rainbow": "\f50d", + "receipt-cutoff": "\f50e", + "receipt": "\f50f", + "reception-0": "\f510", + "reception-1": "\f511", + "reception-2": "\f512", + "reception-3": "\f513", + "reception-4": "\f514", + "record-btn-fill": "\f515", + "record-btn": "\f516", + "record-circle-fill": "\f517", + "record-circle": "\f518", + "record-fill": "\f519", + "record": "\f51a", + "record2-fill": "\f51b", + "record2": "\f51c", + "reply-all-fill": "\f51d", + "reply-all": "\f51e", + "reply-fill": "\f51f", + "reply": "\f520", + "rss-fill": "\f521", + "rss": "\f522", + "rulers": "\f523", + "save-fill": "\f524", + "save": "\f525", + "save2-fill": "\f526", + "save2": "\f527", + "scissors": "\f528", + "screwdriver": "\f529", + "search": "\f52a", + "segmented-nav": "\f52b", + "server": "\f52c", + "share-fill": "\f52d", + "share": "\f52e", + "shield-check": "\f52f", + "shield-exclamation": "\f530", + "shield-fill-check": "\f531", + "shield-fill-exclamation": "\f532", + "shield-fill-minus": "\f533", + "shield-fill-plus": "\f534", + "shield-fill-x": "\f535", + "shield-fill": "\f536", + "shield-lock-fill": "\f537", + "shield-lock": "\f538", + "shield-minus": "\f539", + "shield-plus": "\f53a", + "shield-shaded": "\f53b", + "shield-slash-fill": "\f53c", + "shield-slash": "\f53d", + "shield-x": "\f53e", + "shield": "\f53f", + "shift-fill": "\f540", + "shift": "\f541", + "shop-window": "\f542", + "shop": "\f543", + "shuffle": "\f544", + "signpost-2-fill": "\f545", + "signpost-2": "\f546", + "signpost-fill": "\f547", + "signpost-split-fill": "\f548", + "signpost-split": "\f549", + "signpost": "\f54a", + "sim-fill": "\f54b", + "sim": "\f54c", + "skip-backward-btn-fill": "\f54d", + "skip-backward-btn": "\f54e", + "skip-backward-circle-fill": "\f54f", + "skip-backward-circle": "\f550", + "skip-backward-fill": "\f551", + "skip-backward": "\f552", + "skip-end-btn-fill": "\f553", + "skip-end-btn": "\f554", + "skip-end-circle-fill": "\f555", + "skip-end-circle": "\f556", + "skip-end-fill": "\f557", + "skip-end": "\f558", + "skip-forward-btn-fill": "\f559", + "skip-forward-btn": "\f55a", + "skip-forward-circle-fill": "\f55b", + "skip-forward-circle": "\f55c", + "skip-forward-fill": "\f55d", + "skip-forward": "\f55e", + "skip-start-btn-fill": "\f55f", + "skip-start-btn": "\f560", + "skip-start-circle-fill": "\f561", + "skip-start-circle": "\f562", + "skip-start-fill": "\f563", + "skip-start": "\f564", + "slack": "\f565", + "slash-circle-fill": "\f566", + "slash-circle": "\f567", + "slash-square-fill": "\f568", + "slash-square": "\f569", + "slash": "\f56a", + "sliders": "\f56b", + "smartwatch": "\f56c", + "snow": "\f56d", + "snow2": "\f56e", + "snow3": "\f56f", + "sort-alpha-down-alt": "\f570", + "sort-alpha-down": "\f571", + "sort-alpha-up-alt": "\f572", + "sort-alpha-up": "\f573", + "sort-down-alt": "\f574", + "sort-down": "\f575", + "sort-numeric-down-alt": "\f576", + "sort-numeric-down": "\f577", + "sort-numeric-up-alt": "\f578", + "sort-numeric-up": "\f579", + "sort-up-alt": "\f57a", + "sort-up": "\f57b", + "soundwave": "\f57c", + "speaker-fill": "\f57d", + "speaker": "\f57e", + "speedometer": "\f57f", + "speedometer2": "\f580", + "spellcheck": "\f581", + "square-fill": "\f582", + "square-half": "\f583", + "square": "\f584", + "stack": "\f585", + "star-fill": "\f586", + "star-half": "\f587", + "star": "\f588", + "stars": "\f589", + "stickies-fill": "\f58a", + "stickies": "\f58b", + "sticky-fill": "\f58c", + "sticky": "\f58d", + "stop-btn-fill": "\f58e", + "stop-btn": "\f58f", + "stop-circle-fill": "\f590", + "stop-circle": "\f591", + "stop-fill": "\f592", + "stop": "\f593", + "stoplights-fill": "\f594", + "stoplights": "\f595", + "stopwatch-fill": "\f596", + "stopwatch": "\f597", + "subtract": "\f598", + "suit-club-fill": "\f599", + "suit-club": "\f59a", + "suit-diamond-fill": "\f59b", + "suit-diamond": "\f59c", + "suit-heart-fill": "\f59d", + "suit-heart": "\f59e", + "suit-spade-fill": "\f59f", + "suit-spade": "\f5a0", + "sun-fill": "\f5a1", + "sun": "\f5a2", + "sunglasses": "\f5a3", + "sunrise-fill": "\f5a4", + "sunrise": "\f5a5", + "sunset-fill": "\f5a6", + "sunset": "\f5a7", + "symmetry-horizontal": "\f5a8", + "symmetry-vertical": "\f5a9", + "table": "\f5aa", + "tablet-fill": "\f5ab", + "tablet-landscape-fill": "\f5ac", + "tablet-landscape": "\f5ad", + "tablet": "\f5ae", + "tag-fill": "\f5af", + "tag": "\f5b0", + "tags-fill": "\f5b1", + "tags": "\f5b2", + "telegram": "\f5b3", + "telephone-fill": "\f5b4", + "telephone-forward-fill": "\f5b5", + "telephone-forward": "\f5b6", + "telephone-inbound-fill": "\f5b7", + "telephone-inbound": "\f5b8", + "telephone-minus-fill": "\f5b9", + "telephone-minus": "\f5ba", + "telephone-outbound-fill": "\f5bb", + "telephone-outbound": "\f5bc", + "telephone-plus-fill": "\f5bd", + "telephone-plus": "\f5be", + "telephone-x-fill": "\f5bf", + "telephone-x": "\f5c0", + "telephone": "\f5c1", + "terminal-fill": "\f5c2", + "terminal": "\f5c3", + "text-center": "\f5c4", + "text-indent-left": "\f5c5", + "text-indent-right": "\f5c6", + "text-left": "\f5c7", + "text-paragraph": "\f5c8", + "text-right": "\f5c9", + "textarea-resize": "\f5ca", + "textarea-t": "\f5cb", + "textarea": "\f5cc", + "thermometer-half": "\f5cd", + "thermometer-high": "\f5ce", + "thermometer-low": "\f5cf", + "thermometer-snow": "\f5d0", + "thermometer-sun": "\f5d1", + "thermometer": "\f5d2", + "three-dots-vertical": "\f5d3", + "three-dots": "\f5d4", + "toggle-off": "\f5d5", + "toggle-on": "\f5d6", + "toggle2-off": "\f5d7", + "toggle2-on": "\f5d8", + "toggles": "\f5d9", + "toggles2": "\f5da", + "tools": "\f5db", + "tornado": "\f5dc", + "trash-fill": "\f5dd", + "trash": "\f5de", + "trash2-fill": "\f5df", + "trash2": "\f5e0", + "tree-fill": "\f5e1", + "tree": "\f5e2", + "triangle-fill": "\f5e3", + "triangle-half": "\f5e4", + "triangle": "\f5e5", + "trophy-fill": "\f5e6", + "trophy": "\f5e7", + "tropical-storm": "\f5e8", + "truck-flatbed": "\f5e9", + "truck": "\f5ea", + "tsunami": "\f5eb", + "tv-fill": "\f5ec", + "tv": "\f5ed", + "twitch": "\f5ee", + "twitter": "\f5ef", + "type-bold": "\f5f0", + "type-h1": "\f5f1", + "type-h2": "\f5f2", + "type-h3": "\f5f3", + "type-italic": "\f5f4", + "type-strikethrough": "\f5f5", + "type-underline": "\f5f6", + "type": "\f5f7", + "ui-checks-grid": "\f5f8", + "ui-checks": "\f5f9", + "ui-radios-grid": "\f5fa", + "ui-radios": "\f5fb", + "umbrella-fill": "\f5fc", + "umbrella": "\f5fd", + "union": "\f5fe", + "unlock-fill": "\f5ff", + "unlock": "\f600", + "upc-scan": "\f601", + "upc": "\f602", + "upload": "\f603", + "vector-pen": "\f604", + "view-list": "\f605", + "view-stacked": "\f606", + "vinyl-fill": "\f607", + "vinyl": "\f608", + "voicemail": "\f609", + "volume-down-fill": "\f60a", + "volume-down": "\f60b", + "volume-mute-fill": "\f60c", + "volume-mute": "\f60d", + "volume-off-fill": "\f60e", + "volume-off": "\f60f", + "volume-up-fill": "\f610", + "volume-up": "\f611", + "vr": "\f612", + "wallet-fill": "\f613", + "wallet": "\f614", + "wallet2": "\f615", + "watch": "\f616", + "water": "\f617", + "whatsapp": "\f618", + "wifi-1": "\f619", + "wifi-2": "\f61a", + "wifi-off": "\f61b", + "wifi": "\f61c", + "wind": "\f61d", + "window-dock": "\f61e", + "window-sidebar": "\f61f", + "window": "\f620", + "wrench": "\f621", + "x-circle-fill": "\f622", + "x-circle": "\f623", + "x-diamond-fill": "\f624", + "x-diamond": "\f625", + "x-octagon-fill": "\f626", + "x-octagon": "\f627", + "x-square-fill": "\f628", + "x-square": "\f629", + "x": "\f62a", + "youtube": "\f62b", + "zoom-in": "\f62c", + "zoom-out": "\f62d", + "bank": "\f62e", + "bank2": "\f62f", + "bell-slash-fill": "\f630", + "bell-slash": "\f631", + "cash-coin": "\f632", + "check-lg": "\f633", + "coin": "\f634", + "currency-bitcoin": "\f635", + "currency-dollar": "\f636", + "currency-euro": "\f637", + "currency-exchange": "\f638", + "currency-pound": "\f639", + "currency-yen": "\f63a", + "dash-lg": "\f63b", + "exclamation-lg": "\f63c", + "file-earmark-pdf-fill": "\f63d", + "file-earmark-pdf": "\f63e", + "file-pdf-fill": "\f63f", + "file-pdf": "\f640", + "gender-ambiguous": "\f641", + "gender-female": "\f642", + "gender-male": "\f643", + "gender-trans": "\f644", + "headset-vr": "\f645", + "info-lg": "\f646", + "mastodon": "\f647", + "messenger": "\f648", + "piggy-bank-fill": "\f649", + "piggy-bank": "\f64a", + "pin-map-fill": "\f64b", + "pin-map": "\f64c", + "plus-lg": "\f64d", + "question-lg": "\f64e", + "recycle": "\f64f", + "reddit": "\f650", + "safe-fill": "\f651", + "safe2-fill": "\f652", + "safe2": "\f653", + "sd-card-fill": "\f654", + "sd-card": "\f655", + "skype": "\f656", + "slash-lg": "\f657", + "translate": "\f658", + "x-lg": "\f659", + "safe": "\f65a", + "apple": "\f65b", + "microsoft": "\f65d", + "windows": "\f65e", + "behance": "\f65c", + "dribbble": "\f65f", + "line": "\f660", + "medium": "\f661", + "paypal": "\f662", + "pinterest": "\f663", + "signal": "\f664", + "snapchat": "\f665", + "spotify": "\f666", + "stack-overflow": "\f667", + "strava": "\f668", + "wordpress": "\f669", + "vimeo": "\f66a", + "activity": "\f66b", + "easel2-fill": "\f66c", + "easel2": "\f66d", + "easel3-fill": "\f66e", + "easel3": "\f66f", + "fan": "\f670", + "fingerprint": "\f671", + "graph-down-arrow": "\f672", + "graph-up-arrow": "\f673", + "hypnotize": "\f674", + "magic": "\f675", + "person-rolodex": "\f676", + "person-video": "\f677", + "person-video2": "\f678", + "person-video3": "\f679", + "person-workspace": "\f67a", + "radioactive": "\f67b", + "webcam-fill": "\f67c", + "webcam": "\f67d", + "yin-yang": "\f67e", + "bandaid-fill": "\f680", + "bandaid": "\f681", + "bluetooth": "\f682", + "body-text": "\f683", + "boombox": "\f684", + "boxes": "\f685", + "dpad-fill": "\f686", + "dpad": "\f687", + "ear-fill": "\f688", + "ear": "\f689", + "envelope-check-fill": "\f68b", + "envelope-check": "\f68c", + "envelope-dash-fill": "\f68e", + "envelope-dash": "\f68f", + "envelope-exclamation-fill": "\f691", + "envelope-exclamation": "\f692", + "envelope-plus-fill": "\f693", + "envelope-plus": "\f694", + "envelope-slash-fill": "\f696", + "envelope-slash": "\f697", + "envelope-x-fill": "\f699", + "envelope-x": "\f69a", + "explicit-fill": "\f69b", + "explicit": "\f69c", + "git": "\f69d", + "infinity": "\f69e", + "list-columns-reverse": "\f69f", + "list-columns": "\f6a0", + "meta": "\f6a1", + "nintendo-switch": "\f6a4", + "pc-display-horizontal": "\f6a5", + "pc-display": "\f6a6", + "pc-horizontal": "\f6a7", + "pc": "\f6a8", + "playstation": "\f6a9", + "plus-slash-minus": "\f6aa", + "projector-fill": "\f6ab", + "projector": "\f6ac", + "qr-code-scan": "\f6ad", + "qr-code": "\f6ae", + "quora": "\f6af", + "quote": "\f6b0", + "robot": "\f6b1", + "send-check-fill": "\f6b2", + "send-check": "\f6b3", + "send-dash-fill": "\f6b4", + "send-dash": "\f6b5", + "send-exclamation-fill": "\f6b7", + "send-exclamation": "\f6b8", + "send-fill": "\f6b9", + "send-plus-fill": "\f6ba", + "send-plus": "\f6bb", + "send-slash-fill": "\f6bc", + "send-slash": "\f6bd", + "send-x-fill": "\f6be", + "send-x": "\f6bf", + "send": "\f6c0", + "steam": "\f6c1", + "terminal-dash": "\f6c3", + "terminal-plus": "\f6c4", + "terminal-split": "\f6c5", + "ticket-detailed-fill": "\f6c6", + "ticket-detailed": "\f6c7", + "ticket-fill": "\f6c8", + "ticket-perforated-fill": "\f6c9", + "ticket-perforated": "\f6ca", + "ticket": "\f6cb", + "tiktok": "\f6cc", + "window-dash": "\f6cd", + "window-desktop": "\f6ce", + "window-fullscreen": "\f6cf", + "window-plus": "\f6d0", + "window-split": "\f6d1", + "window-stack": "\f6d2", + "window-x": "\f6d3", + "xbox": "\f6d4", + "ethernet": "\f6d5", + "hdmi-fill": "\f6d6", + "hdmi": "\f6d7", + "usb-c-fill": "\f6d8", + "usb-c": "\f6d9", + "usb-fill": "\f6da", + "usb-plug-fill": "\f6db", + "usb-plug": "\f6dc", + "usb-symbol": "\f6dd", + "usb": "\f6de", + "boombox-fill": "\f6df", + "displayport": "\f6e1", + "gpu-card": "\f6e2", + "memory": "\f6e3", + "modem-fill": "\f6e4", + "modem": "\f6e5", + "motherboard-fill": "\f6e6", + "motherboard": "\f6e7", + "optical-audio-fill": "\f6e8", + "optical-audio": "\f6e9", + "pci-card": "\f6ea", + "router-fill": "\f6eb", + "router": "\f6ec", + "thunderbolt-fill": "\f6ef", + "thunderbolt": "\f6f0", + "usb-drive-fill": "\f6f1", + "usb-drive": "\f6f2", + "usb-micro-fill": "\f6f3", + "usb-micro": "\f6f4", + "usb-mini-fill": "\f6f5", + "usb-mini": "\f6f6", + "cloud-haze2": "\f6f7", + "device-hdd-fill": "\f6f8", + "device-hdd": "\f6f9", + "device-ssd-fill": "\f6fa", + "device-ssd": "\f6fb", + "displayport-fill": "\f6fc", + "mortarboard-fill": "\f6fd", + "mortarboard": "\f6fe", + "terminal-x": "\f6ff", + "arrow-through-heart-fill": "\f700", + "arrow-through-heart": "\f701", + "badge-sd-fill": "\f702", + "badge-sd": "\f703", + "bag-heart-fill": "\f704", + "bag-heart": "\f705", + "balloon-fill": "\f706", + "balloon-heart-fill": "\f707", + "balloon-heart": "\f708", + "balloon": "\f709", + "box2-fill": "\f70a", + "box2-heart-fill": "\f70b", + "box2-heart": "\f70c", + "box2": "\f70d", + "braces-asterisk": "\f70e", + "calendar-heart-fill": "\f70f", + "calendar-heart": "\f710", + "calendar2-heart-fill": "\f711", + "calendar2-heart": "\f712", + "chat-heart-fill": "\f713", + "chat-heart": "\f714", + "chat-left-heart-fill": "\f715", + "chat-left-heart": "\f716", + "chat-right-heart-fill": "\f717", + "chat-right-heart": "\f718", + "chat-square-heart-fill": "\f719", + "chat-square-heart": "\f71a", + "clipboard-check-fill": "\f71b", + "clipboard-data-fill": "\f71c", + "clipboard-fill": "\f71d", + "clipboard-heart-fill": "\f71e", + "clipboard-heart": "\f71f", + "clipboard-minus-fill": "\f720", + "clipboard-plus-fill": "\f721", + "clipboard-pulse": "\f722", + "clipboard-x-fill": "\f723", + "clipboard2-check-fill": "\f724", + "clipboard2-check": "\f725", + "clipboard2-data-fill": "\f726", + "clipboard2-data": "\f727", + "clipboard2-fill": "\f728", + "clipboard2-heart-fill": "\f729", + "clipboard2-heart": "\f72a", + "clipboard2-minus-fill": "\f72b", + "clipboard2-minus": "\f72c", + "clipboard2-plus-fill": "\f72d", + "clipboard2-plus": "\f72e", + "clipboard2-pulse-fill": "\f72f", + "clipboard2-pulse": "\f730", + "clipboard2-x-fill": "\f731", + "clipboard2-x": "\f732", + "clipboard2": "\f733", + "emoji-kiss-fill": "\f734", + "emoji-kiss": "\f735", + "envelope-heart-fill": "\f736", + "envelope-heart": "\f737", + "envelope-open-heart-fill": "\f738", + "envelope-open-heart": "\f739", + "envelope-paper-fill": "\f73a", + "envelope-paper-heart-fill": "\f73b", + "envelope-paper-heart": "\f73c", + "envelope-paper": "\f73d", + "filetype-aac": "\f73e", + "filetype-ai": "\f73f", + "filetype-bmp": "\f740", + "filetype-cs": "\f741", + "filetype-css": "\f742", + "filetype-csv": "\f743", + "filetype-doc": "\f744", + "filetype-docx": "\f745", + "filetype-exe": "\f746", + "filetype-gif": "\f747", + "filetype-heic": "\f748", + "filetype-html": "\f749", + "filetype-java": "\f74a", + "filetype-jpg": "\f74b", + "filetype-js": "\f74c", + "filetype-jsx": "\f74d", + "filetype-key": "\f74e", + "filetype-m4p": "\f74f", + "filetype-md": "\f750", + "filetype-mdx": "\f751", + "filetype-mov": "\f752", + "filetype-mp3": "\f753", + "filetype-mp4": "\f754", + "filetype-otf": "\f755", + "filetype-pdf": "\f756", + "filetype-php": "\f757", + "filetype-png": "\f758", + "filetype-ppt": "\f75a", + "filetype-psd": "\f75b", + "filetype-py": "\f75c", + "filetype-raw": "\f75d", + "filetype-rb": "\f75e", + "filetype-sass": "\f75f", + "filetype-scss": "\f760", + "filetype-sh": "\f761", + "filetype-svg": "\f762", + "filetype-tiff": "\f763", + "filetype-tsx": "\f764", + "filetype-ttf": "\f765", + "filetype-txt": "\f766", + "filetype-wav": "\f767", + "filetype-woff": "\f768", + "filetype-xls": "\f76a", + "filetype-xml": "\f76b", + "filetype-yml": "\f76c", + "heart-arrow": "\f76d", + "heart-pulse-fill": "\f76e", + "heart-pulse": "\f76f", + "heartbreak-fill": "\f770", + "heartbreak": "\f771", + "hearts": "\f772", + "hospital-fill": "\f773", + "hospital": "\f774", + "house-heart-fill": "\f775", + "house-heart": "\f776", + "incognito": "\f777", + "magnet-fill": "\f778", + "magnet": "\f779", + "person-heart": "\f77a", + "person-hearts": "\f77b", + "phone-flip": "\f77c", + "plugin": "\f77d", + "postage-fill": "\f77e", + "postage-heart-fill": "\f77f", + "postage-heart": "\f780", + "postage": "\f781", + "postcard-fill": "\f782", + "postcard-heart-fill": "\f783", + "postcard-heart": "\f784", + "postcard": "\f785", + "search-heart-fill": "\f786", + "search-heart": "\f787", + "sliders2-vertical": "\f788", + "sliders2": "\f789", + "trash3-fill": "\f78a", + "trash3": "\f78b", + "valentine": "\f78c", + "valentine2": "\f78d", + "wrench-adjustable-circle-fill": "\f78e", + "wrench-adjustable-circle": "\f78f", + "wrench-adjustable": "\f790", + "filetype-json": "\f791", + "filetype-pptx": "\f792", + "filetype-xlsx": "\f793", + "1-circle-fill": "\f796", + "1-circle": "\f797", + "1-square-fill": "\f798", + "1-square": "\f799", + "2-circle-fill": "\f79c", + "2-circle": "\f79d", + "2-square-fill": "\f79e", + "2-square": "\f79f", + "3-circle-fill": "\f7a2", + "3-circle": "\f7a3", + "3-square-fill": "\f7a4", + "3-square": "\f7a5", + "4-circle-fill": "\f7a8", + "4-circle": "\f7a9", + "4-square-fill": "\f7aa", + "4-square": "\f7ab", + "5-circle-fill": "\f7ae", + "5-circle": "\f7af", + "5-square-fill": "\f7b0", + "5-square": "\f7b1", + "6-circle-fill": "\f7b4", + "6-circle": "\f7b5", + "6-square-fill": "\f7b6", + "6-square": "\f7b7", + "7-circle-fill": "\f7ba", + "7-circle": "\f7bb", + "7-square-fill": "\f7bc", + "7-square": "\f7bd", + "8-circle-fill": "\f7c0", + "8-circle": "\f7c1", + "8-square-fill": "\f7c2", + "8-square": "\f7c3", + "9-circle-fill": "\f7c6", + "9-circle": "\f7c7", + "9-square-fill": "\f7c8", + "9-square": "\f7c9", + "airplane-engines-fill": "\f7ca", + "airplane-engines": "\f7cb", + "airplane-fill": "\f7cc", + "airplane": "\f7cd", + "alexa": "\f7ce", + "alipay": "\f7cf", + "android": "\f7d0", + "android2": "\f7d1", + "box-fill": "\f7d2", + "box-seam-fill": "\f7d3", + "browser-chrome": "\f7d4", + "browser-edge": "\f7d5", + "browser-firefox": "\f7d6", + "browser-safari": "\f7d7", + "c-circle-fill": "\f7da", + "c-circle": "\f7db", + "c-square-fill": "\f7dc", + "c-square": "\f7dd", + "capsule-pill": "\f7de", + "capsule": "\f7df", + "car-front-fill": "\f7e0", + "car-front": "\f7e1", + "cassette-fill": "\f7e2", + "cassette": "\f7e3", + "cc-circle-fill": "\f7e6", + "cc-circle": "\f7e7", + "cc-square-fill": "\f7e8", + "cc-square": "\f7e9", + "cup-hot-fill": "\f7ea", + "cup-hot": "\f7eb", + "currency-rupee": "\f7ec", + "dropbox": "\f7ed", + "escape": "\f7ee", + "fast-forward-btn-fill": "\f7ef", + "fast-forward-btn": "\f7f0", + "fast-forward-circle-fill": "\f7f1", + "fast-forward-circle": "\f7f2", + "fast-forward-fill": "\f7f3", + "fast-forward": "\f7f4", + "filetype-sql": "\f7f5", + "fire": "\f7f6", + "google-play": "\f7f7", + "h-circle-fill": "\f7fa", + "h-circle": "\f7fb", + "h-square-fill": "\f7fc", + "h-square": "\f7fd", + "indent": "\f7fe", + "lungs-fill": "\f7ff", + "lungs": "\f800", + "microsoft-teams": "\f801", + "p-circle-fill": "\f804", + "p-circle": "\f805", + "p-square-fill": "\f806", + "p-square": "\f807", + "pass-fill": "\f808", + "pass": "\f809", + "prescription": "\f80a", + "prescription2": "\f80b", + "r-circle-fill": "\f80e", + "r-circle": "\f80f", + "r-square-fill": "\f810", + "r-square": "\f811", + "repeat-1": "\f812", + "repeat": "\f813", + "rewind-btn-fill": "\f814", + "rewind-btn": "\f815", + "rewind-circle-fill": "\f816", + "rewind-circle": "\f817", + "rewind-fill": "\f818", + "rewind": "\f819", + "train-freight-front-fill": "\f81a", + "train-freight-front": "\f81b", + "train-front-fill": "\f81c", + "train-front": "\f81d", + "train-lightrail-front-fill": "\f81e", + "train-lightrail-front": "\f81f", + "truck-front-fill": "\f820", + "truck-front": "\f821", + "ubuntu": "\f822", + "unindent": "\f823", + "unity": "\f824", + "universal-access-circle": "\f825", + "universal-access": "\f826", + "virus": "\f827", + "virus2": "\f828", + "wechat": "\f829", + "yelp": "\f82a", + "sign-stop-fill": "\f82b", + "sign-stop-lights-fill": "\f82c", + "sign-stop-lights": "\f82d", + "sign-stop": "\f82e", + "sign-turn-left-fill": "\f82f", + "sign-turn-left": "\f830", + "sign-turn-right-fill": "\f831", + "sign-turn-right": "\f832", + "sign-turn-slight-left-fill": "\f833", + "sign-turn-slight-left": "\f834", + "sign-turn-slight-right-fill": "\f835", + "sign-turn-slight-right": "\f836", + "sign-yield-fill": "\f837", + "sign-yield": "\f838", + "ev-station-fill": "\f839", + "ev-station": "\f83a", + "fuel-pump-diesel-fill": "\f83b", + "fuel-pump-diesel": "\f83c", + "fuel-pump-fill": "\f83d", + "fuel-pump": "\f83e", + "0-circle-fill": "\f83f", + "0-circle": "\f840", + "0-square-fill": "\f841", + "0-square": "\f842", + "rocket-fill": "\f843", + "rocket-takeoff-fill": "\f844", + "rocket-takeoff": "\f845", + "rocket": "\f846", + "stripe": "\f847", + "subscript": "\f848", + "superscript": "\f849", + "trello": "\f84a", + "envelope-at-fill": "\f84b", + "envelope-at": "\f84c", + "regex": "\f84d", + "text-wrap": "\f84e", + "sign-dead-end-fill": "\f84f", + "sign-dead-end": "\f850", + "sign-do-not-enter-fill": "\f851", + "sign-do-not-enter": "\f852", + "sign-intersection-fill": "\f853", + "sign-intersection-side-fill": "\f854", + "sign-intersection-side": "\f855", + "sign-intersection-t-fill": "\f856", + "sign-intersection-t": "\f857", + "sign-intersection-y-fill": "\f858", + "sign-intersection-y": "\f859", + "sign-intersection": "\f85a", + "sign-merge-left-fill": "\f85b", + "sign-merge-left": "\f85c", + "sign-merge-right-fill": "\f85d", + "sign-merge-right": "\f85e", + "sign-no-left-turn-fill": "\f85f", + "sign-no-left-turn": "\f860", + "sign-no-parking-fill": "\f861", + "sign-no-parking": "\f862", + "sign-no-right-turn-fill": "\f863", + "sign-no-right-turn": "\f864", + "sign-railroad-fill": "\f865", + "sign-railroad": "\f866", + "building-add": "\f867", + "building-check": "\f868", + "building-dash": "\f869", + "building-down": "\f86a", + "building-exclamation": "\f86b", + "building-fill-add": "\f86c", + "building-fill-check": "\f86d", + "building-fill-dash": "\f86e", + "building-fill-down": "\f86f", + "building-fill-exclamation": "\f870", + "building-fill-gear": "\f871", + "building-fill-lock": "\f872", + "building-fill-slash": "\f873", + "building-fill-up": "\f874", + "building-fill-x": "\f875", + "building-fill": "\f876", + "building-gear": "\f877", + "building-lock": "\f878", + "building-slash": "\f879", + "building-up": "\f87a", + "building-x": "\f87b", + "buildings-fill": "\f87c", + "buildings": "\f87d", + "bus-front-fill": "\f87e", + "bus-front": "\f87f", + "ev-front-fill": "\f880", + "ev-front": "\f881", + "globe-americas": "\f882", + "globe-asia-australia": "\f883", + "globe-central-south-asia": "\f884", + "globe-europe-africa": "\f885", + "house-add-fill": "\f886", + "house-add": "\f887", + "house-check-fill": "\f888", + "house-check": "\f889", + "house-dash-fill": "\f88a", + "house-dash": "\f88b", + "house-down-fill": "\f88c", + "house-down": "\f88d", + "house-exclamation-fill": "\f88e", + "house-exclamation": "\f88f", + "house-gear-fill": "\f890", + "house-gear": "\f891", + "house-lock-fill": "\f892", + "house-lock": "\f893", + "house-slash-fill": "\f894", + "house-slash": "\f895", + "house-up-fill": "\f896", + "house-up": "\f897", + "house-x-fill": "\f898", + "house-x": "\f899", + "person-add": "\f89a", + "person-down": "\f89b", + "person-exclamation": "\f89c", + "person-fill-add": "\f89d", + "person-fill-check": "\f89e", + "person-fill-dash": "\f89f", + "person-fill-down": "\f8a0", + "person-fill-exclamation": "\f8a1", + "person-fill-gear": "\f8a2", + "person-fill-lock": "\f8a3", + "person-fill-slash": "\f8a4", + "person-fill-up": "\f8a5", + "person-fill-x": "\f8a6", + "person-gear": "\f8a7", + "person-lock": "\f8a8", + "person-slash": "\f8a9", + "person-up": "\f8aa", + "scooter": "\f8ab", + "taxi-front-fill": "\f8ac", + "taxi-front": "\f8ad", + "amd": "\f8ae", + "database-add": "\f8af", + "database-check": "\f8b0", + "database-dash": "\f8b1", + "database-down": "\f8b2", + "database-exclamation": "\f8b3", + "database-fill-add": "\f8b4", + "database-fill-check": "\f8b5", + "database-fill-dash": "\f8b6", + "database-fill-down": "\f8b7", + "database-fill-exclamation": "\f8b8", + "database-fill-gear": "\f8b9", + "database-fill-lock": "\f8ba", + "database-fill-slash": "\f8bb", + "database-fill-up": "\f8bc", + "database-fill-x": "\f8bd", + "database-fill": "\f8be", + "database-gear": "\f8bf", + "database-lock": "\f8c0", + "database-slash": "\f8c1", + "database-up": "\f8c2", + "database-x": "\f8c3", + "database": "\f8c4", + "houses-fill": "\f8c5", + "houses": "\f8c6", + "nvidia": "\f8c7", + "person-vcard-fill": "\f8c8", + "person-vcard": "\f8c9", + "sina-weibo": "\f8ca", + "tencent-qq": "\f8cb", + "wikipedia": "\f8cc", + "alphabet-uppercase": "\f2a5", + "alphabet": "\f68a", + "amazon": "\f68d", + "arrows-collapse-vertical": "\f690", + "arrows-expand-vertical": "\f695", + "arrows-vertical": "\f698", + "arrows": "\f6a2", + "ban-fill": "\f6a3", + "ban": "\f6b6", + "bing": "\f6c2", + "cake": "\f6e0", + "cake2": "\f6ed", + "cookie": "\f6ee", + "copy": "\f759", + "crosshair": "\f769", + "crosshair2": "\f794", + "emoji-astonished-fill": "\f795", + "emoji-astonished": "\f79a", + "emoji-grimace-fill": "\f79b", + "emoji-grimace": "\f7a0", + "emoji-grin-fill": "\f7a1", + "emoji-grin": "\f7a6", + "emoji-surprise-fill": "\f7a7", + "emoji-surprise": "\f7ac", + "emoji-tear-fill": "\f7ad", + "emoji-tear": "\f7b2", + "envelope-arrow-down-fill": "\f7b3", + "envelope-arrow-down": "\f7b8", + "envelope-arrow-up-fill": "\f7b9", + "envelope-arrow-up": "\f7be", + "feather": "\f7bf", + "feather2": "\f7c4", + "floppy-fill": "\f7c5", + "floppy": "\f7d8", + "floppy2-fill": "\f7d9", + "floppy2": "\f7e4", + "gitlab": "\f7e5", + "highlighter": "\f7f8", + "marker-tip": "\f802", + "nvme-fill": "\f803", + "nvme": "\f80c", + "opencollective": "\f80d", + "pci-card-network": "\f8cd", + "pci-card-sound": "\f8ce", + "radar": "\f8cf", + "send-arrow-down-fill": "\f8d0", + "send-arrow-down": "\f8d1", + "send-arrow-up-fill": "\f8d2", + "send-arrow-up": "\f8d3", + "sim-slash-fill": "\f8d4", + "sim-slash": "\f8d5", + "sourceforge": "\f8d6", + "substack": "\f8d7", + "threads-fill": "\f8d8", + "threads": "\f8d9", + "transparency": "\f8da", + "twitter-x": "\f8db", + "type-h4": "\f8dc", + "type-h5": "\f8dd", + "type-h6": "\f8de", + "backpack-fill": "\f8df", + "backpack": "\f8e0", + "backpack2-fill": "\f8e1", + "backpack2": "\f8e2", + "backpack3-fill": "\f8e3", + "backpack3": "\f8e4", + "backpack4-fill": "\f8e5", + "backpack4": "\f8e6", + "brilliance": "\f8e7", + "cake-fill": "\f8e8", + "cake2-fill": "\f8e9", + "duffle-fill": "\f8ea", + "duffle": "\f8eb", + "exposure": "\f8ec", + "gender-neuter": "\f8ed", + "highlights": "\f8ee", + "luggage-fill": "\f8ef", + "luggage": "\f8f0", + "mailbox-flag": "\f8f1", + "mailbox2-flag": "\f8f2", + "noise-reduction": "\f8f3", + "passport-fill": "\f8f4", + "passport": "\f8f5", + "person-arms-up": "\f8f6", + "person-raised-hand": "\f8f7", + "person-standing-dress": "\f8f8", + "person-standing": "\f8f9", + "person-walking": "\f8fa", + "person-wheelchair": "\f8fb", + "shadows": "\f8fc", + "suitcase-fill": "\f8fd", + "suitcase-lg-fill": "\f8fe", + "suitcase-lg": "\f8ff", + "suitcase": "\f900", + "suitcase2-fill": "\f901", + "suitcase2": "\f902", + "vignette": "\f903", +); + +@each $icon, $codepoint in $bootstrap-icons-map { + .bi-#{$icon}::before { content: $codepoint; } +} diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff new file mode 100644 index 0000000..51204d2 Binary files /dev/null and b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff differ diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2 b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2 new file mode 100644 index 0000000..92c4830 Binary files /dev/null and b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2 differ diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fonts.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fonts.svg new file mode 100644 index 0000000..5e1f3c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fonts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward-fill.svg new file mode 100644 index 0000000..27462e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward.svg new file mode 100644 index 0000000..ffe887c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/front.svg new file mode 100644 index 0000000..59d854e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel-fill.svg new file mode 100644 index 0000000..997d6f8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel.svg new file mode 100644 index 0000000..e170eeb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-diesel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-fill.svg new file mode 100644 index 0000000..46f92c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump.svg new file mode 100644 index 0000000..1704a6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fuel-pump.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen-exit.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen-exit.svg new file mode 100644 index 0000000..cfde3a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen-exit.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen.svg new file mode 100644 index 0000000..d4f8a83 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/fullscreen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel-fill.svg new file mode 100644 index 0000000..04d31a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel.svg new file mode 100644 index 0000000..28bfcf2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/funnel.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-fill.svg new file mode 100644 index 0000000..ba8e2c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide-connected.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide-connected.svg new file mode 100644 index 0000000..19ddda9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide-connected.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide.svg new file mode 100644 index 0000000..c5de567 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear-wide.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear.svg new file mode 100644 index 0000000..30cfaa3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gem.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gem.svg new file mode 100644 index 0000000..f56d871 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gem.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-ambiguous.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-ambiguous.svg new file mode 100644 index 0000000..674c526 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-ambiguous.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-female.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-female.svg new file mode 100644 index 0000000..ae6dc27 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-female.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-male.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-male.svg new file mode 100644 index 0000000..3931921 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-male.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-neuter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-neuter.svg new file mode 100644 index 0000000..133db1a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-neuter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-trans.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-trans.svg new file mode 100644 index 0000000..005e6f8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gender-trans.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt-fill.svg new file mode 100644 index 0000000..77f0478 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt.svg new file mode 100644 index 0000000..20e18ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-fill.svg new file mode 100644 index 0000000..9678fa0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo.svg new file mode 100644 index 0000000..2382b91 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/geo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift-fill.svg new file mode 100644 index 0000000..bd78a8c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift.svg new file mode 100644 index 0000000..5921507 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gift.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/git.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/git.svg new file mode 100644 index 0000000..0979cdb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/git.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/github.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/github.svg new file mode 100644 index 0000000..013e025 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/github.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gitlab.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gitlab.svg new file mode 100644 index 0000000..f8875f8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gitlab.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-americas.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-americas.svg new file mode 100644 index 0000000..5dcc7b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-americas.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-asia-australia.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-asia-australia.svg new file mode 100644 index 0000000..8c27539 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-asia-australia.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-central-south-asia.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-central-south-asia.svg new file mode 100644 index 0000000..80a13c1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-central-south-asia.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-europe-africa.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-europe-africa.svg new file mode 100644 index 0000000..c1c5dcb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe-europe-africa.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe.svg new file mode 100644 index 0000000..835ff66 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe2.svg new file mode 100644 index 0000000..b302063 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/globe2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google-play.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google-play.svg new file mode 100644 index 0000000..0751c90 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google-play.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google.svg new file mode 100644 index 0000000..9f603de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/google.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gpu-card.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gpu-card.svg new file mode 100644 index 0000000..6ec3152 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/gpu-card.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down-arrow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down-arrow.svg new file mode 100644 index 0000000..d811884 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down.svg new file mode 100644 index 0000000..47dd647 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up-arrow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up-arrow.svg new file mode 100644 index 0000000..7eda5f4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up.svg new file mode 100644 index 0000000..15e0bbf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/graph-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2-fill.svg new file mode 100644 index 0000000..cc568cb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2.svg new file mode 100644 index 0000000..69ec79f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-1x2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap-fill.svg new file mode 100644 index 0000000..9c0e855 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap.svg new file mode 100644 index 0000000..730ae65 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2.svg new file mode 100644 index 0000000..55ff9bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap-fill.svg new file mode 100644 index 0000000..982cb70 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap.svg new file mode 100644 index 0000000..bbf8ce4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3-gap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3.svg new file mode 100644 index 0000000..d56aed7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-3x3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-fill.svg new file mode 100644 index 0000000..356cc8f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid.svg new file mode 100644 index 0000000..eebab73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-horizontal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-horizontal.svg new file mode 100644 index 0000000..85f7e27 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-vertical.svg new file mode 100644 index 0000000..a8718ab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/grip-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle-fill.svg new file mode 100644 index 0000000..9106472 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle.svg new file mode 100644 index 0000000..53c34b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square-fill.svg new file mode 100644 index 0000000..06269e0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square.svg new file mode 100644 index 0000000..2c5ad2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/h-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hammer.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hammer.svg new file mode 100644 index 0000000..8e07b5b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hammer.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-fill.svg new file mode 100644 index 0000000..b2a7d64 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb-fill.svg new file mode 100644 index 0000000..774b18e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb.svg new file mode 100644 index 0000000..13b5475 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index-thumb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index.svg new file mode 100644 index 0000000..725757b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-index.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down-fill.svg new file mode 100644 index 0000000..53584f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down.svg new file mode 100644 index 0000000..f87f523 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up-fill.svg new file mode 100644 index 0000000..c68bc07 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up.svg new file mode 100644 index 0000000..dc46d4d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hand-thumbs-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag-fill.svg new file mode 100644 index 0000000..5f8f23f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag.svg new file mode 100644 index 0000000..c9ef874 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/handbag.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hash.svg new file mode 100644 index 0000000..f67d000 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-fill.svg new file mode 100644 index 0000000..dbeda24 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network-fill.svg new file mode 100644 index 0000000..a74874d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network.svg new file mode 100644 index 0000000..7223542 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-network.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack-fill.svg new file mode 100644 index 0000000..7c33aec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack.svg new file mode 100644 index 0000000..d19a514 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-rack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack-fill.svg new file mode 100644 index 0000000..27e8719 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack.svg new file mode 100644 index 0000000..f9095e5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd-stack.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd.svg new file mode 100644 index 0000000..92358f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdd.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi-fill.svg new file mode 100644 index 0000000..435b39d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi.svg new file mode 100644 index 0000000..09d0849 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hdmi.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headphones.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headphones.svg new file mode 100644 index 0000000..d50b3ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headphones.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset-vr.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset-vr.svg new file mode 100644 index 0000000..0498bd6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset-vr.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset.svg new file mode 100644 index 0000000..a921156 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/headset.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-arrow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-arrow.svg new file mode 100644 index 0000000..45eb6a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-fill.svg new file mode 100644 index 0000000..5e6b8ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-half.svg new file mode 100644 index 0000000..2e0dd31 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse-fill.svg new file mode 100644 index 0000000..fc5e219 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse.svg new file mode 100644 index 0000000..dd957b3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart-pulse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart.svg new file mode 100644 index 0000000..cd8eeb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak-fill.svg new file mode 100644 index 0000000..335cb6a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak.svg new file mode 100644 index 0000000..dcffc89 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heartbreak.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hearts.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hearts.svg new file mode 100644 index 0000000..ebd2dbb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hearts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-fill.svg new file mode 100644 index 0000000..a339328 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-half.svg new file mode 100644 index 0000000..b4fadcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon.svg new file mode 100644 index 0000000..3140b8b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/heptagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-fill.svg new file mode 100644 index 0000000..50fdbfb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-half.svg new file mode 100644 index 0000000..452cb6e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon.svg new file mode 100644 index 0000000..6e83939 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hexagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlighter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlighter.svg new file mode 100644 index 0000000..e26f1f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlighter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlights.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlights.svg new file mode 100644 index 0000000..b43fca0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/highlights.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital-fill.svg new file mode 100644 index 0000000..55bde0f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital.svg new file mode 100644 index 0000000..f6bd0da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hospital.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-bottom.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-bottom.svg new file mode 100644 index 0000000..946f882 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-bottom.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-split.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-split.svg new file mode 100644 index 0000000..a9d1c51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-top.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-top.svg new file mode 100644 index 0000000..6a8a4a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass-top.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass.svg new file mode 100644 index 0000000..44ede0a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hourglass.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add-fill.svg new file mode 100644 index 0000000..1e814ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add.svg new file mode 100644 index 0000000..2a89bbe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check-fill.svg new file mode 100644 index 0000000..f2ddeb9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check.svg new file mode 100644 index 0000000..5bd7900 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash-fill.svg new file mode 100644 index 0000000..2fa8c57 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash.svg new file mode 100644 index 0000000..b1cb832 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door-fill.svg new file mode 100644 index 0000000..cf6d439 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door.svg new file mode 100644 index 0000000..daa093b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-door.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down-fill.svg new file mode 100644 index 0000000..351904f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down.svg new file mode 100644 index 0000000..4d1d905 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation-fill.svg new file mode 100644 index 0000000..52fc0ae --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation.svg new file mode 100644 index 0000000..6d414f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-fill.svg new file mode 100644 index 0000000..89db164 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear-fill.svg new file mode 100644 index 0000000..9003152 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear.svg new file mode 100644 index 0000000..65b5abb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart-fill.svg new file mode 100644 index 0000000..be2e5f4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart.svg new file mode 100644 index 0000000..ece6c06 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock-fill.svg new file mode 100644 index 0000000..90cc8c7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock.svg new file mode 100644 index 0000000..8dc5894 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash-fill.svg new file mode 100644 index 0000000..df8d7c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash.svg new file mode 100644 index 0000000..a81b0ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up-fill.svg new file mode 100644 index 0000000..5e6a801 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up.svg new file mode 100644 index 0000000..da183d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x-fill.svg new file mode 100644 index 0000000..729cdb5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x.svg new file mode 100644 index 0000000..68137c0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house.svg new file mode 100644 index 0000000..cb57f68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/house.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses-fill.svg new file mode 100644 index 0000000..63047bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses.svg new file mode 100644 index 0000000..3a906be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/houses.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hr.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hr.svg new file mode 100644 index 0000000..6e9fbd8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hr.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hurricane.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hurricane.svg new file mode 100644 index 0000000..5bd9ae1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hurricane.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hypnotize.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hypnotize.svg new file mode 100644 index 0000000..6a28997 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/hypnotize.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-alt.svg new file mode 100644 index 0000000..e56ee20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-fill.svg new file mode 100644 index 0000000..db26ae8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image.svg new file mode 100644 index 0000000..152c333 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/image.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/images.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/images.svg new file mode 100644 index 0000000..adc7abf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/images.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox-fill.svg new file mode 100644 index 0000000..7e4816d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox.svg new file mode 100644 index 0000000..b60e949 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes-fill.svg new file mode 100644 index 0000000..4d8c5f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes.svg new file mode 100644 index 0000000..1a074ac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/inboxes.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/incognito.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/incognito.svg new file mode 100644 index 0000000..f2c8f9d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/incognito.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/indent.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/indent.svg new file mode 100644 index 0000000..0065aba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/indent.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/infinity.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/infinity.svg new file mode 100644 index 0000000..3dca19b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/infinity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle-fill.svg new file mode 100644 index 0000000..d2e382b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle.svg new file mode 100644 index 0000000..e2b50eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-lg.svg new file mode 100644 index 0000000..ac064b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square-fill.svg new file mode 100644 index 0000000..49196b4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square.svg new file mode 100644 index 0000000..b64cfa8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info.svg new file mode 100644 index 0000000..43dc242 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/info.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor-text.svg new file mode 100644 index 0000000..fc910f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor-text.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor.svg new file mode 100644 index 0000000..de6a35f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/input-cursor.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/instagram.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/instagram.svg new file mode 100644 index 0000000..855e653 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/instagram.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/intersect.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/intersect.svg new file mode 100644 index 0000000..220141d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/intersect.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-album.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-album.svg new file mode 100644 index 0000000..de49ccc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-album.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-down.svg new file mode 100644 index 0000000..d922f3c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-up.svg new file mode 100644 index 0000000..7edc400 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-arrow-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark-fill.svg new file mode 100644 index 0000000..8e2f17a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark.svg new file mode 100644 index 0000000..4a8f4bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-bookmark.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-check.svg new file mode 100644 index 0000000..eb398b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-check.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-code.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-code.svg new file mode 100644 index 0000000..41430d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-code.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-medical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-medical.svg new file mode 100644 index 0000000..fb6d942 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-medical.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-minus.svg new file mode 100644 index 0000000..cbdfdd7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-minus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-plus.svg new file mode 100644 index 0000000..5cb82c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-richtext.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-richtext.svg new file mode 100644 index 0000000..db92c70 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-richtext.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-text.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-text.svg new file mode 100644 index 0000000..13c58bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-text.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-x.svg new file mode 100644 index 0000000..fb3ea9f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal.svg new file mode 100644 index 0000000..4c166e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journals.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journals.svg new file mode 100644 index 0000000..6e5386a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/journals.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/joystick.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/joystick.svg new file mode 100644 index 0000000..909369e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/joystick.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-left.svg new file mode 100644 index 0000000..17b45e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-right.svg new file mode 100644 index 0000000..4d96c43 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify.svg new file mode 100644 index 0000000..3eedc74 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/justify.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban-fill.svg new file mode 100644 index 0000000..a8ed5bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban.svg new file mode 100644 index 0000000..cd13b32 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/kanban.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key-fill.svg new file mode 100644 index 0000000..fdab8d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key.svg new file mode 100644 index 0000000..b0d1e16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/key.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard-fill.svg new file mode 100644 index 0000000..b46ad2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard.svg new file mode 100644 index 0000000..8ba49b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/keyboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ladder.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ladder.svg new file mode 100644 index 0000000..7c6864f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ladder.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp-fill.svg new file mode 100644 index 0000000..836b0db --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp.svg new file mode 100644 index 0000000..b3fa1d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lamp.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop-fill.svg new file mode 100644 index 0000000..31e5880 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop.svg new file mode 100644 index 0000000..8e71020 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/laptop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-backward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-backward.svg new file mode 100644 index 0000000..ed43c70 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-backward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-forward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-forward.svg new file mode 100644 index 0000000..d0a4abf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layer-forward.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-fill.svg new file mode 100644 index 0000000..3b6cdf6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-half.svg new file mode 100644 index 0000000..8ceaaad --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers.svg new file mode 100644 index 0000000..52dbe79 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layers.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset-reverse.svg new file mode 100644 index 0000000..0d8dc7f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset.svg new file mode 100644 index 0000000..cc19c86 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-inset.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-reverse.svg new file mode 100644 index 0000000..7c03f73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar-reverse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar.svg new file mode 100644 index 0000000..ff40858 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-sidebar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-split.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-split.svg new file mode 100644 index 0000000..4805b25 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar-reverse.svg new file mode 100644 index 0000000..9179285 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar.svg new file mode 100644 index 0000000..6d89f67 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-sidebar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window-reverse.svg new file mode 100644 index 0000000..8258ad3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window-reverse.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window.svg new file mode 100644 index 0000000..4d27cf9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-text-window.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-three-columns.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-three-columns.svg new file mode 100644 index 0000000..7117f07 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-three-columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-wtf.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-wtf.svg new file mode 100644 index 0000000..fd8f5a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/layout-wtf.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/life-preserver.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/life-preserver.svg new file mode 100644 index 0000000..7282baa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/life-preserver.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-fill.svg new file mode 100644 index 0000000..0ef90ea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off-fill.svg new file mode 100644 index 0000000..e533739 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off.svg new file mode 100644 index 0000000..15e8200 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb.svg new file mode 100644 index 0000000..67bf5bd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightbulb.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge-fill.svg new file mode 100644 index 0000000..5e197fb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge.svg new file mode 100644 index 0000000..5352e72 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-charge.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-fill.svg new file mode 100644 index 0000000..b98af68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning.svg new file mode 100644 index 0000000..d2faa0f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lightning.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/line.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/line.svg new file mode 100644 index 0000000..3e4bfd3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/line.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link-45deg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link-45deg.svg new file mode 100644 index 0000000..abdc8cb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link-45deg.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link.svg new file mode 100644 index 0000000..823e4cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/link.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/linkedin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/linkedin.svg new file mode 100644 index 0000000..30fc0e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/linkedin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-check.svg new file mode 100644 index 0000000..e1db377 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns-reverse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns-reverse.svg new file mode 100644 index 0000000..f5e2876 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns-reverse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns.svg new file mode 100644 index 0000000..07d0b1a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-columns.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-nested.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-nested.svg new file mode 100644 index 0000000..26607c9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-nested.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ol.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ol.svg new file mode 100644 index 0000000..d111f73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ol.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-stars.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-stars.svg new file mode 100644 index 0000000..c520bdf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-stars.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-task.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-task.svg new file mode 100644 index 0000000..3905d7a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-task.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ul.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ul.svg new file mode 100644 index 0000000..f1cc202 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list-ul.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list.svg new file mode 100644 index 0000000..de58858 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/list.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock-fill.svg new file mode 100644 index 0000000..69646f6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock.svg new file mode 100644 index 0000000..9c730b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage-fill.svg new file mode 100644 index 0000000..eb7378f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage.svg new file mode 100644 index 0000000..ad037ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/luggage.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs-fill.svg new file mode 100644 index 0000000..2880fa6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs.svg new file mode 100644 index 0000000..082e7de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/lungs.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magic.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magic.svg new file mode 100644 index 0000000..0b2f1fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet-fill.svg new file mode 100644 index 0000000..026d0de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet.svg new file mode 100644 index 0000000..36b238b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/magnet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox-flag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox-flag.svg new file mode 100644 index 0000000..8e24db0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox-flag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox.svg new file mode 100644 index 0000000..1048e2a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2-flag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2-flag.svg new file mode 100644 index 0000000..a253700 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2-flag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2.svg new file mode 100644 index 0000000..33e22a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mailbox2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map-fill.svg new file mode 100644 index 0000000..7134540 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map.svg new file mode 100644 index 0000000..2b579ce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/map.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown-fill.svg new file mode 100644 index 0000000..a932fbb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown.svg new file mode 100644 index 0000000..33962c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/markdown.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/marker-tip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/marker-tip.svg new file mode 100644 index 0000000..e00f931 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/marker-tip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mask.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mask.svg new file mode 100644 index 0000000..b51158c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mask.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mastodon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mastodon.svg new file mode 100644 index 0000000..a8c2a26 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mastodon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/medium.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/medium.svg new file mode 100644 index 0000000..065ace1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/medium.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone-fill.svg new file mode 100644 index 0000000..9f44f2e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone.svg new file mode 100644 index 0000000..1cedb30 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/megaphone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/memory.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/memory.svg new file mode 100644 index 0000000..48764d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/memory.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app-fill.svg new file mode 100644 index 0000000..65cfdcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app.svg new file mode 100644 index 0000000..ecda144 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-app.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-fill.svg new file mode 100644 index 0000000..09b2805 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide-fill.svg new file mode 100644 index 0000000..d97ce7f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide.svg new file mode 100644 index 0000000..5636c10 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button-wide.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button.svg new file mode 100644 index 0000000..ec4c70a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-down.svg new file mode 100644 index 0000000..e53a5e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-up.svg new file mode 100644 index 0000000..96ff58b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/menu-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/messenger.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/messenger.svg new file mode 100644 index 0000000..e896a79 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/messenger.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/meta.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/meta.svg new file mode 100644 index 0000000..03155a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/meta.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-fill.svg new file mode 100644 index 0000000..c92ade7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute-fill.svg new file mode 100644 index 0000000..a10a1bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute.svg new file mode 100644 index 0000000..59b04be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic-mute.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic.svg new file mode 100644 index 0000000..f07bf14 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mic.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft-teams.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft-teams.svg new file mode 100644 index 0000000..6bf3a0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft-teams.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft.svg new file mode 100644 index 0000000..8d2a03c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/microsoft.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart-loaded.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart-loaded.svg new file mode 100644 index 0000000..48e523f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart-loaded.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart.svg new file mode 100644 index 0000000..c4869c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/minecart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem-fill.svg new file mode 100644 index 0000000..a5dd5e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem.svg new file mode 100644 index 0000000..f90ad6b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/modem.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moisture.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moisture.svg new file mode 100644 index 0000000..490fb49 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moisture.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-fill.svg new file mode 100644 index 0000000..67f6739 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars-fill.svg new file mode 100644 index 0000000..c50e070 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars.svg new file mode 100644 index 0000000..ae138c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon-stars.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon.svg new file mode 100644 index 0000000..46458ec --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/moon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard-fill.svg new file mode 100644 index 0000000..02f6c8c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard.svg new file mode 100644 index 0000000..94f9e97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mortarboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard-fill.svg new file mode 100644 index 0000000..fabff97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard.svg new file mode 100644 index 0000000..d29e255 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/motherboard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse-fill.svg new file mode 100644 index 0000000..24d275e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse.svg new file mode 100644 index 0000000..e018811 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2-fill.svg new file mode 100644 index 0000000..6277b44 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2.svg new file mode 100644 index 0000000..fd15e7c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3-fill.svg new file mode 100644 index 0000000..16c1705 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3.svg new file mode 100644 index 0000000..548b244 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/mouse3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-beamed.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-beamed.svg new file mode 100644 index 0000000..9eb1506 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-beamed.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-list.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-list.svg new file mode 100644 index 0000000..d33767d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note-list.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note.svg new file mode 100644 index 0000000..d6fe21e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-note.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player-fill.svg new file mode 100644 index 0000000..68a65b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player.svg new file mode 100644 index 0000000..7eb9c92 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/music-player.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/newspaper.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/newspaper.svg new file mode 100644 index 0000000..9a1cf6d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/newspaper.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nintendo-switch.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nintendo-switch.svg new file mode 100644 index 0000000..5849493 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nintendo-switch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus-fill.svg new file mode 100644 index 0000000..802d678 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus.svg new file mode 100644 index 0000000..8ffaa38 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus-fill.svg new file mode 100644 index 0000000..9559b26 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus.svg new file mode 100644 index 0000000..028ef28 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/node-plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/noise-reduction.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/noise-reduction.svg new file mode 100644 index 0000000..cd5e288 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/noise-reduction.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut-fill.svg new file mode 100644 index 0000000..18dfeb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut.svg new file mode 100644 index 0000000..75a401d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nut.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvidia.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvidia.svg new file mode 100644 index 0000000..438a6fc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvidia.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme-fill.svg new file mode 100644 index 0000000..962c3c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme.svg new file mode 100644 index 0000000..31a2fb6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/nvme.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-fill.svg new file mode 100644 index 0000000..73c80f0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-half.svg new file mode 100644 index 0000000..fe6eb41 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon.svg new file mode 100644 index 0000000..d2d9c5c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/octagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/opencollective.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/opencollective.svg new file mode 100644 index 0000000..b9a0c9f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/opencollective.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio-fill.svg new file mode 100644 index 0000000..9b74060 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio.svg new file mode 100644 index 0000000..253d1d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/optical-audio.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/option.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/option.svg new file mode 100644 index 0000000..32cce4c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/option.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/outlet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/outlet.svg new file mode 100644 index 0000000..7787f35 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/outlet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle-fill.svg new file mode 100644 index 0000000..e57d158 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle.svg new file mode 100644 index 0000000..bfe68d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square-fill.svg new file mode 100644 index 0000000..164f5eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square.svg new file mode 100644 index 0000000..1f6335d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/p-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paint-bucket.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paint-bucket.svg new file mode 100644 index 0000000..9ac2df4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paint-bucket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette-fill.svg new file mode 100644 index 0000000..d7a6a3b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette.svg new file mode 100644 index 0000000..1cd490f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette2.svg new file mode 100644 index 0000000..ae65e88 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/palette2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paperclip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paperclip.svg new file mode 100644 index 0000000..c02950b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paperclip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paragraph.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paragraph.svg new file mode 100644 index 0000000..38c65d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paragraph.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass-fill.svg new file mode 100644 index 0000000..1e15dd9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass.svg new file mode 100644 index 0000000..20a06bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pass.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport-fill.svg new file mode 100644 index 0000000..d42c1b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport.svg new file mode 100644 index 0000000..2ecee5a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/passport.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check-fill.svg new file mode 100644 index 0000000..91283e2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check.svg new file mode 100644 index 0000000..1fd0a2e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation-fill.svg new file mode 100644 index 0000000..e745268 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation.svg new file mode 100644 index 0000000..2372cc6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus-fill.svg new file mode 100644 index 0000000..bfeb96e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus.svg new file mode 100644 index 0000000..35a380c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus-fill.svg new file mode 100644 index 0000000..b475098 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus.svg new file mode 100644 index 0000000..4f332da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question-fill.svg new file mode 100644 index 0000000..101c255 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question.svg new file mode 100644 index 0000000..a777cef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/patch-question.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn-fill.svg new file mode 100644 index 0000000..81c0720 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn.svg new file mode 100644 index 0000000..e2d68f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle-fill.svg new file mode 100644 index 0000000..90c4ca5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle.svg new file mode 100644 index 0000000..6d3aeff --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-fill.svg new file mode 100644 index 0000000..92e1588 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause.svg new file mode 100644 index 0000000..7bfde2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pause.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paypal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paypal.svg new file mode 100644 index 0000000..b2cec88 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/paypal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display-horizontal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display-horizontal.svg new file mode 100644 index 0000000..724ba86 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display.svg new file mode 100644 index 0000000..c3cf9dd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-display.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-horizontal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-horizontal.svg new file mode 100644 index 0000000..a8ae72f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc.svg new file mode 100644 index 0000000..a8c023a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-network.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-network.svg new file mode 100644 index 0000000..a2b4359 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-network.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-sound.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-sound.svg new file mode 100644 index 0000000..2bb98f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card-sound.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card.svg new file mode 100644 index 0000000..66ff052 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pci-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace-fill.svg new file mode 100644 index 0000000..a93e64d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace.svg new file mode 100644 index 0000000..22367e0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/peace.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen-fill.svg new file mode 100644 index 0000000..59bbb2e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen.svg new file mode 100644 index 0000000..a63b250 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-fill.svg new file mode 100644 index 0000000..4b3bdd7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-square.svg new file mode 100644 index 0000000..95c0529 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil.svg new file mode 100644 index 0000000..0b84e36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pencil.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-fill.svg new file mode 100644 index 0000000..9c80789 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-half.svg new file mode 100644 index 0000000..6811a93 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon.svg new file mode 100644 index 0000000..b6f5fe3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pentagon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people-fill.svg new file mode 100644 index 0000000..2b9f768 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people.svg new file mode 100644 index 0000000..341861a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/people.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/percent.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/percent.svg new file mode 100644 index 0000000..c0fd22d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/percent.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-add.svg new file mode 100644 index 0000000..66e2508 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-arms-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-arms-up.svg new file mode 100644 index 0000000..deb50e8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-arms-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge-fill.svg new file mode 100644 index 0000000..7110ed3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge.svg new file mode 100644 index 0000000..680aee1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-badge.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-bounding-box.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-bounding-box.svg new file mode 100644 index 0000000..d9be675 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-bounding-box.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check-fill.svg new file mode 100644 index 0000000..04b95d3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check.svg new file mode 100644 index 0000000..39b4219 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-circle.svg new file mode 100644 index 0000000..a75f25f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash-fill.svg new file mode 100644 index 0000000..9879e6e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash.svg new file mode 100644 index 0000000..b61190b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-down.svg new file mode 100644 index 0000000..79cf29a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-exclamation.svg new file mode 100644 index 0000000..46fb506 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-add.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-add.svg new file mode 100644 index 0000000..d6d15f9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-check.svg new file mode 100644 index 0000000..19b88a4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-dash.svg new file mode 100644 index 0000000..24c2944 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-down.svg new file mode 100644 index 0000000..714ae50 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-exclamation.svg new file mode 100644 index 0000000..5c3b7f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-gear.svg new file mode 100644 index 0000000..33b120a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-gear.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-lock.svg new file mode 100644 index 0000000..adbccff --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-lock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-slash.svg new file mode 100644 index 0000000..398d563 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-up.svg new file mode 100644 index 0000000..1edd97b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-x.svg new file mode 100644 index 0000000..e3a66ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill.svg new file mode 100644 index 0000000..46d1a75 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-gear.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-gear.svg new file mode 100644 index 0000000..93ec4da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-gear.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-heart.svg new file mode 100644 index 0000000..51b236e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-hearts.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-hearts.svg new file mode 100644 index 0000000..70bb2e0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-hearts.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lines-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lines-fill.svg new file mode 100644 index 0000000..cbe6c68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lines-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lock.svg new file mode 100644 index 0000000..d3672cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-lock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus-fill.svg new file mode 100644 index 0000000..6c92aea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus.svg new file mode 100644 index 0000000..4b88424 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-raised-hand.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-raised-hand.svg new file mode 100644 index 0000000..00ac301 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-raised-hand.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-rolodex.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-rolodex.svg new file mode 100644 index 0000000..2039494 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-rolodex.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-slash.svg new file mode 100644 index 0000000..ab53647 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-square.svg new file mode 100644 index 0000000..12a33c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing-dress.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing-dress.svg new file mode 100644 index 0000000..4448606 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing-dress.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing.svg new file mode 100644 index 0000000..ccd7b35 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-standing.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-up.svg new file mode 100644 index 0000000..93a430a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard-fill.svg new file mode 100644 index 0000000..9efb1b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard.svg new file mode 100644 index 0000000..40ec41e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-vcard.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video.svg new file mode 100644 index 0000000..a991759 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video2.svg new file mode 100644 index 0000000..80b3b8a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video3.svg new file mode 100644 index 0000000..472d998 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-video3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-walking.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-walking.svg new file mode 100644 index 0000000..16cc0b4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-walking.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-wheelchair.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-wheelchair.svg new file mode 100644 index 0000000..416cad2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-wheelchair.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-workspace.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-workspace.svg new file mode 100644 index 0000000..0b3cdce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-workspace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x-fill.svg new file mode 100644 index 0000000..9e31903 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x.svg new file mode 100644 index 0000000..7514c59 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person.svg new file mode 100644 index 0000000..98ea060 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/person.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-fill.svg new file mode 100644 index 0000000..f25bd51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-flip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-flip.svg new file mode 100644 index 0000000..3ae28d3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-flip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape-fill.svg new file mode 100644 index 0000000..669bf6e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape.svg new file mode 100644 index 0000000..4c30ef2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-landscape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate-fill.svg new file mode 100644 index 0000000..dc35ca0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate.svg new file mode 100644 index 0000000..58acbf6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone-vibrate.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone.svg new file mode 100644 index 0000000..4839331 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/phone.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart-fill.svg new file mode 100644 index 0000000..f667aea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart.svg new file mode 100644 index 0000000..b49251b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pie-chart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank-fill.svg new file mode 100644 index 0000000..592b31d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank.svg new file mode 100644 index 0000000..86e33eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/piggy-bank.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle-fill.svg new file mode 100644 index 0000000..bc3078c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle.svg new file mode 100644 index 0000000..ecc4d16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-angle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-fill.svg new file mode 100644 index 0000000..f345059 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map-fill.svg new file mode 100644 index 0000000..9db0d29 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map.svg new file mode 100644 index 0000000..0462a5a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin-map.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin.svg new file mode 100644 index 0000000..4655620 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pinterest.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pinterest.svg new file mode 100644 index 0000000..5c850b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pinterest.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip-fill.svg new file mode 100644 index 0000000..4865244 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip.svg new file mode 100644 index 0000000..458c9c9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/pip.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn-fill.svg new file mode 100644 index 0000000..3d0d1c3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn.svg new file mode 100644 index 0000000..2fcbc5e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle-fill.svg new file mode 100644 index 0000000..93eeb93 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle.svg new file mode 100644 index 0000000..a1d742e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-fill.svg new file mode 100644 index 0000000..e538083 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play.svg new file mode 100644 index 0000000..98954e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/play.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/playstation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/playstation.svg new file mode 100644 index 0000000..3275d59 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/playstation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug-fill.svg new file mode 100644 index 0000000..99858eb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug.svg new file mode 100644 index 0000000..9d6a85b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plugin.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plugin.svg new file mode 100644 index 0000000..92e99d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plugin.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-dotted.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-dotted.svg new file mode 100644 index 0000000..2a20e2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-fill.svg new file mode 100644 index 0000000..d1ec2d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle.svg new file mode 100644 index 0000000..2832373 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-lg.svg new file mode 100644 index 0000000..531e86c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-slash-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-slash-minus.svg new file mode 100644 index 0000000..e0fee7d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-slash-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-dotted.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-dotted.svg new file mode 100644 index 0000000..e230a08 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-dotted.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-fill.svg new file mode 100644 index 0000000..1dddd13 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square.svg new file mode 100644 index 0000000..ef11b48 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus.svg new file mode 100644 index 0000000..9012271 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-fill.svg new file mode 100644 index 0000000..861a3a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart-fill.svg new file mode 100644 index 0000000..4737a4d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart.svg new file mode 100644 index 0000000..aa35a6c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage.svg new file mode 100644 index 0000000..54dcfa6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postage.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-fill.svg new file mode 100644 index 0000000..aeba518 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart-fill.svg new file mode 100644 index 0000000..1e371b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart.svg new file mode 100644 index 0000000..52c0053 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard.svg new file mode 100644 index 0000000..43ba40b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/postcard.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/power.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/power.svg new file mode 100644 index 0000000..937b842 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/power.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription.svg new file mode 100644 index 0000000..b895b2b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription2.svg new file mode 100644 index 0000000..cb278b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/prescription2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer-fill.svg new file mode 100644 index 0000000..43cee36 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer.svg new file mode 100644 index 0000000..0886a57 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/printer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector-fill.svg new file mode 100644 index 0000000..046166c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector.svg new file mode 100644 index 0000000..77e68b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/projector.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle-fill.svg new file mode 100644 index 0000000..92c4ea0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle.svg new file mode 100644 index 0000000..44903f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/puzzle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code-scan.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code-scan.svg new file mode 100644 index 0000000..3c53387 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code-scan.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code.svg new file mode 100644 index 0000000..e09157a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/qr-code.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle-fill.svg new file mode 100644 index 0000000..8b2a2c0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle.svg new file mode 100644 index 0000000..283e653 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond-fill.svg new file mode 100644 index 0000000..6bf3512 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond.svg new file mode 100644 index 0000000..a777b47 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-diamond.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-lg.svg new file mode 100644 index 0000000..756ea0f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon-fill.svg new file mode 100644 index 0000000..c0c43ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon.svg new file mode 100644 index 0000000..5116862 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square-fill.svg new file mode 100644 index 0000000..a266f9f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square.svg new file mode 100644 index 0000000..ad44a20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question.svg new file mode 100644 index 0000000..ba185ad --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/question.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quora.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quora.svg new file mode 100644 index 0000000..85ca1bd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quora.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quote.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quote.svg new file mode 100644 index 0000000..0aa0e17 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/quote.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle-fill.svg new file mode 100644 index 0000000..810423e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle.svg new file mode 100644 index 0000000..bf2d8d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square-fill.svg new file mode 100644 index 0000000..b1151f3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square.svg new file mode 100644 index 0000000..e19e688 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/r-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radar.svg new file mode 100644 index 0000000..024f3fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radioactive.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radioactive.svg new file mode 100644 index 0000000..3eaaa56 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/radioactive.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rainbow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rainbow.svg new file mode 100644 index 0000000..e864abf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rainbow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt-cutoff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt-cutoff.svg new file mode 100644 index 0000000..21c3bc8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt-cutoff.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt.svg new file mode 100644 index 0000000..ab29fe6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/receipt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-0.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-0.svg new file mode 100644 index 0000000..a7c7872 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-0.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-1.svg new file mode 100644 index 0000000..4081ceb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-2.svg new file mode 100644 index 0000000..7e1acc5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-3.svg new file mode 100644 index 0000000..e9ea476 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-4.svg new file mode 100644 index 0000000..7791e4b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reception-4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn-fill.svg new file mode 100644 index 0000000..83ee303 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn.svg new file mode 100644 index 0000000..7ba84ce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle-fill.svg new file mode 100644 index 0000000..0db59d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle.svg new file mode 100644 index 0000000..5dad17b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-fill.svg new file mode 100644 index 0000000..ef31df0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record.svg new file mode 100644 index 0000000..5ec840c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2-fill.svg new file mode 100644 index 0000000..8ad4fe3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2.svg new file mode 100644 index 0000000..3b5c5ca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/record2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/recycle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/recycle.svg new file mode 100644 index 0000000..21d1bd9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/recycle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reddit.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reddit.svg new file mode 100644 index 0000000..777aead --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reddit.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/regex.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/regex.svg new file mode 100644 index 0000000..ec8bf00 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/regex.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat-1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat-1.svg new file mode 100644 index 0000000..9357fcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat-1.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat.svg new file mode 100644 index 0000000..51765c9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/repeat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all-fill.svg new file mode 100644 index 0000000..95e18a2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all.svg new file mode 100644 index 0000000..decad51 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-all.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-fill.svg new file mode 100644 index 0000000..82358b1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply.svg new file mode 100644 index 0000000..5bb432e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/reply.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn-fill.svg new file mode 100644 index 0000000..8ea4155 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn.svg new file mode 100644 index 0000000..47bd717 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle-fill.svg new file mode 100644 index 0000000..b972044 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle.svg new file mode 100644 index 0000000..4952147 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-fill.svg new file mode 100644 index 0000000..5919f7e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind.svg new file mode 100644 index 0000000..bc731e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rewind.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/robot.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/robot.svg new file mode 100644 index 0000000..a224202 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/robot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-fill.svg new file mode 100644 index 0000000..f319029 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff-fill.svg new file mode 100644 index 0000000..707d205 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff.svg new file mode 100644 index 0000000..2abc6d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket-takeoff.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket.svg new file mode 100644 index 0000000..b760e1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rocket.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router-fill.svg new file mode 100644 index 0000000..74d1469 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router-fill.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router.svg new file mode 100644 index 0000000..62fac78 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/router.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss-fill.svg new file mode 100644 index 0000000..50d7cfd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss.svg new file mode 100644 index 0000000..18dc9f1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rss.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rulers.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rulers.svg new file mode 100644 index 0000000..90fb01c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/rulers.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe-fill.svg new file mode 100644 index 0000000..6da7a7d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe.svg new file mode 100644 index 0000000..d6d24c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2-fill.svg new file mode 100644 index 0000000..064e073 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2.svg new file mode 100644 index 0000000..9c80f55 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/safe2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save-fill.svg new file mode 100644 index 0000000..1c42812 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save.svg new file mode 100644 index 0000000..9dd7b2f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2-fill.svg new file mode 100644 index 0000000..207f91b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2.svg new file mode 100644 index 0000000..988c4f1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/save2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scissors.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scissors.svg new file mode 100644 index 0000000..2f566e4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scissors.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scooter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scooter.svg new file mode 100644 index 0000000..8828452 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/scooter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/screwdriver.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/screwdriver.svg new file mode 100644 index 0000000..54d5a2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/screwdriver.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card-fill.svg new file mode 100644 index 0000000..655a96d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card.svg new file mode 100644 index 0000000..564661a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sd-card.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart-fill.svg new file mode 100644 index 0000000..c57bb48 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart.svg new file mode 100644 index 0000000..d76bfe5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search-heart.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search.svg new file mode 100644 index 0000000..3318054 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/search.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/segmented-nav.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/segmented-nav.svg new file mode 100644 index 0000000..b274b68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/segmented-nav.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down-fill.svg new file mode 100644 index 0000000..6d43965 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down.svg new file mode 100644 index 0000000..dcbae56 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up-fill.svg new file mode 100644 index 0000000..19abab7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up.svg new file mode 100644 index 0000000..a642dac --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check-fill.svg new file mode 100644 index 0000000..c4259c8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check.svg new file mode 100644 index 0000000..5221868 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash-fill.svg new file mode 100644 index 0000000..12a82df --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash.svg new file mode 100644 index 0000000..63fc38c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation-fill.svg new file mode 100644 index 0000000..fce810f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation.svg new file mode 100644 index 0000000..8a72f31 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-fill.svg new file mode 100644 index 0000000..6e95d27 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus-fill.svg new file mode 100644 index 0000000..63b0482 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus.svg new file mode 100644 index 0000000..350b388 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash-fill.svg new file mode 100644 index 0000000..e98aa92 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash.svg new file mode 100644 index 0000000..e434afe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-slash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x-fill.svg new file mode 100644 index 0000000..45a98a4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x.svg new file mode 100644 index 0000000..5b854c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send.svg new file mode 100644 index 0000000..8db355e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/send.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/server.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/server.svg new file mode 100644 index 0000000..bb8ca8f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/server.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shadows.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shadows.svg new file mode 100644 index 0000000..6b09f0f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shadows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share-fill.svg new file mode 100644 index 0000000..bdc07ca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share.svg new file mode 100644 index 0000000..bc62b93 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/share.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-check.svg new file mode 100644 index 0000000..3908fca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-check.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-exclamation.svg new file mode 100644 index 0000000..9826504 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-exclamation.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-check.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-check.svg new file mode 100644 index 0000000..f914f1f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-exclamation.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-exclamation.svg new file mode 100644 index 0000000..99a6bf9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-exclamation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-minus.svg new file mode 100644 index 0000000..584f5ae --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-plus.svg new file mode 100644 index 0000000..43a3169 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-x.svg new file mode 100644 index 0000000..42267cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill-x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill.svg new file mode 100644 index 0000000..12a61bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock-fill.svg new file mode 100644 index 0000000..0fccf6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock.svg new file mode 100644 index 0000000..316fb3c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-lock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-minus.svg new file mode 100644 index 0000000..9fb8712 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-plus.svg new file mode 100644 index 0000000..3b19b28 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-shaded.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-shaded.svg new file mode 100644 index 0000000..4908f5d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-shaded.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash-fill.svg new file mode 100644 index 0000000..d270d6d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash.svg new file mode 100644 index 0000000..abc01b1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-x.svg new file mode 100644 index 0000000..cc9c59d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield.svg new file mode 100644 index 0000000..7e18d1b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shield.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift-fill.svg new file mode 100644 index 0000000..37583e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift.svg new file mode 100644 index 0000000..5d8a6e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shift.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop-window.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop-window.svg new file mode 100644 index 0000000..14e0d42 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop-window.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop.svg new file mode 100644 index 0000000..e6bb8c0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shuffle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shuffle.svg new file mode 100644 index 0000000..2787bf2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/shuffle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end-fill.svg new file mode 100644 index 0000000..b362833 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end.svg new file mode 100644 index 0000000..b87d368 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-dead-end.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter-fill.svg new file mode 100644 index 0000000..f86ebfa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter.svg new file mode 100644 index 0000000..2e2c877 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-do-not-enter.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-fill.svg new file mode 100644 index 0000000..7fd8f3f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side-fill.svg new file mode 100644 index 0000000..38870b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side.svg new file mode 100644 index 0000000..df9015a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-side.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t-fill.svg new file mode 100644 index 0000000..15a007e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t.svg new file mode 100644 index 0000000..4ba9f6f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-t.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y-fill.svg new file mode 100644 index 0000000..01a03d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y.svg new file mode 100644 index 0000000..e0e387f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection-y.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection.svg new file mode 100644 index 0000000..be2ffdc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-intersection.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left-fill.svg new file mode 100644 index 0000000..1408133 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left.svg new file mode 100644 index 0000000..3447bcf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right-fill.svg new file mode 100644 index 0000000..a952bb5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right.svg new file mode 100644 index 0000000..ab3e08a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-merge-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn-fill.svg new file mode 100644 index 0000000..85f421a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn.svg new file mode 100644 index 0000000..d45f090 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-left-turn.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking-fill.svg new file mode 100644 index 0000000..c4100d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking.svg new file mode 100644 index 0000000..1679603 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-parking.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn-fill.svg new file mode 100644 index 0000000..c3883da --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn.svg new file mode 100644 index 0000000..209b918 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-no-right-turn.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad-fill.svg new file mode 100644 index 0000000..61d88a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad.svg new file mode 100644 index 0000000..b5d7339 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-railroad.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-fill.svg new file mode 100644 index 0000000..08efb9a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights-fill.svg new file mode 100644 index 0000000..9be8e0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights.svg new file mode 100644 index 0000000..85918cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop-lights.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop.svg new file mode 100644 index 0000000..49128dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-stop.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left-fill.svg new file mode 100644 index 0000000..4b8358e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left.svg new file mode 100644 index 0000000..c1b34ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right-fill.svg new file mode 100644 index 0000000..29d8d2c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right.svg new file mode 100644 index 0000000..956614a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left-fill.svg new file mode 100644 index 0000000..80b2977 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left.svg new file mode 100644 index 0000000..98f0a0a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right-fill.svg new file mode 100644 index 0000000..2734952 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right.svg new file mode 100644 index 0000000..c462f19 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-turn-slight-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield-fill.svg new file mode 100644 index 0000000..79fa190 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield.svg new file mode 100644 index 0000000..23bd623 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sign-yield.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signal.svg new file mode 100644 index 0000000..1583f97 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2-fill.svg new file mode 100644 index 0000000..58c05a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2.svg new file mode 100644 index 0000000..e3454bd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-fill.svg new file mode 100644 index 0000000..00989a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split-fill.svg new file mode 100644 index 0000000..9b720f0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split.svg new file mode 100644 index 0000000..7fb69b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost-split.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost.svg new file mode 100644 index 0000000..940e664 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/signpost.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-fill.svg new file mode 100644 index 0000000..c7922b6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash-fill.svg new file mode 100644 index 0000000..b608de7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash.svg new file mode 100644 index 0000000..c8e0dc4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim.svg new file mode 100644 index 0000000..0d71a11 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sim.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sina-weibo.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sina-weibo.svg new file mode 100644 index 0000000..6d484d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sina-weibo.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn-fill.svg new file mode 100644 index 0000000..2029489 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn.svg new file mode 100644 index 0000000..7cae681 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle-fill.svg new file mode 100644 index 0000000..7526356 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle.svg new file mode 100644 index 0000000..8739f31 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-fill.svg new file mode 100644 index 0000000..bf8f63e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward.svg new file mode 100644 index 0000000..ff5b821 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-backward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn-fill.svg new file mode 100644 index 0000000..e721821 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn.svg new file mode 100644 index 0000000..6815577 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle-fill.svg new file mode 100644 index 0000000..63c0f68 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle.svg new file mode 100644 index 0000000..50f41d9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-fill.svg new file mode 100644 index 0000000..afa88e3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end.svg new file mode 100644 index 0000000..b2dfde6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-end.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn-fill.svg new file mode 100644 index 0000000..9547957 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn.svg new file mode 100644 index 0000000..46a61b0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle-fill.svg new file mode 100644 index 0000000..aefb633 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle.svg new file mode 100644 index 0000000..7ebc928 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-fill.svg new file mode 100644 index 0000000..6c54d79 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward.svg new file mode 100644 index 0000000..c69cfc5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn-fill.svg new file mode 100644 index 0000000..a0af702 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn.svg new file mode 100644 index 0000000..b829fdd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle-fill.svg new file mode 100644 index 0000000..bb33ab0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle.svg new file mode 100644 index 0000000..d0e3323 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-fill.svg new file mode 100644 index 0000000..56cccc3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start.svg new file mode 100644 index 0000000..76811a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skip-start.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skype.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skype.svg new file mode 100644 index 0000000..ad4be4d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/skype.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slack.svg new file mode 100644 index 0000000..d914abe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slack.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle-fill.svg new file mode 100644 index 0000000..5f71707 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle.svg new file mode 100644 index 0000000..eb26f19 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-lg.svg new file mode 100644 index 0000000..8b8b132 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square-fill.svg new file mode 100644 index 0000000..6fc9153 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square.svg new file mode 100644 index 0000000..0757006 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash.svg new file mode 100644 index 0000000..6d18af4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders.svg new file mode 100644 index 0000000..c64a06c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2-vertical.svg new file mode 100644 index 0000000..4fcb8ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2.svg new file mode 100644 index 0000000..975861e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sliders2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/smartwatch.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/smartwatch.svg new file mode 100644 index 0000000..0a11991 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/smartwatch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snapchat.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snapchat.svg new file mode 100644 index 0000000..01d3684 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snapchat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow.svg new file mode 100644 index 0000000..9b648a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow2.svg new file mode 100644 index 0000000..6533d63 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow3.svg new file mode 100644 index 0000000..01c0d73 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/snow3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down-alt.svg new file mode 100644 index 0000000..d03f1aa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down-alt.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down.svg new file mode 100644 index 0000000..6ac3e84 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up-alt.svg new file mode 100644 index 0000000..a7b332e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up-alt.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up.svg new file mode 100644 index 0000000..c5f0e3a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-alpha-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down-alt.svg new file mode 100644 index 0000000..86a1bf6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down.svg new file mode 100644 index 0000000..8cfdf23 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down-alt.svg new file mode 100644 index 0000000..ce4e3c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down.svg new file mode 100644 index 0000000..afa87be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up-alt.svg new file mode 100644 index 0000000..d83cbf9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up-alt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up.svg new file mode 100644 index 0000000..25a1e54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-numeric-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up-alt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up-alt.svg new file mode 100644 index 0000000..9f78a20 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up-alt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up.svg new file mode 100644 index 0000000..cda9ac7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sort-up.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/soundwave.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/soundwave.svg new file mode 100644 index 0000000..1444777 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/soundwave.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sourceforge.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sourceforge.svg new file mode 100644 index 0000000..13d0c5f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sourceforge.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker-fill.svg new file mode 100644 index 0000000..f6d9e33 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker.svg new file mode 100644 index 0000000..1415b5d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speaker.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer.svg new file mode 100644 index 0000000..f6e3e61 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer2.svg new file mode 100644 index 0000000..75e79c8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/speedometer2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spellcheck.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spellcheck.svg new file mode 100644 index 0000000..69fec76 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spellcheck.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spotify.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spotify.svg new file mode 100644 index 0000000..09d0e9f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/spotify.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-fill.svg new file mode 100644 index 0000000..1e72d5e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-half.svg new file mode 100644 index 0000000..aa3e349 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square.svg new file mode 100644 index 0000000..0f086de --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/square.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack-overflow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack-overflow.svg new file mode 100644 index 0000000..c5e5be6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack-overflow.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack.svg new file mode 100644 index 0000000..3cf0eca --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-fill.svg new file mode 100644 index 0000000..de09c4a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-half.svg new file mode 100644 index 0000000..8a70f53 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star.svg new file mode 100644 index 0000000..fcdcb1c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/star.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stars.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stars.svg new file mode 100644 index 0000000..b6fb4f2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stars.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/steam.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/steam.svg new file mode 100644 index 0000000..9daa3d3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/steam.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies-fill.svg new file mode 100644 index 0000000..039c3b8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies.svg new file mode 100644 index 0000000..24e6492 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stickies.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky-fill.svg new file mode 100644 index 0000000..b36dcb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky.svg new file mode 100644 index 0000000..0d50e88 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sticky.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn-fill.svg new file mode 100644 index 0000000..70e562e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn.svg new file mode 100644 index 0000000..26348d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-btn.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle-fill.svg new file mode 100644 index 0000000..141668e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle.svg new file mode 100644 index 0000000..3e1933a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-fill.svg new file mode 100644 index 0000000..ca1b957 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop.svg new file mode 100644 index 0000000..27f1fb6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stop.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights-fill.svg new file mode 100644 index 0000000..f0b2d76 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights.svg new file mode 100644 index 0000000..6db3e12 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stoplights.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch-fill.svg new file mode 100644 index 0000000..1228cf2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch.svg new file mode 100644 index 0000000..aff8c33 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stopwatch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/strava.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/strava.svg new file mode 100644 index 0000000..0ed6bab --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/strava.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stripe.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stripe.svg new file mode 100644 index 0000000..ba961a0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/stripe.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subscript.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subscript.svg new file mode 100644 index 0000000..51f5eea --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subscript.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/substack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/substack.svg new file mode 100644 index 0000000..e54179a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/substack.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subtract.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subtract.svg new file mode 100644 index 0000000..129c3d5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/subtract.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club-fill.svg new file mode 100644 index 0000000..a787160 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club.svg new file mode 100644 index 0000000..3fbf98b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-club.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond-fill.svg new file mode 100644 index 0000000..67617d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond.svg new file mode 100644 index 0000000..79b54c1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart-fill.svg new file mode 100644 index 0000000..d09850c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart.svg new file mode 100644 index 0000000..173b32f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-heart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade-fill.svg new file mode 100644 index 0000000..cc465e5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade.svg new file mode 100644 index 0000000..7123c10 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suit-spade.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-fill.svg new file mode 100644 index 0000000..df62651 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg-fill.svg new file mode 100644 index 0000000..cef1da9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg.svg new file mode 100644 index 0000000..ea447d2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase.svg new file mode 100644 index 0000000..65e619d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2-fill.svg new file mode 100644 index 0000000..a2cb410 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2.svg new file mode 100644 index 0000000..e6ea533 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/suitcase2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun-fill.svg new file mode 100644 index 0000000..c83f69a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun.svg new file mode 100644 index 0000000..3777f07 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sun.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunglasses.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunglasses.svg new file mode 100644 index 0000000..1ff81f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunglasses.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise-fill.svg new file mode 100644 index 0000000..c922d7c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise.svg new file mode 100644 index 0000000..98adcfb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunrise.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset-fill.svg new file mode 100644 index 0000000..91a8d0e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset.svg new file mode 100644 index 0000000..e72d634 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/sunset.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/superscript.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/superscript.svg new file mode 100644 index 0000000..81543ae --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/superscript.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-horizontal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-horizontal.svg new file mode 100644 index 0000000..594735b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-vertical.svg new file mode 100644 index 0000000..6907280 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/symmetry-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/table.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/table.svg new file mode 100644 index 0000000..8f70585 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/table.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-fill.svg new file mode 100644 index 0000000..0746ead --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape-fill.svg new file mode 100644 index 0000000..6290024 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape.svg new file mode 100644 index 0000000..438d4d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet-landscape.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet.svg new file mode 100644 index 0000000..eebeee3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tablet.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag-fill.svg new file mode 100644 index 0000000..6a95e2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag.svg new file mode 100644 index 0000000..01d19b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags-fill.svg new file mode 100644 index 0000000..1673abb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags.svg new file mode 100644 index 0000000..ade5519 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tags.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front-fill.svg new file mode 100644 index 0000000..ef7f45b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front.svg new file mode 100644 index 0000000..1b4337a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/taxi-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telegram.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telegram.svg new file mode 100644 index 0000000..d260266 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telegram.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-fill.svg new file mode 100644 index 0000000..2e9de2e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward-fill.svg new file mode 100644 index 0000000..26fc35f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward.svg new file mode 100644 index 0000000..08c07bd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-forward.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound-fill.svg new file mode 100644 index 0000000..85434d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound.svg new file mode 100644 index 0000000..8ec20a6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-inbound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus-fill.svg new file mode 100644 index 0000000..7b2fe9d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus.svg new file mode 100644 index 0000000..6ebc50e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-minus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound-fill.svg new file mode 100644 index 0000000..0a18bda --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound.svg new file mode 100644 index 0000000..566eb46 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-outbound.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus-fill.svg new file mode 100644 index 0000000..b02874f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus.svg new file mode 100644 index 0000000..787e0c6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x-fill.svg new file mode 100644 index 0000000..5410e16 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x.svg new file mode 100644 index 0000000..3f483a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone.svg new file mode 100644 index 0000000..679e8a9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/telephone.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tencent-qq.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tencent-qq.svg new file mode 100644 index 0000000..0d5cd23 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tencent-qq.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-dash.svg new file mode 100644 index 0000000..9f46e8e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-dash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-fill.svg new file mode 100644 index 0000000..fabd075 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-plus.svg new file mode 100644 index 0000000..32c6432 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-split.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-split.svg new file mode 100644 index 0000000..a378c37 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-split.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-x.svg new file mode 100644 index 0000000..aa59e7f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal.svg new file mode 100644 index 0000000..44aef95 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/terminal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-center.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-center.svg new file mode 100644 index 0000000..12d9e29 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-center.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-left.svg new file mode 100644 index 0000000..5a607af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-right.svg new file mode 100644 index 0000000..de91d9e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-indent-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-left.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-left.svg new file mode 100644 index 0000000..36ae0d3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-left.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-paragraph.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-paragraph.svg new file mode 100644 index 0000000..035a1c8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-paragraph.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-right.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-right.svg new file mode 100644 index 0000000..98178e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-right.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-wrap.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-wrap.svg new file mode 100644 index 0000000..4c732d6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/text-wrap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-resize.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-resize.svg new file mode 100644 index 0000000..6401320 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-resize.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-t.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-t.svg new file mode 100644 index 0000000..145cbb7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea-t.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea.svg new file mode 100644 index 0000000..176ca25 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/textarea.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-half.svg new file mode 100644 index 0000000..018eab1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-half.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-high.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-high.svg new file mode 100644 index 0000000..22e77d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-high.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-low.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-low.svg new file mode 100644 index 0000000..1f0f5e1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-low.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-snow.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-snow.svg new file mode 100644 index 0000000..df7c1d1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-snow.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-sun.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-sun.svg new file mode 100644 index 0000000..c453dee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer-sun.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer.svg new file mode 100644 index 0000000..8a5529b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thermometer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads-fill.svg new file mode 100644 index 0000000..b19666d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads.svg new file mode 100644 index 0000000..13c9e7a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/threads.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots-vertical.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots-vertical.svg new file mode 100644 index 0000000..f5ef7d4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots.svg new file mode 100644 index 0000000..4706f52 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/three-dots.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt-fill.svg new file mode 100644 index 0000000..1faea43 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt.svg new file mode 100644 index 0000000..3655659 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/thunderbolt.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed-fill.svg new file mode 100644 index 0000000..cd7a3a7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed.svg new file mode 100644 index 0000000..cf32e88 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-detailed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-fill.svg new file mode 100644 index 0000000..01e9108 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated-fill.svg new file mode 100644 index 0000000..38c18dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated.svg new file mode 100644 index 0000000..da44537 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket-perforated.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket.svg new file mode 100644 index 0000000..eb813a1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ticket.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tiktok.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tiktok.svg new file mode 100644 index 0000000..04c6679 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tiktok.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-off.svg new file mode 100644 index 0000000..e1e89ad --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-on.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-on.svg new file mode 100644 index 0000000..7cd6eb3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle-on.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-off.svg new file mode 100644 index 0000000..61739ce --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-off.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-on.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-on.svg new file mode 100644 index 0000000..d752ce8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggle2-on.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles.svg new file mode 100644 index 0000000..659c185 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles2.svg new file mode 100644 index 0000000..2f90344 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/toggles2.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tools.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tools.svg new file mode 100644 index 0000000..f6efdcc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tools.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tornado.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tornado.svg new file mode 100644 index 0000000..2a6397c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tornado.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front-fill.svg new file mode 100644 index 0000000..e272051 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front.svg new file mode 100644 index 0000000..097c960 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-freight-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front-fill.svg new file mode 100644 index 0000000..4acad08 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front.svg new file mode 100644 index 0000000..81ce139 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front-fill.svg new file mode 100644 index 0000000..7bd87fb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front.svg new file mode 100644 index 0000000..d7aa87f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/train-lightrail-front.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/translate.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/translate.svg new file mode 100644 index 0000000..2e0754e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/translate.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/transparency.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/transparency.svg new file mode 100644 index 0000000..289a4b9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/transparency.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash-fill.svg new file mode 100644 index 0000000..b67453a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash.svg new file mode 100644 index 0000000..3020264 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2-fill.svg new file mode 100644 index 0000000..fb1d90d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2.svg new file mode 100644 index 0000000..0cabe8d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3-fill.svg new file mode 100644 index 0000000..42fbfc5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3.svg new file mode 100644 index 0000000..5194bf0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trash3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree-fill.svg new file mode 100644 index 0000000..d00e733 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree.svg new file mode 100644 index 0000000..17a5efe --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tree.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trello.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trello.svg new file mode 100644 index 0000000..bd88732 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trello.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-fill.svg new file mode 100644 index 0000000..474c8bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-half.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-half.svg new file mode 100644 index 0000000..a495ca0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle-half.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle.svg new file mode 100644 index 0000000..95a6a9b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/triangle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy-fill.svg new file mode 100644 index 0000000..f469737 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy.svg new file mode 100644 index 0000000..ae13957 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/trophy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tropical-storm.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tropical-storm.svg new file mode 100644 index 0000000..9eb3354 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tropical-storm.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-flatbed.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-flatbed.svg new file mode 100644 index 0000000..4b38155 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-flatbed.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front-fill.svg new file mode 100644 index 0000000..39f72d0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front.svg new file mode 100644 index 0000000..d805db5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck-front.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck.svg new file mode 100644 index 0000000..72c5439 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/truck.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tsunami.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tsunami.svg new file mode 100644 index 0000000..be5f9be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tsunami.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv-fill.svg new file mode 100644 index 0000000..483c9fd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv.svg new file mode 100644 index 0000000..fa8b3c1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/tv.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitch.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitch.svg new file mode 100644 index 0000000..b2c8ff5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter-x.svg new file mode 100644 index 0000000..2fafcc2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter-x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter.svg new file mode 100644 index 0000000..3001352 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/twitter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-bold.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-bold.svg new file mode 100644 index 0000000..0814a2e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-bold.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h1.svg new file mode 100644 index 0000000..0df41f6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h2.svg new file mode 100644 index 0000000..03379ed --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h3.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h3.svg new file mode 100644 index 0000000..97de531 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h3.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h4.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h4.svg new file mode 100644 index 0000000..a7ddc81 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h5.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h5.svg new file mode 100644 index 0000000..776bfa3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h5.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h6.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h6.svg new file mode 100644 index 0000000..9267192 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-h6.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-italic.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-italic.svg new file mode 100644 index 0000000..3ac6b09 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-italic.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-strikethrough.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-strikethrough.svg new file mode 100644 index 0000000..c64eba3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-strikethrough.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-underline.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-underline.svg new file mode 100644 index 0000000..1c0b6c4 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type-underline.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type.svg new file mode 100644 index 0000000..8c1fde1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/type.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ubuntu.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ubuntu.svg new file mode 100644 index 0000000..89c8830 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ubuntu.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks-grid.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks-grid.svg new file mode 100644 index 0000000..e5d1ed9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks-grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks.svg new file mode 100644 index 0000000..5d02869 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-checks.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios-grid.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios-grid.svg new file mode 100644 index 0000000..9f9aae0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios-grid.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios.svg new file mode 100644 index 0000000..9165340 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/ui-radios.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella-fill.svg new file mode 100644 index 0000000..3efaf13 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella.svg new file mode 100644 index 0000000..f7b698c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/umbrella.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unindent.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unindent.svg new file mode 100644 index 0000000..9e68255 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unindent.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/union.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/union.svg new file mode 100644 index 0000000..ba23f54 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/union.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unity.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unity.svg new file mode 100644 index 0000000..8b84508 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unity.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access-circle.svg new file mode 100644 index 0000000..e5ea936 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access.svg new file mode 100644 index 0000000..0d0d6ef --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/universal-access.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock-fill.svg new file mode 100644 index 0000000..07156e7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock.svg new file mode 100644 index 0000000..4dda5e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/unlock.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc-scan.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc-scan.svg new file mode 100644 index 0000000..1a89554 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc-scan.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc.svg new file mode 100644 index 0000000..785297d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upload.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upload.svg new file mode 100644 index 0000000..9a4a363 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/upload.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c-fill.svg new file mode 100644 index 0000000..759eee2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c.svg new file mode 100644 index 0000000..1198332 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-c.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive-fill.svg new file mode 100644 index 0000000..2f656ee --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive.svg new file mode 100644 index 0000000..739051d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-drive.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-fill.svg new file mode 100644 index 0000000..a3b17fa --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro-fill.svg new file mode 100644 index 0000000..1469a9b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro.svg new file mode 100644 index 0000000..ece7da7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-micro.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini-fill.svg new file mode 100644 index 0000000..3ab0747 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini.svg new file mode 100644 index 0000000..f095b67 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-mini.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug-fill.svg new file mode 100644 index 0000000..d1dc518 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug.svg new file mode 100644 index 0000000..f3d7220 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-plug.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-symbol.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-symbol.svg new file mode 100644 index 0000000..457f93f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb-symbol.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb.svg new file mode 100644 index 0000000..737bef5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/usb.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine.svg new file mode 100644 index 0000000..7b8f0a3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine2.svg new file mode 100644 index 0000000..6d95a2d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/valentine2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vector-pen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vector-pen.svg new file mode 100644 index 0000000..60115b7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vector-pen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-list.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-list.svg new file mode 100644 index 0000000..9211543 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-list.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-stacked.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-stacked.svg new file mode 100644 index 0000000..84b5ccf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/view-stacked.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vignette.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vignette.svg new file mode 100644 index 0000000..d179290 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vignette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vimeo.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vimeo.svg new file mode 100644 index 0000000..6b8e4b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vimeo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl-fill.svg new file mode 100644 index 0000000..546d7bb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl.svg new file mode 100644 index 0000000..63647e5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vinyl.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus.svg new file mode 100644 index 0000000..fd291a5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus2.svg new file mode 100644 index 0000000..53f44e9 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/virus2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/voicemail.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/voicemail.svg new file mode 100644 index 0000000..ba22eb1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/voicemail.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down-fill.svg new file mode 100644 index 0000000..681d349 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down.svg new file mode 100644 index 0000000..3ca7e6a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute-fill.svg new file mode 100644 index 0000000..148628c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute.svg new file mode 100644 index 0000000..d06d3dc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-mute.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off-fill.svg new file mode 100644 index 0000000..315110a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off.svg new file mode 100644 index 0000000..e5f82cc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up-fill.svg new file mode 100644 index 0000000..0f94073 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up-fill.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up.svg new file mode 100644 index 0000000..6347f42 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/volume-up.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vr.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vr.svg new file mode 100644 index 0000000..5ad5438 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/vr.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet-fill.svg new file mode 100644 index 0000000..ee1c27d --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet.svg new file mode 100644 index 0000000..6c9d247 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet2.svg new file mode 100644 index 0000000..b127b0e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wallet2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/watch.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/watch.svg new file mode 100644 index 0000000..542d4d8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/watch.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/water.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/water.svg new file mode 100644 index 0000000..666653b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/water.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam-fill.svg new file mode 100644 index 0000000..e8db7ba --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam.svg new file mode 100644 index 0000000..0d23803 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/webcam.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wechat.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wechat.svg new file mode 100644 index 0000000..3bc67dd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wechat.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/whatsapp.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/whatsapp.svg new file mode 100644 index 0000000..5cde6f7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/whatsapp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-1.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-1.svg new file mode 100644 index 0000000..5f3d340 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-2.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-2.svg new file mode 100644 index 0000000..09d26c2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-off.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-off.svg new file mode 100644 index 0000000..2f5e61f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi.svg new file mode 100644 index 0000000..773e027 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wifi.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wikipedia.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wikipedia.svg new file mode 100644 index 0000000..11f2fc6 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wikipedia.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wind.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wind.svg new file mode 100644 index 0000000..2ac05cd --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wind.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dash.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dash.svg new file mode 100644 index 0000000..5e157af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dash.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-desktop.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-desktop.svg new file mode 100644 index 0000000..fa17523 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-desktop.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dock.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dock.svg new file mode 100644 index 0000000..41cdf69 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-dock.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-fullscreen.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-fullscreen.svg new file mode 100644 index 0000000..421c4c5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-plus.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-plus.svg new file mode 100644 index 0000000..e24ce0c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-plus.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-sidebar.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-sidebar.svg new file mode 100644 index 0000000..d020d13 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-sidebar.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-split.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-split.svg new file mode 100644 index 0000000..96bdd24 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-split.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-stack.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-stack.svg new file mode 100644 index 0000000..8862976 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-stack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-x.svg new file mode 100644 index 0000000..c45e078 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window-x.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window.svg new file mode 100644 index 0000000..9bd2a2a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/window.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/windows.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/windows.svg new file mode 100644 index 0000000..af3b18c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/windows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wordpress.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wordpress.svg new file mode 100644 index 0000000..7d5808c --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wordpress.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle-fill.svg new file mode 100644 index 0000000..33156c7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle.svg new file mode 100644 index 0000000..381fb30 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable.svg new file mode 100644 index 0000000..e7456d7 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench-adjustable.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench.svg new file mode 100644 index 0000000..806cca0 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/wrench.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle-fill.svg new file mode 100644 index 0000000..4070fb3 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle.svg new file mode 100644 index 0000000..0e8c641 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond-fill.svg new file mode 100644 index 0000000..6ec461a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond.svg new file mode 100644 index 0000000..b93295e --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-diamond.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-lg.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-lg.svg new file mode 100644 index 0000000..b689cbb --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon-fill.svg new file mode 100644 index 0000000..dd9fc6a --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon.svg new file mode 100644 index 0000000..181a39f --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square-fill.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square-fill.svg new file mode 100644 index 0000000..5499578 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square.svg new file mode 100644 index 0000000..eb62b61 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x-square.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x.svg new file mode 100644 index 0000000..fdcc4e8 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/xbox.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/xbox.svg new file mode 100644 index 0000000..c0672b2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/xbox.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yelp.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yelp.svg new file mode 100644 index 0000000..76e8884 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yelp.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yin-yang.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yin-yang.svg new file mode 100644 index 0000000..1f50275 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/yin-yang.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/youtube.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/youtube.svg new file mode 100644 index 0000000..3c9c0be --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/youtube.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-in.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-in.svg new file mode 100644 index 0000000..438e9bc --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-in.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-out.svg b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-out.svg new file mode 100644 index 0000000..8be9f29 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap-icons-1.11.3/zoom-out.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/LICENSE b/src/main/resources/static/js/fw/bootstrap/LICENSE new file mode 100644 index 0000000..2a703f5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2024 The Bootstrap Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/src/main/resources/static/js/fw/bootstrap/README.md b/src/main/resources/static/js/fw/bootstrap/README.md new file mode 100644 index 0000000..7a34f0b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/README.md @@ -0,0 +1,246 @@ +

+ + Bootstrap logo + +

+ +

Bootstrap

+ +

+ Sleek, intuitive, and powerful front-end framework for faster and easier web development. +
+ Explore Bootstrap docs » +
+
+ Report bug + · + Request feature + · + Themes + · + Blog +

+ + +## Bootstrap 5 + +Our default branch is for development of our Bootstrap 5 release. Head to the [`v4-dev` branch](https://github.com/twbs/bootstrap/tree/v4-dev) to view the readme, documentation, and source code for Bootstrap 4. + + +## Table of contents + +- [Quick start](#quick-start) +- [Status](#status) +- [What's included](#whats-included) +- [Bugs and feature requests](#bugs-and-feature-requests) +- [Documentation](#documentation) +- [Contributing](#contributing) +- [Community](#community) +- [Versioning](#versioning) +- [Creators](#creators) +- [Thanks](#thanks) +- [Copyright and license](#copyright-and-license) + + +## Quick start + +Several quick start options are available: + +- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.3.3.zip) +- Clone the repo: `git clone https://github.com/twbs/bootstrap.git` +- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.3` +- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.3` +- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.3` +- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` + +Read the [Getting started page](https://getbootstrap.com/docs/5.3/getting-started/introduction/) for information on the framework contents, templates, examples, and more. + + +## Status + +[![Build Status](https://img.shields.io/github/actions/workflow/status/twbs/bootstrap/js.yml?branch=main&label=JS%20Tests&logo=github)](https://github.com/twbs/bootstrap/actions/workflows/js.yml?query=workflow%3AJS+branch%3Amain) +[![npm version](https://img.shields.io/npm/v/bootstrap?logo=npm&logoColor=fff)](https://www.npmjs.com/package/bootstrap) +[![Gem version](https://img.shields.io/gem/v/bootstrap?logo=rubygems&logoColor=fff)](https://rubygems.org/gems/bootstrap) +[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue?logo=meteor&logoColor=fff)](https://atmospherejs.com/twbs/bootstrap) +[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap?logo=packagist&logoColor=fff)](https://packagist.org/packages/twbs/bootstrap) +[![NuGet](https://img.shields.io/nuget/vpre/bootstrap?logo=nuget&logoColor=fff)](https://www.nuget.org/packages/bootstrap/absoluteLatest) +[![Coverage Status](https://img.shields.io/coveralls/github/twbs/bootstrap/main?logo=coveralls&logoColor=fff)](https://coveralls.io/github/twbs/bootstrap?branch=main) +[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/main/dist/css/bootstrap.min.css?compression=gzip&label=CSS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap.min.css) +[![CSS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/css/bootstrap.min.css?compression=brotli&label=CSS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap.min.css) +[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) +[![JS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=brotli&label=JS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) +[![Backers on Open Collective](https://img.shields.io/opencollective/backers/bootstrap?logo=opencollective&logoColor=fff)](#backers) +[![Sponsors on Open Collective](https://img.shields.io/opencollective/sponsors/bootstrap?logo=opencollective&logoColor=fff)](#sponsors) + + +## What's included + +Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. + +
+ Download contents + + ```text + bootstrap/ + ├── css/ + │ ├── bootstrap-grid.css + │ ├── bootstrap-grid.css.map + │ ├── bootstrap-grid.min.css + │ ├── bootstrap-grid.min.css.map + │ ├── bootstrap-grid.rtl.css + │ ├── bootstrap-grid.rtl.css.map + │ ├── bootstrap-grid.rtl.min.css + │ ├── bootstrap-grid.rtl.min.css.map + │ ├── bootstrap-reboot.css + │ ├── bootstrap-reboot.css.map + │ ├── bootstrap-reboot.min.css + │ ├── bootstrap-reboot.min.css.map + │ ├── bootstrap-reboot.rtl.css + │ ├── bootstrap-reboot.rtl.css.map + │ ├── bootstrap-reboot.rtl.min.css + │ ├── bootstrap-reboot.rtl.min.css.map + │ ├── bootstrap-utilities.css + │ ├── bootstrap-utilities.css.map + │ ├── bootstrap-utilities.min.css + │ ├── bootstrap-utilities.min.css.map + │ ├── bootstrap-utilities.rtl.css + │ ├── bootstrap-utilities.rtl.css.map + │ ├── bootstrap-utilities.rtl.min.css + │ ├── bootstrap-utilities.rtl.min.css.map + │ ├── bootstrap.css + │ ├── bootstrap.css.map + │ ├── bootstrap.min.css + │ ├── bootstrap.min.css.map + │ ├── bootstrap.rtl.css + │ ├── bootstrap.rtl.css.map + │ ├── bootstrap.rtl.min.css + │ └── bootstrap.rtl.min.css.map + └── js/ + ├── bootstrap.bundle.js + ├── bootstrap.bundle.js.map + ├── bootstrap.bundle.min.js + ├── bootstrap.bundle.min.js.map + ├── bootstrap.esm.js + ├── bootstrap.esm.js.map + ├── bootstrap.esm.min.js + ├── bootstrap.esm.min.js.map + ├── bootstrap.js + ├── bootstrap.js.map + ├── bootstrap.min.js + └── bootstrap.min.js.map + ``` +
+ +We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [Source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/). + + +## Bugs and feature requests + +Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new/choose). + + +## Documentation + +Bootstrap's documentation, included in this repo in the root directory, is built with [Hugo](https://gohugo.io/) and publicly hosted on GitHub Pages at . The docs may also be run locally. + +Documentation search is powered by [Algolia's DocSearch](https://docsearch.algolia.com/). + +### Running documentation locally + +1. Run `npm install` to install the Node.js dependencies, including Hugo (the site builder). +2. Run `npm run test` (or a specific npm script) to rebuild distributed CSS and JavaScript files, as well as our docs assets. +3. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line. +4. Open `http://localhost:9001/` in your browser, and voilà. + +Learn more about using Hugo by reading its [documentation](https://gohugo.io/documentation/). + +### Documentation for previous releases + +You can find all our previous releases docs on . + +[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. + + +## Contributing + +Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. + +Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/main/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). + +Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/main/.editorconfig) for easy use in common text editors. Read more and download plugins at . + + +## Community + +Get updates on Bootstrap's development and chat with the project maintainers and community members. + +- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). +- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/). +- Ask questions and explore [our GitHub Discussions](https://github.com/twbs/bootstrap/discussions). +- Discuss, ask questions, and more on [the community Discord](https://discord.gg/bZUvakRU3M) or [Bootstrap subreddit](https://reddit.com/r/bootstrap). +- Chat with fellow Bootstrappers in IRC. On the `irc.libera.chat` server, in the `#bootstrap` channel. +- Implementation help may be found at Stack Overflow (tagged [`bootstrap-5`](https://stackoverflow.com/questions/tagged/bootstrap-5)). +- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. + + +## Versioning + +For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](https://semver.org/). Sometimes we screw up, but we adhere to those rules whenever possible. + +See [the Releases webNode of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com/) contain summaries of the most noteworthy changes made in each release. + + +## Creators + +**Mark Otto** + +- +- + +**Jacob Thornton** + +- +- + + +## Thanks + + + BrowserStack + + +Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers! + + + Netlify + + +Thanks to [Netlify](https://www.netlify.com/) for providing us with Deploy Previews! + + +## Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bootstrap#sponsor)] + +[![OC sponsor 0](https://opencollective.com/bootstrap/sponsor/0/avatar.svg)](https://opencollective.com/bootstrap/sponsor/0/website) +[![OC sponsor 1](https://opencollective.com/bootstrap/sponsor/1/avatar.svg)](https://opencollective.com/bootstrap/sponsor/1/website) +[![OC sponsor 2](https://opencollective.com/bootstrap/sponsor/2/avatar.svg)](https://opencollective.com/bootstrap/sponsor/2/website) +[![OC sponsor 3](https://opencollective.com/bootstrap/sponsor/3/avatar.svg)](https://opencollective.com/bootstrap/sponsor/3/website) +[![OC sponsor 4](https://opencollective.com/bootstrap/sponsor/4/avatar.svg)](https://opencollective.com/bootstrap/sponsor/4/website) +[![OC sponsor 5](https://opencollective.com/bootstrap/sponsor/5/avatar.svg)](https://opencollective.com/bootstrap/sponsor/5/website) +[![OC sponsor 6](https://opencollective.com/bootstrap/sponsor/6/avatar.svg)](https://opencollective.com/bootstrap/sponsor/6/website) +[![OC sponsor 7](https://opencollective.com/bootstrap/sponsor/7/avatar.svg)](https://opencollective.com/bootstrap/sponsor/7/website) +[![OC sponsor 8](https://opencollective.com/bootstrap/sponsor/8/avatar.svg)](https://opencollective.com/bootstrap/sponsor/8/website) +[![OC sponsor 9](https://opencollective.com/bootstrap/sponsor/9/avatar.svg)](https://opencollective.com/bootstrap/sponsor/9/website) + + +## Backers + +Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bootstrap#backer)] + +[![Backers](https://opencollective.com/bootstrap/backers.svg?width=890)](https://opencollective.com/bootstrap#backers) + + +## Copyright and license + +Code and documentation copyright 2011–2024 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors). Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/). diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css new file mode 100644 index 0000000..3882a81 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css @@ -0,0 +1,4085 @@ +/*! + * Bootstrap Grid v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} + +/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css.map b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css.map new file mode 100644 index 0000000..ce99ec1 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","bootstrap-grid.css","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AACE;;;;EAAA;ACKA;;;;;;;ECHA,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,6CAAA;EACA,4CAAA;EACA,kBAAA;EACA,iBAAA;ACUF;;AC4CI;EH5CE;IACE,gBIkee;EF9drB;AACF;ACsCI;EH5CE;IACE,gBIkee;EFzdrB;AACF;ACiCI;EH5CE;IACE,gBIkee;EFpdrB;AACF;AC4BI;EH5CE;IACE,iBIkee;EF/crB;AACF;ACuBI;EH5CE;IACE,iBIkee;EF1crB;AACF;AGzCA;EAEI,qBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,0BAAA;EAAA,2BAAA;AH+CJ;;AG1CE;ECNA,qBAAA;EACA,gBAAA;EACA,aAAA;EACA,eAAA;EAEA,yCAAA;EACA,6CAAA;EACA,4CAAA;AJmDF;AGjDI;ECGF,sBAAA;EAIA,cAAA;EACA,WAAA;EACA,eAAA;EACA,6CAAA;EACA,4CAAA;EACA,8BAAA;AJ8CF;;AICM;EACE,YAAA;AJER;;AICM;EApCJ,cAAA;EACA,WAAA;AJuCF;;AIzBE;EACE,cAAA;EACA,WAAA;AJ4BJ;;AI9BE;EACE,cAAA;EACA,UAAA;AJiCJ;;AInCE;EACE,cAAA;EACA,mBAAA;AJsCJ;;AIxCE;EACE,cAAA;EACA,UAAA;AJ2CJ;;AI7CE;EACE,cAAA;EACA,UAAA;AJgDJ;;AIlDE;EACE,cAAA;EACA,mBAAA;AJqDJ;;AItBM;EAhDJ,cAAA;EACA,WAAA;AJ0EF;;AIrBU;EAhEN,cAAA;EACA,kBAAA;AJyFJ;;AI1BU;EAhEN,cAAA;EACA,mBAAA;AJ8FJ;;AI/BU;EAhEN,cAAA;EACA,UAAA;AJmGJ;;AIpCU;EAhEN,cAAA;EACA,mBAAA;AJwGJ;;AIzCU;EAhEN,cAAA;EACA,mBAAA;AJ6GJ;;AI9CU;EAhEN,cAAA;EACA,UAAA;AJkHJ;;AInDU;EAhEN,cAAA;EACA,mBAAA;AJuHJ;;AIxDU;EAhEN,cAAA;EACA,mBAAA;AJ4HJ;;AI7DU;EAhEN,cAAA;EACA,UAAA;AJiIJ;;AIlEU;EAhEN,cAAA;EACA,mBAAA;AJsIJ;;AIvEU;EAhEN,cAAA;EACA,mBAAA;AJ2IJ;;AI5EU;EAhEN,cAAA;EACA,WAAA;AJgJJ;;AIzEY;EAxDV,wBAAA;AJqIF;;AI7EY;EAxDV,yBAAA;AJyIF;;AIjFY;EAxDV,gBAAA;AJ6IF;;AIrFY;EAxDV,yBAAA;AJiJF;;AIzFY;EAxDV,yBAAA;AJqJF;;AI7FY;EAxDV,gBAAA;AJyJF;;AIjGY;EAxDV,yBAAA;AJ6JF;;AIrGY;EAxDV,yBAAA;AJiKF;;AIzGY;EAxDV,gBAAA;AJqKF;;AI7GY;EAxDV,yBAAA;AJyKF;;AIjHY;EAxDV,yBAAA;AJ6KF;;AI1GQ;;EAEE,gBAAA;AJ6GV;;AI1GQ;;EAEE,gBAAA;AJ6GV;;AIpHQ;;EAEE,sBAAA;AJuHV;;AIpHQ;;EAEE,sBAAA;AJuHV;;AI9HQ;;EAEE,qBAAA;AJiIV;;AI9HQ;;EAEE,qBAAA;AJiIV;;AIxIQ;;EAEE,mBAAA;AJ2IV;;AIxIQ;;EAEE,mBAAA;AJ2IV;;AIlJQ;;EAEE,qBAAA;AJqJV;;AIlJQ;;EAEE,qBAAA;AJqJV;;AI5JQ;;EAEE,mBAAA;AJ+JV;;AI5JQ;;EAEE,mBAAA;AJ+JV;;ACzNI;EGUE;IACE,YAAA;EJmNN;EIhNI;IApCJ,cAAA;IACA,WAAA;EJuPA;EIzOA;IACE,cAAA;IACA,WAAA;EJ2OF;EI7OA;IACE,cAAA;IACA,UAAA;EJ+OF;EIjPA;IACE,cAAA;IACA,mBAAA;EJmPF;EIrPA;IACE,cAAA;IACA,UAAA;EJuPF;EIzPA;IACE,cAAA;IACA,UAAA;EJ2PF;EI7PA;IACE,cAAA;IACA,mBAAA;EJ+PF;EIhOI;IAhDJ,cAAA;IACA,WAAA;EJmRA;EI9NQ;IAhEN,cAAA;IACA,kBAAA;EJiSF;EIlOQ;IAhEN,cAAA;IACA,mBAAA;EJqSF;EItOQ;IAhEN,cAAA;IACA,UAAA;EJySF;EI1OQ;IAhEN,cAAA;IACA,mBAAA;EJ6SF;EI9OQ;IAhEN,cAAA;IACA,mBAAA;EJiTF;EIlPQ;IAhEN,cAAA;IACA,UAAA;EJqTF;EItPQ;IAhEN,cAAA;IACA,mBAAA;EJyTF;EI1PQ;IAhEN,cAAA;IACA,mBAAA;EJ6TF;EI9PQ;IAhEN,cAAA;IACA,UAAA;EJiUF;EIlQQ;IAhEN,cAAA;IACA,mBAAA;EJqUF;EItQQ;IAhEN,cAAA;IACA,mBAAA;EJyUF;EI1QQ;IAhEN,cAAA;IACA,WAAA;EJ6UF;EItQU;IAxDV,cAAA;EJiUA;EIzQU;IAxDV,wBAAA;EJoUA;EI5QU;IAxDV,yBAAA;EJuUA;EI/QU;IAxDV,gBAAA;EJ0UA;EIlRU;IAxDV,yBAAA;EJ6UA;EIrRU;IAxDV,yBAAA;EJgVA;EIxRU;IAxDV,gBAAA;EJmVA;EI3RU;IAxDV,yBAAA;EJsVA;EI9RU;IAxDV,yBAAA;EJyVA;EIjSU;IAxDV,gBAAA;EJ4VA;EIpSU;IAxDV,yBAAA;EJ+VA;EIvSU;IAxDV,yBAAA;EJkWA;EI/RM;;IAEE,gBAAA;EJiSR;EI9RM;;IAEE,gBAAA;EJgSR;EIvSM;;IAEE,sBAAA;EJySR;EItSM;;IAEE,sBAAA;EJwSR;EI/SM;;IAEE,qBAAA;EJiTR;EI9SM;;IAEE,qBAAA;EJgTR;EIvTM;;IAEE,mBAAA;EJyTR;EItTM;;IAEE,mBAAA;EJwTR;EI/TM;;IAEE,qBAAA;EJiUR;EI9TM;;IAEE,qBAAA;EJgUR;EIvUM;;IAEE,mBAAA;EJyUR;EItUM;;IAEE,mBAAA;EJwUR;AACF;ACnYI;EGUE;IACE,YAAA;EJ4XN;EIzXI;IApCJ,cAAA;IACA,WAAA;EJgaA;EIlZA;IACE,cAAA;IACA,WAAA;EJoZF;EItZA;IACE,cAAA;IACA,UAAA;EJwZF;EI1ZA;IACE,cAAA;IACA,mBAAA;EJ4ZF;EI9ZA;IACE,cAAA;IACA,UAAA;EJgaF;EIlaA;IACE,cAAA;IACA,UAAA;EJoaF;EItaA;IACE,cAAA;IACA,mBAAA;EJwaF;EIzYI;IAhDJ,cAAA;IACA,WAAA;EJ4bA;EIvYQ;IAhEN,cAAA;IACA,kBAAA;EJ0cF;EI3YQ;IAhEN,cAAA;IACA,mBAAA;EJ8cF;EI/YQ;IAhEN,cAAA;IACA,UAAA;EJkdF;EInZQ;IAhEN,cAAA;IACA,mBAAA;EJsdF;EIvZQ;IAhEN,cAAA;IACA,mBAAA;EJ0dF;EI3ZQ;IAhEN,cAAA;IACA,UAAA;EJ8dF;EI/ZQ;IAhEN,cAAA;IACA,mBAAA;EJkeF;EInaQ;IAhEN,cAAA;IACA,mBAAA;EJseF;EIvaQ;IAhEN,cAAA;IACA,UAAA;EJ0eF;EI3aQ;IAhEN,cAAA;IACA,mBAAA;EJ8eF;EI/aQ;IAhEN,cAAA;IACA,mBAAA;EJkfF;EInbQ;IAhEN,cAAA;IACA,WAAA;EJsfF;EI/aU;IAxDV,cAAA;EJ0eA;EIlbU;IAxDV,wBAAA;EJ6eA;EIrbU;IAxDV,yBAAA;EJgfA;EIxbU;IAxDV,gBAAA;EJmfA;EI3bU;IAxDV,yBAAA;EJsfA;EI9bU;IAxDV,yBAAA;EJyfA;EIjcU;IAxDV,gBAAA;EJ4fA;EIpcU;IAxDV,yBAAA;EJ+fA;EIvcU;IAxDV,yBAAA;EJkgBA;EI1cU;IAxDV,gBAAA;EJqgBA;EI7cU;IAxDV,yBAAA;EJwgBA;EIhdU;IAxDV,yBAAA;EJ2gBA;EIxcM;;IAEE,gBAAA;EJ0cR;EIvcM;;IAEE,gBAAA;EJycR;EIhdM;;IAEE,sBAAA;EJkdR;EI/cM;;IAEE,sBAAA;EJidR;EIxdM;;IAEE,qBAAA;EJ0dR;EIvdM;;IAEE,qBAAA;EJydR;EIheM;;IAEE,mBAAA;EJkeR;EI/dM;;IAEE,mBAAA;EJieR;EIxeM;;IAEE,qBAAA;EJ0eR;EIveM;;IAEE,qBAAA;EJyeR;EIhfM;;IAEE,mBAAA;EJkfR;EI/eM;;IAEE,mBAAA;EJifR;AACF;AC5iBI;EGUE;IACE,YAAA;EJqiBN;EIliBI;IApCJ,cAAA;IACA,WAAA;EJykBA;EI3jBA;IACE,cAAA;IACA,WAAA;EJ6jBF;EI/jBA;IACE,cAAA;IACA,UAAA;EJikBF;EInkBA;IACE,cAAA;IACA,mBAAA;EJqkBF;EIvkBA;IACE,cAAA;IACA,UAAA;EJykBF;EI3kBA;IACE,cAAA;IACA,UAAA;EJ6kBF;EI/kBA;IACE,cAAA;IACA,mBAAA;EJilBF;EIljBI;IAhDJ,cAAA;IACA,WAAA;EJqmBA;EIhjBQ;IAhEN,cAAA;IACA,kBAAA;EJmnBF;EIpjBQ;IAhEN,cAAA;IACA,mBAAA;EJunBF;EIxjBQ;IAhEN,cAAA;IACA,UAAA;EJ2nBF;EI5jBQ;IAhEN,cAAA;IACA,mBAAA;EJ+nBF;EIhkBQ;IAhEN,cAAA;IACA,mBAAA;EJmoBF;EIpkBQ;IAhEN,cAAA;IACA,UAAA;EJuoBF;EIxkBQ;IAhEN,cAAA;IACA,mBAAA;EJ2oBF;EI5kBQ;IAhEN,cAAA;IACA,mBAAA;EJ+oBF;EIhlBQ;IAhEN,cAAA;IACA,UAAA;EJmpBF;EIplBQ;IAhEN,cAAA;IACA,mBAAA;EJupBF;EIxlBQ;IAhEN,cAAA;IACA,mBAAA;EJ2pBF;EI5lBQ;IAhEN,cAAA;IACA,WAAA;EJ+pBF;EIxlBU;IAxDV,cAAA;EJmpBA;EI3lBU;IAxDV,wBAAA;EJspBA;EI9lBU;IAxDV,yBAAA;EJypBA;EIjmBU;IAxDV,gBAAA;EJ4pBA;EIpmBU;IAxDV,yBAAA;EJ+pBA;EIvmBU;IAxDV,yBAAA;EJkqBA;EI1mBU;IAxDV,gBAAA;EJqqBA;EI7mBU;IAxDV,yBAAA;EJwqBA;EIhnBU;IAxDV,yBAAA;EJ2qBA;EInnBU;IAxDV,gBAAA;EJ8qBA;EItnBU;IAxDV,yBAAA;EJirBA;EIznBU;IAxDV,yBAAA;EJorBA;EIjnBM;;IAEE,gBAAA;EJmnBR;EIhnBM;;IAEE,gBAAA;EJknBR;EIznBM;;IAEE,sBAAA;EJ2nBR;EIxnBM;;IAEE,sBAAA;EJ0nBR;EIjoBM;;IAEE,qBAAA;EJmoBR;EIhoBM;;IAEE,qBAAA;EJkoBR;EIzoBM;;IAEE,mBAAA;EJ2oBR;EIxoBM;;IAEE,mBAAA;EJ0oBR;EIjpBM;;IAEE,qBAAA;EJmpBR;EIhpBM;;IAEE,qBAAA;EJkpBR;EIzpBM;;IAEE,mBAAA;EJ2pBR;EIxpBM;;IAEE,mBAAA;EJ0pBR;AACF;ACrtBI;EGUE;IACE,YAAA;EJ8sBN;EI3sBI;IApCJ,cAAA;IACA,WAAA;EJkvBA;EIpuBA;IACE,cAAA;IACA,WAAA;EJsuBF;EIxuBA;IACE,cAAA;IACA,UAAA;EJ0uBF;EI5uBA;IACE,cAAA;IACA,mBAAA;EJ8uBF;EIhvBA;IACE,cAAA;IACA,UAAA;EJkvBF;EIpvBA;IACE,cAAA;IACA,UAAA;EJsvBF;EIxvBA;IACE,cAAA;IACA,mBAAA;EJ0vBF;EI3tBI;IAhDJ,cAAA;IACA,WAAA;EJ8wBA;EIztBQ;IAhEN,cAAA;IACA,kBAAA;EJ4xBF;EI7tBQ;IAhEN,cAAA;IACA,mBAAA;EJgyBF;EIjuBQ;IAhEN,cAAA;IACA,UAAA;EJoyBF;EIruBQ;IAhEN,cAAA;IACA,mBAAA;EJwyBF;EIzuBQ;IAhEN,cAAA;IACA,mBAAA;EJ4yBF;EI7uBQ;IAhEN,cAAA;IACA,UAAA;EJgzBF;EIjvBQ;IAhEN,cAAA;IACA,mBAAA;EJozBF;EIrvBQ;IAhEN,cAAA;IACA,mBAAA;EJwzBF;EIzvBQ;IAhEN,cAAA;IACA,UAAA;EJ4zBF;EI7vBQ;IAhEN,cAAA;IACA,mBAAA;EJg0BF;EIjwBQ;IAhEN,cAAA;IACA,mBAAA;EJo0BF;EIrwBQ;IAhEN,cAAA;IACA,WAAA;EJw0BF;EIjwBU;IAxDV,cAAA;EJ4zBA;EIpwBU;IAxDV,wBAAA;EJ+zBA;EIvwBU;IAxDV,yBAAA;EJk0BA;EI1wBU;IAxDV,gBAAA;EJq0BA;EI7wBU;IAxDV,yBAAA;EJw0BA;EIhxBU;IAxDV,yBAAA;EJ20BA;EInxBU;IAxDV,gBAAA;EJ80BA;EItxBU;IAxDV,yBAAA;EJi1BA;EIzxBU;IAxDV,yBAAA;EJo1BA;EI5xBU;IAxDV,gBAAA;EJu1BA;EI/xBU;IAxDV,yBAAA;EJ01BA;EIlyBU;IAxDV,yBAAA;EJ61BA;EI1xBM;;IAEE,gBAAA;EJ4xBR;EIzxBM;;IAEE,gBAAA;EJ2xBR;EIlyBM;;IAEE,sBAAA;EJoyBR;EIjyBM;;IAEE,sBAAA;EJmyBR;EI1yBM;;IAEE,qBAAA;EJ4yBR;EIzyBM;;IAEE,qBAAA;EJ2yBR;EIlzBM;;IAEE,mBAAA;EJozBR;EIjzBM;;IAEE,mBAAA;EJmzBR;EI1zBM;;IAEE,qBAAA;EJ4zBR;EIzzBM;;IAEE,qBAAA;EJ2zBR;EIl0BM;;IAEE,mBAAA;EJo0BR;EIj0BM;;IAEE,mBAAA;EJm0BR;AACF;AC93BI;EGUE;IACE,YAAA;EJu3BN;EIp3BI;IApCJ,cAAA;IACA,WAAA;EJ25BA;EI74BA;IACE,cAAA;IACA,WAAA;EJ+4BF;EIj5BA;IACE,cAAA;IACA,UAAA;EJm5BF;EIr5BA;IACE,cAAA;IACA,mBAAA;EJu5BF;EIz5BA;IACE,cAAA;IACA,UAAA;EJ25BF;EI75BA;IACE,cAAA;IACA,UAAA;EJ+5BF;EIj6BA;IACE,cAAA;IACA,mBAAA;EJm6BF;EIp4BI;IAhDJ,cAAA;IACA,WAAA;EJu7BA;EIl4BQ;IAhEN,cAAA;IACA,kBAAA;EJq8BF;EIt4BQ;IAhEN,cAAA;IACA,mBAAA;EJy8BF;EI14BQ;IAhEN,cAAA;IACA,UAAA;EJ68BF;EI94BQ;IAhEN,cAAA;IACA,mBAAA;EJi9BF;EIl5BQ;IAhEN,cAAA;IACA,mBAAA;EJq9BF;EIt5BQ;IAhEN,cAAA;IACA,UAAA;EJy9BF;EI15BQ;IAhEN,cAAA;IACA,mBAAA;EJ69BF;EI95BQ;IAhEN,cAAA;IACA,mBAAA;EJi+BF;EIl6BQ;IAhEN,cAAA;IACA,UAAA;EJq+BF;EIt6BQ;IAhEN,cAAA;IACA,mBAAA;EJy+BF;EI16BQ;IAhEN,cAAA;IACA,mBAAA;EJ6+BF;EI96BQ;IAhEN,cAAA;IACA,WAAA;EJi/BF;EI16BU;IAxDV,cAAA;EJq+BA;EI76BU;IAxDV,wBAAA;EJw+BA;EIh7BU;IAxDV,yBAAA;EJ2+BA;EIn7BU;IAxDV,gBAAA;EJ8+BA;EIt7BU;IAxDV,yBAAA;EJi/BA;EIz7BU;IAxDV,yBAAA;EJo/BA;EI57BU;IAxDV,gBAAA;EJu/BA;EI/7BU;IAxDV,yBAAA;EJ0/BA;EIl8BU;IAxDV,yBAAA;EJ6/BA;EIr8BU;IAxDV,gBAAA;EJggCA;EIx8BU;IAxDV,yBAAA;EJmgCA;EI38BU;IAxDV,yBAAA;EJsgCA;EIn8BM;;IAEE,gBAAA;EJq8BR;EIl8BM;;IAEE,gBAAA;EJo8BR;EI38BM;;IAEE,sBAAA;EJ68BR;EI18BM;;IAEE,sBAAA;EJ48BR;EIn9BM;;IAEE,qBAAA;EJq9BR;EIl9BM;;IAEE,qBAAA;EJo9BR;EI39BM;;IAEE,mBAAA;EJ69BR;EI19BM;;IAEE,mBAAA;EJ49BR;EIn+BM;;IAEE,qBAAA;EJq+BR;EIl+BM;;IAEE,qBAAA;EJo+BR;EI3+BM;;IAEE,mBAAA;EJ6+BR;EI1+BM;;IAEE,mBAAA;EJ4+BR;AACF;AKpiCQ;EAOI,0BAAA;ALgiCZ;;AKviCQ;EAOI,gCAAA;ALoiCZ;;AK3iCQ;EAOI,yBAAA;ALwiCZ;;AK/iCQ;EAOI,wBAAA;AL4iCZ;;AKnjCQ;EAOI,+BAAA;ALgjCZ;;AKvjCQ;EAOI,yBAAA;ALojCZ;;AK3jCQ;EAOI,6BAAA;ALwjCZ;;AK/jCQ;EAOI,8BAAA;AL4jCZ;;AKnkCQ;EAOI,wBAAA;ALgkCZ;;AKvkCQ;EAOI,+BAAA;ALokCZ;;AK3kCQ;EAOI,wBAAA;ALwkCZ;;AK/kCQ;EAOI,yBAAA;AL4kCZ;;AKnlCQ;EAOI,8BAAA;ALglCZ;;AKvlCQ;EAOI,iCAAA;ALolCZ;;AK3lCQ;EAOI,sCAAA;ALwlCZ;;AK/lCQ;EAOI,yCAAA;AL4lCZ;;AKnmCQ;EAOI,uBAAA;ALgmCZ;;AKvmCQ;EAOI,uBAAA;ALomCZ;;AK3mCQ;EAOI,yBAAA;ALwmCZ;;AK/mCQ;EAOI,yBAAA;AL4mCZ;;AKnnCQ;EAOI,0BAAA;ALgnCZ;;AKvnCQ;EAOI,4BAAA;ALonCZ;;AK3nCQ;EAOI,kCAAA;ALwnCZ;;AK/nCQ;EAOI,sCAAA;AL4nCZ;;AKnoCQ;EAOI,oCAAA;ALgoCZ;;AKvoCQ;EAOI,kCAAA;ALooCZ;;AK3oCQ;EAOI,yCAAA;ALwoCZ;;AK/oCQ;EAOI,wCAAA;AL4oCZ;;AKnpCQ;EAOI,wCAAA;ALgpCZ;;AKvpCQ;EAOI,kCAAA;ALopCZ;;AK3pCQ;EAOI,gCAAA;ALwpCZ;;AK/pCQ;EAOI,8BAAA;AL4pCZ;;AKnqCQ;EAOI,gCAAA;ALgqCZ;;AKvqCQ;EAOI,+BAAA;ALoqCZ;;AK3qCQ;EAOI,oCAAA;ALwqCZ;;AK/qCQ;EAOI,kCAAA;AL4qCZ;;AKnrCQ;EAOI,gCAAA;ALgrCZ;;AKvrCQ;EAOI,uCAAA;ALorCZ;;AK3rCQ;EAOI,sCAAA;ALwrCZ;;AK/rCQ;EAOI,iCAAA;AL4rCZ;;AKnsCQ;EAOI,2BAAA;ALgsCZ;;AKvsCQ;EAOI,iCAAA;ALosCZ;;AK3sCQ;EAOI,+BAAA;ALwsCZ;;AK/sCQ;EAOI,6BAAA;AL4sCZ;;AKntCQ;EAOI,+BAAA;ALgtCZ;;AKvtCQ;EAOI,8BAAA;ALotCZ;;AK3tCQ;EAOI,oBAAA;ALwtCZ;;AK/tCQ;EAOI,mBAAA;AL4tCZ;;AKnuCQ;EAOI,mBAAA;ALguCZ;;AKvuCQ;EAOI,mBAAA;ALouCZ;;AK3uCQ;EAOI,mBAAA;ALwuCZ;;AK/uCQ;EAOI,mBAAA;AL4uCZ;;AKnvCQ;EAOI,mBAAA;ALgvCZ;;AKvvCQ;EAOI,mBAAA;ALovCZ;;AK3vCQ;EAOI,oBAAA;ALwvCZ;;AK/vCQ;EAOI,0BAAA;AL4vCZ;;AKnwCQ;EAOI,yBAAA;ALgwCZ;;AKvwCQ;EAOI,uBAAA;ALowCZ;;AK3wCQ;EAOI,yBAAA;ALwwCZ;;AK/wCQ;EAOI,uBAAA;AL4wCZ;;AKnxCQ;EAOI,uBAAA;ALgxCZ;;AKvxCQ;EAOI,0BAAA;EAAA,yBAAA;ALqxCZ;;AK5xCQ;EAOI,gCAAA;EAAA,+BAAA;AL0xCZ;;AKjyCQ;EAOI,+BAAA;EAAA,8BAAA;AL+xCZ;;AKtyCQ;EAOI,6BAAA;EAAA,4BAAA;ALoyCZ;;AK3yCQ;EAOI,+BAAA;EAAA,8BAAA;ALyyCZ;;AKhzCQ;EAOI,6BAAA;EAAA,4BAAA;AL8yCZ;;AKrzCQ;EAOI,6BAAA;EAAA,4BAAA;ALmzCZ;;AK1zCQ;EAOI,wBAAA;EAAA,2BAAA;ALwzCZ;;AK/zCQ;EAOI,8BAAA;EAAA,iCAAA;AL6zCZ;;AKp0CQ;EAOI,6BAAA;EAAA,gCAAA;ALk0CZ;;AKz0CQ;EAOI,2BAAA;EAAA,8BAAA;ALu0CZ;;AK90CQ;EAOI,6BAAA;EAAA,gCAAA;AL40CZ;;AKn1CQ;EAOI,2BAAA;EAAA,8BAAA;ALi1CZ;;AKx1CQ;EAOI,2BAAA;EAAA,8BAAA;ALs1CZ;;AK71CQ;EAOI,wBAAA;AL01CZ;;AKj2CQ;EAOI,8BAAA;AL81CZ;;AKr2CQ;EAOI,6BAAA;ALk2CZ;;AKz2CQ;EAOI,2BAAA;ALs2CZ;;AK72CQ;EAOI,6BAAA;AL02CZ;;AKj3CQ;EAOI,2BAAA;AL82CZ;;AKr3CQ;EAOI,2BAAA;ALk3CZ;;AKz3CQ;EAOI,0BAAA;ALs3CZ;;AK73CQ;EAOI,gCAAA;AL03CZ;;AKj4CQ;EAOI,+BAAA;AL83CZ;;AKr4CQ;EAOI,6BAAA;ALk4CZ;;AKz4CQ;EAOI,+BAAA;ALs4CZ;;AK74CQ;EAOI,6BAAA;AL04CZ;;AKj5CQ;EAOI,6BAAA;AL84CZ;;AKr5CQ;EAOI,2BAAA;ALk5CZ;;AKz5CQ;EAOI,iCAAA;ALs5CZ;;AK75CQ;EAOI,gCAAA;AL05CZ;;AKj6CQ;EAOI,8BAAA;AL85CZ;;AKr6CQ;EAOI,gCAAA;ALk6CZ;;AKz6CQ;EAOI,8BAAA;ALs6CZ;;AK76CQ;EAOI,8BAAA;AL06CZ;;AKj7CQ;EAOI,yBAAA;AL86CZ;;AKr7CQ;EAOI,+BAAA;ALk7CZ;;AKz7CQ;EAOI,8BAAA;ALs7CZ;;AK77CQ;EAOI,4BAAA;AL07CZ;;AKj8CQ;EAOI,8BAAA;AL87CZ;;AKr8CQ;EAOI,4BAAA;ALk8CZ;;AKz8CQ;EAOI,4BAAA;ALs8CZ;;AK78CQ;EAOI,qBAAA;AL08CZ;;AKj9CQ;EAOI,2BAAA;AL88CZ;;AKr9CQ;EAOI,0BAAA;ALk9CZ;;AKz9CQ;EAOI,wBAAA;ALs9CZ;;AK79CQ;EAOI,0BAAA;AL09CZ;;AKj+CQ;EAOI,wBAAA;AL89CZ;;AKr+CQ;EAOI,2BAAA;EAAA,0BAAA;ALm+CZ;;AK1+CQ;EAOI,iCAAA;EAAA,gCAAA;ALw+CZ;;AK/+CQ;EAOI,gCAAA;EAAA,+BAAA;AL6+CZ;;AKp/CQ;EAOI,8BAAA;EAAA,6BAAA;ALk/CZ;;AKz/CQ;EAOI,gCAAA;EAAA,+BAAA;ALu/CZ;;AK9/CQ;EAOI,8BAAA;EAAA,6BAAA;AL4/CZ;;AKngDQ;EAOI,yBAAA;EAAA,4BAAA;ALigDZ;;AKxgDQ;EAOI,+BAAA;EAAA,kCAAA;ALsgDZ;;AK7gDQ;EAOI,8BAAA;EAAA,iCAAA;AL2gDZ;;AKlhDQ;EAOI,4BAAA;EAAA,+BAAA;ALghDZ;;AKvhDQ;EAOI,8BAAA;EAAA,iCAAA;ALqhDZ;;AK5hDQ;EAOI,4BAAA;EAAA,+BAAA;AL0hDZ;;AKjiDQ;EAOI,yBAAA;AL8hDZ;;AKriDQ;EAOI,+BAAA;ALkiDZ;;AKziDQ;EAOI,8BAAA;ALsiDZ;;AK7iDQ;EAOI,4BAAA;AL0iDZ;;AKjjDQ;EAOI,8BAAA;AL8iDZ;;AKrjDQ;EAOI,4BAAA;ALkjDZ;;AKzjDQ;EAOI,2BAAA;ALsjDZ;;AK7jDQ;EAOI,iCAAA;AL0jDZ;;AKjkDQ;EAOI,gCAAA;AL8jDZ;;AKrkDQ;EAOI,8BAAA;ALkkDZ;;AKzkDQ;EAOI,gCAAA;ALskDZ;;AK7kDQ;EAOI,8BAAA;AL0kDZ;;AKjlDQ;EAOI,4BAAA;AL8kDZ;;AKrlDQ;EAOI,kCAAA;ALklDZ;;AKzlDQ;EAOI,iCAAA;ALslDZ;;AK7lDQ;EAOI,+BAAA;AL0lDZ;;AKjmDQ;EAOI,iCAAA;AL8lDZ;;AKrmDQ;EAOI,+BAAA;ALkmDZ;;AKzmDQ;EAOI,0BAAA;ALsmDZ;;AK7mDQ;EAOI,gCAAA;AL0mDZ;;AKjnDQ;EAOI,+BAAA;AL8mDZ;;AKrnDQ;EAOI,6BAAA;ALknDZ;;AKznDQ;EAOI,+BAAA;ALsnDZ;;AK7nDQ;EAOI,6BAAA;AL0nDZ;;ACpoDI;EIGI;IAOI,0BAAA;EL+nDV;EKtoDM;IAOI,gCAAA;ELkoDV;EKzoDM;IAOI,yBAAA;ELqoDV;EK5oDM;IAOI,wBAAA;ELwoDV;EK/oDM;IAOI,+BAAA;EL2oDV;EKlpDM;IAOI,yBAAA;EL8oDV;EKrpDM;IAOI,6BAAA;ELipDV;EKxpDM;IAOI,8BAAA;ELopDV;EK3pDM;IAOI,wBAAA;ELupDV;EK9pDM;IAOI,+BAAA;EL0pDV;EKjqDM;IAOI,wBAAA;EL6pDV;EKpqDM;IAOI,yBAAA;ELgqDV;EKvqDM;IAOI,8BAAA;ELmqDV;EK1qDM;IAOI,iCAAA;ELsqDV;EK7qDM;IAOI,sCAAA;ELyqDV;EKhrDM;IAOI,yCAAA;EL4qDV;EKnrDM;IAOI,uBAAA;EL+qDV;EKtrDM;IAOI,uBAAA;ELkrDV;EKzrDM;IAOI,yBAAA;ELqrDV;EK5rDM;IAOI,yBAAA;ELwrDV;EK/rDM;IAOI,0BAAA;EL2rDV;EKlsDM;IAOI,4BAAA;EL8rDV;EKrsDM;IAOI,kCAAA;ELisDV;EKxsDM;IAOI,sCAAA;ELosDV;EK3sDM;IAOI,oCAAA;ELusDV;EK9sDM;IAOI,kCAAA;EL0sDV;EKjtDM;IAOI,yCAAA;EL6sDV;EKptDM;IAOI,wCAAA;ELgtDV;EKvtDM;IAOI,wCAAA;ELmtDV;EK1tDM;IAOI,kCAAA;ELstDV;EK7tDM;IAOI,gCAAA;ELytDV;EKhuDM;IAOI,8BAAA;EL4tDV;EKnuDM;IAOI,gCAAA;EL+tDV;EKtuDM;IAOI,+BAAA;ELkuDV;EKzuDM;IAOI,oCAAA;ELquDV;EK5uDM;IAOI,kCAAA;ELwuDV;EK/uDM;IAOI,gCAAA;EL2uDV;EKlvDM;IAOI,uCAAA;EL8uDV;EKrvDM;IAOI,sCAAA;ELivDV;EKxvDM;IAOI,iCAAA;ELovDV;EK3vDM;IAOI,2BAAA;ELuvDV;EK9vDM;IAOI,iCAAA;EL0vDV;EKjwDM;IAOI,+BAAA;EL6vDV;EKpwDM;IAOI,6BAAA;ELgwDV;EKvwDM;IAOI,+BAAA;ELmwDV;EK1wDM;IAOI,8BAAA;ELswDV;EK7wDM;IAOI,oBAAA;ELywDV;EKhxDM;IAOI,mBAAA;EL4wDV;EKnxDM;IAOI,mBAAA;EL+wDV;EKtxDM;IAOI,mBAAA;ELkxDV;EKzxDM;IAOI,mBAAA;ELqxDV;EK5xDM;IAOI,mBAAA;ELwxDV;EK/xDM;IAOI,mBAAA;EL2xDV;EKlyDM;IAOI,mBAAA;EL8xDV;EKryDM;IAOI,oBAAA;ELiyDV;EKxyDM;IAOI,0BAAA;ELoyDV;EK3yDM;IAOI,yBAAA;ELuyDV;EK9yDM;IAOI,uBAAA;EL0yDV;EKjzDM;IAOI,yBAAA;EL6yDV;EKpzDM;IAOI,uBAAA;ELgzDV;EKvzDM;IAOI,uBAAA;ELmzDV;EK1zDM;IAOI,0BAAA;IAAA,yBAAA;ELuzDV;EK9zDM;IAOI,gCAAA;IAAA,+BAAA;EL2zDV;EKl0DM;IAOI,+BAAA;IAAA,8BAAA;EL+zDV;EKt0DM;IAOI,6BAAA;IAAA,4BAAA;ELm0DV;EK10DM;IAOI,+BAAA;IAAA,8BAAA;ELu0DV;EK90DM;IAOI,6BAAA;IAAA,4BAAA;EL20DV;EKl1DM;IAOI,6BAAA;IAAA,4BAAA;EL+0DV;EKt1DM;IAOI,wBAAA;IAAA,2BAAA;ELm1DV;EK11DM;IAOI,8BAAA;IAAA,iCAAA;ELu1DV;EK91DM;IAOI,6BAAA;IAAA,gCAAA;EL21DV;EKl2DM;IAOI,2BAAA;IAAA,8BAAA;EL+1DV;EKt2DM;IAOI,6BAAA;IAAA,gCAAA;ELm2DV;EK12DM;IAOI,2BAAA;IAAA,8BAAA;ELu2DV;EK92DM;IAOI,2BAAA;IAAA,8BAAA;EL22DV;EKl3DM;IAOI,wBAAA;EL82DV;EKr3DM;IAOI,8BAAA;ELi3DV;EKx3DM;IAOI,6BAAA;ELo3DV;EK33DM;IAOI,2BAAA;ELu3DV;EK93DM;IAOI,6BAAA;EL03DV;EKj4DM;IAOI,2BAAA;EL63DV;EKp4DM;IAOI,2BAAA;ELg4DV;EKv4DM;IAOI,0BAAA;ELm4DV;EK14DM;IAOI,gCAAA;ELs4DV;EK74DM;IAOI,+BAAA;ELy4DV;EKh5DM;IAOI,6BAAA;EL44DV;EKn5DM;IAOI,+BAAA;EL+4DV;EKt5DM;IAOI,6BAAA;ELk5DV;EKz5DM;IAOI,6BAAA;ELq5DV;EK55DM;IAOI,2BAAA;ELw5DV;EK/5DM;IAOI,iCAAA;EL25DV;EKl6DM;IAOI,gCAAA;EL85DV;EKr6DM;IAOI,8BAAA;ELi6DV;EKx6DM;IAOI,gCAAA;ELo6DV;EK36DM;IAOI,8BAAA;ELu6DV;EK96DM;IAOI,8BAAA;EL06DV;EKj7DM;IAOI,yBAAA;EL66DV;EKp7DM;IAOI,+BAAA;ELg7DV;EKv7DM;IAOI,8BAAA;ELm7DV;EK17DM;IAOI,4BAAA;ELs7DV;EK77DM;IAOI,8BAAA;ELy7DV;EKh8DM;IAOI,4BAAA;EL47DV;EKn8DM;IAOI,4BAAA;EL+7DV;EKt8DM;IAOI,qBAAA;ELk8DV;EKz8DM;IAOI,2BAAA;ELq8DV;EK58DM;IAOI,0BAAA;ELw8DV;EK/8DM;IAOI,wBAAA;EL28DV;EKl9DM;IAOI,0BAAA;EL88DV;EKr9DM;IAOI,wBAAA;ELi9DV;EKx9DM;IAOI,2BAAA;IAAA,0BAAA;ELq9DV;EK59DM;IAOI,iCAAA;IAAA,gCAAA;ELy9DV;EKh+DM;IAOI,gCAAA;IAAA,+BAAA;EL69DV;EKp+DM;IAOI,8BAAA;IAAA,6BAAA;ELi+DV;EKx+DM;IAOI,gCAAA;IAAA,+BAAA;ELq+DV;EK5+DM;IAOI,8BAAA;IAAA,6BAAA;ELy+DV;EKh/DM;IAOI,yBAAA;IAAA,4BAAA;EL6+DV;EKp/DM;IAOI,+BAAA;IAAA,kCAAA;ELi/DV;EKx/DM;IAOI,8BAAA;IAAA,iCAAA;ELq/DV;EK5/DM;IAOI,4BAAA;IAAA,+BAAA;ELy/DV;EKhgEM;IAOI,8BAAA;IAAA,iCAAA;EL6/DV;EKpgEM;IAOI,4BAAA;IAAA,+BAAA;ELigEV;EKxgEM;IAOI,yBAAA;ELogEV;EK3gEM;IAOI,+BAAA;ELugEV;EK9gEM;IAOI,8BAAA;EL0gEV;EKjhEM;IAOI,4BAAA;EL6gEV;EKphEM;IAOI,8BAAA;ELghEV;EKvhEM;IAOI,4BAAA;ELmhEV;EK1hEM;IAOI,2BAAA;ELshEV;EK7hEM;IAOI,iCAAA;ELyhEV;EKhiEM;IAOI,gCAAA;EL4hEV;EKniEM;IAOI,8BAAA;EL+hEV;EKtiEM;IAOI,gCAAA;ELkiEV;EKziEM;IAOI,8BAAA;ELqiEV;EK5iEM;IAOI,4BAAA;ELwiEV;EK/iEM;IAOI,kCAAA;EL2iEV;EKljEM;IAOI,iCAAA;EL8iEV;EKrjEM;IAOI,+BAAA;ELijEV;EKxjEM;IAOI,iCAAA;ELojEV;EK3jEM;IAOI,+BAAA;ELujEV;EK9jEM;IAOI,0BAAA;EL0jEV;EKjkEM;IAOI,gCAAA;EL6jEV;EKpkEM;IAOI,+BAAA;ELgkEV;EKvkEM;IAOI,6BAAA;ELmkEV;EK1kEM;IAOI,+BAAA;ELskEV;EK7kEM;IAOI,6BAAA;ELykEV;AACF;ACplEI;EIGI;IAOI,0BAAA;EL8kEV;EKrlEM;IAOI,gCAAA;ELilEV;EKxlEM;IAOI,yBAAA;ELolEV;EK3lEM;IAOI,wBAAA;ELulEV;EK9lEM;IAOI,+BAAA;EL0lEV;EKjmEM;IAOI,yBAAA;EL6lEV;EKpmEM;IAOI,6BAAA;ELgmEV;EKvmEM;IAOI,8BAAA;ELmmEV;EK1mEM;IAOI,wBAAA;ELsmEV;EK7mEM;IAOI,+BAAA;ELymEV;EKhnEM;IAOI,wBAAA;EL4mEV;EKnnEM;IAOI,yBAAA;EL+mEV;EKtnEM;IAOI,8BAAA;ELknEV;EKznEM;IAOI,iCAAA;ELqnEV;EK5nEM;IAOI,sCAAA;ELwnEV;EK/nEM;IAOI,yCAAA;EL2nEV;EKloEM;IAOI,uBAAA;EL8nEV;EKroEM;IAOI,uBAAA;ELioEV;EKxoEM;IAOI,yBAAA;ELooEV;EK3oEM;IAOI,yBAAA;ELuoEV;EK9oEM;IAOI,0BAAA;EL0oEV;EKjpEM;IAOI,4BAAA;EL6oEV;EKppEM;IAOI,kCAAA;ELgpEV;EKvpEM;IAOI,sCAAA;ELmpEV;EK1pEM;IAOI,oCAAA;ELspEV;EK7pEM;IAOI,kCAAA;ELypEV;EKhqEM;IAOI,yCAAA;EL4pEV;EKnqEM;IAOI,wCAAA;EL+pEV;EKtqEM;IAOI,wCAAA;ELkqEV;EKzqEM;IAOI,kCAAA;ELqqEV;EK5qEM;IAOI,gCAAA;ELwqEV;EK/qEM;IAOI,8BAAA;EL2qEV;EKlrEM;IAOI,gCAAA;EL8qEV;EKrrEM;IAOI,+BAAA;ELirEV;EKxrEM;IAOI,oCAAA;ELorEV;EK3rEM;IAOI,kCAAA;ELurEV;EK9rEM;IAOI,gCAAA;EL0rEV;EKjsEM;IAOI,uCAAA;EL6rEV;EKpsEM;IAOI,sCAAA;ELgsEV;EKvsEM;IAOI,iCAAA;ELmsEV;EK1sEM;IAOI,2BAAA;ELssEV;EK7sEM;IAOI,iCAAA;ELysEV;EKhtEM;IAOI,+BAAA;EL4sEV;EKntEM;IAOI,6BAAA;EL+sEV;EKttEM;IAOI,+BAAA;ELktEV;EKztEM;IAOI,8BAAA;ELqtEV;EK5tEM;IAOI,oBAAA;ELwtEV;EK/tEM;IAOI,mBAAA;EL2tEV;EKluEM;IAOI,mBAAA;EL8tEV;EKruEM;IAOI,mBAAA;ELiuEV;EKxuEM;IAOI,mBAAA;ELouEV;EK3uEM;IAOI,mBAAA;ELuuEV;EK9uEM;IAOI,mBAAA;EL0uEV;EKjvEM;IAOI,mBAAA;EL6uEV;EKpvEM;IAOI,oBAAA;ELgvEV;EKvvEM;IAOI,0BAAA;ELmvEV;EK1vEM;IAOI,yBAAA;ELsvEV;EK7vEM;IAOI,uBAAA;ELyvEV;EKhwEM;IAOI,yBAAA;EL4vEV;EKnwEM;IAOI,uBAAA;EL+vEV;EKtwEM;IAOI,uBAAA;ELkwEV;EKzwEM;IAOI,0BAAA;IAAA,yBAAA;ELswEV;EK7wEM;IAOI,gCAAA;IAAA,+BAAA;EL0wEV;EKjxEM;IAOI,+BAAA;IAAA,8BAAA;EL8wEV;EKrxEM;IAOI,6BAAA;IAAA,4BAAA;ELkxEV;EKzxEM;IAOI,+BAAA;IAAA,8BAAA;ELsxEV;EK7xEM;IAOI,6BAAA;IAAA,4BAAA;EL0xEV;EKjyEM;IAOI,6BAAA;IAAA,4BAAA;EL8xEV;EKryEM;IAOI,wBAAA;IAAA,2BAAA;ELkyEV;EKzyEM;IAOI,8BAAA;IAAA,iCAAA;ELsyEV;EK7yEM;IAOI,6BAAA;IAAA,gCAAA;EL0yEV;EKjzEM;IAOI,2BAAA;IAAA,8BAAA;EL8yEV;EKrzEM;IAOI,6BAAA;IAAA,gCAAA;ELkzEV;EKzzEM;IAOI,2BAAA;IAAA,8BAAA;ELszEV;EK7zEM;IAOI,2BAAA;IAAA,8BAAA;EL0zEV;EKj0EM;IAOI,wBAAA;EL6zEV;EKp0EM;IAOI,8BAAA;ELg0EV;EKv0EM;IAOI,6BAAA;ELm0EV;EK10EM;IAOI,2BAAA;ELs0EV;EK70EM;IAOI,6BAAA;ELy0EV;EKh1EM;IAOI,2BAAA;EL40EV;EKn1EM;IAOI,2BAAA;EL+0EV;EKt1EM;IAOI,0BAAA;ELk1EV;EKz1EM;IAOI,gCAAA;ELq1EV;EK51EM;IAOI,+BAAA;ELw1EV;EK/1EM;IAOI,6BAAA;EL21EV;EKl2EM;IAOI,+BAAA;EL81EV;EKr2EM;IAOI,6BAAA;ELi2EV;EKx2EM;IAOI,6BAAA;ELo2EV;EK32EM;IAOI,2BAAA;ELu2EV;EK92EM;IAOI,iCAAA;EL02EV;EKj3EM;IAOI,gCAAA;EL62EV;EKp3EM;IAOI,8BAAA;ELg3EV;EKv3EM;IAOI,gCAAA;ELm3EV;EK13EM;IAOI,8BAAA;ELs3EV;EK73EM;IAOI,8BAAA;ELy3EV;EKh4EM;IAOI,yBAAA;EL43EV;EKn4EM;IAOI,+BAAA;EL+3EV;EKt4EM;IAOI,8BAAA;ELk4EV;EKz4EM;IAOI,4BAAA;ELq4EV;EK54EM;IAOI,8BAAA;ELw4EV;EK/4EM;IAOI,4BAAA;EL24EV;EKl5EM;IAOI,4BAAA;EL84EV;EKr5EM;IAOI,qBAAA;ELi5EV;EKx5EM;IAOI,2BAAA;ELo5EV;EK35EM;IAOI,0BAAA;ELu5EV;EK95EM;IAOI,wBAAA;EL05EV;EKj6EM;IAOI,0BAAA;EL65EV;EKp6EM;IAOI,wBAAA;ELg6EV;EKv6EM;IAOI,2BAAA;IAAA,0BAAA;ELo6EV;EK36EM;IAOI,iCAAA;IAAA,gCAAA;ELw6EV;EK/6EM;IAOI,gCAAA;IAAA,+BAAA;EL46EV;EKn7EM;IAOI,8BAAA;IAAA,6BAAA;ELg7EV;EKv7EM;IAOI,gCAAA;IAAA,+BAAA;ELo7EV;EK37EM;IAOI,8BAAA;IAAA,6BAAA;ELw7EV;EK/7EM;IAOI,yBAAA;IAAA,4BAAA;EL47EV;EKn8EM;IAOI,+BAAA;IAAA,kCAAA;ELg8EV;EKv8EM;IAOI,8BAAA;IAAA,iCAAA;ELo8EV;EK38EM;IAOI,4BAAA;IAAA,+BAAA;ELw8EV;EK/8EM;IAOI,8BAAA;IAAA,iCAAA;EL48EV;EKn9EM;IAOI,4BAAA;IAAA,+BAAA;ELg9EV;EKv9EM;IAOI,yBAAA;ELm9EV;EK19EM;IAOI,+BAAA;ELs9EV;EK79EM;IAOI,8BAAA;ELy9EV;EKh+EM;IAOI,4BAAA;EL49EV;EKn+EM;IAOI,8BAAA;EL+9EV;EKt+EM;IAOI,4BAAA;ELk+EV;EKz+EM;IAOI,2BAAA;ELq+EV;EK5+EM;IAOI,iCAAA;ELw+EV;EK/+EM;IAOI,gCAAA;EL2+EV;EKl/EM;IAOI,8BAAA;EL8+EV;EKr/EM;IAOI,gCAAA;ELi/EV;EKx/EM;IAOI,8BAAA;ELo/EV;EK3/EM;IAOI,4BAAA;ELu/EV;EK9/EM;IAOI,kCAAA;EL0/EV;EKjgFM;IAOI,iCAAA;EL6/EV;EKpgFM;IAOI,+BAAA;ELggFV;EKvgFM;IAOI,iCAAA;ELmgFV;EK1gFM;IAOI,+BAAA;ELsgFV;EK7gFM;IAOI,0BAAA;ELygFV;EKhhFM;IAOI,gCAAA;EL4gFV;EKnhFM;IAOI,+BAAA;EL+gFV;EKthFM;IAOI,6BAAA;ELkhFV;EKzhFM;IAOI,+BAAA;ELqhFV;EK5hFM;IAOI,6BAAA;ELwhFV;AACF;ACniFI;EIGI;IAOI,0BAAA;EL6hFV;EKpiFM;IAOI,gCAAA;ELgiFV;EKviFM;IAOI,yBAAA;ELmiFV;EK1iFM;IAOI,wBAAA;ELsiFV;EK7iFM;IAOI,+BAAA;ELyiFV;EKhjFM;IAOI,yBAAA;EL4iFV;EKnjFM;IAOI,6BAAA;EL+iFV;EKtjFM;IAOI,8BAAA;ELkjFV;EKzjFM;IAOI,wBAAA;ELqjFV;EK5jFM;IAOI,+BAAA;ELwjFV;EK/jFM;IAOI,wBAAA;EL2jFV;EKlkFM;IAOI,yBAAA;EL8jFV;EKrkFM;IAOI,8BAAA;ELikFV;EKxkFM;IAOI,iCAAA;ELokFV;EK3kFM;IAOI,sCAAA;ELukFV;EK9kFM;IAOI,yCAAA;EL0kFV;EKjlFM;IAOI,uBAAA;EL6kFV;EKplFM;IAOI,uBAAA;ELglFV;EKvlFM;IAOI,yBAAA;ELmlFV;EK1lFM;IAOI,yBAAA;ELslFV;EK7lFM;IAOI,0BAAA;ELylFV;EKhmFM;IAOI,4BAAA;EL4lFV;EKnmFM;IAOI,kCAAA;EL+lFV;EKtmFM;IAOI,sCAAA;ELkmFV;EKzmFM;IAOI,oCAAA;ELqmFV;EK5mFM;IAOI,kCAAA;ELwmFV;EK/mFM;IAOI,yCAAA;EL2mFV;EKlnFM;IAOI,wCAAA;EL8mFV;EKrnFM;IAOI,wCAAA;ELinFV;EKxnFM;IAOI,kCAAA;ELonFV;EK3nFM;IAOI,gCAAA;ELunFV;EK9nFM;IAOI,8BAAA;EL0nFV;EKjoFM;IAOI,gCAAA;EL6nFV;EKpoFM;IAOI,+BAAA;ELgoFV;EKvoFM;IAOI,oCAAA;ELmoFV;EK1oFM;IAOI,kCAAA;ELsoFV;EK7oFM;IAOI,gCAAA;ELyoFV;EKhpFM;IAOI,uCAAA;EL4oFV;EKnpFM;IAOI,sCAAA;EL+oFV;EKtpFM;IAOI,iCAAA;ELkpFV;EKzpFM;IAOI,2BAAA;ELqpFV;EK5pFM;IAOI,iCAAA;ELwpFV;EK/pFM;IAOI,+BAAA;EL2pFV;EKlqFM;IAOI,6BAAA;EL8pFV;EKrqFM;IAOI,+BAAA;ELiqFV;EKxqFM;IAOI,8BAAA;ELoqFV;EK3qFM;IAOI,oBAAA;ELuqFV;EK9qFM;IAOI,mBAAA;EL0qFV;EKjrFM;IAOI,mBAAA;EL6qFV;EKprFM;IAOI,mBAAA;ELgrFV;EKvrFM;IAOI,mBAAA;ELmrFV;EK1rFM;IAOI,mBAAA;ELsrFV;EK7rFM;IAOI,mBAAA;ELyrFV;EKhsFM;IAOI,mBAAA;EL4rFV;EKnsFM;IAOI,oBAAA;EL+rFV;EKtsFM;IAOI,0BAAA;ELksFV;EKzsFM;IAOI,yBAAA;ELqsFV;EK5sFM;IAOI,uBAAA;ELwsFV;EK/sFM;IAOI,yBAAA;EL2sFV;EKltFM;IAOI,uBAAA;EL8sFV;EKrtFM;IAOI,uBAAA;ELitFV;EKxtFM;IAOI,0BAAA;IAAA,yBAAA;ELqtFV;EK5tFM;IAOI,gCAAA;IAAA,+BAAA;ELytFV;EKhuFM;IAOI,+BAAA;IAAA,8BAAA;EL6tFV;EKpuFM;IAOI,6BAAA;IAAA,4BAAA;ELiuFV;EKxuFM;IAOI,+BAAA;IAAA,8BAAA;ELquFV;EK5uFM;IAOI,6BAAA;IAAA,4BAAA;ELyuFV;EKhvFM;IAOI,6BAAA;IAAA,4BAAA;EL6uFV;EKpvFM;IAOI,wBAAA;IAAA,2BAAA;ELivFV;EKxvFM;IAOI,8BAAA;IAAA,iCAAA;ELqvFV;EK5vFM;IAOI,6BAAA;IAAA,gCAAA;ELyvFV;EKhwFM;IAOI,2BAAA;IAAA,8BAAA;EL6vFV;EKpwFM;IAOI,6BAAA;IAAA,gCAAA;ELiwFV;EKxwFM;IAOI,2BAAA;IAAA,8BAAA;ELqwFV;EK5wFM;IAOI,2BAAA;IAAA,8BAAA;ELywFV;EKhxFM;IAOI,wBAAA;EL4wFV;EKnxFM;IAOI,8BAAA;EL+wFV;EKtxFM;IAOI,6BAAA;ELkxFV;EKzxFM;IAOI,2BAAA;ELqxFV;EK5xFM;IAOI,6BAAA;ELwxFV;EK/xFM;IAOI,2BAAA;EL2xFV;EKlyFM;IAOI,2BAAA;EL8xFV;EKryFM;IAOI,0BAAA;ELiyFV;EKxyFM;IAOI,gCAAA;ELoyFV;EK3yFM;IAOI,+BAAA;ELuyFV;EK9yFM;IAOI,6BAAA;EL0yFV;EKjzFM;IAOI,+BAAA;EL6yFV;EKpzFM;IAOI,6BAAA;ELgzFV;EKvzFM;IAOI,6BAAA;ELmzFV;EK1zFM;IAOI,2BAAA;ELszFV;EK7zFM;IAOI,iCAAA;ELyzFV;EKh0FM;IAOI,gCAAA;EL4zFV;EKn0FM;IAOI,8BAAA;EL+zFV;EKt0FM;IAOI,gCAAA;ELk0FV;EKz0FM;IAOI,8BAAA;ELq0FV;EK50FM;IAOI,8BAAA;ELw0FV;EK/0FM;IAOI,yBAAA;EL20FV;EKl1FM;IAOI,+BAAA;EL80FV;EKr1FM;IAOI,8BAAA;ELi1FV;EKx1FM;IAOI,4BAAA;ELo1FV;EK31FM;IAOI,8BAAA;ELu1FV;EK91FM;IAOI,4BAAA;EL01FV;EKj2FM;IAOI,4BAAA;EL61FV;EKp2FM;IAOI,qBAAA;ELg2FV;EKv2FM;IAOI,2BAAA;ELm2FV;EK12FM;IAOI,0BAAA;ELs2FV;EK72FM;IAOI,wBAAA;ELy2FV;EKh3FM;IAOI,0BAAA;EL42FV;EKn3FM;IAOI,wBAAA;EL+2FV;EKt3FM;IAOI,2BAAA;IAAA,0BAAA;ELm3FV;EK13FM;IAOI,iCAAA;IAAA,gCAAA;ELu3FV;EK93FM;IAOI,gCAAA;IAAA,+BAAA;EL23FV;EKl4FM;IAOI,8BAAA;IAAA,6BAAA;EL+3FV;EKt4FM;IAOI,gCAAA;IAAA,+BAAA;ELm4FV;EK14FM;IAOI,8BAAA;IAAA,6BAAA;ELu4FV;EK94FM;IAOI,yBAAA;IAAA,4BAAA;EL24FV;EKl5FM;IAOI,+BAAA;IAAA,kCAAA;EL+4FV;EKt5FM;IAOI,8BAAA;IAAA,iCAAA;ELm5FV;EK15FM;IAOI,4BAAA;IAAA,+BAAA;ELu5FV;EK95FM;IAOI,8BAAA;IAAA,iCAAA;EL25FV;EKl6FM;IAOI,4BAAA;IAAA,+BAAA;EL+5FV;EKt6FM;IAOI,yBAAA;ELk6FV;EKz6FM;IAOI,+BAAA;ELq6FV;EK56FM;IAOI,8BAAA;ELw6FV;EK/6FM;IAOI,4BAAA;EL26FV;EKl7FM;IAOI,8BAAA;EL86FV;EKr7FM;IAOI,4BAAA;ELi7FV;EKx7FM;IAOI,2BAAA;ELo7FV;EK37FM;IAOI,iCAAA;ELu7FV;EK97FM;IAOI,gCAAA;EL07FV;EKj8FM;IAOI,8BAAA;EL67FV;EKp8FM;IAOI,gCAAA;ELg8FV;EKv8FM;IAOI,8BAAA;ELm8FV;EK18FM;IAOI,4BAAA;ELs8FV;EK78FM;IAOI,kCAAA;ELy8FV;EKh9FM;IAOI,iCAAA;EL48FV;EKn9FM;IAOI,+BAAA;EL+8FV;EKt9FM;IAOI,iCAAA;ELk9FV;EKz9FM;IAOI,+BAAA;ELq9FV;EK59FM;IAOI,0BAAA;ELw9FV;EK/9FM;IAOI,gCAAA;EL29FV;EKl+FM;IAOI,+BAAA;EL89FV;EKr+FM;IAOI,6BAAA;ELi+FV;EKx+FM;IAOI,+BAAA;ELo+FV;EK3+FM;IAOI,6BAAA;ELu+FV;AACF;ACl/FI;EIGI;IAOI,0BAAA;EL4+FV;EKn/FM;IAOI,gCAAA;EL++FV;EKt/FM;IAOI,yBAAA;ELk/FV;EKz/FM;IAOI,wBAAA;ELq/FV;EK5/FM;IAOI,+BAAA;ELw/FV;EK//FM;IAOI,yBAAA;EL2/FV;EKlgGM;IAOI,6BAAA;EL8/FV;EKrgGM;IAOI,8BAAA;ELigGV;EKxgGM;IAOI,wBAAA;ELogGV;EK3gGM;IAOI,+BAAA;ELugGV;EK9gGM;IAOI,wBAAA;EL0gGV;EKjhGM;IAOI,yBAAA;EL6gGV;EKphGM;IAOI,8BAAA;ELghGV;EKvhGM;IAOI,iCAAA;ELmhGV;EK1hGM;IAOI,sCAAA;ELshGV;EK7hGM;IAOI,yCAAA;ELyhGV;EKhiGM;IAOI,uBAAA;EL4hGV;EKniGM;IAOI,uBAAA;EL+hGV;EKtiGM;IAOI,yBAAA;ELkiGV;EKziGM;IAOI,yBAAA;ELqiGV;EK5iGM;IAOI,0BAAA;ELwiGV;EK/iGM;IAOI,4BAAA;EL2iGV;EKljGM;IAOI,kCAAA;EL8iGV;EKrjGM;IAOI,sCAAA;ELijGV;EKxjGM;IAOI,oCAAA;ELojGV;EK3jGM;IAOI,kCAAA;ELujGV;EK9jGM;IAOI,yCAAA;EL0jGV;EKjkGM;IAOI,wCAAA;EL6jGV;EKpkGM;IAOI,wCAAA;ELgkGV;EKvkGM;IAOI,kCAAA;ELmkGV;EK1kGM;IAOI,gCAAA;ELskGV;EK7kGM;IAOI,8BAAA;ELykGV;EKhlGM;IAOI,gCAAA;EL4kGV;EKnlGM;IAOI,+BAAA;EL+kGV;EKtlGM;IAOI,oCAAA;ELklGV;EKzlGM;IAOI,kCAAA;ELqlGV;EK5lGM;IAOI,gCAAA;ELwlGV;EK/lGM;IAOI,uCAAA;EL2lGV;EKlmGM;IAOI,sCAAA;EL8lGV;EKrmGM;IAOI,iCAAA;ELimGV;EKxmGM;IAOI,2BAAA;ELomGV;EK3mGM;IAOI,iCAAA;ELumGV;EK9mGM;IAOI,+BAAA;EL0mGV;EKjnGM;IAOI,6BAAA;EL6mGV;EKpnGM;IAOI,+BAAA;ELgnGV;EKvnGM;IAOI,8BAAA;ELmnGV;EK1nGM;IAOI,oBAAA;ELsnGV;EK7nGM;IAOI,mBAAA;ELynGV;EKhoGM;IAOI,mBAAA;EL4nGV;EKnoGM;IAOI,mBAAA;EL+nGV;EKtoGM;IAOI,mBAAA;ELkoGV;EKzoGM;IAOI,mBAAA;ELqoGV;EK5oGM;IAOI,mBAAA;ELwoGV;EK/oGM;IAOI,mBAAA;EL2oGV;EKlpGM;IAOI,oBAAA;EL8oGV;EKrpGM;IAOI,0BAAA;ELipGV;EKxpGM;IAOI,yBAAA;ELopGV;EK3pGM;IAOI,uBAAA;ELupGV;EK9pGM;IAOI,yBAAA;EL0pGV;EKjqGM;IAOI,uBAAA;EL6pGV;EKpqGM;IAOI,uBAAA;ELgqGV;EKvqGM;IAOI,0BAAA;IAAA,yBAAA;ELoqGV;EK3qGM;IAOI,gCAAA;IAAA,+BAAA;ELwqGV;EK/qGM;IAOI,+BAAA;IAAA,8BAAA;EL4qGV;EKnrGM;IAOI,6BAAA;IAAA,4BAAA;ELgrGV;EKvrGM;IAOI,+BAAA;IAAA,8BAAA;ELorGV;EK3rGM;IAOI,6BAAA;IAAA,4BAAA;ELwrGV;EK/rGM;IAOI,6BAAA;IAAA,4BAAA;EL4rGV;EKnsGM;IAOI,wBAAA;IAAA,2BAAA;ELgsGV;EKvsGM;IAOI,8BAAA;IAAA,iCAAA;ELosGV;EK3sGM;IAOI,6BAAA;IAAA,gCAAA;ELwsGV;EK/sGM;IAOI,2BAAA;IAAA,8BAAA;EL4sGV;EKntGM;IAOI,6BAAA;IAAA,gCAAA;ELgtGV;EKvtGM;IAOI,2BAAA;IAAA,8BAAA;ELotGV;EK3tGM;IAOI,2BAAA;IAAA,8BAAA;ELwtGV;EK/tGM;IAOI,wBAAA;EL2tGV;EKluGM;IAOI,8BAAA;EL8tGV;EKruGM;IAOI,6BAAA;ELiuGV;EKxuGM;IAOI,2BAAA;ELouGV;EK3uGM;IAOI,6BAAA;ELuuGV;EK9uGM;IAOI,2BAAA;EL0uGV;EKjvGM;IAOI,2BAAA;EL6uGV;EKpvGM;IAOI,0BAAA;ELgvGV;EKvvGM;IAOI,gCAAA;ELmvGV;EK1vGM;IAOI,+BAAA;ELsvGV;EK7vGM;IAOI,6BAAA;ELyvGV;EKhwGM;IAOI,+BAAA;EL4vGV;EKnwGM;IAOI,6BAAA;EL+vGV;EKtwGM;IAOI,6BAAA;ELkwGV;EKzwGM;IAOI,2BAAA;ELqwGV;EK5wGM;IAOI,iCAAA;ELwwGV;EK/wGM;IAOI,gCAAA;EL2wGV;EKlxGM;IAOI,8BAAA;EL8wGV;EKrxGM;IAOI,gCAAA;ELixGV;EKxxGM;IAOI,8BAAA;ELoxGV;EK3xGM;IAOI,8BAAA;ELuxGV;EK9xGM;IAOI,yBAAA;EL0xGV;EKjyGM;IAOI,+BAAA;EL6xGV;EKpyGM;IAOI,8BAAA;ELgyGV;EKvyGM;IAOI,4BAAA;ELmyGV;EK1yGM;IAOI,8BAAA;ELsyGV;EK7yGM;IAOI,4BAAA;ELyyGV;EKhzGM;IAOI,4BAAA;EL4yGV;EKnzGM;IAOI,qBAAA;EL+yGV;EKtzGM;IAOI,2BAAA;ELkzGV;EKzzGM;IAOI,0BAAA;ELqzGV;EK5zGM;IAOI,wBAAA;ELwzGV;EK/zGM;IAOI,0BAAA;EL2zGV;EKl0GM;IAOI,wBAAA;EL8zGV;EKr0GM;IAOI,2BAAA;IAAA,0BAAA;ELk0GV;EKz0GM;IAOI,iCAAA;IAAA,gCAAA;ELs0GV;EK70GM;IAOI,gCAAA;IAAA,+BAAA;EL00GV;EKj1GM;IAOI,8BAAA;IAAA,6BAAA;EL80GV;EKr1GM;IAOI,gCAAA;IAAA,+BAAA;ELk1GV;EKz1GM;IAOI,8BAAA;IAAA,6BAAA;ELs1GV;EK71GM;IAOI,yBAAA;IAAA,4BAAA;EL01GV;EKj2GM;IAOI,+BAAA;IAAA,kCAAA;EL81GV;EKr2GM;IAOI,8BAAA;IAAA,iCAAA;ELk2GV;EKz2GM;IAOI,4BAAA;IAAA,+BAAA;ELs2GV;EK72GM;IAOI,8BAAA;IAAA,iCAAA;EL02GV;EKj3GM;IAOI,4BAAA;IAAA,+BAAA;EL82GV;EKr3GM;IAOI,yBAAA;ELi3GV;EKx3GM;IAOI,+BAAA;ELo3GV;EK33GM;IAOI,8BAAA;ELu3GV;EK93GM;IAOI,4BAAA;EL03GV;EKj4GM;IAOI,8BAAA;EL63GV;EKp4GM;IAOI,4BAAA;ELg4GV;EKv4GM;IAOI,2BAAA;ELm4GV;EK14GM;IAOI,iCAAA;ELs4GV;EK74GM;IAOI,gCAAA;ELy4GV;EKh5GM;IAOI,8BAAA;EL44GV;EKn5GM;IAOI,gCAAA;EL+4GV;EKt5GM;IAOI,8BAAA;ELk5GV;EKz5GM;IAOI,4BAAA;ELq5GV;EK55GM;IAOI,kCAAA;ELw5GV;EK/5GM;IAOI,iCAAA;EL25GV;EKl6GM;IAOI,+BAAA;EL85GV;EKr6GM;IAOI,iCAAA;ELi6GV;EKx6GM;IAOI,+BAAA;ELo6GV;EK36GM;IAOI,0BAAA;ELu6GV;EK96GM;IAOI,gCAAA;EL06GV;EKj7GM;IAOI,+BAAA;EL66GV;EKp7GM;IAOI,6BAAA;ELg7GV;EKv7GM;IAOI,+BAAA;ELm7GV;EK17GM;IAOI,6BAAA;ELs7GV;AACF;ACj8GI;EIGI;IAOI,0BAAA;EL27GV;EKl8GM;IAOI,gCAAA;EL87GV;EKr8GM;IAOI,yBAAA;ELi8GV;EKx8GM;IAOI,wBAAA;ELo8GV;EK38GM;IAOI,+BAAA;ELu8GV;EK98GM;IAOI,yBAAA;EL08GV;EKj9GM;IAOI,6BAAA;EL68GV;EKp9GM;IAOI,8BAAA;ELg9GV;EKv9GM;IAOI,wBAAA;ELm9GV;EK19GM;IAOI,+BAAA;ELs9GV;EK79GM;IAOI,wBAAA;ELy9GV;EKh+GM;IAOI,yBAAA;EL49GV;EKn+GM;IAOI,8BAAA;EL+9GV;EKt+GM;IAOI,iCAAA;ELk+GV;EKz+GM;IAOI,sCAAA;ELq+GV;EK5+GM;IAOI,yCAAA;ELw+GV;EK/+GM;IAOI,uBAAA;EL2+GV;EKl/GM;IAOI,uBAAA;EL8+GV;EKr/GM;IAOI,yBAAA;ELi/GV;EKx/GM;IAOI,yBAAA;ELo/GV;EK3/GM;IAOI,0BAAA;ELu/GV;EK9/GM;IAOI,4BAAA;EL0/GV;EKjgHM;IAOI,kCAAA;EL6/GV;EKpgHM;IAOI,sCAAA;ELggHV;EKvgHM;IAOI,oCAAA;ELmgHV;EK1gHM;IAOI,kCAAA;ELsgHV;EK7gHM;IAOI,yCAAA;ELygHV;EKhhHM;IAOI,wCAAA;EL4gHV;EKnhHM;IAOI,wCAAA;EL+gHV;EKthHM;IAOI,kCAAA;ELkhHV;EKzhHM;IAOI,gCAAA;ELqhHV;EK5hHM;IAOI,8BAAA;ELwhHV;EK/hHM;IAOI,gCAAA;EL2hHV;EKliHM;IAOI,+BAAA;EL8hHV;EKriHM;IAOI,oCAAA;ELiiHV;EKxiHM;IAOI,kCAAA;ELoiHV;EK3iHM;IAOI,gCAAA;ELuiHV;EK9iHM;IAOI,uCAAA;EL0iHV;EKjjHM;IAOI,sCAAA;EL6iHV;EKpjHM;IAOI,iCAAA;ELgjHV;EKvjHM;IAOI,2BAAA;ELmjHV;EK1jHM;IAOI,iCAAA;ELsjHV;EK7jHM;IAOI,+BAAA;ELyjHV;EKhkHM;IAOI,6BAAA;EL4jHV;EKnkHM;IAOI,+BAAA;EL+jHV;EKtkHM;IAOI,8BAAA;ELkkHV;EKzkHM;IAOI,oBAAA;ELqkHV;EK5kHM;IAOI,mBAAA;ELwkHV;EK/kHM;IAOI,mBAAA;EL2kHV;EKllHM;IAOI,mBAAA;EL8kHV;EKrlHM;IAOI,mBAAA;ELilHV;EKxlHM;IAOI,mBAAA;ELolHV;EK3lHM;IAOI,mBAAA;ELulHV;EK9lHM;IAOI,mBAAA;EL0lHV;EKjmHM;IAOI,oBAAA;EL6lHV;EKpmHM;IAOI,0BAAA;ELgmHV;EKvmHM;IAOI,yBAAA;ELmmHV;EK1mHM;IAOI,uBAAA;ELsmHV;EK7mHM;IAOI,yBAAA;ELymHV;EKhnHM;IAOI,uBAAA;EL4mHV;EKnnHM;IAOI,uBAAA;EL+mHV;EKtnHM;IAOI,0BAAA;IAAA,yBAAA;ELmnHV;EK1nHM;IAOI,gCAAA;IAAA,+BAAA;ELunHV;EK9nHM;IAOI,+BAAA;IAAA,8BAAA;EL2nHV;EKloHM;IAOI,6BAAA;IAAA,4BAAA;EL+nHV;EKtoHM;IAOI,+BAAA;IAAA,8BAAA;ELmoHV;EK1oHM;IAOI,6BAAA;IAAA,4BAAA;ELuoHV;EK9oHM;IAOI,6BAAA;IAAA,4BAAA;EL2oHV;EKlpHM;IAOI,wBAAA;IAAA,2BAAA;EL+oHV;EKtpHM;IAOI,8BAAA;IAAA,iCAAA;ELmpHV;EK1pHM;IAOI,6BAAA;IAAA,gCAAA;ELupHV;EK9pHM;IAOI,2BAAA;IAAA,8BAAA;EL2pHV;EKlqHM;IAOI,6BAAA;IAAA,gCAAA;EL+pHV;EKtqHM;IAOI,2BAAA;IAAA,8BAAA;ELmqHV;EK1qHM;IAOI,2BAAA;IAAA,8BAAA;ELuqHV;EK9qHM;IAOI,wBAAA;EL0qHV;EKjrHM;IAOI,8BAAA;EL6qHV;EKprHM;IAOI,6BAAA;ELgrHV;EKvrHM;IAOI,2BAAA;ELmrHV;EK1rHM;IAOI,6BAAA;ELsrHV;EK7rHM;IAOI,2BAAA;ELyrHV;EKhsHM;IAOI,2BAAA;EL4rHV;EKnsHM;IAOI,0BAAA;EL+rHV;EKtsHM;IAOI,gCAAA;ELksHV;EKzsHM;IAOI,+BAAA;ELqsHV;EK5sHM;IAOI,6BAAA;ELwsHV;EK/sHM;IAOI,+BAAA;EL2sHV;EKltHM;IAOI,6BAAA;EL8sHV;EKrtHM;IAOI,6BAAA;ELitHV;EKxtHM;IAOI,2BAAA;ELotHV;EK3tHM;IAOI,iCAAA;ELutHV;EK9tHM;IAOI,gCAAA;EL0tHV;EKjuHM;IAOI,8BAAA;EL6tHV;EKpuHM;IAOI,gCAAA;ELguHV;EKvuHM;IAOI,8BAAA;ELmuHV;EK1uHM;IAOI,8BAAA;ELsuHV;EK7uHM;IAOI,yBAAA;ELyuHV;EKhvHM;IAOI,+BAAA;EL4uHV;EKnvHM;IAOI,8BAAA;EL+uHV;EKtvHM;IAOI,4BAAA;ELkvHV;EKzvHM;IAOI,8BAAA;ELqvHV;EK5vHM;IAOI,4BAAA;ELwvHV;EK/vHM;IAOI,4BAAA;EL2vHV;EKlwHM;IAOI,qBAAA;EL8vHV;EKrwHM;IAOI,2BAAA;ELiwHV;EKxwHM;IAOI,0BAAA;ELowHV;EK3wHM;IAOI,wBAAA;ELuwHV;EK9wHM;IAOI,0BAAA;EL0wHV;EKjxHM;IAOI,wBAAA;EL6wHV;EKpxHM;IAOI,2BAAA;IAAA,0BAAA;ELixHV;EKxxHM;IAOI,iCAAA;IAAA,gCAAA;ELqxHV;EK5xHM;IAOI,gCAAA;IAAA,+BAAA;ELyxHV;EKhyHM;IAOI,8BAAA;IAAA,6BAAA;EL6xHV;EKpyHM;IAOI,gCAAA;IAAA,+BAAA;ELiyHV;EKxyHM;IAOI,8BAAA;IAAA,6BAAA;ELqyHV;EK5yHM;IAOI,yBAAA;IAAA,4BAAA;ELyyHV;EKhzHM;IAOI,+BAAA;IAAA,kCAAA;EL6yHV;EKpzHM;IAOI,8BAAA;IAAA,iCAAA;ELizHV;EKxzHM;IAOI,4BAAA;IAAA,+BAAA;ELqzHV;EK5zHM;IAOI,8BAAA;IAAA,iCAAA;ELyzHV;EKh0HM;IAOI,4BAAA;IAAA,+BAAA;EL6zHV;EKp0HM;IAOI,yBAAA;ELg0HV;EKv0HM;IAOI,+BAAA;ELm0HV;EK10HM;IAOI,8BAAA;ELs0HV;EK70HM;IAOI,4BAAA;ELy0HV;EKh1HM;IAOI,8BAAA;EL40HV;EKn1HM;IAOI,4BAAA;EL+0HV;EKt1HM;IAOI,2BAAA;ELk1HV;EKz1HM;IAOI,iCAAA;ELq1HV;EK51HM;IAOI,gCAAA;ELw1HV;EK/1HM;IAOI,8BAAA;EL21HV;EKl2HM;IAOI,gCAAA;EL81HV;EKr2HM;IAOI,8BAAA;ELi2HV;EKx2HM;IAOI,4BAAA;ELo2HV;EK32HM;IAOI,kCAAA;ELu2HV;EK92HM;IAOI,iCAAA;EL02HV;EKj3HM;IAOI,+BAAA;EL62HV;EKp3HM;IAOI,iCAAA;ELg3HV;EKv3HM;IAOI,+BAAA;ELm3HV;EK13HM;IAOI,0BAAA;ELs3HV;EK73HM;IAOI,gCAAA;ELy3HV;EKh4HM;IAOI,+BAAA;EL43HV;EKn4HM;IAOI,6BAAA;EL+3HV;EKt4HM;IAOI,+BAAA;ELk4HV;EKz4HM;IAOI,6BAAA;ELq4HV;AACF;AMz6HA;ED4BQ;IAOI,0BAAA;EL04HV;EKj5HM;IAOI,gCAAA;EL64HV;EKp5HM;IAOI,yBAAA;ELg5HV;EKv5HM;IAOI,wBAAA;ELm5HV;EK15HM;IAOI,+BAAA;ELs5HV;EK75HM;IAOI,yBAAA;ELy5HV;EKh6HM;IAOI,6BAAA;EL45HV;EKn6HM;IAOI,8BAAA;EL+5HV;EKt6HM;IAOI,wBAAA;ELk6HV;EKz6HM;IAOI,+BAAA;ELq6HV;EK56HM;IAOI,wBAAA;ELw6HV;AACF","file":"bootstrap-grid.css","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\n}\n","/*!\n * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-text-variables\n$primary-text-emphasis: shade-color($primary, 60%) !default;\n$secondary-text-emphasis: shade-color($secondary, 60%) !default;\n$success-text-emphasis: shade-color($success, 60%) !default;\n$info-text-emphasis: shade-color($info, 60%) !default;\n$warning-text-emphasis: shade-color($warning, 60%) !default;\n$danger-text-emphasis: shade-color($danger, 60%) !default;\n$light-text-emphasis: $gray-700 !default;\n$dark-text-emphasis: $gray-700 !default;\n// scss-docs-end theme-text-variables\n\n// scss-docs-start theme-bg-subtle-variables\n$primary-bg-subtle: tint-color($primary, 80%) !default;\n$secondary-bg-subtle: tint-color($secondary, 80%) !default;\n$success-bg-subtle: tint-color($success, 80%) !default;\n$info-bg-subtle: tint-color($info, 80%) !default;\n$warning-bg-subtle: tint-color($warning, 80%) !default;\n$danger-bg-subtle: tint-color($danger, 80%) !default;\n$light-bg-subtle: mix($gray-100, $white) !default;\n$dark-bg-subtle: $gray-400 !default;\n// scss-docs-end theme-bg-subtle-variables\n\n// scss-docs-start theme-border-subtle-variables\n$primary-border-subtle: tint-color($primary, 60%) !default;\n$secondary-border-subtle: tint-color($secondary, 60%) !default;\n$success-border-subtle: tint-color($success, 60%) !default;\n$info-border-subtle: tint-color($info, 60%) !default;\n$warning-border-subtle: tint-color($warning, 60%) !default;\n$danger-border-subtle: tint-color($danger, 60%) !default;\n$light-border-subtle: $gray-200 !default;\n$dark-border-subtle: $gray-500 !default;\n// scss-docs-end theme-border-subtle-variables\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n$enable-dark-mode: true !default;\n$color-mode-type: data !default; // `data` or `media-query`\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-text-align: null !default;\n$body-color: $gray-900 !default;\n$body-bg: $white !default;\n\n$body-secondary-color: rgba($body-color, .75) !default;\n$body-secondary-bg: $gray-200 !default;\n\n$body-tertiary-color: rgba($body-color, .5) !default;\n$body-tertiary-bg: $gray-100 !default;\n\n$body-emphasis-color: $black !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-xxl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n// fusv-disable\n$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0\n// fusv-enable\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start focus-ring-variables\n$focus-ring-width: .25rem !default;\n$focus-ring-opacity: .25 !default;\n$focus-ring-color: rgba($primary, $focus-ring-opacity) !default;\n$focus-ring-blur: 0 !default;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default;\n// scss-docs-end focus-ring-variables\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n// fusv-disable\n$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0\n// fusv-enable\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: var(--#{$prefix}border-width) !default;\n$hr-opacity: .25 !default;\n\n// scss-docs-start vr-variables\n$vr-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end vr-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-color: $body-color !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}emphasis-color) !default;\n$table-bg: var(--#{$prefix}body-bg) !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default;\n\n$table-border-factor: .2 !default;\n$table-border-width: var(--#{$prefix}border-width) !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: var(--#{$prefix}secondary-color) !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: $focus-ring-width !default;\n$input-btn-focus-color-opacity: $focus-ring-opacity !default;\n$input-btn-focus-color: $focus-ring-color !default;\n$input-btn-focus-blur: $focus-ring-blur !default;\n$input-btn-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-color: var(--#{$prefix}body-color) !default;\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: var(--#{$prefix}border-radius) !default;\n$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: var(--#{$prefix}body-bg) !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$input-disabled-border-color: null !default;\n\n$input-color: var(--#{$prefix}body-color) !default;\n$input-border-color: var(--#{$prefix}border-color) !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$input-border-radius: var(--#{$prefix}border-radius) !default;\n$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: var(--#{$prefix}secondary-color) !default;\n$input-plaintext-color: var(--#{$prefix}body-color) !default;\n\n$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: var(--#{$prefix}tertiary-bg) !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $input-disabled-bg !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: var(--#{$prefix}secondary-bg) !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color) !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: var(--#{$prefix}tertiary-bg) !default;\n$form-file-button-hover-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-height: 1.5em !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-label-disabled-color: $gray-600 !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-colors\n$form-valid-color: $form-feedback-valid-color !default;\n$form-valid-border-color: $form-feedback-valid-color !default;\n$form-invalid-color: $form-feedback-invalid-color !default;\n$form-invalid-border-color: $form-feedback-invalid-color !default;\n// scss-docs-end form-validation-colors\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": var(--#{$prefix}form-valid-color),\n \"icon\": $form-feedback-icon-valid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}success),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-valid-border-color),\n ),\n \"invalid\": (\n \"color\": var(--#{$prefix}form-invalid-color),\n \"icon\": $form-feedback-icon-invalid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}danger),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-invalid-border-color),\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: var(--#{$prefix}secondary-color) !default;\n$nav-link-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$nav-tabs-border-color: var(--#{$prefix}border-color) !default;\n$nav-tabs-border-width: var(--#{$prefix}border-width) !default;\n$nav-tabs-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-tabs-link-hover-border-color: var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default;\n$nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default;\n$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-underline-gap: 1rem !default;\n$nav-underline-border-width: .125rem !default;\n$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n\n$navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default;\n$navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default;\n$navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default;\n$navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default;\n$navbar-light-icon-color: rgba($body-color, .75) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default;\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-icon-color: $navbar-dark-color !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: var(--#{$prefix}body-color) !default;\n$dropdown-bg: var(--#{$prefix}body-bg) !default;\n$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius: var(--#{$prefix}border-radius) !default;\n$dropdown-border-width: var(--#{$prefix}border-width) !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$dropdown-link-color: var(--#{$prefix}body-color) !default;\n$dropdown-link-hover-color: $dropdown-link-color !default;\n$dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: var(--#{$prefix}body-bg) !default;\n$pagination-border-radius: var(--#{$prefix}border-radius) !default;\n$pagination-border-width: var(--#{$prefix}border-width) !default;\n$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list\n$pagination-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-focus-box-shadow: $focus-ring-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$pagination-hover-border-color: var(--#{$prefix}border-color) !default; // Todo in v6: remove this?\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $component-active-bg !default;\n\n$pagination-disabled-color: var(--#{$prefix}secondary-color) !default;\n$pagination-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-disabled-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-title-color: null !default;\n$card-subtitle-color: null !default;\n$card-border-width: var(--#{$prefix}border-width) !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: var(--#{$prefix}border-radius) !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba(var(--#{$prefix}body-color-rgb), .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: var(--#{$prefix}body-bg) !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: var(--#{$prefix}body-bg) !default;\n$accordion-border-width: var(--#{$prefix}border-width) !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: var(--#{$prefix}border-radius) !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: var(--#{$prefix}body-color) !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;\n$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;\n\n// fusv-disable\n$accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.3.3\n// fusv-enable\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $body-color !default;\n$accordion-icon-active-color: $primary-text-emphasis !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: var(--#{$prefix}body-bg) !default;\n$tooltip-bg: var(--#{$prefix}emphasis-color) !default;\n$tooltip-border-radius: var(--#{$prefix}border-radius) !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: var(--#{$prefix}body-bg) !default;\n$popover-max-width: 276px !default;\n$popover-border-width: var(--#{$prefix}border-width) !default;\n$popover-border-color: var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$popover-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: var(--#{$prefix}secondary-bg) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: var(--#{$prefix}body-color) !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-border-width: var(--#{$prefix}border-width) !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: var(--#{$prefix}border-radius) !default;\n$toast-box-shadow: var(--#{$prefix}box-shadow) !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: var(--#{$prefix}secondary-color) !default;\n$toast-header-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-header-border-color: $toast-border-color !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: var(--#{$prefix}border-radius) !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: var(--#{$prefix}body-bg) !default;\n$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width: var(--#{$prefix}border-width) !default;\n$modal-content-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: var(--#{$prefix}box-shadow-sm) !default;\n$modal-content-box-shadow-sm-up: var(--#{$prefix}box-shadow) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: var(--#{$prefix}border-radius) !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: var(--#{$prefix}border-width) !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n// fusv-disable\n$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6\n// fusv-enable\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: var(--#{$prefix}secondary-bg) !default;\n$progress-border-radius: var(--#{$prefix}border-radius) !default;\n$progress-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: var(--#{$prefix}body-color) !default;\n$list-group-bg: var(--#{$prefix}body-bg) !default;\n$list-group-border-color: var(--#{$prefix}border-color) !default;\n$list-group-border-width: var(--#{$prefix}border-width) !default;\n$list-group-border-radius: var(--#{$prefix}border-radius) !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n// fusv-disable\n$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0\n$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0\n// fusv-enable\n\n$list-group-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: var(--#{$prefix}secondary-color) !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: var(--#{$prefix}secondary-color) !default;\n$list-group-action-hover-color: var(--#{$prefix}emphasis-color) !default;\n\n$list-group-action-active-color: var(--#{$prefix}body-color) !default;\n$list-group-action-active-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: var(--#{$prefix}body-bg) !default;\n$thumbnail-border-width: var(--#{$prefix}border-width) !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: var(--#{$prefix}border-radius) !default;\n$thumbnail-box-shadow: var(--#{$prefix}box-shadow-sm) !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-active-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $focus-ring-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: var(--#{$prefix}body-bg) !default;\n$offcanvas-color: var(--#{$prefix}body-color) !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n\n@import \"variables-dark\"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3\n","// Row\n//\n// Rows contain your columns.\n\n:root {\n @each $name, $value in $grid-breakpoints {\n --#{$prefix}breakpoint-#{$name}: #{$value};\n }\n}\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: percentage(divide(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix: \"\", $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (e.g. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css new file mode 100644 index 0000000..49b843b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap Grid v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css.map b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css.map new file mode 100644 index 0000000..a0db8b5 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AACE;;;;ACKA,WCAF,iBAGA,cACA,cACA,cAHA,cADA,eCJE,cAAA,OACA,cAAA,EACA,MAAA,KACA,cAAA,8BACA,aAAA,8BACA,aAAA,KACA,YAAA,KCsDE,yBH5CE,WAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cAAA,cACE,UAAA,OG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QIhBR,MAEI,mBAAA,EAAA,mBAAA,MAAA,mBAAA,MAAA,mBAAA,MAAA,mBAAA,OAAA,oBAAA,OAKF,KCNA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KAEA,WAAA,8BACA,aAAA,+BACA,YAAA,+BDEE,OCGF,WAAA,WAIA,YAAA,EACA,MAAA,KACA,UAAA,KACA,cAAA,8BACA,aAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,YAAA,YAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,WAxDV,YAAA,aAwDU,WAxDV,YAAA,aAmEM,KJ6GR,MI3GU,cAAA,EAGF,KJ6GR,MI3GU,cAAA,EAPF,KJuHR,MIrHU,cAAA,QAGF,KJuHR,MIrHU,cAAA,QAPF,KJiIR,MI/HU,cAAA,OAGF,KJiIR,MI/HU,cAAA,OAPF,KJ2IR,MIzIU,cAAA,KAGF,KJ2IR,MIzIU,cAAA,KAPF,KJqJR,MInJU,cAAA,OAGF,KJqJR,MInJU,cAAA,OAPF,KJ+JR,MI7JU,cAAA,KAGF,KJ+JR,MI7JU,cAAA,KF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJiSN,SI/RQ,cAAA,EAGF,QJgSN,SI9RQ,cAAA,EAPF,QJySN,SIvSQ,cAAA,QAGF,QJwSN,SItSQ,cAAA,QAPF,QJiTN,SI/SQ,cAAA,OAGF,QJgTN,SI9SQ,cAAA,OAPF,QJyTN,SIvTQ,cAAA,KAGF,QJwTN,SItTQ,cAAA,KAPF,QJiUN,SI/TQ,cAAA,OAGF,QJgUN,SI9TQ,cAAA,OAPF,QJyUN,SIvUQ,cAAA,KAGF,QJwUN,SItUQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJ0cN,SIxcQ,cAAA,EAGF,QJycN,SIvcQ,cAAA,EAPF,QJkdN,SIhdQ,cAAA,QAGF,QJidN,SI/cQ,cAAA,QAPF,QJ0dN,SIxdQ,cAAA,OAGF,QJydN,SIvdQ,cAAA,OAPF,QJkeN,SIheQ,cAAA,KAGF,QJieN,SI/dQ,cAAA,KAPF,QJ0eN,SIxeQ,cAAA,OAGF,QJyeN,SIveQ,cAAA,OAPF,QJkfN,SIhfQ,cAAA,KAGF,QJifN,SI/eQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJmnBN,SIjnBQ,cAAA,EAGF,QJknBN,SIhnBQ,cAAA,EAPF,QJ2nBN,SIznBQ,cAAA,QAGF,QJ0nBN,SIxnBQ,cAAA,QAPF,QJmoBN,SIjoBQ,cAAA,OAGF,QJkoBN,SIhoBQ,cAAA,OAPF,QJ2oBN,SIzoBQ,cAAA,KAGF,QJ0oBN,SIxoBQ,cAAA,KAPF,QJmpBN,SIjpBQ,cAAA,OAGF,QJkpBN,SIhpBQ,cAAA,OAPF,QJ2pBN,SIzpBQ,cAAA,KAGF,QJ0pBN,SIxpBQ,cAAA,MF1DN,0BEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJ4xBN,SI1xBQ,cAAA,EAGF,QJ2xBN,SIzxBQ,cAAA,EAPF,QJoyBN,SIlyBQ,cAAA,QAGF,QJmyBN,SIjyBQ,cAAA,QAPF,QJ4yBN,SI1yBQ,cAAA,OAGF,QJ2yBN,SIzyBQ,cAAA,OAPF,QJozBN,SIlzBQ,cAAA,KAGF,QJmzBN,SIjzBQ,cAAA,KAPF,QJ4zBN,SI1zBQ,cAAA,OAGF,QJ2zBN,SIzzBQ,cAAA,OAPF,QJo0BN,SIl0BQ,cAAA,KAGF,QJm0BN,SIj0BQ,cAAA,MF1DN,0BEUE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,YAAA,EAwDU,cAxDV,YAAA,YAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,eAxDV,YAAA,aAwDU,eAxDV,YAAA,aAmEM,SJq8BN,UIn8BQ,cAAA,EAGF,SJo8BN,UIl8BQ,cAAA,EAPF,SJ68BN,UI38BQ,cAAA,QAGF,SJ48BN,UI18BQ,cAAA,QAPF,SJq9BN,UIn9BQ,cAAA,OAGF,SJo9BN,UIl9BQ,cAAA,OAPF,SJ69BN,UI39BQ,cAAA,KAGF,SJ49BN,UI19BQ,cAAA,KAPF,SJq+BN,UIn+BQ,cAAA,OAGF,SJo+BN,UIl+BQ,cAAA,OAPF,SJ6+BN,UI3+BQ,cAAA,KAGF,SJ4+BN,UI1+BQ,cAAA,MCvDF,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,aAAA,YAAA,YAAA,YAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,gBAAA,YAAA,gBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,cAAA,YAAA,aAAA,YAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,gBAAA,aAAA,gBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHVR,0BGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHVR,0BGGI,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,aAAA,YAAA,YAAA,YAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,gBAAA,YAAA,gBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,aAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,cAAA,YAAA,aAAA,YAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,gBAAA,aAAA,gBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBCnCZ,aD4BQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Row\n//\n// Rows contain your columns.\n\n:root {\n @each $name, $value in $grid-breakpoints {\n --#{$prefix}breakpoint-#{$name}: #{$value};\n }\n}\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: percentage(divide(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix: \"\", $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (e.g. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css new file mode 100644 index 0000000..1a5d656 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css @@ -0,0 +1,4084 @@ +/*! + * Bootstrap Grid v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-right: 8.33333333%; +} + +.offset-2 { + margin-right: 16.66666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.33333333%; +} + +.offset-5 { + margin-right: 41.66666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.33333333%; +} + +.offset-8 { + margin-right: 66.66666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.33333333%; +} + +.offset-11 { + margin-right: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-right: 0; + } + .offset-sm-1 { + margin-right: 8.33333333%; + } + .offset-sm-2 { + margin-right: 16.66666667%; + } + .offset-sm-3 { + margin-right: 25%; + } + .offset-sm-4 { + margin-right: 33.33333333%; + } + .offset-sm-5 { + margin-right: 41.66666667%; + } + .offset-sm-6 { + margin-right: 50%; + } + .offset-sm-7 { + margin-right: 58.33333333%; + } + .offset-sm-8 { + margin-right: 66.66666667%; + } + .offset-sm-9 { + margin-right: 75%; + } + .offset-sm-10 { + margin-right: 83.33333333%; + } + .offset-sm-11 { + margin-right: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-right: 0; + } + .offset-md-1 { + margin-right: 8.33333333%; + } + .offset-md-2 { + margin-right: 16.66666667%; + } + .offset-md-3 { + margin-right: 25%; + } + .offset-md-4 { + margin-right: 33.33333333%; + } + .offset-md-5 { + margin-right: 41.66666667%; + } + .offset-md-6 { + margin-right: 50%; + } + .offset-md-7 { + margin-right: 58.33333333%; + } + .offset-md-8 { + margin-right: 66.66666667%; + } + .offset-md-9 { + margin-right: 75%; + } + .offset-md-10 { + margin-right: 83.33333333%; + } + .offset-md-11 { + margin-right: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-right: 0; + } + .offset-lg-1 { + margin-right: 8.33333333%; + } + .offset-lg-2 { + margin-right: 16.66666667%; + } + .offset-lg-3 { + margin-right: 25%; + } + .offset-lg-4 { + margin-right: 33.33333333%; + } + .offset-lg-5 { + margin-right: 41.66666667%; + } + .offset-lg-6 { + margin-right: 50%; + } + .offset-lg-7 { + margin-right: 58.33333333%; + } + .offset-lg-8 { + margin-right: 66.66666667%; + } + .offset-lg-9 { + margin-right: 75%; + } + .offset-lg-10 { + margin-right: 83.33333333%; + } + .offset-lg-11 { + margin-right: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-right: 0; + } + .offset-xl-1 { + margin-right: 8.33333333%; + } + .offset-xl-2 { + margin-right: 16.66666667%; + } + .offset-xl-3 { + margin-right: 25%; + } + .offset-xl-4 { + margin-right: 33.33333333%; + } + .offset-xl-5 { + margin-right: 41.66666667%; + } + .offset-xl-6 { + margin-right: 50%; + } + .offset-xl-7 { + margin-right: 58.33333333%; + } + .offset-xl-8 { + margin-right: 66.66666667%; + } + .offset-xl-9 { + margin-right: 75%; + } + .offset-xl-10 { + margin-right: 83.33333333%; + } + .offset-xl-11 { + margin-right: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-right: 0; + } + .offset-xxl-1 { + margin-right: 8.33333333%; + } + .offset-xxl-2 { + margin-right: 16.66666667%; + } + .offset-xxl-3 { + margin-right: 25%; + } + .offset-xxl-4 { + margin-right: 33.33333333%; + } + .offset-xxl-5 { + margin-right: 41.66666667%; + } + .offset-xxl-6 { + margin-right: 50%; + } + .offset-xxl-7 { + margin-right: 58.33333333%; + } + .offset-xxl-8 { + margin-right: 66.66666667%; + } + .offset-xxl-9 { + margin-right: 75%; + } + .offset-xxl-10 { + margin-right: 83.33333333%; + } + .offset-xxl-11 { + margin-right: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-left: 0 !important; +} + +.me-1 { + margin-left: 0.25rem !important; +} + +.me-2 { + margin-left: 0.5rem !important; +} + +.me-3 { + margin-left: 1rem !important; +} + +.me-4 { + margin-left: 1.5rem !important; +} + +.me-5 { + margin-left: 3rem !important; +} + +.me-auto { + margin-left: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-right: 0 !important; +} + +.ms-1 { + margin-right: 0.25rem !important; +} + +.ms-2 { + margin-right: 0.5rem !important; +} + +.ms-3 { + margin-right: 1rem !important; +} + +.ms-4 { + margin-right: 1.5rem !important; +} + +.ms-5 { + margin-right: 3rem !important; +} + +.ms-auto { + margin-right: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-left: 0 !important; +} + +.pe-1 { + padding-left: 0.25rem !important; +} + +.pe-2 { + padding-left: 0.5rem !important; +} + +.pe-3 { + padding-left: 1rem !important; +} + +.pe-4 { + padding-left: 1.5rem !important; +} + +.pe-5 { + padding-left: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-right: 0 !important; +} + +.ps-1 { + padding-right: 0.25rem !important; +} + +.ps-2 { + padding-right: 0.5rem !important; +} + +.ps-3 { + padding-right: 1rem !important; +} + +.ps-4 { + padding-right: 1.5rem !important; +} + +.ps-5 { + padding-right: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-sm-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-left: 0 !important; + } + .me-sm-1 { + margin-left: 0.25rem !important; + } + .me-sm-2 { + margin-left: 0.5rem !important; + } + .me-sm-3 { + margin-left: 1rem !important; + } + .me-sm-4 { + margin-left: 1.5rem !important; + } + .me-sm-5 { + margin-left: 3rem !important; + } + .me-sm-auto { + margin-left: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-right: 0 !important; + } + .ms-sm-1 { + margin-right: 0.25rem !important; + } + .ms-sm-2 { + margin-right: 0.5rem !important; + } + .ms-sm-3 { + margin-right: 1rem !important; + } + .ms-sm-4 { + margin-right: 1.5rem !important; + } + .ms-sm-5 { + margin-right: 3rem !important; + } + .ms-sm-auto { + margin-right: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-left: 0 !important; + } + .pe-sm-1 { + padding-left: 0.25rem !important; + } + .pe-sm-2 { + padding-left: 0.5rem !important; + } + .pe-sm-3 { + padding-left: 1rem !important; + } + .pe-sm-4 { + padding-left: 1.5rem !important; + } + .pe-sm-5 { + padding-left: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-right: 0 !important; + } + .ps-sm-1 { + padding-right: 0.25rem !important; + } + .ps-sm-2 { + padding-right: 0.5rem !important; + } + .ps-sm-3 { + padding-right: 1rem !important; + } + .ps-sm-4 { + padding-right: 1.5rem !important; + } + .ps-sm-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-md-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-left: 0 !important; + } + .me-md-1 { + margin-left: 0.25rem !important; + } + .me-md-2 { + margin-left: 0.5rem !important; + } + .me-md-3 { + margin-left: 1rem !important; + } + .me-md-4 { + margin-left: 1.5rem !important; + } + .me-md-5 { + margin-left: 3rem !important; + } + .me-md-auto { + margin-left: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-right: 0 !important; + } + .ms-md-1 { + margin-right: 0.25rem !important; + } + .ms-md-2 { + margin-right: 0.5rem !important; + } + .ms-md-3 { + margin-right: 1rem !important; + } + .ms-md-4 { + margin-right: 1.5rem !important; + } + .ms-md-5 { + margin-right: 3rem !important; + } + .ms-md-auto { + margin-right: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-left: 0 !important; + } + .pe-md-1 { + padding-left: 0.25rem !important; + } + .pe-md-2 { + padding-left: 0.5rem !important; + } + .pe-md-3 { + padding-left: 1rem !important; + } + .pe-md-4 { + padding-left: 1.5rem !important; + } + .pe-md-5 { + padding-left: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-right: 0 !important; + } + .ps-md-1 { + padding-right: 0.25rem !important; + } + .ps-md-2 { + padding-right: 0.5rem !important; + } + .ps-md-3 { + padding-right: 1rem !important; + } + .ps-md-4 { + padding-right: 1.5rem !important; + } + .ps-md-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-lg-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-left: 0 !important; + } + .me-lg-1 { + margin-left: 0.25rem !important; + } + .me-lg-2 { + margin-left: 0.5rem !important; + } + .me-lg-3 { + margin-left: 1rem !important; + } + .me-lg-4 { + margin-left: 1.5rem !important; + } + .me-lg-5 { + margin-left: 3rem !important; + } + .me-lg-auto { + margin-left: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-right: 0 !important; + } + .ms-lg-1 { + margin-right: 0.25rem !important; + } + .ms-lg-2 { + margin-right: 0.5rem !important; + } + .ms-lg-3 { + margin-right: 1rem !important; + } + .ms-lg-4 { + margin-right: 1.5rem !important; + } + .ms-lg-5 { + margin-right: 3rem !important; + } + .ms-lg-auto { + margin-right: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-left: 0 !important; + } + .pe-lg-1 { + padding-left: 0.25rem !important; + } + .pe-lg-2 { + padding-left: 0.5rem !important; + } + .pe-lg-3 { + padding-left: 1rem !important; + } + .pe-lg-4 { + padding-left: 1.5rem !important; + } + .pe-lg-5 { + padding-left: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-right: 0 !important; + } + .ps-lg-1 { + padding-right: 0.25rem !important; + } + .ps-lg-2 { + padding-right: 0.5rem !important; + } + .ps-lg-3 { + padding-right: 1rem !important; + } + .ps-lg-4 { + padding-right: 1.5rem !important; + } + .ps-lg-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-left: 0 !important; + } + .me-xl-1 { + margin-left: 0.25rem !important; + } + .me-xl-2 { + margin-left: 0.5rem !important; + } + .me-xl-3 { + margin-left: 1rem !important; + } + .me-xl-4 { + margin-left: 1.5rem !important; + } + .me-xl-5 { + margin-left: 3rem !important; + } + .me-xl-auto { + margin-left: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-right: 0 !important; + } + .ms-xl-1 { + margin-right: 0.25rem !important; + } + .ms-xl-2 { + margin-right: 0.5rem !important; + } + .ms-xl-3 { + margin-right: 1rem !important; + } + .ms-xl-4 { + margin-right: 1.5rem !important; + } + .ms-xl-5 { + margin-right: 3rem !important; + } + .ms-xl-auto { + margin-right: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-left: 0 !important; + } + .pe-xl-1 { + padding-left: 0.25rem !important; + } + .pe-xl-2 { + padding-left: 0.5rem !important; + } + .pe-xl-3 { + padding-left: 1rem !important; + } + .pe-xl-4 { + padding-left: 1.5rem !important; + } + .pe-xl-5 { + padding-left: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-right: 0 !important; + } + .ps-xl-1 { + padding-right: 0.25rem !important; + } + .ps-xl-2 { + padding-right: 0.5rem !important; + } + .ps-xl-3 { + padding-right: 1rem !important; + } + .ps-xl-4 { + padding-right: 1.5rem !important; + } + .ps-xl-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .mx-xxl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xxl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xxl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xxl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xxl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xxl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-left: 0 !important; + } + .me-xxl-1 { + margin-left: 0.25rem !important; + } + .me-xxl-2 { + margin-left: 0.5rem !important; + } + .me-xxl-3 { + margin-left: 1rem !important; + } + .me-xxl-4 { + margin-left: 1.5rem !important; + } + .me-xxl-5 { + margin-left: 3rem !important; + } + .me-xxl-auto { + margin-left: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-right: 0 !important; + } + .ms-xxl-1 { + margin-right: 0.25rem !important; + } + .ms-xxl-2 { + margin-right: 0.5rem !important; + } + .ms-xxl-3 { + margin-right: 1rem !important; + } + .ms-xxl-4 { + margin-right: 1.5rem !important; + } + .ms-xxl-5 { + margin-right: 3rem !important; + } + .ms-xxl-auto { + margin-right: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .px-xxl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xxl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xxl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xxl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xxl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-left: 0 !important; + } + .pe-xxl-1 { + padding-left: 0.25rem !important; + } + .pe-xxl-2 { + padding-left: 0.5rem !important; + } + .pe-xxl-3 { + padding-left: 1rem !important; + } + .pe-xxl-4 { + padding-left: 1.5rem !important; + } + .pe-xxl-5 { + padding-left: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-right: 0 !important; + } + .ps-xxl-1 { + padding-right: 0.25rem !important; + } + .ps-xxl-2 { + padding-right: 0.5rem !important; + } + .ps-xxl-3 { + padding-right: 1rem !important; + } + .ps-xxl-4 { + padding-right: 1.5rem !important; + } + .ps-xxl-5 { + padding-right: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap-grid.rtl.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css.map new file mode 100644 index 0000000..8df43cf --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","bootstrap-grid.css","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AACE;;;;EAAA;ACKA;;;;;;;ECHA,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,4CAAA;EACA,6CAAA;EACA,iBAAA;EACA,kBAAA;ACUF;;AC4CI;EH5CE;IACE,gBIkee;EF9drB;AACF;ACsCI;EH5CE;IACE,gBIkee;EFzdrB;AACF;ACiCI;EH5CE;IACE,gBIkee;EFpdrB;AACF;AC4BI;EH5CE;IACE,iBIkee;EF/crB;AACF;ACuBI;EH5CE;IACE,iBIkee;EF1crB;AACF;AGzCA;EAEI,qBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,0BAAA;EAAA,2BAAA;AH+CJ;;AG1CE;ECNA,qBAAA;EACA,gBAAA;EACA,aAAA;EACA,eAAA;EAEA,yCAAA;EACA,4CAAA;EACA,6CAAA;AJmDF;AGjDI;ECGF,sBAAA;EAIA,cAAA;EACA,WAAA;EACA,eAAA;EACA,4CAAA;EACA,6CAAA;EACA,8BAAA;AJ8CF;;AICM;EACE,YAAA;AJER;;AICM;EApCJ,cAAA;EACA,WAAA;AJuCF;;AIzBE;EACE,cAAA;EACA,WAAA;AJ4BJ;;AI9BE;EACE,cAAA;EACA,UAAA;AJiCJ;;AInCE;EACE,cAAA;EACA,mBAAA;AJsCJ;;AIxCE;EACE,cAAA;EACA,UAAA;AJ2CJ;;AI7CE;EACE,cAAA;EACA,UAAA;AJgDJ;;AIlDE;EACE,cAAA;EACA,mBAAA;AJqDJ;;AItBM;EAhDJ,cAAA;EACA,WAAA;AJ0EF;;AIrBU;EAhEN,cAAA;EACA,kBAAA;AJyFJ;;AI1BU;EAhEN,cAAA;EACA,mBAAA;AJ8FJ;;AI/BU;EAhEN,cAAA;EACA,UAAA;AJmGJ;;AIpCU;EAhEN,cAAA;EACA,mBAAA;AJwGJ;;AIzCU;EAhEN,cAAA;EACA,mBAAA;AJ6GJ;;AI9CU;EAhEN,cAAA;EACA,UAAA;AJkHJ;;AInDU;EAhEN,cAAA;EACA,mBAAA;AJuHJ;;AIxDU;EAhEN,cAAA;EACA,mBAAA;AJ4HJ;;AI7DU;EAhEN,cAAA;EACA,UAAA;AJiIJ;;AIlEU;EAhEN,cAAA;EACA,mBAAA;AJsIJ;;AIvEU;EAhEN,cAAA;EACA,mBAAA;AJ2IJ;;AI5EU;EAhEN,cAAA;EACA,WAAA;AJgJJ;;AIzEY;EAxDV,yBAAA;AJqIF;;AI7EY;EAxDV,0BAAA;AJyIF;;AIjFY;EAxDV,iBAAA;AJ6IF;;AIrFY;EAxDV,0BAAA;AJiJF;;AIzFY;EAxDV,0BAAA;AJqJF;;AI7FY;EAxDV,iBAAA;AJyJF;;AIjGY;EAxDV,0BAAA;AJ6JF;;AIrGY;EAxDV,0BAAA;AJiKF;;AIzGY;EAxDV,iBAAA;AJqKF;;AI7GY;EAxDV,0BAAA;AJyKF;;AIjHY;EAxDV,0BAAA;AJ6KF;;AI1GQ;;EAEE,gBAAA;AJ6GV;;AI1GQ;;EAEE,gBAAA;AJ6GV;;AIpHQ;;EAEE,sBAAA;AJuHV;;AIpHQ;;EAEE,sBAAA;AJuHV;;AI9HQ;;EAEE,qBAAA;AJiIV;;AI9HQ;;EAEE,qBAAA;AJiIV;;AIxIQ;;EAEE,mBAAA;AJ2IV;;AIxIQ;;EAEE,mBAAA;AJ2IV;;AIlJQ;;EAEE,qBAAA;AJqJV;;AIlJQ;;EAEE,qBAAA;AJqJV;;AI5JQ;;EAEE,mBAAA;AJ+JV;;AI5JQ;;EAEE,mBAAA;AJ+JV;;ACzNI;EGUE;IACE,YAAA;EJmNN;EIhNI;IApCJ,cAAA;IACA,WAAA;EJuPA;EIzOA;IACE,cAAA;IACA,WAAA;EJ2OF;EI7OA;IACE,cAAA;IACA,UAAA;EJ+OF;EIjPA;IACE,cAAA;IACA,mBAAA;EJmPF;EIrPA;IACE,cAAA;IACA,UAAA;EJuPF;EIzPA;IACE,cAAA;IACA,UAAA;EJ2PF;EI7PA;IACE,cAAA;IACA,mBAAA;EJ+PF;EIhOI;IAhDJ,cAAA;IACA,WAAA;EJmRA;EI9NQ;IAhEN,cAAA;IACA,kBAAA;EJiSF;EIlOQ;IAhEN,cAAA;IACA,mBAAA;EJqSF;EItOQ;IAhEN,cAAA;IACA,UAAA;EJySF;EI1OQ;IAhEN,cAAA;IACA,mBAAA;EJ6SF;EI9OQ;IAhEN,cAAA;IACA,mBAAA;EJiTF;EIlPQ;IAhEN,cAAA;IACA,UAAA;EJqTF;EItPQ;IAhEN,cAAA;IACA,mBAAA;EJyTF;EI1PQ;IAhEN,cAAA;IACA,mBAAA;EJ6TF;EI9PQ;IAhEN,cAAA;IACA,UAAA;EJiUF;EIlQQ;IAhEN,cAAA;IACA,mBAAA;EJqUF;EItQQ;IAhEN,cAAA;IACA,mBAAA;EJyUF;EI1QQ;IAhEN,cAAA;IACA,WAAA;EJ6UF;EItQU;IAxDV,eAAA;EJiUA;EIzQU;IAxDV,yBAAA;EJoUA;EI5QU;IAxDV,0BAAA;EJuUA;EI/QU;IAxDV,iBAAA;EJ0UA;EIlRU;IAxDV,0BAAA;EJ6UA;EIrRU;IAxDV,0BAAA;EJgVA;EIxRU;IAxDV,iBAAA;EJmVA;EI3RU;IAxDV,0BAAA;EJsVA;EI9RU;IAxDV,0BAAA;EJyVA;EIjSU;IAxDV,iBAAA;EJ4VA;EIpSU;IAxDV,0BAAA;EJ+VA;EIvSU;IAxDV,0BAAA;EJkWA;EI/RM;;IAEE,gBAAA;EJiSR;EI9RM;;IAEE,gBAAA;EJgSR;EIvSM;;IAEE,sBAAA;EJySR;EItSM;;IAEE,sBAAA;EJwSR;EI/SM;;IAEE,qBAAA;EJiTR;EI9SM;;IAEE,qBAAA;EJgTR;EIvTM;;IAEE,mBAAA;EJyTR;EItTM;;IAEE,mBAAA;EJwTR;EI/TM;;IAEE,qBAAA;EJiUR;EI9TM;;IAEE,qBAAA;EJgUR;EIvUM;;IAEE,mBAAA;EJyUR;EItUM;;IAEE,mBAAA;EJwUR;AACF;ACnYI;EGUE;IACE,YAAA;EJ4XN;EIzXI;IApCJ,cAAA;IACA,WAAA;EJgaA;EIlZA;IACE,cAAA;IACA,WAAA;EJoZF;EItZA;IACE,cAAA;IACA,UAAA;EJwZF;EI1ZA;IACE,cAAA;IACA,mBAAA;EJ4ZF;EI9ZA;IACE,cAAA;IACA,UAAA;EJgaF;EIlaA;IACE,cAAA;IACA,UAAA;EJoaF;EItaA;IACE,cAAA;IACA,mBAAA;EJwaF;EIzYI;IAhDJ,cAAA;IACA,WAAA;EJ4bA;EIvYQ;IAhEN,cAAA;IACA,kBAAA;EJ0cF;EI3YQ;IAhEN,cAAA;IACA,mBAAA;EJ8cF;EI/YQ;IAhEN,cAAA;IACA,UAAA;EJkdF;EInZQ;IAhEN,cAAA;IACA,mBAAA;EJsdF;EIvZQ;IAhEN,cAAA;IACA,mBAAA;EJ0dF;EI3ZQ;IAhEN,cAAA;IACA,UAAA;EJ8dF;EI/ZQ;IAhEN,cAAA;IACA,mBAAA;EJkeF;EInaQ;IAhEN,cAAA;IACA,mBAAA;EJseF;EIvaQ;IAhEN,cAAA;IACA,UAAA;EJ0eF;EI3aQ;IAhEN,cAAA;IACA,mBAAA;EJ8eF;EI/aQ;IAhEN,cAAA;IACA,mBAAA;EJkfF;EInbQ;IAhEN,cAAA;IACA,WAAA;EJsfF;EI/aU;IAxDV,eAAA;EJ0eA;EIlbU;IAxDV,yBAAA;EJ6eA;EIrbU;IAxDV,0BAAA;EJgfA;EIxbU;IAxDV,iBAAA;EJmfA;EI3bU;IAxDV,0BAAA;EJsfA;EI9bU;IAxDV,0BAAA;EJyfA;EIjcU;IAxDV,iBAAA;EJ4fA;EIpcU;IAxDV,0BAAA;EJ+fA;EIvcU;IAxDV,0BAAA;EJkgBA;EI1cU;IAxDV,iBAAA;EJqgBA;EI7cU;IAxDV,0BAAA;EJwgBA;EIhdU;IAxDV,0BAAA;EJ2gBA;EIxcM;;IAEE,gBAAA;EJ0cR;EIvcM;;IAEE,gBAAA;EJycR;EIhdM;;IAEE,sBAAA;EJkdR;EI/cM;;IAEE,sBAAA;EJidR;EIxdM;;IAEE,qBAAA;EJ0dR;EIvdM;;IAEE,qBAAA;EJydR;EIheM;;IAEE,mBAAA;EJkeR;EI/dM;;IAEE,mBAAA;EJieR;EIxeM;;IAEE,qBAAA;EJ0eR;EIveM;;IAEE,qBAAA;EJyeR;EIhfM;;IAEE,mBAAA;EJkfR;EI/eM;;IAEE,mBAAA;EJifR;AACF;AC5iBI;EGUE;IACE,YAAA;EJqiBN;EIliBI;IApCJ,cAAA;IACA,WAAA;EJykBA;EI3jBA;IACE,cAAA;IACA,WAAA;EJ6jBF;EI/jBA;IACE,cAAA;IACA,UAAA;EJikBF;EInkBA;IACE,cAAA;IACA,mBAAA;EJqkBF;EIvkBA;IACE,cAAA;IACA,UAAA;EJykBF;EI3kBA;IACE,cAAA;IACA,UAAA;EJ6kBF;EI/kBA;IACE,cAAA;IACA,mBAAA;EJilBF;EIljBI;IAhDJ,cAAA;IACA,WAAA;EJqmBA;EIhjBQ;IAhEN,cAAA;IACA,kBAAA;EJmnBF;EIpjBQ;IAhEN,cAAA;IACA,mBAAA;EJunBF;EIxjBQ;IAhEN,cAAA;IACA,UAAA;EJ2nBF;EI5jBQ;IAhEN,cAAA;IACA,mBAAA;EJ+nBF;EIhkBQ;IAhEN,cAAA;IACA,mBAAA;EJmoBF;EIpkBQ;IAhEN,cAAA;IACA,UAAA;EJuoBF;EIxkBQ;IAhEN,cAAA;IACA,mBAAA;EJ2oBF;EI5kBQ;IAhEN,cAAA;IACA,mBAAA;EJ+oBF;EIhlBQ;IAhEN,cAAA;IACA,UAAA;EJmpBF;EIplBQ;IAhEN,cAAA;IACA,mBAAA;EJupBF;EIxlBQ;IAhEN,cAAA;IACA,mBAAA;EJ2pBF;EI5lBQ;IAhEN,cAAA;IACA,WAAA;EJ+pBF;EIxlBU;IAxDV,eAAA;EJmpBA;EI3lBU;IAxDV,yBAAA;EJspBA;EI9lBU;IAxDV,0BAAA;EJypBA;EIjmBU;IAxDV,iBAAA;EJ4pBA;EIpmBU;IAxDV,0BAAA;EJ+pBA;EIvmBU;IAxDV,0BAAA;EJkqBA;EI1mBU;IAxDV,iBAAA;EJqqBA;EI7mBU;IAxDV,0BAAA;EJwqBA;EIhnBU;IAxDV,0BAAA;EJ2qBA;EInnBU;IAxDV,iBAAA;EJ8qBA;EItnBU;IAxDV,0BAAA;EJirBA;EIznBU;IAxDV,0BAAA;EJorBA;EIjnBM;;IAEE,gBAAA;EJmnBR;EIhnBM;;IAEE,gBAAA;EJknBR;EIznBM;;IAEE,sBAAA;EJ2nBR;EIxnBM;;IAEE,sBAAA;EJ0nBR;EIjoBM;;IAEE,qBAAA;EJmoBR;EIhoBM;;IAEE,qBAAA;EJkoBR;EIzoBM;;IAEE,mBAAA;EJ2oBR;EIxoBM;;IAEE,mBAAA;EJ0oBR;EIjpBM;;IAEE,qBAAA;EJmpBR;EIhpBM;;IAEE,qBAAA;EJkpBR;EIzpBM;;IAEE,mBAAA;EJ2pBR;EIxpBM;;IAEE,mBAAA;EJ0pBR;AACF;ACrtBI;EGUE;IACE,YAAA;EJ8sBN;EI3sBI;IApCJ,cAAA;IACA,WAAA;EJkvBA;EIpuBA;IACE,cAAA;IACA,WAAA;EJsuBF;EIxuBA;IACE,cAAA;IACA,UAAA;EJ0uBF;EI5uBA;IACE,cAAA;IACA,mBAAA;EJ8uBF;EIhvBA;IACE,cAAA;IACA,UAAA;EJkvBF;EIpvBA;IACE,cAAA;IACA,UAAA;EJsvBF;EIxvBA;IACE,cAAA;IACA,mBAAA;EJ0vBF;EI3tBI;IAhDJ,cAAA;IACA,WAAA;EJ8wBA;EIztBQ;IAhEN,cAAA;IACA,kBAAA;EJ4xBF;EI7tBQ;IAhEN,cAAA;IACA,mBAAA;EJgyBF;EIjuBQ;IAhEN,cAAA;IACA,UAAA;EJoyBF;EIruBQ;IAhEN,cAAA;IACA,mBAAA;EJwyBF;EIzuBQ;IAhEN,cAAA;IACA,mBAAA;EJ4yBF;EI7uBQ;IAhEN,cAAA;IACA,UAAA;EJgzBF;EIjvBQ;IAhEN,cAAA;IACA,mBAAA;EJozBF;EIrvBQ;IAhEN,cAAA;IACA,mBAAA;EJwzBF;EIzvBQ;IAhEN,cAAA;IACA,UAAA;EJ4zBF;EI7vBQ;IAhEN,cAAA;IACA,mBAAA;EJg0BF;EIjwBQ;IAhEN,cAAA;IACA,mBAAA;EJo0BF;EIrwBQ;IAhEN,cAAA;IACA,WAAA;EJw0BF;EIjwBU;IAxDV,eAAA;EJ4zBA;EIpwBU;IAxDV,yBAAA;EJ+zBA;EIvwBU;IAxDV,0BAAA;EJk0BA;EI1wBU;IAxDV,iBAAA;EJq0BA;EI7wBU;IAxDV,0BAAA;EJw0BA;EIhxBU;IAxDV,0BAAA;EJ20BA;EInxBU;IAxDV,iBAAA;EJ80BA;EItxBU;IAxDV,0BAAA;EJi1BA;EIzxBU;IAxDV,0BAAA;EJo1BA;EI5xBU;IAxDV,iBAAA;EJu1BA;EI/xBU;IAxDV,0BAAA;EJ01BA;EIlyBU;IAxDV,0BAAA;EJ61BA;EI1xBM;;IAEE,gBAAA;EJ4xBR;EIzxBM;;IAEE,gBAAA;EJ2xBR;EIlyBM;;IAEE,sBAAA;EJoyBR;EIjyBM;;IAEE,sBAAA;EJmyBR;EI1yBM;;IAEE,qBAAA;EJ4yBR;EIzyBM;;IAEE,qBAAA;EJ2yBR;EIlzBM;;IAEE,mBAAA;EJozBR;EIjzBM;;IAEE,mBAAA;EJmzBR;EI1zBM;;IAEE,qBAAA;EJ4zBR;EIzzBM;;IAEE,qBAAA;EJ2zBR;EIl0BM;;IAEE,mBAAA;EJo0BR;EIj0BM;;IAEE,mBAAA;EJm0BR;AACF;AC93BI;EGUE;IACE,YAAA;EJu3BN;EIp3BI;IApCJ,cAAA;IACA,WAAA;EJ25BA;EI74BA;IACE,cAAA;IACA,WAAA;EJ+4BF;EIj5BA;IACE,cAAA;IACA,UAAA;EJm5BF;EIr5BA;IACE,cAAA;IACA,mBAAA;EJu5BF;EIz5BA;IACE,cAAA;IACA,UAAA;EJ25BF;EI75BA;IACE,cAAA;IACA,UAAA;EJ+5BF;EIj6BA;IACE,cAAA;IACA,mBAAA;EJm6BF;EIp4BI;IAhDJ,cAAA;IACA,WAAA;EJu7BA;EIl4BQ;IAhEN,cAAA;IACA,kBAAA;EJq8BF;EIt4BQ;IAhEN,cAAA;IACA,mBAAA;EJy8BF;EI14BQ;IAhEN,cAAA;IACA,UAAA;EJ68BF;EI94BQ;IAhEN,cAAA;IACA,mBAAA;EJi9BF;EIl5BQ;IAhEN,cAAA;IACA,mBAAA;EJq9BF;EIt5BQ;IAhEN,cAAA;IACA,UAAA;EJy9BF;EI15BQ;IAhEN,cAAA;IACA,mBAAA;EJ69BF;EI95BQ;IAhEN,cAAA;IACA,mBAAA;EJi+BF;EIl6BQ;IAhEN,cAAA;IACA,UAAA;EJq+BF;EIt6BQ;IAhEN,cAAA;IACA,mBAAA;EJy+BF;EI16BQ;IAhEN,cAAA;IACA,mBAAA;EJ6+BF;EI96BQ;IAhEN,cAAA;IACA,WAAA;EJi/BF;EI16BU;IAxDV,eAAA;EJq+BA;EI76BU;IAxDV,yBAAA;EJw+BA;EIh7BU;IAxDV,0BAAA;EJ2+BA;EIn7BU;IAxDV,iBAAA;EJ8+BA;EIt7BU;IAxDV,0BAAA;EJi/BA;EIz7BU;IAxDV,0BAAA;EJo/BA;EI57BU;IAxDV,iBAAA;EJu/BA;EI/7BU;IAxDV,0BAAA;EJ0/BA;EIl8BU;IAxDV,0BAAA;EJ6/BA;EIr8BU;IAxDV,iBAAA;EJggCA;EIx8BU;IAxDV,0BAAA;EJmgCA;EI38BU;IAxDV,0BAAA;EJsgCA;EIn8BM;;IAEE,gBAAA;EJq8BR;EIl8BM;;IAEE,gBAAA;EJo8BR;EI38BM;;IAEE,sBAAA;EJ68BR;EI18BM;;IAEE,sBAAA;EJ48BR;EIn9BM;;IAEE,qBAAA;EJq9BR;EIl9BM;;IAEE,qBAAA;EJo9BR;EI39BM;;IAEE,mBAAA;EJ69BR;EI19BM;;IAEE,mBAAA;EJ49BR;EIn+BM;;IAEE,qBAAA;EJq+BR;EIl+BM;;IAEE,qBAAA;EJo+BR;EI3+BM;;IAEE,mBAAA;EJ6+BR;EI1+BM;;IAEE,mBAAA;EJ4+BR;AACF;AKpiCQ;EAOI,0BAAA;ALgiCZ;;AKviCQ;EAOI,gCAAA;ALoiCZ;;AK3iCQ;EAOI,yBAAA;ALwiCZ;;AK/iCQ;EAOI,wBAAA;AL4iCZ;;AKnjCQ;EAOI,+BAAA;ALgjCZ;;AKvjCQ;EAOI,yBAAA;ALojCZ;;AK3jCQ;EAOI,6BAAA;ALwjCZ;;AK/jCQ;EAOI,8BAAA;AL4jCZ;;AKnkCQ;EAOI,wBAAA;ALgkCZ;;AKvkCQ;EAOI,+BAAA;ALokCZ;;AK3kCQ;EAOI,wBAAA;ALwkCZ;;AK/kCQ;EAOI,yBAAA;AL4kCZ;;AKnlCQ;EAOI,8BAAA;ALglCZ;;AKvlCQ;EAOI,iCAAA;ALolCZ;;AK3lCQ;EAOI,sCAAA;ALwlCZ;;AK/lCQ;EAOI,yCAAA;AL4lCZ;;AKnmCQ;EAOI,uBAAA;ALgmCZ;;AKvmCQ;EAOI,uBAAA;ALomCZ;;AK3mCQ;EAOI,yBAAA;ALwmCZ;;AK/mCQ;EAOI,yBAAA;AL4mCZ;;AKnnCQ;EAOI,0BAAA;ALgnCZ;;AKvnCQ;EAOI,4BAAA;ALonCZ;;AK3nCQ;EAOI,kCAAA;ALwnCZ;;AK/nCQ;EAOI,sCAAA;AL4nCZ;;AKnoCQ;EAOI,oCAAA;ALgoCZ;;AKvoCQ;EAOI,kCAAA;ALooCZ;;AK3oCQ;EAOI,yCAAA;ALwoCZ;;AK/oCQ;EAOI,wCAAA;AL4oCZ;;AKnpCQ;EAOI,wCAAA;ALgpCZ;;AKvpCQ;EAOI,kCAAA;ALopCZ;;AK3pCQ;EAOI,gCAAA;ALwpCZ;;AK/pCQ;EAOI,8BAAA;AL4pCZ;;AKnqCQ;EAOI,gCAAA;ALgqCZ;;AKvqCQ;EAOI,+BAAA;ALoqCZ;;AK3qCQ;EAOI,oCAAA;ALwqCZ;;AK/qCQ;EAOI,kCAAA;AL4qCZ;;AKnrCQ;EAOI,gCAAA;ALgrCZ;;AKvrCQ;EAOI,uCAAA;ALorCZ;;AK3rCQ;EAOI,sCAAA;ALwrCZ;;AK/rCQ;EAOI,iCAAA;AL4rCZ;;AKnsCQ;EAOI,2BAAA;ALgsCZ;;AKvsCQ;EAOI,iCAAA;ALosCZ;;AK3sCQ;EAOI,+BAAA;ALwsCZ;;AK/sCQ;EAOI,6BAAA;AL4sCZ;;AKntCQ;EAOI,+BAAA;ALgtCZ;;AKvtCQ;EAOI,8BAAA;ALotCZ;;AK3tCQ;EAOI,oBAAA;ALwtCZ;;AK/tCQ;EAOI,mBAAA;AL4tCZ;;AKnuCQ;EAOI,mBAAA;ALguCZ;;AKvuCQ;EAOI,mBAAA;ALouCZ;;AK3uCQ;EAOI,mBAAA;ALwuCZ;;AK/uCQ;EAOI,mBAAA;AL4uCZ;;AKnvCQ;EAOI,mBAAA;ALgvCZ;;AKvvCQ;EAOI,mBAAA;ALovCZ;;AK3vCQ;EAOI,oBAAA;ALwvCZ;;AK/vCQ;EAOI,0BAAA;AL4vCZ;;AKnwCQ;EAOI,yBAAA;ALgwCZ;;AKvwCQ;EAOI,uBAAA;ALowCZ;;AK3wCQ;EAOI,yBAAA;ALwwCZ;;AK/wCQ;EAOI,uBAAA;AL4wCZ;;AKnxCQ;EAOI,uBAAA;ALgxCZ;;AKvxCQ;EAOI,yBAAA;EAAA,0BAAA;ALqxCZ;;AK5xCQ;EAOI,+BAAA;EAAA,gCAAA;AL0xCZ;;AKjyCQ;EAOI,8BAAA;EAAA,+BAAA;AL+xCZ;;AKtyCQ;EAOI,4BAAA;EAAA,6BAAA;ALoyCZ;;AK3yCQ;EAOI,8BAAA;EAAA,+BAAA;ALyyCZ;;AKhzCQ;EAOI,4BAAA;EAAA,6BAAA;AL8yCZ;;AKrzCQ;EAOI,4BAAA;EAAA,6BAAA;ALmzCZ;;AK1zCQ;EAOI,wBAAA;EAAA,2BAAA;ALwzCZ;;AK/zCQ;EAOI,8BAAA;EAAA,iCAAA;AL6zCZ;;AKp0CQ;EAOI,6BAAA;EAAA,gCAAA;ALk0CZ;;AKz0CQ;EAOI,2BAAA;EAAA,8BAAA;ALu0CZ;;AK90CQ;EAOI,6BAAA;EAAA,gCAAA;AL40CZ;;AKn1CQ;EAOI,2BAAA;EAAA,8BAAA;ALi1CZ;;AKx1CQ;EAOI,2BAAA;EAAA,8BAAA;ALs1CZ;;AK71CQ;EAOI,wBAAA;AL01CZ;;AKj2CQ;EAOI,8BAAA;AL81CZ;;AKr2CQ;EAOI,6BAAA;ALk2CZ;;AKz2CQ;EAOI,2BAAA;ALs2CZ;;AK72CQ;EAOI,6BAAA;AL02CZ;;AKj3CQ;EAOI,2BAAA;AL82CZ;;AKr3CQ;EAOI,2BAAA;ALk3CZ;;AKz3CQ;EAOI,yBAAA;ALs3CZ;;AK73CQ;EAOI,+BAAA;AL03CZ;;AKj4CQ;EAOI,8BAAA;AL83CZ;;AKr4CQ;EAOI,4BAAA;ALk4CZ;;AKz4CQ;EAOI,8BAAA;ALs4CZ;;AK74CQ;EAOI,4BAAA;AL04CZ;;AKj5CQ;EAOI,4BAAA;AL84CZ;;AKr5CQ;EAOI,2BAAA;ALk5CZ;;AKz5CQ;EAOI,iCAAA;ALs5CZ;;AK75CQ;EAOI,gCAAA;AL05CZ;;AKj6CQ;EAOI,8BAAA;AL85CZ;;AKr6CQ;EAOI,gCAAA;ALk6CZ;;AKz6CQ;EAOI,8BAAA;ALs6CZ;;AK76CQ;EAOI,8BAAA;AL06CZ;;AKj7CQ;EAOI,0BAAA;AL86CZ;;AKr7CQ;EAOI,gCAAA;ALk7CZ;;AKz7CQ;EAOI,+BAAA;ALs7CZ;;AK77CQ;EAOI,6BAAA;AL07CZ;;AKj8CQ;EAOI,+BAAA;AL87CZ;;AKr8CQ;EAOI,6BAAA;ALk8CZ;;AKz8CQ;EAOI,6BAAA;ALs8CZ;;AK78CQ;EAOI,qBAAA;AL08CZ;;AKj9CQ;EAOI,2BAAA;AL88CZ;;AKr9CQ;EAOI,0BAAA;ALk9CZ;;AKz9CQ;EAOI,wBAAA;ALs9CZ;;AK79CQ;EAOI,0BAAA;AL09CZ;;AKj+CQ;EAOI,wBAAA;AL89CZ;;AKr+CQ;EAOI,0BAAA;EAAA,2BAAA;ALm+CZ;;AK1+CQ;EAOI,gCAAA;EAAA,iCAAA;ALw+CZ;;AK/+CQ;EAOI,+BAAA;EAAA,gCAAA;AL6+CZ;;AKp/CQ;EAOI,6BAAA;EAAA,8BAAA;ALk/CZ;;AKz/CQ;EAOI,+BAAA;EAAA,gCAAA;ALu/CZ;;AK9/CQ;EAOI,6BAAA;EAAA,8BAAA;AL4/CZ;;AKngDQ;EAOI,yBAAA;EAAA,4BAAA;ALigDZ;;AKxgDQ;EAOI,+BAAA;EAAA,kCAAA;ALsgDZ;;AK7gDQ;EAOI,8BAAA;EAAA,iCAAA;AL2gDZ;;AKlhDQ;EAOI,4BAAA;EAAA,+BAAA;ALghDZ;;AKvhDQ;EAOI,8BAAA;EAAA,iCAAA;ALqhDZ;;AK5hDQ;EAOI,4BAAA;EAAA,+BAAA;AL0hDZ;;AKjiDQ;EAOI,yBAAA;AL8hDZ;;AKriDQ;EAOI,+BAAA;ALkiDZ;;AKziDQ;EAOI,8BAAA;ALsiDZ;;AK7iDQ;EAOI,4BAAA;AL0iDZ;;AKjjDQ;EAOI,8BAAA;AL8iDZ;;AKrjDQ;EAOI,4BAAA;ALkjDZ;;AKzjDQ;EAOI,0BAAA;ALsjDZ;;AK7jDQ;EAOI,gCAAA;AL0jDZ;;AKjkDQ;EAOI,+BAAA;AL8jDZ;;AKrkDQ;EAOI,6BAAA;ALkkDZ;;AKzkDQ;EAOI,+BAAA;ALskDZ;;AK7kDQ;EAOI,6BAAA;AL0kDZ;;AKjlDQ;EAOI,4BAAA;AL8kDZ;;AKrlDQ;EAOI,kCAAA;ALklDZ;;AKzlDQ;EAOI,iCAAA;ALslDZ;;AK7lDQ;EAOI,+BAAA;AL0lDZ;;AKjmDQ;EAOI,iCAAA;AL8lDZ;;AKrmDQ;EAOI,+BAAA;ALkmDZ;;AKzmDQ;EAOI,2BAAA;ALsmDZ;;AK7mDQ;EAOI,iCAAA;AL0mDZ;;AKjnDQ;EAOI,gCAAA;AL8mDZ;;AKrnDQ;EAOI,8BAAA;ALknDZ;;AKznDQ;EAOI,gCAAA;ALsnDZ;;AK7nDQ;EAOI,8BAAA;AL0nDZ;;ACpoDI;EIGI;IAOI,0BAAA;EL+nDV;EKtoDM;IAOI,gCAAA;ELkoDV;EKzoDM;IAOI,yBAAA;ELqoDV;EK5oDM;IAOI,wBAAA;ELwoDV;EK/oDM;IAOI,+BAAA;EL2oDV;EKlpDM;IAOI,yBAAA;EL8oDV;EKrpDM;IAOI,6BAAA;ELipDV;EKxpDM;IAOI,8BAAA;ELopDV;EK3pDM;IAOI,wBAAA;ELupDV;EK9pDM;IAOI,+BAAA;EL0pDV;EKjqDM;IAOI,wBAAA;EL6pDV;EKpqDM;IAOI,yBAAA;ELgqDV;EKvqDM;IAOI,8BAAA;ELmqDV;EK1qDM;IAOI,iCAAA;ELsqDV;EK7qDM;IAOI,sCAAA;ELyqDV;EKhrDM;IAOI,yCAAA;EL4qDV;EKnrDM;IAOI,uBAAA;EL+qDV;EKtrDM;IAOI,uBAAA;ELkrDV;EKzrDM;IAOI,yBAAA;ELqrDV;EK5rDM;IAOI,yBAAA;ELwrDV;EK/rDM;IAOI,0BAAA;EL2rDV;EKlsDM;IAOI,4BAAA;EL8rDV;EKrsDM;IAOI,kCAAA;ELisDV;EKxsDM;IAOI,sCAAA;ELosDV;EK3sDM;IAOI,oCAAA;ELusDV;EK9sDM;IAOI,kCAAA;EL0sDV;EKjtDM;IAOI,yCAAA;EL6sDV;EKptDM;IAOI,wCAAA;ELgtDV;EKvtDM;IAOI,wCAAA;ELmtDV;EK1tDM;IAOI,kCAAA;ELstDV;EK7tDM;IAOI,gCAAA;ELytDV;EKhuDM;IAOI,8BAAA;EL4tDV;EKnuDM;IAOI,gCAAA;EL+tDV;EKtuDM;IAOI,+BAAA;ELkuDV;EKzuDM;IAOI,oCAAA;ELquDV;EK5uDM;IAOI,kCAAA;ELwuDV;EK/uDM;IAOI,gCAAA;EL2uDV;EKlvDM;IAOI,uCAAA;EL8uDV;EKrvDM;IAOI,sCAAA;ELivDV;EKxvDM;IAOI,iCAAA;ELovDV;EK3vDM;IAOI,2BAAA;ELuvDV;EK9vDM;IAOI,iCAAA;EL0vDV;EKjwDM;IAOI,+BAAA;EL6vDV;EKpwDM;IAOI,6BAAA;ELgwDV;EKvwDM;IAOI,+BAAA;ELmwDV;EK1wDM;IAOI,8BAAA;ELswDV;EK7wDM;IAOI,oBAAA;ELywDV;EKhxDM;IAOI,mBAAA;EL4wDV;EKnxDM;IAOI,mBAAA;EL+wDV;EKtxDM;IAOI,mBAAA;ELkxDV;EKzxDM;IAOI,mBAAA;ELqxDV;EK5xDM;IAOI,mBAAA;ELwxDV;EK/xDM;IAOI,mBAAA;EL2xDV;EKlyDM;IAOI,mBAAA;EL8xDV;EKryDM;IAOI,oBAAA;ELiyDV;EKxyDM;IAOI,0BAAA;ELoyDV;EK3yDM;IAOI,yBAAA;ELuyDV;EK9yDM;IAOI,uBAAA;EL0yDV;EKjzDM;IAOI,yBAAA;EL6yDV;EKpzDM;IAOI,uBAAA;ELgzDV;EKvzDM;IAOI,uBAAA;ELmzDV;EK1zDM;IAOI,yBAAA;IAAA,0BAAA;ELuzDV;EK9zDM;IAOI,+BAAA;IAAA,gCAAA;EL2zDV;EKl0DM;IAOI,8BAAA;IAAA,+BAAA;EL+zDV;EKt0DM;IAOI,4BAAA;IAAA,6BAAA;ELm0DV;EK10DM;IAOI,8BAAA;IAAA,+BAAA;ELu0DV;EK90DM;IAOI,4BAAA;IAAA,6BAAA;EL20DV;EKl1DM;IAOI,4BAAA;IAAA,6BAAA;EL+0DV;EKt1DM;IAOI,wBAAA;IAAA,2BAAA;ELm1DV;EK11DM;IAOI,8BAAA;IAAA,iCAAA;ELu1DV;EK91DM;IAOI,6BAAA;IAAA,gCAAA;EL21DV;EKl2DM;IAOI,2BAAA;IAAA,8BAAA;EL+1DV;EKt2DM;IAOI,6BAAA;IAAA,gCAAA;ELm2DV;EK12DM;IAOI,2BAAA;IAAA,8BAAA;ELu2DV;EK92DM;IAOI,2BAAA;IAAA,8BAAA;EL22DV;EKl3DM;IAOI,wBAAA;EL82DV;EKr3DM;IAOI,8BAAA;ELi3DV;EKx3DM;IAOI,6BAAA;ELo3DV;EK33DM;IAOI,2BAAA;ELu3DV;EK93DM;IAOI,6BAAA;EL03DV;EKj4DM;IAOI,2BAAA;EL63DV;EKp4DM;IAOI,2BAAA;ELg4DV;EKv4DM;IAOI,yBAAA;ELm4DV;EK14DM;IAOI,+BAAA;ELs4DV;EK74DM;IAOI,8BAAA;ELy4DV;EKh5DM;IAOI,4BAAA;EL44DV;EKn5DM;IAOI,8BAAA;EL+4DV;EKt5DM;IAOI,4BAAA;ELk5DV;EKz5DM;IAOI,4BAAA;ELq5DV;EK55DM;IAOI,2BAAA;ELw5DV;EK/5DM;IAOI,iCAAA;EL25DV;EKl6DM;IAOI,gCAAA;EL85DV;EKr6DM;IAOI,8BAAA;ELi6DV;EKx6DM;IAOI,gCAAA;ELo6DV;EK36DM;IAOI,8BAAA;ELu6DV;EK96DM;IAOI,8BAAA;EL06DV;EKj7DM;IAOI,0BAAA;EL66DV;EKp7DM;IAOI,gCAAA;ELg7DV;EKv7DM;IAOI,+BAAA;ELm7DV;EK17DM;IAOI,6BAAA;ELs7DV;EK77DM;IAOI,+BAAA;ELy7DV;EKh8DM;IAOI,6BAAA;EL47DV;EKn8DM;IAOI,6BAAA;EL+7DV;EKt8DM;IAOI,qBAAA;ELk8DV;EKz8DM;IAOI,2BAAA;ELq8DV;EK58DM;IAOI,0BAAA;ELw8DV;EK/8DM;IAOI,wBAAA;EL28DV;EKl9DM;IAOI,0BAAA;EL88DV;EKr9DM;IAOI,wBAAA;ELi9DV;EKx9DM;IAOI,0BAAA;IAAA,2BAAA;ELq9DV;EK59DM;IAOI,gCAAA;IAAA,iCAAA;ELy9DV;EKh+DM;IAOI,+BAAA;IAAA,gCAAA;EL69DV;EKp+DM;IAOI,6BAAA;IAAA,8BAAA;ELi+DV;EKx+DM;IAOI,+BAAA;IAAA,gCAAA;ELq+DV;EK5+DM;IAOI,6BAAA;IAAA,8BAAA;ELy+DV;EKh/DM;IAOI,yBAAA;IAAA,4BAAA;EL6+DV;EKp/DM;IAOI,+BAAA;IAAA,kCAAA;ELi/DV;EKx/DM;IAOI,8BAAA;IAAA,iCAAA;ELq/DV;EK5/DM;IAOI,4BAAA;IAAA,+BAAA;ELy/DV;EKhgEM;IAOI,8BAAA;IAAA,iCAAA;EL6/DV;EKpgEM;IAOI,4BAAA;IAAA,+BAAA;ELigEV;EKxgEM;IAOI,yBAAA;ELogEV;EK3gEM;IAOI,+BAAA;ELugEV;EK9gEM;IAOI,8BAAA;EL0gEV;EKjhEM;IAOI,4BAAA;EL6gEV;EKphEM;IAOI,8BAAA;ELghEV;EKvhEM;IAOI,4BAAA;ELmhEV;EK1hEM;IAOI,0BAAA;ELshEV;EK7hEM;IAOI,gCAAA;ELyhEV;EKhiEM;IAOI,+BAAA;EL4hEV;EKniEM;IAOI,6BAAA;EL+hEV;EKtiEM;IAOI,+BAAA;ELkiEV;EKziEM;IAOI,6BAAA;ELqiEV;EK5iEM;IAOI,4BAAA;ELwiEV;EK/iEM;IAOI,kCAAA;EL2iEV;EKljEM;IAOI,iCAAA;EL8iEV;EKrjEM;IAOI,+BAAA;ELijEV;EKxjEM;IAOI,iCAAA;ELojEV;EK3jEM;IAOI,+BAAA;ELujEV;EK9jEM;IAOI,2BAAA;EL0jEV;EKjkEM;IAOI,iCAAA;EL6jEV;EKpkEM;IAOI,gCAAA;ELgkEV;EKvkEM;IAOI,8BAAA;ELmkEV;EK1kEM;IAOI,gCAAA;ELskEV;EK7kEM;IAOI,8BAAA;ELykEV;AACF;ACplEI;EIGI;IAOI,0BAAA;EL8kEV;EKrlEM;IAOI,gCAAA;ELilEV;EKxlEM;IAOI,yBAAA;ELolEV;EK3lEM;IAOI,wBAAA;ELulEV;EK9lEM;IAOI,+BAAA;EL0lEV;EKjmEM;IAOI,yBAAA;EL6lEV;EKpmEM;IAOI,6BAAA;ELgmEV;EKvmEM;IAOI,8BAAA;ELmmEV;EK1mEM;IAOI,wBAAA;ELsmEV;EK7mEM;IAOI,+BAAA;ELymEV;EKhnEM;IAOI,wBAAA;EL4mEV;EKnnEM;IAOI,yBAAA;EL+mEV;EKtnEM;IAOI,8BAAA;ELknEV;EKznEM;IAOI,iCAAA;ELqnEV;EK5nEM;IAOI,sCAAA;ELwnEV;EK/nEM;IAOI,yCAAA;EL2nEV;EKloEM;IAOI,uBAAA;EL8nEV;EKroEM;IAOI,uBAAA;ELioEV;EKxoEM;IAOI,yBAAA;ELooEV;EK3oEM;IAOI,yBAAA;ELuoEV;EK9oEM;IAOI,0BAAA;EL0oEV;EKjpEM;IAOI,4BAAA;EL6oEV;EKppEM;IAOI,kCAAA;ELgpEV;EKvpEM;IAOI,sCAAA;ELmpEV;EK1pEM;IAOI,oCAAA;ELspEV;EK7pEM;IAOI,kCAAA;ELypEV;EKhqEM;IAOI,yCAAA;EL4pEV;EKnqEM;IAOI,wCAAA;EL+pEV;EKtqEM;IAOI,wCAAA;ELkqEV;EKzqEM;IAOI,kCAAA;ELqqEV;EK5qEM;IAOI,gCAAA;ELwqEV;EK/qEM;IAOI,8BAAA;EL2qEV;EKlrEM;IAOI,gCAAA;EL8qEV;EKrrEM;IAOI,+BAAA;ELirEV;EKxrEM;IAOI,oCAAA;ELorEV;EK3rEM;IAOI,kCAAA;ELurEV;EK9rEM;IAOI,gCAAA;EL0rEV;EKjsEM;IAOI,uCAAA;EL6rEV;EKpsEM;IAOI,sCAAA;ELgsEV;EKvsEM;IAOI,iCAAA;ELmsEV;EK1sEM;IAOI,2BAAA;ELssEV;EK7sEM;IAOI,iCAAA;ELysEV;EKhtEM;IAOI,+BAAA;EL4sEV;EKntEM;IAOI,6BAAA;EL+sEV;EKttEM;IAOI,+BAAA;ELktEV;EKztEM;IAOI,8BAAA;ELqtEV;EK5tEM;IAOI,oBAAA;ELwtEV;EK/tEM;IAOI,mBAAA;EL2tEV;EKluEM;IAOI,mBAAA;EL8tEV;EKruEM;IAOI,mBAAA;ELiuEV;EKxuEM;IAOI,mBAAA;ELouEV;EK3uEM;IAOI,mBAAA;ELuuEV;EK9uEM;IAOI,mBAAA;EL0uEV;EKjvEM;IAOI,mBAAA;EL6uEV;EKpvEM;IAOI,oBAAA;ELgvEV;EKvvEM;IAOI,0BAAA;ELmvEV;EK1vEM;IAOI,yBAAA;ELsvEV;EK7vEM;IAOI,uBAAA;ELyvEV;EKhwEM;IAOI,yBAAA;EL4vEV;EKnwEM;IAOI,uBAAA;EL+vEV;EKtwEM;IAOI,uBAAA;ELkwEV;EKzwEM;IAOI,yBAAA;IAAA,0BAAA;ELswEV;EK7wEM;IAOI,+BAAA;IAAA,gCAAA;EL0wEV;EKjxEM;IAOI,8BAAA;IAAA,+BAAA;EL8wEV;EKrxEM;IAOI,4BAAA;IAAA,6BAAA;ELkxEV;EKzxEM;IAOI,8BAAA;IAAA,+BAAA;ELsxEV;EK7xEM;IAOI,4BAAA;IAAA,6BAAA;EL0xEV;EKjyEM;IAOI,4BAAA;IAAA,6BAAA;EL8xEV;EKryEM;IAOI,wBAAA;IAAA,2BAAA;ELkyEV;EKzyEM;IAOI,8BAAA;IAAA,iCAAA;ELsyEV;EK7yEM;IAOI,6BAAA;IAAA,gCAAA;EL0yEV;EKjzEM;IAOI,2BAAA;IAAA,8BAAA;EL8yEV;EKrzEM;IAOI,6BAAA;IAAA,gCAAA;ELkzEV;EKzzEM;IAOI,2BAAA;IAAA,8BAAA;ELszEV;EK7zEM;IAOI,2BAAA;IAAA,8BAAA;EL0zEV;EKj0EM;IAOI,wBAAA;EL6zEV;EKp0EM;IAOI,8BAAA;ELg0EV;EKv0EM;IAOI,6BAAA;ELm0EV;EK10EM;IAOI,2BAAA;ELs0EV;EK70EM;IAOI,6BAAA;ELy0EV;EKh1EM;IAOI,2BAAA;EL40EV;EKn1EM;IAOI,2BAAA;EL+0EV;EKt1EM;IAOI,yBAAA;ELk1EV;EKz1EM;IAOI,+BAAA;ELq1EV;EK51EM;IAOI,8BAAA;ELw1EV;EK/1EM;IAOI,4BAAA;EL21EV;EKl2EM;IAOI,8BAAA;EL81EV;EKr2EM;IAOI,4BAAA;ELi2EV;EKx2EM;IAOI,4BAAA;ELo2EV;EK32EM;IAOI,2BAAA;ELu2EV;EK92EM;IAOI,iCAAA;EL02EV;EKj3EM;IAOI,gCAAA;EL62EV;EKp3EM;IAOI,8BAAA;ELg3EV;EKv3EM;IAOI,gCAAA;ELm3EV;EK13EM;IAOI,8BAAA;ELs3EV;EK73EM;IAOI,8BAAA;ELy3EV;EKh4EM;IAOI,0BAAA;EL43EV;EKn4EM;IAOI,gCAAA;EL+3EV;EKt4EM;IAOI,+BAAA;ELk4EV;EKz4EM;IAOI,6BAAA;ELq4EV;EK54EM;IAOI,+BAAA;ELw4EV;EK/4EM;IAOI,6BAAA;EL24EV;EKl5EM;IAOI,6BAAA;EL84EV;EKr5EM;IAOI,qBAAA;ELi5EV;EKx5EM;IAOI,2BAAA;ELo5EV;EK35EM;IAOI,0BAAA;ELu5EV;EK95EM;IAOI,wBAAA;EL05EV;EKj6EM;IAOI,0BAAA;EL65EV;EKp6EM;IAOI,wBAAA;ELg6EV;EKv6EM;IAOI,0BAAA;IAAA,2BAAA;ELo6EV;EK36EM;IAOI,gCAAA;IAAA,iCAAA;ELw6EV;EK/6EM;IAOI,+BAAA;IAAA,gCAAA;EL46EV;EKn7EM;IAOI,6BAAA;IAAA,8BAAA;ELg7EV;EKv7EM;IAOI,+BAAA;IAAA,gCAAA;ELo7EV;EK37EM;IAOI,6BAAA;IAAA,8BAAA;ELw7EV;EK/7EM;IAOI,yBAAA;IAAA,4BAAA;EL47EV;EKn8EM;IAOI,+BAAA;IAAA,kCAAA;ELg8EV;EKv8EM;IAOI,8BAAA;IAAA,iCAAA;ELo8EV;EK38EM;IAOI,4BAAA;IAAA,+BAAA;ELw8EV;EK/8EM;IAOI,8BAAA;IAAA,iCAAA;EL48EV;EKn9EM;IAOI,4BAAA;IAAA,+BAAA;ELg9EV;EKv9EM;IAOI,yBAAA;ELm9EV;EK19EM;IAOI,+BAAA;ELs9EV;EK79EM;IAOI,8BAAA;ELy9EV;EKh+EM;IAOI,4BAAA;EL49EV;EKn+EM;IAOI,8BAAA;EL+9EV;EKt+EM;IAOI,4BAAA;ELk+EV;EKz+EM;IAOI,0BAAA;ELq+EV;EK5+EM;IAOI,gCAAA;ELw+EV;EK/+EM;IAOI,+BAAA;EL2+EV;EKl/EM;IAOI,6BAAA;EL8+EV;EKr/EM;IAOI,+BAAA;ELi/EV;EKx/EM;IAOI,6BAAA;ELo/EV;EK3/EM;IAOI,4BAAA;ELu/EV;EK9/EM;IAOI,kCAAA;EL0/EV;EKjgFM;IAOI,iCAAA;EL6/EV;EKpgFM;IAOI,+BAAA;ELggFV;EKvgFM;IAOI,iCAAA;ELmgFV;EK1gFM;IAOI,+BAAA;ELsgFV;EK7gFM;IAOI,2BAAA;ELygFV;EKhhFM;IAOI,iCAAA;EL4gFV;EKnhFM;IAOI,gCAAA;EL+gFV;EKthFM;IAOI,8BAAA;ELkhFV;EKzhFM;IAOI,gCAAA;ELqhFV;EK5hFM;IAOI,8BAAA;ELwhFV;AACF;ACniFI;EIGI;IAOI,0BAAA;EL6hFV;EKpiFM;IAOI,gCAAA;ELgiFV;EKviFM;IAOI,yBAAA;ELmiFV;EK1iFM;IAOI,wBAAA;ELsiFV;EK7iFM;IAOI,+BAAA;ELyiFV;EKhjFM;IAOI,yBAAA;EL4iFV;EKnjFM;IAOI,6BAAA;EL+iFV;EKtjFM;IAOI,8BAAA;ELkjFV;EKzjFM;IAOI,wBAAA;ELqjFV;EK5jFM;IAOI,+BAAA;ELwjFV;EK/jFM;IAOI,wBAAA;EL2jFV;EKlkFM;IAOI,yBAAA;EL8jFV;EKrkFM;IAOI,8BAAA;ELikFV;EKxkFM;IAOI,iCAAA;ELokFV;EK3kFM;IAOI,sCAAA;ELukFV;EK9kFM;IAOI,yCAAA;EL0kFV;EKjlFM;IAOI,uBAAA;EL6kFV;EKplFM;IAOI,uBAAA;ELglFV;EKvlFM;IAOI,yBAAA;ELmlFV;EK1lFM;IAOI,yBAAA;ELslFV;EK7lFM;IAOI,0BAAA;ELylFV;EKhmFM;IAOI,4BAAA;EL4lFV;EKnmFM;IAOI,kCAAA;EL+lFV;EKtmFM;IAOI,sCAAA;ELkmFV;EKzmFM;IAOI,oCAAA;ELqmFV;EK5mFM;IAOI,kCAAA;ELwmFV;EK/mFM;IAOI,yCAAA;EL2mFV;EKlnFM;IAOI,wCAAA;EL8mFV;EKrnFM;IAOI,wCAAA;ELinFV;EKxnFM;IAOI,kCAAA;ELonFV;EK3nFM;IAOI,gCAAA;ELunFV;EK9nFM;IAOI,8BAAA;EL0nFV;EKjoFM;IAOI,gCAAA;EL6nFV;EKpoFM;IAOI,+BAAA;ELgoFV;EKvoFM;IAOI,oCAAA;ELmoFV;EK1oFM;IAOI,kCAAA;ELsoFV;EK7oFM;IAOI,gCAAA;ELyoFV;EKhpFM;IAOI,uCAAA;EL4oFV;EKnpFM;IAOI,sCAAA;EL+oFV;EKtpFM;IAOI,iCAAA;ELkpFV;EKzpFM;IAOI,2BAAA;ELqpFV;EK5pFM;IAOI,iCAAA;ELwpFV;EK/pFM;IAOI,+BAAA;EL2pFV;EKlqFM;IAOI,6BAAA;EL8pFV;EKrqFM;IAOI,+BAAA;ELiqFV;EKxqFM;IAOI,8BAAA;ELoqFV;EK3qFM;IAOI,oBAAA;ELuqFV;EK9qFM;IAOI,mBAAA;EL0qFV;EKjrFM;IAOI,mBAAA;EL6qFV;EKprFM;IAOI,mBAAA;ELgrFV;EKvrFM;IAOI,mBAAA;ELmrFV;EK1rFM;IAOI,mBAAA;ELsrFV;EK7rFM;IAOI,mBAAA;ELyrFV;EKhsFM;IAOI,mBAAA;EL4rFV;EKnsFM;IAOI,oBAAA;EL+rFV;EKtsFM;IAOI,0BAAA;ELksFV;EKzsFM;IAOI,yBAAA;ELqsFV;EK5sFM;IAOI,uBAAA;ELwsFV;EK/sFM;IAOI,yBAAA;EL2sFV;EKltFM;IAOI,uBAAA;EL8sFV;EKrtFM;IAOI,uBAAA;ELitFV;EKxtFM;IAOI,yBAAA;IAAA,0BAAA;ELqtFV;EK5tFM;IAOI,+BAAA;IAAA,gCAAA;ELytFV;EKhuFM;IAOI,8BAAA;IAAA,+BAAA;EL6tFV;EKpuFM;IAOI,4BAAA;IAAA,6BAAA;ELiuFV;EKxuFM;IAOI,8BAAA;IAAA,+BAAA;ELquFV;EK5uFM;IAOI,4BAAA;IAAA,6BAAA;ELyuFV;EKhvFM;IAOI,4BAAA;IAAA,6BAAA;EL6uFV;EKpvFM;IAOI,wBAAA;IAAA,2BAAA;ELivFV;EKxvFM;IAOI,8BAAA;IAAA,iCAAA;ELqvFV;EK5vFM;IAOI,6BAAA;IAAA,gCAAA;ELyvFV;EKhwFM;IAOI,2BAAA;IAAA,8BAAA;EL6vFV;EKpwFM;IAOI,6BAAA;IAAA,gCAAA;ELiwFV;EKxwFM;IAOI,2BAAA;IAAA,8BAAA;ELqwFV;EK5wFM;IAOI,2BAAA;IAAA,8BAAA;ELywFV;EKhxFM;IAOI,wBAAA;EL4wFV;EKnxFM;IAOI,8BAAA;EL+wFV;EKtxFM;IAOI,6BAAA;ELkxFV;EKzxFM;IAOI,2BAAA;ELqxFV;EK5xFM;IAOI,6BAAA;ELwxFV;EK/xFM;IAOI,2BAAA;EL2xFV;EKlyFM;IAOI,2BAAA;EL8xFV;EKryFM;IAOI,yBAAA;ELiyFV;EKxyFM;IAOI,+BAAA;ELoyFV;EK3yFM;IAOI,8BAAA;ELuyFV;EK9yFM;IAOI,4BAAA;EL0yFV;EKjzFM;IAOI,8BAAA;EL6yFV;EKpzFM;IAOI,4BAAA;ELgzFV;EKvzFM;IAOI,4BAAA;ELmzFV;EK1zFM;IAOI,2BAAA;ELszFV;EK7zFM;IAOI,iCAAA;ELyzFV;EKh0FM;IAOI,gCAAA;EL4zFV;EKn0FM;IAOI,8BAAA;EL+zFV;EKt0FM;IAOI,gCAAA;ELk0FV;EKz0FM;IAOI,8BAAA;ELq0FV;EK50FM;IAOI,8BAAA;ELw0FV;EK/0FM;IAOI,0BAAA;EL20FV;EKl1FM;IAOI,gCAAA;EL80FV;EKr1FM;IAOI,+BAAA;ELi1FV;EKx1FM;IAOI,6BAAA;ELo1FV;EK31FM;IAOI,+BAAA;ELu1FV;EK91FM;IAOI,6BAAA;EL01FV;EKj2FM;IAOI,6BAAA;EL61FV;EKp2FM;IAOI,qBAAA;ELg2FV;EKv2FM;IAOI,2BAAA;ELm2FV;EK12FM;IAOI,0BAAA;ELs2FV;EK72FM;IAOI,wBAAA;ELy2FV;EKh3FM;IAOI,0BAAA;EL42FV;EKn3FM;IAOI,wBAAA;EL+2FV;EKt3FM;IAOI,0BAAA;IAAA,2BAAA;ELm3FV;EK13FM;IAOI,gCAAA;IAAA,iCAAA;ELu3FV;EK93FM;IAOI,+BAAA;IAAA,gCAAA;EL23FV;EKl4FM;IAOI,6BAAA;IAAA,8BAAA;EL+3FV;EKt4FM;IAOI,+BAAA;IAAA,gCAAA;ELm4FV;EK14FM;IAOI,6BAAA;IAAA,8BAAA;ELu4FV;EK94FM;IAOI,yBAAA;IAAA,4BAAA;EL24FV;EKl5FM;IAOI,+BAAA;IAAA,kCAAA;EL+4FV;EKt5FM;IAOI,8BAAA;IAAA,iCAAA;ELm5FV;EK15FM;IAOI,4BAAA;IAAA,+BAAA;ELu5FV;EK95FM;IAOI,8BAAA;IAAA,iCAAA;EL25FV;EKl6FM;IAOI,4BAAA;IAAA,+BAAA;EL+5FV;EKt6FM;IAOI,yBAAA;ELk6FV;EKz6FM;IAOI,+BAAA;ELq6FV;EK56FM;IAOI,8BAAA;ELw6FV;EK/6FM;IAOI,4BAAA;EL26FV;EKl7FM;IAOI,8BAAA;EL86FV;EKr7FM;IAOI,4BAAA;ELi7FV;EKx7FM;IAOI,0BAAA;ELo7FV;EK37FM;IAOI,gCAAA;ELu7FV;EK97FM;IAOI,+BAAA;EL07FV;EKj8FM;IAOI,6BAAA;EL67FV;EKp8FM;IAOI,+BAAA;ELg8FV;EKv8FM;IAOI,6BAAA;ELm8FV;EK18FM;IAOI,4BAAA;ELs8FV;EK78FM;IAOI,kCAAA;ELy8FV;EKh9FM;IAOI,iCAAA;EL48FV;EKn9FM;IAOI,+BAAA;EL+8FV;EKt9FM;IAOI,iCAAA;ELk9FV;EKz9FM;IAOI,+BAAA;ELq9FV;EK59FM;IAOI,2BAAA;ELw9FV;EK/9FM;IAOI,iCAAA;EL29FV;EKl+FM;IAOI,gCAAA;EL89FV;EKr+FM;IAOI,8BAAA;ELi+FV;EKx+FM;IAOI,gCAAA;ELo+FV;EK3+FM;IAOI,8BAAA;ELu+FV;AACF;ACl/FI;EIGI;IAOI,0BAAA;EL4+FV;EKn/FM;IAOI,gCAAA;EL++FV;EKt/FM;IAOI,yBAAA;ELk/FV;EKz/FM;IAOI,wBAAA;ELq/FV;EK5/FM;IAOI,+BAAA;ELw/FV;EK//FM;IAOI,yBAAA;EL2/FV;EKlgGM;IAOI,6BAAA;EL8/FV;EKrgGM;IAOI,8BAAA;ELigGV;EKxgGM;IAOI,wBAAA;ELogGV;EK3gGM;IAOI,+BAAA;ELugGV;EK9gGM;IAOI,wBAAA;EL0gGV;EKjhGM;IAOI,yBAAA;EL6gGV;EKphGM;IAOI,8BAAA;ELghGV;EKvhGM;IAOI,iCAAA;ELmhGV;EK1hGM;IAOI,sCAAA;ELshGV;EK7hGM;IAOI,yCAAA;ELyhGV;EKhiGM;IAOI,uBAAA;EL4hGV;EKniGM;IAOI,uBAAA;EL+hGV;EKtiGM;IAOI,yBAAA;ELkiGV;EKziGM;IAOI,yBAAA;ELqiGV;EK5iGM;IAOI,0BAAA;ELwiGV;EK/iGM;IAOI,4BAAA;EL2iGV;EKljGM;IAOI,kCAAA;EL8iGV;EKrjGM;IAOI,sCAAA;ELijGV;EKxjGM;IAOI,oCAAA;ELojGV;EK3jGM;IAOI,kCAAA;ELujGV;EK9jGM;IAOI,yCAAA;EL0jGV;EKjkGM;IAOI,wCAAA;EL6jGV;EKpkGM;IAOI,wCAAA;ELgkGV;EKvkGM;IAOI,kCAAA;ELmkGV;EK1kGM;IAOI,gCAAA;ELskGV;EK7kGM;IAOI,8BAAA;ELykGV;EKhlGM;IAOI,gCAAA;EL4kGV;EKnlGM;IAOI,+BAAA;EL+kGV;EKtlGM;IAOI,oCAAA;ELklGV;EKzlGM;IAOI,kCAAA;ELqlGV;EK5lGM;IAOI,gCAAA;ELwlGV;EK/lGM;IAOI,uCAAA;EL2lGV;EKlmGM;IAOI,sCAAA;EL8lGV;EKrmGM;IAOI,iCAAA;ELimGV;EKxmGM;IAOI,2BAAA;ELomGV;EK3mGM;IAOI,iCAAA;ELumGV;EK9mGM;IAOI,+BAAA;EL0mGV;EKjnGM;IAOI,6BAAA;EL6mGV;EKpnGM;IAOI,+BAAA;ELgnGV;EKvnGM;IAOI,8BAAA;ELmnGV;EK1nGM;IAOI,oBAAA;ELsnGV;EK7nGM;IAOI,mBAAA;ELynGV;EKhoGM;IAOI,mBAAA;EL4nGV;EKnoGM;IAOI,mBAAA;EL+nGV;EKtoGM;IAOI,mBAAA;ELkoGV;EKzoGM;IAOI,mBAAA;ELqoGV;EK5oGM;IAOI,mBAAA;ELwoGV;EK/oGM;IAOI,mBAAA;EL2oGV;EKlpGM;IAOI,oBAAA;EL8oGV;EKrpGM;IAOI,0BAAA;ELipGV;EKxpGM;IAOI,yBAAA;ELopGV;EK3pGM;IAOI,uBAAA;ELupGV;EK9pGM;IAOI,yBAAA;EL0pGV;EKjqGM;IAOI,uBAAA;EL6pGV;EKpqGM;IAOI,uBAAA;ELgqGV;EKvqGM;IAOI,yBAAA;IAAA,0BAAA;ELoqGV;EK3qGM;IAOI,+BAAA;IAAA,gCAAA;ELwqGV;EK/qGM;IAOI,8BAAA;IAAA,+BAAA;EL4qGV;EKnrGM;IAOI,4BAAA;IAAA,6BAAA;ELgrGV;EKvrGM;IAOI,8BAAA;IAAA,+BAAA;ELorGV;EK3rGM;IAOI,4BAAA;IAAA,6BAAA;ELwrGV;EK/rGM;IAOI,4BAAA;IAAA,6BAAA;EL4rGV;EKnsGM;IAOI,wBAAA;IAAA,2BAAA;ELgsGV;EKvsGM;IAOI,8BAAA;IAAA,iCAAA;ELosGV;EK3sGM;IAOI,6BAAA;IAAA,gCAAA;ELwsGV;EK/sGM;IAOI,2BAAA;IAAA,8BAAA;EL4sGV;EKntGM;IAOI,6BAAA;IAAA,gCAAA;ELgtGV;EKvtGM;IAOI,2BAAA;IAAA,8BAAA;ELotGV;EK3tGM;IAOI,2BAAA;IAAA,8BAAA;ELwtGV;EK/tGM;IAOI,wBAAA;EL2tGV;EKluGM;IAOI,8BAAA;EL8tGV;EKruGM;IAOI,6BAAA;ELiuGV;EKxuGM;IAOI,2BAAA;ELouGV;EK3uGM;IAOI,6BAAA;ELuuGV;EK9uGM;IAOI,2BAAA;EL0uGV;EKjvGM;IAOI,2BAAA;EL6uGV;EKpvGM;IAOI,yBAAA;ELgvGV;EKvvGM;IAOI,+BAAA;ELmvGV;EK1vGM;IAOI,8BAAA;ELsvGV;EK7vGM;IAOI,4BAAA;ELyvGV;EKhwGM;IAOI,8BAAA;EL4vGV;EKnwGM;IAOI,4BAAA;EL+vGV;EKtwGM;IAOI,4BAAA;ELkwGV;EKzwGM;IAOI,2BAAA;ELqwGV;EK5wGM;IAOI,iCAAA;ELwwGV;EK/wGM;IAOI,gCAAA;EL2wGV;EKlxGM;IAOI,8BAAA;EL8wGV;EKrxGM;IAOI,gCAAA;ELixGV;EKxxGM;IAOI,8BAAA;ELoxGV;EK3xGM;IAOI,8BAAA;ELuxGV;EK9xGM;IAOI,0BAAA;EL0xGV;EKjyGM;IAOI,gCAAA;EL6xGV;EKpyGM;IAOI,+BAAA;ELgyGV;EKvyGM;IAOI,6BAAA;ELmyGV;EK1yGM;IAOI,+BAAA;ELsyGV;EK7yGM;IAOI,6BAAA;ELyyGV;EKhzGM;IAOI,6BAAA;EL4yGV;EKnzGM;IAOI,qBAAA;EL+yGV;EKtzGM;IAOI,2BAAA;ELkzGV;EKzzGM;IAOI,0BAAA;ELqzGV;EK5zGM;IAOI,wBAAA;ELwzGV;EK/zGM;IAOI,0BAAA;EL2zGV;EKl0GM;IAOI,wBAAA;EL8zGV;EKr0GM;IAOI,0BAAA;IAAA,2BAAA;ELk0GV;EKz0GM;IAOI,gCAAA;IAAA,iCAAA;ELs0GV;EK70GM;IAOI,+BAAA;IAAA,gCAAA;EL00GV;EKj1GM;IAOI,6BAAA;IAAA,8BAAA;EL80GV;EKr1GM;IAOI,+BAAA;IAAA,gCAAA;ELk1GV;EKz1GM;IAOI,6BAAA;IAAA,8BAAA;ELs1GV;EK71GM;IAOI,yBAAA;IAAA,4BAAA;EL01GV;EKj2GM;IAOI,+BAAA;IAAA,kCAAA;EL81GV;EKr2GM;IAOI,8BAAA;IAAA,iCAAA;ELk2GV;EKz2GM;IAOI,4BAAA;IAAA,+BAAA;ELs2GV;EK72GM;IAOI,8BAAA;IAAA,iCAAA;EL02GV;EKj3GM;IAOI,4BAAA;IAAA,+BAAA;EL82GV;EKr3GM;IAOI,yBAAA;ELi3GV;EKx3GM;IAOI,+BAAA;ELo3GV;EK33GM;IAOI,8BAAA;ELu3GV;EK93GM;IAOI,4BAAA;EL03GV;EKj4GM;IAOI,8BAAA;EL63GV;EKp4GM;IAOI,4BAAA;ELg4GV;EKv4GM;IAOI,0BAAA;ELm4GV;EK14GM;IAOI,gCAAA;ELs4GV;EK74GM;IAOI,+BAAA;ELy4GV;EKh5GM;IAOI,6BAAA;EL44GV;EKn5GM;IAOI,+BAAA;EL+4GV;EKt5GM;IAOI,6BAAA;ELk5GV;EKz5GM;IAOI,4BAAA;ELq5GV;EK55GM;IAOI,kCAAA;ELw5GV;EK/5GM;IAOI,iCAAA;EL25GV;EKl6GM;IAOI,+BAAA;EL85GV;EKr6GM;IAOI,iCAAA;ELi6GV;EKx6GM;IAOI,+BAAA;ELo6GV;EK36GM;IAOI,2BAAA;ELu6GV;EK96GM;IAOI,iCAAA;EL06GV;EKj7GM;IAOI,gCAAA;EL66GV;EKp7GM;IAOI,8BAAA;ELg7GV;EKv7GM;IAOI,gCAAA;ELm7GV;EK17GM;IAOI,8BAAA;ELs7GV;AACF;ACj8GI;EIGI;IAOI,0BAAA;EL27GV;EKl8GM;IAOI,gCAAA;EL87GV;EKr8GM;IAOI,yBAAA;ELi8GV;EKx8GM;IAOI,wBAAA;ELo8GV;EK38GM;IAOI,+BAAA;ELu8GV;EK98GM;IAOI,yBAAA;EL08GV;EKj9GM;IAOI,6BAAA;EL68GV;EKp9GM;IAOI,8BAAA;ELg9GV;EKv9GM;IAOI,wBAAA;ELm9GV;EK19GM;IAOI,+BAAA;ELs9GV;EK79GM;IAOI,wBAAA;ELy9GV;EKh+GM;IAOI,yBAAA;EL49GV;EKn+GM;IAOI,8BAAA;EL+9GV;EKt+GM;IAOI,iCAAA;ELk+GV;EKz+GM;IAOI,sCAAA;ELq+GV;EK5+GM;IAOI,yCAAA;ELw+GV;EK/+GM;IAOI,uBAAA;EL2+GV;EKl/GM;IAOI,uBAAA;EL8+GV;EKr/GM;IAOI,yBAAA;ELi/GV;EKx/GM;IAOI,yBAAA;ELo/GV;EK3/GM;IAOI,0BAAA;ELu/GV;EK9/GM;IAOI,4BAAA;EL0/GV;EKjgHM;IAOI,kCAAA;EL6/GV;EKpgHM;IAOI,sCAAA;ELggHV;EKvgHM;IAOI,oCAAA;ELmgHV;EK1gHM;IAOI,kCAAA;ELsgHV;EK7gHM;IAOI,yCAAA;ELygHV;EKhhHM;IAOI,wCAAA;EL4gHV;EKnhHM;IAOI,wCAAA;EL+gHV;EKthHM;IAOI,kCAAA;ELkhHV;EKzhHM;IAOI,gCAAA;ELqhHV;EK5hHM;IAOI,8BAAA;ELwhHV;EK/hHM;IAOI,gCAAA;EL2hHV;EKliHM;IAOI,+BAAA;EL8hHV;EKriHM;IAOI,oCAAA;ELiiHV;EKxiHM;IAOI,kCAAA;ELoiHV;EK3iHM;IAOI,gCAAA;ELuiHV;EK9iHM;IAOI,uCAAA;EL0iHV;EKjjHM;IAOI,sCAAA;EL6iHV;EKpjHM;IAOI,iCAAA;ELgjHV;EKvjHM;IAOI,2BAAA;ELmjHV;EK1jHM;IAOI,iCAAA;ELsjHV;EK7jHM;IAOI,+BAAA;ELyjHV;EKhkHM;IAOI,6BAAA;EL4jHV;EKnkHM;IAOI,+BAAA;EL+jHV;EKtkHM;IAOI,8BAAA;ELkkHV;EKzkHM;IAOI,oBAAA;ELqkHV;EK5kHM;IAOI,mBAAA;ELwkHV;EK/kHM;IAOI,mBAAA;EL2kHV;EKllHM;IAOI,mBAAA;EL8kHV;EKrlHM;IAOI,mBAAA;ELilHV;EKxlHM;IAOI,mBAAA;ELolHV;EK3lHM;IAOI,mBAAA;ELulHV;EK9lHM;IAOI,mBAAA;EL0lHV;EKjmHM;IAOI,oBAAA;EL6lHV;EKpmHM;IAOI,0BAAA;ELgmHV;EKvmHM;IAOI,yBAAA;ELmmHV;EK1mHM;IAOI,uBAAA;ELsmHV;EK7mHM;IAOI,yBAAA;ELymHV;EKhnHM;IAOI,uBAAA;EL4mHV;EKnnHM;IAOI,uBAAA;EL+mHV;EKtnHM;IAOI,yBAAA;IAAA,0BAAA;ELmnHV;EK1nHM;IAOI,+BAAA;IAAA,gCAAA;ELunHV;EK9nHM;IAOI,8BAAA;IAAA,+BAAA;EL2nHV;EKloHM;IAOI,4BAAA;IAAA,6BAAA;EL+nHV;EKtoHM;IAOI,8BAAA;IAAA,+BAAA;ELmoHV;EK1oHM;IAOI,4BAAA;IAAA,6BAAA;ELuoHV;EK9oHM;IAOI,4BAAA;IAAA,6BAAA;EL2oHV;EKlpHM;IAOI,wBAAA;IAAA,2BAAA;EL+oHV;EKtpHM;IAOI,8BAAA;IAAA,iCAAA;ELmpHV;EK1pHM;IAOI,6BAAA;IAAA,gCAAA;ELupHV;EK9pHM;IAOI,2BAAA;IAAA,8BAAA;EL2pHV;EKlqHM;IAOI,6BAAA;IAAA,gCAAA;EL+pHV;EKtqHM;IAOI,2BAAA;IAAA,8BAAA;ELmqHV;EK1qHM;IAOI,2BAAA;IAAA,8BAAA;ELuqHV;EK9qHM;IAOI,wBAAA;EL0qHV;EKjrHM;IAOI,8BAAA;EL6qHV;EKprHM;IAOI,6BAAA;ELgrHV;EKvrHM;IAOI,2BAAA;ELmrHV;EK1rHM;IAOI,6BAAA;ELsrHV;EK7rHM;IAOI,2BAAA;ELyrHV;EKhsHM;IAOI,2BAAA;EL4rHV;EKnsHM;IAOI,yBAAA;EL+rHV;EKtsHM;IAOI,+BAAA;ELksHV;EKzsHM;IAOI,8BAAA;ELqsHV;EK5sHM;IAOI,4BAAA;ELwsHV;EK/sHM;IAOI,8BAAA;EL2sHV;EKltHM;IAOI,4BAAA;EL8sHV;EKrtHM;IAOI,4BAAA;ELitHV;EKxtHM;IAOI,2BAAA;ELotHV;EK3tHM;IAOI,iCAAA;ELutHV;EK9tHM;IAOI,gCAAA;EL0tHV;EKjuHM;IAOI,8BAAA;EL6tHV;EKpuHM;IAOI,gCAAA;ELguHV;EKvuHM;IAOI,8BAAA;ELmuHV;EK1uHM;IAOI,8BAAA;ELsuHV;EK7uHM;IAOI,0BAAA;ELyuHV;EKhvHM;IAOI,gCAAA;EL4uHV;EKnvHM;IAOI,+BAAA;EL+uHV;EKtvHM;IAOI,6BAAA;ELkvHV;EKzvHM;IAOI,+BAAA;ELqvHV;EK5vHM;IAOI,6BAAA;ELwvHV;EK/vHM;IAOI,6BAAA;EL2vHV;EKlwHM;IAOI,qBAAA;EL8vHV;EKrwHM;IAOI,2BAAA;ELiwHV;EKxwHM;IAOI,0BAAA;ELowHV;EK3wHM;IAOI,wBAAA;ELuwHV;EK9wHM;IAOI,0BAAA;EL0wHV;EKjxHM;IAOI,wBAAA;EL6wHV;EKpxHM;IAOI,0BAAA;IAAA,2BAAA;ELixHV;EKxxHM;IAOI,gCAAA;IAAA,iCAAA;ELqxHV;EK5xHM;IAOI,+BAAA;IAAA,gCAAA;ELyxHV;EKhyHM;IAOI,6BAAA;IAAA,8BAAA;EL6xHV;EKpyHM;IAOI,+BAAA;IAAA,gCAAA;ELiyHV;EKxyHM;IAOI,6BAAA;IAAA,8BAAA;ELqyHV;EK5yHM;IAOI,yBAAA;IAAA,4BAAA;ELyyHV;EKhzHM;IAOI,+BAAA;IAAA,kCAAA;EL6yHV;EKpzHM;IAOI,8BAAA;IAAA,iCAAA;ELizHV;EKxzHM;IAOI,4BAAA;IAAA,+BAAA;ELqzHV;EK5zHM;IAOI,8BAAA;IAAA,iCAAA;ELyzHV;EKh0HM;IAOI,4BAAA;IAAA,+BAAA;EL6zHV;EKp0HM;IAOI,yBAAA;ELg0HV;EKv0HM;IAOI,+BAAA;ELm0HV;EK10HM;IAOI,8BAAA;ELs0HV;EK70HM;IAOI,4BAAA;ELy0HV;EKh1HM;IAOI,8BAAA;EL40HV;EKn1HM;IAOI,4BAAA;EL+0HV;EKt1HM;IAOI,0BAAA;ELk1HV;EKz1HM;IAOI,gCAAA;ELq1HV;EK51HM;IAOI,+BAAA;ELw1HV;EK/1HM;IAOI,6BAAA;EL21HV;EKl2HM;IAOI,+BAAA;EL81HV;EKr2HM;IAOI,6BAAA;ELi2HV;EKx2HM;IAOI,4BAAA;ELo2HV;EK32HM;IAOI,kCAAA;ELu2HV;EK92HM;IAOI,iCAAA;EL02HV;EKj3HM;IAOI,+BAAA;EL62HV;EKp3HM;IAOI,iCAAA;ELg3HV;EKv3HM;IAOI,+BAAA;ELm3HV;EK13HM;IAOI,2BAAA;ELs3HV;EK73HM;IAOI,iCAAA;ELy3HV;EKh4HM;IAOI,gCAAA;EL43HV;EKn4HM;IAOI,8BAAA;EL+3HV;EKt4HM;IAOI,gCAAA;ELk4HV;EKz4HM;IAOI,8BAAA;ELq4HV;AACF;AMz6HA;ED4BQ;IAOI,0BAAA;EL04HV;EKj5HM;IAOI,gCAAA;EL64HV;EKp5HM;IAOI,yBAAA;ELg5HV;EKv5HM;IAOI,wBAAA;ELm5HV;EK15HM;IAOI,+BAAA;ELs5HV;EK75HM;IAOI,yBAAA;ELy5HV;EKh6HM;IAOI,6BAAA;EL45HV;EKn6HM;IAOI,8BAAA;EL+5HV;EKt6HM;IAOI,wBAAA;ELk6HV;EKz6HM;IAOI,+BAAA;ELq6HV;EK56HM;IAOI,wBAAA;ELw6HV;AACF","file":"bootstrap-grid.rtl.css","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\n}\n","/*!\n * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-text-variables\n$primary-text-emphasis: shade-color($primary, 60%) !default;\n$secondary-text-emphasis: shade-color($secondary, 60%) !default;\n$success-text-emphasis: shade-color($success, 60%) !default;\n$info-text-emphasis: shade-color($info, 60%) !default;\n$warning-text-emphasis: shade-color($warning, 60%) !default;\n$danger-text-emphasis: shade-color($danger, 60%) !default;\n$light-text-emphasis: $gray-700 !default;\n$dark-text-emphasis: $gray-700 !default;\n// scss-docs-end theme-text-variables\n\n// scss-docs-start theme-bg-subtle-variables\n$primary-bg-subtle: tint-color($primary, 80%) !default;\n$secondary-bg-subtle: tint-color($secondary, 80%) !default;\n$success-bg-subtle: tint-color($success, 80%) !default;\n$info-bg-subtle: tint-color($info, 80%) !default;\n$warning-bg-subtle: tint-color($warning, 80%) !default;\n$danger-bg-subtle: tint-color($danger, 80%) !default;\n$light-bg-subtle: mix($gray-100, $white) !default;\n$dark-bg-subtle: $gray-400 !default;\n// scss-docs-end theme-bg-subtle-variables\n\n// scss-docs-start theme-border-subtle-variables\n$primary-border-subtle: tint-color($primary, 60%) !default;\n$secondary-border-subtle: tint-color($secondary, 60%) !default;\n$success-border-subtle: tint-color($success, 60%) !default;\n$info-border-subtle: tint-color($info, 60%) !default;\n$warning-border-subtle: tint-color($warning, 60%) !default;\n$danger-border-subtle: tint-color($danger, 60%) !default;\n$light-border-subtle: $gray-200 !default;\n$dark-border-subtle: $gray-500 !default;\n// scss-docs-end theme-border-subtle-variables\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n$enable-dark-mode: true !default;\n$color-mode-type: data !default; // `data` or `media-query`\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-text-align: null !default;\n$body-color: $gray-900 !default;\n$body-bg: $white !default;\n\n$body-secondary-color: rgba($body-color, .75) !default;\n$body-secondary-bg: $gray-200 !default;\n\n$body-tertiary-color: rgba($body-color, .5) !default;\n$body-tertiary-bg: $gray-100 !default;\n\n$body-emphasis-color: $black !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-xxl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n// fusv-disable\n$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0\n// fusv-enable\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start focus-ring-variables\n$focus-ring-width: .25rem !default;\n$focus-ring-opacity: .25 !default;\n$focus-ring-color: rgba($primary, $focus-ring-opacity) !default;\n$focus-ring-blur: 0 !default;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default;\n// scss-docs-end focus-ring-variables\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n// fusv-disable\n$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0\n// fusv-enable\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: var(--#{$prefix}border-width) !default;\n$hr-opacity: .25 !default;\n\n// scss-docs-start vr-variables\n$vr-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end vr-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-color: $body-color !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}emphasis-color) !default;\n$table-bg: var(--#{$prefix}body-bg) !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default;\n\n$table-border-factor: .2 !default;\n$table-border-width: var(--#{$prefix}border-width) !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: var(--#{$prefix}secondary-color) !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: $focus-ring-width !default;\n$input-btn-focus-color-opacity: $focus-ring-opacity !default;\n$input-btn-focus-color: $focus-ring-color !default;\n$input-btn-focus-blur: $focus-ring-blur !default;\n$input-btn-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-color: var(--#{$prefix}body-color) !default;\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: var(--#{$prefix}border-radius) !default;\n$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: var(--#{$prefix}body-bg) !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$input-disabled-border-color: null !default;\n\n$input-color: var(--#{$prefix}body-color) !default;\n$input-border-color: var(--#{$prefix}border-color) !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$input-border-radius: var(--#{$prefix}border-radius) !default;\n$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: var(--#{$prefix}secondary-color) !default;\n$input-plaintext-color: var(--#{$prefix}body-color) !default;\n\n$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: var(--#{$prefix}tertiary-bg) !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $input-disabled-bg !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: var(--#{$prefix}secondary-bg) !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color) !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: var(--#{$prefix}tertiary-bg) !default;\n$form-file-button-hover-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-height: 1.5em !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-label-disabled-color: $gray-600 !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-colors\n$form-valid-color: $form-feedback-valid-color !default;\n$form-valid-border-color: $form-feedback-valid-color !default;\n$form-invalid-color: $form-feedback-invalid-color !default;\n$form-invalid-border-color: $form-feedback-invalid-color !default;\n// scss-docs-end form-validation-colors\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": var(--#{$prefix}form-valid-color),\n \"icon\": $form-feedback-icon-valid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}success),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-valid-border-color),\n ),\n \"invalid\": (\n \"color\": var(--#{$prefix}form-invalid-color),\n \"icon\": $form-feedback-icon-invalid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}danger),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-invalid-border-color),\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: var(--#{$prefix}secondary-color) !default;\n$nav-link-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$nav-tabs-border-color: var(--#{$prefix}border-color) !default;\n$nav-tabs-border-width: var(--#{$prefix}border-width) !default;\n$nav-tabs-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-tabs-link-hover-border-color: var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default;\n$nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default;\n$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-underline-gap: 1rem !default;\n$nav-underline-border-width: .125rem !default;\n$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n\n$navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default;\n$navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default;\n$navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default;\n$navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default;\n$navbar-light-icon-color: rgba($body-color, .75) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default;\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-icon-color: $navbar-dark-color !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: var(--#{$prefix}body-color) !default;\n$dropdown-bg: var(--#{$prefix}body-bg) !default;\n$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius: var(--#{$prefix}border-radius) !default;\n$dropdown-border-width: var(--#{$prefix}border-width) !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$dropdown-link-color: var(--#{$prefix}body-color) !default;\n$dropdown-link-hover-color: $dropdown-link-color !default;\n$dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: var(--#{$prefix}body-bg) !default;\n$pagination-border-radius: var(--#{$prefix}border-radius) !default;\n$pagination-border-width: var(--#{$prefix}border-width) !default;\n$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list\n$pagination-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-focus-box-shadow: $focus-ring-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$pagination-hover-border-color: var(--#{$prefix}border-color) !default; // Todo in v6: remove this?\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $component-active-bg !default;\n\n$pagination-disabled-color: var(--#{$prefix}secondary-color) !default;\n$pagination-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-disabled-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-title-color: null !default;\n$card-subtitle-color: null !default;\n$card-border-width: var(--#{$prefix}border-width) !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: var(--#{$prefix}border-radius) !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba(var(--#{$prefix}body-color-rgb), .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: var(--#{$prefix}body-bg) !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: var(--#{$prefix}body-bg) !default;\n$accordion-border-width: var(--#{$prefix}border-width) !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: var(--#{$prefix}border-radius) !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: var(--#{$prefix}body-color) !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;\n$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;\n\n// fusv-disable\n$accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.3.3\n// fusv-enable\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $body-color !default;\n$accordion-icon-active-color: $primary-text-emphasis !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: var(--#{$prefix}body-bg) !default;\n$tooltip-bg: var(--#{$prefix}emphasis-color) !default;\n$tooltip-border-radius: var(--#{$prefix}border-radius) !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: var(--#{$prefix}body-bg) !default;\n$popover-max-width: 276px !default;\n$popover-border-width: var(--#{$prefix}border-width) !default;\n$popover-border-color: var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$popover-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: var(--#{$prefix}secondary-bg) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: var(--#{$prefix}body-color) !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-border-width: var(--#{$prefix}border-width) !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: var(--#{$prefix}border-radius) !default;\n$toast-box-shadow: var(--#{$prefix}box-shadow) !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: var(--#{$prefix}secondary-color) !default;\n$toast-header-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-header-border-color: $toast-border-color !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: var(--#{$prefix}border-radius) !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: var(--#{$prefix}body-bg) !default;\n$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width: var(--#{$prefix}border-width) !default;\n$modal-content-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: var(--#{$prefix}box-shadow-sm) !default;\n$modal-content-box-shadow-sm-up: var(--#{$prefix}box-shadow) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: var(--#{$prefix}border-radius) !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: var(--#{$prefix}border-width) !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n// fusv-disable\n$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6\n// fusv-enable\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: var(--#{$prefix}secondary-bg) !default;\n$progress-border-radius: var(--#{$prefix}border-radius) !default;\n$progress-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: var(--#{$prefix}body-color) !default;\n$list-group-bg: var(--#{$prefix}body-bg) !default;\n$list-group-border-color: var(--#{$prefix}border-color) !default;\n$list-group-border-width: var(--#{$prefix}border-width) !default;\n$list-group-border-radius: var(--#{$prefix}border-radius) !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n// fusv-disable\n$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0\n$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0\n// fusv-enable\n\n$list-group-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: var(--#{$prefix}secondary-color) !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: var(--#{$prefix}secondary-color) !default;\n$list-group-action-hover-color: var(--#{$prefix}emphasis-color) !default;\n\n$list-group-action-active-color: var(--#{$prefix}body-color) !default;\n$list-group-action-active-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: var(--#{$prefix}body-bg) !default;\n$thumbnail-border-width: var(--#{$prefix}border-width) !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: var(--#{$prefix}border-radius) !default;\n$thumbnail-box-shadow: var(--#{$prefix}box-shadow-sm) !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-active-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $focus-ring-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: var(--#{$prefix}body-bg) !default;\n$offcanvas-color: var(--#{$prefix}body-color) !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n\n@import \"variables-dark\"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3\n","// Row\n//\n// Rows contain your columns.\n\n:root {\n @each $name, $value in $grid-breakpoints {\n --#{$prefix}breakpoint-#{$name}: #{$value};\n }\n}\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: percentage(divide(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix: \"\", $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (e.g. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css new file mode 100644 index 0000000..672cbc2 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap Grid v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-left:auto;margin-right:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-left:calc(-.5 * var(--bs-gutter-x));margin-right:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:1.5rem!important}.me-5{margin-left:3rem!important}.me-auto{margin-left:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:1.5rem!important}.ms-5{margin-right:3rem!important}.ms-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:1.5rem!important}.pe-5{padding-left:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:1.5rem!important}.ps-5{padding-right:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:1.5rem!important}.me-sm-5{margin-left:3rem!important}.me-sm-auto{margin-left:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:1.5rem!important}.ms-sm-5{margin-right:3rem!important}.ms-sm-auto{margin-right:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:1.5rem!important}.pe-sm-5{padding-left:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:1.5rem!important}.ps-sm-5{padding-right:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:1.5rem!important}.me-md-5{margin-left:3rem!important}.me-md-auto{margin-left:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:1.5rem!important}.ms-md-5{margin-right:3rem!important}.ms-md-auto{margin-right:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:1.5rem!important}.pe-md-5{padding-left:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:1.5rem!important}.ps-md-5{padding-right:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:1.5rem!important}.me-lg-5{margin-left:3rem!important}.me-lg-auto{margin-left:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:1.5rem!important}.ms-lg-5{margin-right:3rem!important}.ms-lg-auto{margin-right:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:1.5rem!important}.pe-lg-5{padding-left:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:1.5rem!important}.ps-lg-5{padding-right:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:1.5rem!important}.me-xl-5{margin-left:3rem!important}.me-xl-auto{margin-left:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:1.5rem!important}.ms-xl-5{margin-right:3rem!important}.ms-xl-auto{margin-right:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:1.5rem!important}.pe-xl-5{padding-left:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:1.5rem!important}.ps-xl-5{padding-right:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:1.5rem!important}.me-xxl-5{margin-left:3rem!important}.me-xxl-auto{margin-left:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:1.5rem!important}.ms-xxl-5{margin-right:3rem!important}.ms-xxl-auto{margin-right:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:1.5rem!important}.pe-xxl-5{padding-left:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:1.5rem!important}.ps-xxl-5{padding-right:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap-grid.rtl.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map new file mode 100644 index 0000000..1c926af --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.rtl.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AACE;;;;ACKA,WCAF,iBAGA,cACA,cACA,cAHA,cADA,eCJE,cAAA,OACA,cAAA,EACA,MAAA,KACA,aAAA,8BACA,cAAA,8BACA,YAAA,KACA,aAAA,KCsDE,yBH5CE,WAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cAAA,cACE,UAAA,OG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QIhBR,MAEI,mBAAA,EAAA,mBAAA,MAAA,mBAAA,MAAA,mBAAA,MAAA,mBAAA,OAAA,oBAAA,OAKF,KCNA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KAEA,WAAA,8BACA,YAAA,+BACA,aAAA,+BDEE,OCGF,WAAA,WAIA,YAAA,EACA,MAAA,KACA,UAAA,KACA,aAAA,8BACA,cAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,aAAA,YAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,aAwDU,UAxDV,aAAA,IAwDU,WAxDV,aAAA,aAwDU,WAxDV,aAAA,aAmEM,KJ6GR,MI3GU,cAAA,EAGF,KJ6GR,MI3GU,cAAA,EAPF,KJuHR,MIrHU,cAAA,QAGF,KJuHR,MIrHU,cAAA,QAPF,KJiIR,MI/HU,cAAA,OAGF,KJiIR,MI/HU,cAAA,OAPF,KJ2IR,MIzIU,cAAA,KAGF,KJ2IR,MIzIU,cAAA,KAPF,KJqJR,MInJU,cAAA,OAGF,KJqJR,MInJU,cAAA,OAPF,KJ+JR,MI7JU,cAAA,KAGF,KJ+JR,MI7JU,cAAA,KF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJiSN,SI/RQ,cAAA,EAGF,QJgSN,SI9RQ,cAAA,EAPF,QJySN,SIvSQ,cAAA,QAGF,QJwSN,SItSQ,cAAA,QAPF,QJiTN,SI/SQ,cAAA,OAGF,QJgTN,SI9SQ,cAAA,OAPF,QJyTN,SIvTQ,cAAA,KAGF,QJwTN,SItTQ,cAAA,KAPF,QJiUN,SI/TQ,cAAA,OAGF,QJgUN,SI9TQ,cAAA,OAPF,QJyUN,SIvUQ,cAAA,KAGF,QJwUN,SItUQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJ0cN,SIxcQ,cAAA,EAGF,QJycN,SIvcQ,cAAA,EAPF,QJkdN,SIhdQ,cAAA,QAGF,QJidN,SI/cQ,cAAA,QAPF,QJ0dN,SIxdQ,cAAA,OAGF,QJydN,SIvdQ,cAAA,OAPF,QJkeN,SIheQ,cAAA,KAGF,QJieN,SI/dQ,cAAA,KAPF,QJ0eN,SIxeQ,cAAA,OAGF,QJyeN,SIveQ,cAAA,OAPF,QJkfN,SIhfQ,cAAA,KAGF,QJifN,SI/eQ,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJmnBN,SIjnBQ,cAAA,EAGF,QJknBN,SIhnBQ,cAAA,EAPF,QJ2nBN,SIznBQ,cAAA,QAGF,QJ0nBN,SIxnBQ,cAAA,QAPF,QJmoBN,SIjoBQ,cAAA,OAGF,QJkoBN,SIhoBQ,cAAA,OAPF,QJ2oBN,SIzoBQ,cAAA,KAGF,QJ0oBN,SIxoBQ,cAAA,KAPF,QJmpBN,SIjpBQ,cAAA,OAGF,QJkpBN,SIhpBQ,cAAA,OAPF,QJ2pBN,SIzpBQ,cAAA,KAGF,QJ0pBN,SIxpBQ,cAAA,MF1DN,0BEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,aAAA,EAwDU,aAxDV,aAAA,YAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,aAwDU,aAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAmEM,QJ4xBN,SI1xBQ,cAAA,EAGF,QJ2xBN,SIzxBQ,cAAA,EAPF,QJoyBN,SIlyBQ,cAAA,QAGF,QJmyBN,SIjyBQ,cAAA,QAPF,QJ4yBN,SI1yBQ,cAAA,OAGF,QJ2yBN,SIzyBQ,cAAA,OAPF,QJozBN,SIlzBQ,cAAA,KAGF,QJmzBN,SIjzBQ,cAAA,KAPF,QJ4zBN,SI1zBQ,cAAA,OAGF,QJ2zBN,SIzzBQ,cAAA,OAPF,QJo0BN,SIl0BQ,cAAA,KAGF,QJm0BN,SIj0BQ,cAAA,MF1DN,0BEUE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,aAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,aA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,aAAA,EAwDU,cAxDV,aAAA,YAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,aAwDU,cAxDV,aAAA,IAwDU,eAxDV,aAAA,aAwDU,eAxDV,aAAA,aAmEM,SJq8BN,UIn8BQ,cAAA,EAGF,SJo8BN,UIl8BQ,cAAA,EAPF,SJ68BN,UI38BQ,cAAA,QAGF,SJ48BN,UI18BQ,cAAA,QAPF,SJq9BN,UIn9BQ,cAAA,OAGF,SJo9BN,UIl9BQ,cAAA,OAPF,SJ69BN,UI39BQ,cAAA,KAGF,SJ49BN,UI19BQ,cAAA,KAPF,SJq+BN,UIn+BQ,cAAA,OAGF,SJo+BN,UIl+BQ,cAAA,OAPF,SJ6+BN,UI3+BQ,cAAA,KAGF,SJ4+BN,UI1+BQ,cAAA,MCvDF,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,YAAA,YAAA,aAAA,YAPJ,MAOI,YAAA,iBAAA,aAAA,iBAPJ,MAOI,YAAA,gBAAA,aAAA,gBAPJ,MAOI,YAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,iBAAA,aAAA,iBAPJ,MAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,aAAA,YAAA,cAAA,YAPJ,MAOI,aAAA,iBAAA,cAAA,iBAPJ,MAOI,aAAA,gBAAA,cAAA,gBAPJ,MAOI,aAAA,eAAA,cAAA,eAPJ,MAOI,aAAA,iBAAA,cAAA,iBAPJ,MAOI,aAAA,eAAA,cAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,yBGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,0BGGI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,YAAA,YAAA,aAAA,YAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,gBAAA,aAAA,gBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,iBAAA,aAAA,iBAPJ,SAOI,YAAA,eAAA,aAAA,eAPJ,YAOI,YAAA,eAAA,aAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,aAAA,YAAA,cAAA,YAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,gBAAA,cAAA,gBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,aAAA,iBAAA,cAAA,iBAPJ,SAOI,aAAA,eAAA,cAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBHVR,0BGGI,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,YAAA,YAAA,aAAA,YAPJ,UAOI,YAAA,iBAAA,aAAA,iBAPJ,UAOI,YAAA,gBAAA,aAAA,gBAPJ,UAOI,YAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,iBAAA,aAAA,iBAPJ,UAOI,YAAA,eAAA,aAAA,eAPJ,aAOI,YAAA,eAAA,aAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,aAAA,YAAA,cAAA,YAPJ,UAOI,aAAA,iBAAA,cAAA,iBAPJ,UAOI,aAAA,gBAAA,cAAA,gBAPJ,UAOI,aAAA,eAAA,cAAA,eAPJ,UAOI,aAAA,iBAAA,cAAA,iBAPJ,UAOI,aAAA,eAAA,cAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBCnCZ,aD4BQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n margin-left: auto;\n margin-right: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-right: 8.33333333%;\n}\n\n.offset-2 {\n margin-right: 16.66666667%;\n}\n\n.offset-3 {\n margin-right: 25%;\n}\n\n.offset-4 {\n margin-right: 33.33333333%;\n}\n\n.offset-5 {\n margin-right: 41.66666667%;\n}\n\n.offset-6 {\n margin-right: 50%;\n}\n\n.offset-7 {\n margin-right: 58.33333333%;\n}\n\n.offset-8 {\n margin-right: 66.66666667%;\n}\n\n.offset-9 {\n margin-right: 75%;\n}\n\n.offset-10 {\n margin-right: 83.33333333%;\n}\n\n.offset-11 {\n margin-right: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-right: 0;\n }\n .offset-sm-1 {\n margin-right: 8.33333333%;\n }\n .offset-sm-2 {\n margin-right: 16.66666667%;\n }\n .offset-sm-3 {\n margin-right: 25%;\n }\n .offset-sm-4 {\n margin-right: 33.33333333%;\n }\n .offset-sm-5 {\n margin-right: 41.66666667%;\n }\n .offset-sm-6 {\n margin-right: 50%;\n }\n .offset-sm-7 {\n margin-right: 58.33333333%;\n }\n .offset-sm-8 {\n margin-right: 66.66666667%;\n }\n .offset-sm-9 {\n margin-right: 75%;\n }\n .offset-sm-10 {\n margin-right: 83.33333333%;\n }\n .offset-sm-11 {\n margin-right: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-right: 0;\n }\n .offset-md-1 {\n margin-right: 8.33333333%;\n }\n .offset-md-2 {\n margin-right: 16.66666667%;\n }\n .offset-md-3 {\n margin-right: 25%;\n }\n .offset-md-4 {\n margin-right: 33.33333333%;\n }\n .offset-md-5 {\n margin-right: 41.66666667%;\n }\n .offset-md-6 {\n margin-right: 50%;\n }\n .offset-md-7 {\n margin-right: 58.33333333%;\n }\n .offset-md-8 {\n margin-right: 66.66666667%;\n }\n .offset-md-9 {\n margin-right: 75%;\n }\n .offset-md-10 {\n margin-right: 83.33333333%;\n }\n .offset-md-11 {\n margin-right: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-right: 0;\n }\n .offset-lg-1 {\n margin-right: 8.33333333%;\n }\n .offset-lg-2 {\n margin-right: 16.66666667%;\n }\n .offset-lg-3 {\n margin-right: 25%;\n }\n .offset-lg-4 {\n margin-right: 33.33333333%;\n }\n .offset-lg-5 {\n margin-right: 41.66666667%;\n }\n .offset-lg-6 {\n margin-right: 50%;\n }\n .offset-lg-7 {\n margin-right: 58.33333333%;\n }\n .offset-lg-8 {\n margin-right: 66.66666667%;\n }\n .offset-lg-9 {\n margin-right: 75%;\n }\n .offset-lg-10 {\n margin-right: 83.33333333%;\n }\n .offset-lg-11 {\n margin-right: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-right: 0;\n }\n .offset-xl-1 {\n margin-right: 8.33333333%;\n }\n .offset-xl-2 {\n margin-right: 16.66666667%;\n }\n .offset-xl-3 {\n margin-right: 25%;\n }\n .offset-xl-4 {\n margin-right: 33.33333333%;\n }\n .offset-xl-5 {\n margin-right: 41.66666667%;\n }\n .offset-xl-6 {\n margin-right: 50%;\n }\n .offset-xl-7 {\n margin-right: 58.33333333%;\n }\n .offset-xl-8 {\n margin-right: 66.66666667%;\n }\n .offset-xl-9 {\n margin-right: 75%;\n }\n .offset-xl-10 {\n margin-right: 83.33333333%;\n }\n .offset-xl-11 {\n margin-right: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-right: 0;\n }\n .offset-xxl-1 {\n margin-right: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-right: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-right: 25%;\n }\n .offset-xxl-4 {\n margin-right: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-right: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-right: 50%;\n }\n .offset-xxl-7 {\n margin-right: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-right: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-right: 75%;\n }\n .offset-xxl-10 {\n margin-right: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-right: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.mx-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-left: 0 !important;\n}\n\n.me-1 {\n margin-left: 0.25rem !important;\n}\n\n.me-2 {\n margin-left: 0.5rem !important;\n}\n\n.me-3 {\n margin-left: 1rem !important;\n}\n\n.me-4 {\n margin-left: 1.5rem !important;\n}\n\n.me-5 {\n margin-left: 3rem !important;\n}\n\n.me-auto {\n margin-left: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-right: 0 !important;\n}\n\n.ms-1 {\n margin-right: 0.25rem !important;\n}\n\n.ms-2 {\n margin-right: 0.5rem !important;\n}\n\n.ms-3 {\n margin-right: 1rem !important;\n}\n\n.ms-4 {\n margin-right: 1.5rem !important;\n}\n\n.ms-5 {\n margin-right: 3rem !important;\n}\n\n.ms-auto {\n margin-right: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.px-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-left: 0 !important;\n}\n\n.pe-1 {\n padding-left: 0.25rem !important;\n}\n\n.pe-2 {\n padding-left: 0.5rem !important;\n}\n\n.pe-3 {\n padding-left: 1rem !important;\n}\n\n.pe-4 {\n padding-left: 1.5rem !important;\n}\n\n.pe-5 {\n padding-left: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-right: 0 !important;\n}\n\n.ps-1 {\n padding-right: 0.25rem !important;\n}\n\n.ps-2 {\n padding-right: 0.5rem !important;\n}\n\n.ps-3 {\n padding-right: 1rem !important;\n}\n\n.ps-4 {\n padding-right: 1.5rem !important;\n}\n\n.ps-5 {\n padding-right: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-sm-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-left: 0 !important;\n }\n .me-sm-1 {\n margin-left: 0.25rem !important;\n }\n .me-sm-2 {\n margin-left: 0.5rem !important;\n }\n .me-sm-3 {\n margin-left: 1rem !important;\n }\n .me-sm-4 {\n margin-left: 1.5rem !important;\n }\n .me-sm-5 {\n margin-left: 3rem !important;\n }\n .me-sm-auto {\n margin-left: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-right: 0 !important;\n }\n .ms-sm-1 {\n margin-right: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-right: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-right: 1rem !important;\n }\n .ms-sm-4 {\n margin-right: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-right: 3rem !important;\n }\n .ms-sm-auto {\n margin-right: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-sm-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-sm-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-sm-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-sm-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-sm-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-left: 0 !important;\n }\n .pe-sm-1 {\n padding-left: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-left: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-left: 1rem !important;\n }\n .pe-sm-4 {\n padding-left: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-left: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-right: 0 !important;\n }\n .ps-sm-1 {\n padding-right: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-right: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-right: 1rem !important;\n }\n .ps-sm-4 {\n padding-right: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-md-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-md-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-md-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-md-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-md-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-md-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-left: 0 !important;\n }\n .me-md-1 {\n margin-left: 0.25rem !important;\n }\n .me-md-2 {\n margin-left: 0.5rem !important;\n }\n .me-md-3 {\n margin-left: 1rem !important;\n }\n .me-md-4 {\n margin-left: 1.5rem !important;\n }\n .me-md-5 {\n margin-left: 3rem !important;\n }\n .me-md-auto {\n margin-left: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-right: 0 !important;\n }\n .ms-md-1 {\n margin-right: 0.25rem !important;\n }\n .ms-md-2 {\n margin-right: 0.5rem !important;\n }\n .ms-md-3 {\n margin-right: 1rem !important;\n }\n .ms-md-4 {\n margin-right: 1.5rem !important;\n }\n .ms-md-5 {\n margin-right: 3rem !important;\n }\n .ms-md-auto {\n margin-right: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-md-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-md-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-md-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-md-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-md-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-left: 0 !important;\n }\n .pe-md-1 {\n padding-left: 0.25rem !important;\n }\n .pe-md-2 {\n padding-left: 0.5rem !important;\n }\n .pe-md-3 {\n padding-left: 1rem !important;\n }\n .pe-md-4 {\n padding-left: 1.5rem !important;\n }\n .pe-md-5 {\n padding-left: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-right: 0 !important;\n }\n .ps-md-1 {\n padding-right: 0.25rem !important;\n }\n .ps-md-2 {\n padding-right: 0.5rem !important;\n }\n .ps-md-3 {\n padding-right: 1rem !important;\n }\n .ps-md-4 {\n padding-right: 1.5rem !important;\n }\n .ps-md-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-lg-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-left: 0 !important;\n }\n .me-lg-1 {\n margin-left: 0.25rem !important;\n }\n .me-lg-2 {\n margin-left: 0.5rem !important;\n }\n .me-lg-3 {\n margin-left: 1rem !important;\n }\n .me-lg-4 {\n margin-left: 1.5rem !important;\n }\n .me-lg-5 {\n margin-left: 3rem !important;\n }\n .me-lg-auto {\n margin-left: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-right: 0 !important;\n }\n .ms-lg-1 {\n margin-right: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-right: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-right: 1rem !important;\n }\n .ms-lg-4 {\n margin-right: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-right: 3rem !important;\n }\n .ms-lg-auto {\n margin-right: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-lg-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-lg-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-lg-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-lg-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-lg-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-left: 0 !important;\n }\n .pe-lg-1 {\n padding-left: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-left: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-left: 1rem !important;\n }\n .pe-lg-4 {\n padding-left: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-left: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-right: 0 !important;\n }\n .ps-lg-1 {\n padding-right: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-right: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-right: 1rem !important;\n }\n .ps-lg-4 {\n padding-right: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-xl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-left: 0 !important;\n }\n .me-xl-1 {\n margin-left: 0.25rem !important;\n }\n .me-xl-2 {\n margin-left: 0.5rem !important;\n }\n .me-xl-3 {\n margin-left: 1rem !important;\n }\n .me-xl-4 {\n margin-left: 1.5rem !important;\n }\n .me-xl-5 {\n margin-left: 3rem !important;\n }\n .me-xl-auto {\n margin-left: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-right: 0 !important;\n }\n .ms-xl-1 {\n margin-right: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-right: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-right: 1rem !important;\n }\n .ms-xl-4 {\n margin-right: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-right: 3rem !important;\n }\n .ms-xl-auto {\n margin-right: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-xl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-xl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-xl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-xl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-xl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-left: 0 !important;\n }\n .pe-xl-1 {\n padding-left: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-left: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-left: 1rem !important;\n }\n .pe-xl-4 {\n padding-left: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-left: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-right: 0 !important;\n }\n .ps-xl-1 {\n padding-right: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-right: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-right: 1rem !important;\n }\n .ps-xl-4 {\n padding-right: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .mx-xxl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .mx-xxl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .mx-xxl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-left: 0 !important;\n }\n .me-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-left: 1rem !important;\n }\n .me-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-left: 3rem !important;\n }\n .me-xxl-auto {\n margin-left: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-right: 0 !important;\n }\n .ms-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-right: 1rem !important;\n }\n .ms-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-right: 3rem !important;\n }\n .ms-xxl-auto {\n margin-right: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .px-xxl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .px-xxl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-left: 0 !important;\n }\n .pe-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-left: 1rem !important;\n }\n .pe-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-left: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-right: 0 !important;\n }\n .ps-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-right: 1rem !important;\n }\n .ps-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-right: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.rtl.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Row\n//\n// Rows contain your columns.\n\n:root {\n @each $name, $value in $grid-breakpoints {\n --#{$prefix}breakpoint-#{$name}: #{$value};\n }\n}\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$prefix}gutter-x: #{$gutter};\n --#{$prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: percentage(divide(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix: \"\", $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // Use custom CSS variable name if present, otherwise default to `class`\n $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (e.g. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$prefix}#{$css-variable-name}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $variable in $is-local-vars {\n --#{$prefix}#{$local-var}: #{$variable};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css new file mode 100644 index 0000000..6305410 --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css @@ -0,0 +1,597 @@ +/*! + * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; +} + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; +} + +h6, h5, h4, h3, h2, h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); +} + +h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1 { + font-size: 2.5rem; + } +} + +h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2 { + font-size: 2rem; + } +} + +h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3 { + font-size: 1.75rem; + } +} + +h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4 { + font-size: 1.5rem; + } +} + +h5 { + font-size: 1.25rem; +} + +h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 0.875em; +} + +mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline; +} +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} +kbd kbd { + padding: 0; + font-size: 1em; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css.map b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css.map new file mode 100644 index 0000000..5fe522b --- /dev/null +++ b/src/main/resources/static/js/fw/bootstrap/dist/css/bootstrap-reboot.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_color-mode.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"AACE;;;;EAAA;ACDF;;EASI,kBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,kBAAA;EAAA,iBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAAA,kBAAA;EAAA,gBAAA;EAAA,gBAAA;EAAA,kBAAA;EAAA,uBAAA;EAIA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAIA,qBAAA;EAAA,uBAAA;EAAA,qBAAA;EAAA,kBAAA;EAAA,qBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAIA,8BAAA;EAAA,iCAAA;EAAA,6BAAA;EAAA,2BAAA;EAAA,6BAAA;EAAA,4BAAA;EAAA,6BAAA;EAAA,yBAAA;EAIA,mCAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,gCAAA;EAAA,mCAAA;EAAA,kCAAA;EAAA,iCAAA;EAAA,gCAAA;EAIA,+BAAA;EAAA,iCAAA;EAAA,+BAAA;EAAA,4BAAA;EAAA,+BAAA;EAAA,8BAAA;EAAA,6BAAA;EAAA,4BAAA;EAIA,mCAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,gCAAA;EAAA,mCAAA;EAAA,kCAAA;EAAA,iCAAA;EAAA,gCAAA;EAGF,6BAAA;EACA,uBAAA;EAMA,qNAAA;EACA,yGAAA;EACA,yFAAA;EAOA,gDAAA;EC2OI,yBALI;EDpOR,0BAAA;EACA,0BAAA;EAKA,wBAAA;EACA,+BAAA;EACA,kBAAA;EACA,+BAAA;EAEA,yBAAA;EACA,gCAAA;EAEA,4CAAA;EACA,oCAAA;EACA,0BAAA;EACA,oCAAA;EAEA,0CAAA;EACA,mCAAA;EACA,yBAAA;EACA,mCAAA;EAGA,2BAAA;EAEA,wBAAA;EACA,iCAAA;EACA,+BAAA;EAEA,8BAAA;EACA,sCAAA;EAMA,wBAAA;EACA,6BAAA;EACA,0BAAA;EAGA,sBAAA;EACA,wBAAA;EACA,0BAAA;EACA,mDAAA;EAEA,4BAAA;EACA,8BAAA;EACA,6BAAA;EACA,2BAAA;EACA,4BAAA;EACA,mDAAA;EACA,8BAAA;EAGA,kDAAA;EACA,2DAAA;EACA,oDAAA;EACA,2DAAA;EAIA,8BAAA;EACA,6BAAA;EACA,+CAAA;EAIA,8BAAA;EACA,qCAAA;EACA,gCAAA;EACA,uCAAA;AEHF;;AC7GI;EHsHA,kBAAA;EAGA,wBAAA;EACA,kCAAA;EACA,qBAAA;EACA,4BAAA;EAEA,yBAAA;EACA,sCAAA;EAEA,+CAAA;EACA,uCAAA;EACA,0BAAA;EACA,iCAAA;EAEA,6CAAA;EACA,sCAAA;EACA,yBAAA;EACA,gCAAA;EAGE,mCAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,gCAAA;EAAA,mCAAA;EAAA,kCAAA;EAAA,iCAAA;EAAA,gCAAA;EAIA,+BAAA;EAAA,iCAAA;EAAA,+BAAA;EAAA,4BAAA;EAAA,+BAAA;EAAA,8BAAA;EAAA,6BAAA;EAAA,4BAAA;EAIA,mCAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,gCAAA;EAAA,mCAAA;EAAA,kCAAA;EAAA,iCAAA;EAAA,gCAAA;EAGF,2BAAA;EAEA,wBAAA;EACA,8BAAA;EACA,kCAAA;EACA,wCAAA;EAEA,wBAAA;EACA,6BAAA;EACA,0BAAA;EAEA,0BAAA;EACA,wDAAA;EAEA,8BAAA;EACA,qCAAA;EACA,gCAAA;EACA,uCAAA;AEHJ;;AErKA;;;EAGE,sBAAA;AFwKF;;AEzJI;EANJ;IAOM,uBAAA;EF6JJ;AACF;;AEhJA;EACE,SAAA;EACA,uCAAA;EH6OI,mCALI;EGtOR,uCAAA;EACA,uCAAA;EACA,2BAAA;EACA,qCAAA;EACA,mCAAA;EACA,8BAAA;EACA,6CAAA;AFmJF;;AE1IA;EACE,cAAA;EACA,cCmnB4B;EDlnB5B,SAAA;EACA,wCAAA;EACA,aCynB4B;AH5e9B;;AEnIA;EACE,aAAA;EACA,qBCwjB4B;EDrjB5B,gBCwjB4B;EDvjB5B,gBCwjB4B;EDvjB5B,8BAAA;AFoIF;;AEjIA;EHuMQ,iCAAA;AClER;AD1FI;EG3CJ;IH8MQ,iBAAA;ECrEN;AACF;;AErIA;EHkMQ,iCAAA;ACzDR;ADnGI;EGtCJ;IHyMQ,eAAA;EC5DN;AACF;;AEzIA;EH6LQ,+BAAA;AChDR;AD5GI;EGjCJ;IHoMQ,kBAAA;ECnDN;AACF;;AE7IA;EHwLQ,iCAAA;ACvCR;ADrHI;EG5BJ;IH+LQ,iBAAA;EC1CN;AACF;;AEjJA;EH+KM,kBALI;ACrBV;;AEhJA;EH0KM,eALI;ACjBV;;AEzIA;EACE,aAAA;EACA,mBCwV0B;AH5M5B;;AElIA;EACE,yCAAA;EAAA,iCAAA;EACA,YAAA;EACA,sCAAA;EAAA,8BAAA;AFqIF;;AE/HA;EACE,mBAAA;EACA,kBAAA;EACA,oBAAA;AFkIF;;AE5HA;;EAEE,kBAAA;AF+HF;;AE5HA;;;EAGE,aAAA;EACA,mBAAA;AF+HF;;AE5HA;;;;EAIE,gBAAA;AF+HF;;AE5HA;EACE,gBC6b4B;AH9T9B;;AE1HA;EACE,qBAAA;EACA,cAAA;AF6HF;;AEvHA;EACE,gBAAA;AF0HF;;AElHA;;EAEE,mBCsa4B;AHjT9B;;AE7GA;EH6EM,kBALI;ACyCV;;AE1GA;EACE,iBCqf4B;EDpf5B,gCAAA;EACA,wCAAA;AF6GF;;AEpGA;;EAEE,kBAAA;EHwDI,iBALI;EGjDR,cAAA;EACA,wBAAA;AFuGF;;AEpGA;EAAM,eAAA;AFwGN;;AEvGA;EAAM,WAAA;AF2GN;;AEtGA;EACE,gEAAA;EACA,0BCgNwC;AHvG1C;AEvGE;EACE,mDAAA;AFyGJ;;AE9FE;EAEE,cAAA;EACA,qBAAA;AFgGJ;;AEzFA;;;;EAIE,qCCgV4B;EJlUxB,cALI;ACoFV;;AErFA;EACE,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;EHEI,kBALI;AC4FV;AEpFE;EHHI,kBALI;EGUN,cAAA;EACA,kBAAA;AFsFJ;;AElFA;EHVM,kBALI;EGiBR,2BAAA;EACA,qBAAA;AFqFF;AElFE;EACE,cAAA;AFoFJ;;AEhFA;EACE,2BAAA;EHtBI,kBALI;EG6BR,wBCy5CkC;EDx5ClC,sCCy5CkC;EC9rDhC,sBAAA;AJyXJ;AEjFE;EACE,UAAA;EH7BE,cALI;ACsHV;;AEzEA;EACE,gBAAA;AF4EF;;AEtEA;;EAEE,sBAAA;AFyEF;;AEjEA;EACE,oBAAA;EACA,yBAAA;AFoEF;;AEjEA;EACE,mBC4X4B;ED3X5B,sBC2X4B;ED1X5B,gCC4Z4B;ED3Z5B,gBAAA;AFoEF;;AE7DA;EAEE,mBAAA;EACA,gCAAA;AF+DF;;AE5DA;;;;;;EAME,qBAAA;EACA,mBAAA;EACA,eAAA;AF+DF;;AEvDA;EACE,qBAAA;AF0DF;;AEpDA;EAEE,gBAAA;AFsDF;;AE9CA;EACE,UAAA;AFiDF;;AE5CA;;;;;EAKE,SAAA;EACA,oBAAA;EH5HI,kBALI;EGmIR,oBAAA;AF+CF;;AE3CA;;EAEE,oBAAA;AF8CF;;AEzCA;EACE,eAAA;AF4CF;;AEzCA;EAGE,iBAAA;AF0CF;AEvCE;EACE,UAAA;AFyCJ;;AElCA;EACE,wBAAA;AFqCF;;AE7BA;;;;EAIE,0BAAA;AFgCF;AE7BI;;;;EACE,eAAA;AFkCN;;AE3BA;EACE,UAAA;EACA,kBAAA;AF8BF;;AEzBA;EACE,gBAAA;AF4BF;;AElBA;EACE,YAAA;EACA,UAAA;EACA,SAAA;EACA,SAAA;AFqBF;;AEbA;EACE,WAAA;EACA,WAAA;EACA,UAAA;EACA,qBCmN4B;EJpatB,iCAAA;EGoNN,oBAAA;AFeF;AD/XI;EGyWJ;IHtMQ,iBAAA;ECgON;AACF;AElBE;EACE,WAAA;AFoBJ;;AEbA;;;;;;;EAOE,UAAA;AFgBF;;AEbA;EACE,YAAA;AFgBF;;AEPA;EACE,6BAAA;EACA,oBAAA;AFUF;;AEFA;;;;;;;CAAA;AAWA;EACE,wBAAA;AFEF;;AEGA;EACE,UAAA;AFAF;;AEOA;EACE,aAAA;EACA,0BAAA;AFJF;;AEEA;EACE,aAAA;EACA,0BAAA;AFJF;;AESA;EACE,qBAAA;AFNF;;AEWA;EACE,SAAA;AFRF;;AEeA;EACE,kBAAA;EACA,eAAA;AFZF;;AEoBA;EACE,wBAAA;AFjBF;;AEyBA;EACE,wBAAA;AFtBF","file":"bootstrap-reboot.css","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","/*!\n * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.25rem;\n --bs-focus-ring-opacity: 0.25;\n --bs-focus-ring-color: rgba(13, 110, 253, 0.25);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 0.875em;\n}\n\nmark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` +

+ + + +``` + +Visit the [tutorial](https://popper.js.org/docs/v2/tutorial/) for an example of +how to build your own tooltip from scratch using Popper. + +### Module bundlers + +You can import the `createPopper` constructor from the fully-featured file: + +```js +import { createPopper } from '@popperjs/core'; + +const button = document.querySelector('#button'); +const tooltip = document.querySelector('#tooltip'); + +// Pass the button, the tooltip, and some options, and Popper will do the +// magic positioning for you: +createPopper(button, tooltip, { + placement: 'right', +}); +``` + +All the modifiers listed in the docs menu will be enabled and "just work", so +you don't need to think about setting Popper up. The size of Popper including +all of its features is about 5 kB minzipped, but it may grow a bit in the +future. + +#### Popper Lite (tree-shaking) + +If bundle size is important, you'll want to take advantage of tree-shaking. The +library is built in a modular way to allow to import only the parts you really +need. + +```js +import { createPopperLite as createPopper } from '@popperjs/core'; +``` + +The Lite version includes the most necessary modifiers that will compute the +offsets of the popper, compute and add the positioning styles, and add event +listeners. This is close in bundle size to pure CSS tooltip libraries, and +behaves somewhat similarly. + +However, this does not include the features that makes Popper truly useful. + +The two most useful modifiers not included in Lite are `preventOverflow` and +`flip`: + +```js +import { + createPopperLite as createPopper, + preventOverflow, + flip, +} from '@popperjs/core'; + +const button = document.querySelector('#button'); +const tooltip = document.querySelector('#tooltip'); + +createPopper(button, tooltip, { + modifiers: [preventOverflow, flip], +}); +``` + +As you make more poppers, you may be finding yourself needing other modifiers +provided by the library. + +See [tree-shaking](https://popper.js.org/docs/v2/performance/#tree-shaking) for more +information. + +## Distribution targets + +Popper is distributed in 3 different versions, in 3 different file formats. + +The 3 file formats are: + +- `esm` (works with `import` syntax — **recommended**) +- `umd` (works with ` +``` + +#### Webpack / Browserify / Babel + +There are several ways to use [Webpack](https://webpack.js.org/), [Browserify](http://browserify.org/) or [Babel](https://babeljs.io/). For more information on using these tools, please refer to the corresponding project's documentation. In the script, including jQuery will usually look like this: + +```js +import $ from "jquery"; +``` + +If you need to use jQuery in a file that's not an ECMAScript module, you can use the CommonJS syntax: + +```js +var $ = require( "jquery" ); +``` + +#### AMD (Asynchronous Module Definition) + +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](https://requirejs.org/docs/whyamd.html). + +```js +define( [ "jquery" ], function( $ ) { + +} ); +``` + +### Node + +To include jQuery in [Node](https://nodejs.org/), first install with npm. + +```sh +npm install jquery +``` + +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/jsdom/jsdom). This can be useful for testing purposes. + +```js +const { JSDOM } = require( "jsdom" ); +const { window } = new JSDOM( "" ); +const $ = require( "jquery" )( window ); +``` diff --git a/src/main/resources/static/js/fw/jquery/bower.json b/src/main/resources/static/js/fw/jquery/bower.json new file mode 100644 index 0000000..95798d5 --- /dev/null +++ b/src/main/resources/static/js/fw/jquery/bower.json @@ -0,0 +1,14 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ] +} \ No newline at end of file diff --git a/src/main/resources/static/js/fw/jquery/dist/jquery.js b/src/main/resources/static/js/fw/jquery/dist/jquery.js new file mode 100644 index 0000000..1a86433 --- /dev/null +++ b/src/main/resources/static/js/fw/jquery/dist/jquery.js @@ -0,0 +1,10716 @@ +/*! + * jQuery JavaScript Library v3.7.1 + * https://jquery.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2023-08-28T13:37Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket trac-14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var version = "3.7.1", + + rhtmlSuffix = /HTML$/i, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + + // Retrieve the text value of an array of DOM nodes + text: function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += jQuery.text( node ); + } + } + if ( nodeType === 1 || nodeType === 11 ) { + return elem.textContent; + } + if ( nodeType === 9 ) { + return elem.documentElement.textContent; + } + if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + isXMLDoc: function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Assume HTML when documentElement doesn't yet exist, such as inside + // document fragments. + return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var pop = arr.pop; + + +var sort = arr.sort; + + +var splice = arr.splice; + + +var whitespace = "[\\x20\\t\\r\\n\\f]"; + + +var rtrimCSS = new RegExp( + "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", + "g" +); + + + + +// Note: an element does not contain itself +jQuery.contains = function( a, b ) { + var bup = b && b.parentNode; + + return a === bup || !!( bup && bup.nodeType === 1 && ( + + // Support: IE 9 - 11+ + // IE doesn't have `contains` on SVG. + a.contains ? + a.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); +}; + + + + +// CSS string/identifier serialization +// https://drafts.csswg.org/cssom/#common-serializing-idioms +var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + +function fcssescape( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; +} + +jQuery.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + + + + +var preferredDoc = document, + pushNative = push; + +( function() { + +var i, + Expr, + outermostContext, + sortInput, + hasDuplicate, + push = pushNative, + + // Local document vars + document, + documentElement, + documentIsHTML, + rbuggyQSA, + matches, + + // Instance-specific data + expando = jQuery.expando, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + + "loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + + whitespace + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + ID: new RegExp( "^#(" + identifier + ")" ), + CLASS: new RegExp( "^\\.(" + identifier + ")" ), + TAG: new RegExp( "^(" + identifier + "|[*])" ), + ATTR: new RegExp( "^" + attributes ), + PSEUDO: new RegExp( "^" + pseudos ), + CHILD: new RegExp( + "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + bool: new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + needsContext: new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + if ( nonHex ) { + + // Strip the backslash prefix from a non-hex escape sequence + return nonHex; + } + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + return high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes; see `setDocument`. + // Support: IE 9 - 11+, Edge 12 - 18+ + // Removing the function wrapper causes a "Permission Denied" + // error in IE/Edge. + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && nodeName( elem, "fieldset" ); + }, + { dir: "parentNode", next: "legend" } + ); + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android <=4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { + apply: function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + }, + call: function( target ) { + pushNative.apply( target, slice.call( arguments, 1 ) ); + } + }; +} + +function find( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + push.call( results, elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + find.contains( context, elem ) && + elem.id === m ) { + + push.call( results, elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when + // strict-comparing two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( newContext != context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = jQuery.escapeSelector( nid ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrimCSS, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties + // (see https://github.com/jquery/sizzle/issues/157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by jQuery selector module + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + return nodeName( elem, "input" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) && + elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11+ + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a jQuery selector context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [node] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +function setDocument( node ) { + var subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + documentElement = document.documentElement; + documentIsHTML = !jQuery.isXMLDoc( document ); + + // Support: iOS 7 only, IE 9 - 11+ + // Older browsers didn't support unprefixed `matches`. + matches = documentElement.matches || + documentElement.webkitMatchesSelector || + documentElement.msMatchesSelector; + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors + // (see trac-13936). + // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, + // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. + if ( documentElement.msMatchesSelector && + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 9 - 11+, Edge 12 - 18+ + subWindow.addEventListener( "unload", unloadHandler ); + } + + // Support: IE <10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + documentElement.appendChild( el ).id = jQuery.expando; + return !document.getElementsByName || + !document.getElementsByName( jQuery.expando ).length; + } ); + + // Support: IE 9 only + // Check to see if it's possible to do matchesSelector + // on a disconnected node. + support.disconnectedMatch = assert( function( el ) { + return matches.call( el, "*" ); + } ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // IE/Edge don't support the :scope pseudo-class. + support.scope = assert( function() { + return document.querySelectorAll( ":scope" ); + } ); + + // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only + // Make sure the `:has()` argument is parsed unforgivingly. + // We include `*` in the test to detect buggy implementations that are + // _selectively_ forgiving (specifically when the list includes at least + // one valid selector). + // Note that we treat complete lack of support for `:has()` as if it were + // spec-compliant support, which is fine because use of `:has()` in such + // environments will fail in the qSA path and fall back to jQuery traversal + // anyway. + support.cssHas = assert( function() { + try { + document.querySelector( ":has(*,:jqfake)" ); + return false; + } catch ( e ) { + return true; + } + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find.TAG = function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else { + return context.querySelectorAll( tag ); + } + }; + + // Class + Expr.find.CLASS = function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + rbuggyQSA = []; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + documentElement.appendChild( el ).innerHTML = + "" + + ""; + + // Support: iOS <=7 - 8 only + // Boolean attributes and "value" are not treated correctly in some XML documents + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: iOS <=7 - 8 only + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: iOS 8 only + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE 9 - 11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + documentElement.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + } ); + + if ( !support.cssHas ) { + + // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ + // Our regular `try-catch` mechanism fails to detect natively-unsupported + // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) + // in browsers that parse the `:has()` argument as a forgiving selector list. + // https://drafts.csswg.org/selectors/#relational now requires the argument + // to be parsed unforgivingly, but browsers have not yet fully adjusted. + rbuggyQSA.push( ":has" ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a === document || a.ownerDocument == preferredDoc && + find.contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b === document || b.ownerDocument == preferredDoc && + find.contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + }; + + return document; +} + +find.matches = function( expr, elements ) { + return find( expr, null, null, elements ); +}; + +find.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return find( expr, document, null, [ elem ] ).length > 0; +}; + +find.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return jQuery.contains( context, elem ); +}; + + +find.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (see trac-13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + if ( val !== undefined ) { + return val; + } + + return elem.getAttribute( name ); +}; + +find.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +jQuery.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + // + // Support: Android <=4.0+ + // Testing for detecting duplicates is unpredictable so instead assume we can't + // depend on duplicate detection in all browsers without a stable sort. + hasDuplicate = !support.sortStable; + sortInput = !support.sortStable && slice.call( results, 0 ); + sort.call( results, sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + splice.call( results, duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +jQuery.fn.uniqueSort = function() { + return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) ); +}; + +Expr = jQuery.expr = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + ATTR: function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ) + .replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + CHILD: function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) + ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + return match; + }, + + PSEUDO: function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr.CHILD.test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + TAG: function( nodeNameSelector ) { + var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return nodeName( elem, expectedNodeName ); + }; + }, + + CLASS: function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + ")" + className + + "(" + whitespace + "|$)" ) ) && + classCache( className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + ATTR: function( name, operator, check ) { + return function( elem ) { + var result = find.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + if ( operator === "=" ) { + return result === check; + } + if ( operator === "!=" ) { + return result !== check; + } + if ( operator === "^=" ) { + return check && result.indexOf( check ) === 0; + } + if ( operator === "*=" ) { + return check && result.indexOf( check ) > -1; + } + if ( operator === "$=" ) { + return check && result.slice( -check.length ) === check; + } + if ( operator === "~=" ) { + return ( " " + result.replace( rwhitespace, " " ) + " " ) + .indexOf( check ) > -1; + } + if ( operator === "|=" ) { + return result === check || result.slice( 0, check.length + 1 ) === check + "-"; + } + + return false; + }; + }, + + CHILD: function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || ( parent[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + outerCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + PSEUDO: function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // https://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + find.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as jQuery does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + not: markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrimCSS, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element + // (see https://github.com/jquery/sizzle/issues/299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + has: markFunction( function( selector ) { + return function( elem ) { + return find( selector, elem ).length > 0; + }; + } ), + + contains: markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // https://www.w3.org/TR/selectors/#lang-pseudo + lang: markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + find.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + target: function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + root: function( elem ) { + return elem === documentElement; + }, + + focus: function( elem ) { + return elem === safeActiveElement() && + document.hasFocus() && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + enabled: createDisabledPseudo( false ), + disabled: createDisabledPseudo( true ), + + checked: function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + return ( nodeName( elem, "input" ) && !!elem.checked ) || + ( nodeName( elem, "option" ) && !!elem.selected ); + }, + + selected: function( elem ) { + + // Support: IE <=11+ + // Accessing the selectedIndex property + // forces the browser to treat the default option as + // selected when in an optgroup. + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + empty: function( elem ) { + + // https://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + parent: function( elem ) { + return !Expr.pseudos.empty( elem ); + }, + + // Element/input types + header: function( elem ) { + return rheader.test( elem.nodeName ); + }, + + input: function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + button: function( elem ) { + return nodeName( elem, "input" ) && elem.type === "button" || + nodeName( elem, "button" ); + }, + + text: function( elem ) { + var attr; + return nodeName( elem, "input" ) && elem.type === "text" && + + // Support: IE <10 only + // New HTML5 attribute values (e.g., "search") appear + // with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + first: createPositionalPseudo( function() { + return [ 0 ]; + } ), + + last: createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + eq: createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + even: createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + odd: createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + lt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i; + + if ( argument < 0 ) { + i = argument + length; + } else if ( argument > length ) { + i = length; + } else { + i = argument; + } + + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + gt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos.nth = Expr.pseudos.eq; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rleadingCombinator.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrimCSS, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + if ( parseOnly ) { + return soFar.length; + } + + return soFar ? + find.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + if ( skip && nodeName( elem, skip ) ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = outerCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + outerCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + find( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, matcherOut, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || + multipleContexts( selector || "*", + context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems; + + if ( matcher ) { + + // If we have a postFinder, or filtered seed, or non-seed postFilter + // or preexisting results, + matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results; + + // Find primary matches + matcher( matcherIn, matcherOut, context, xml ); + } else { + matcherOut = matcherIn; + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element + // (see https://github.com/jquery/sizzle/issues/299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrimCSS, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find.TAG( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: iOS <=7 - 9 only + // Tolerate NodeList properties (IE: "length"; Safari: ) matching + // elements by id. (see trac-14142) + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + push.call( results, elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + jQuery.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +function compile( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +} + +/** + * A low-level selection function that works with jQuery's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with jQuery selector compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find.ID( + token.matches[ 0 ].replace( runescape, funescape ), + context + ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && + testContext( context.parentNode ) || context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +} + +// One-time assignments + +// Support: Android <=4.0 - 4.1+ +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Initialize against the default document +setDocument(); + +// Support: Android <=4.0 - 4.1+ +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +jQuery.find = find; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.unique = jQuery.uniqueSort; + +// These have always been private, but they used to be documented as part of +// Sizzle so let's maintain them for now for backwards compatibility purposes. +find.compile = compile; +find.select = select; +find.setDocument = setDocument; +find.tokenize = tokenize; + +find.escape = jQuery.escapeSelector; +find.getText = jQuery.text; +find.isXML = jQuery.isXMLDoc; +find.selectors = jQuery.expr; +find.support = jQuery.support; +find.uniqueSort = jQuery.uniqueSort; + + /* eslint-enable */ + +} )(); + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (trac-9521) + // Strict HTML recognition (trac-11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to jQuery#find + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.error ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the error, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getErrorHook ) { + process.error = jQuery.Deferred.getErrorHook(); + + // The deprecated alias of the above. While the name suggests + // returning the stack, not an error instance, jQuery just passes + // it directly to `console.warn` so both will work; an instance + // just better cooperates with source maps. + } else if ( jQuery.Deferred.getStackHook ) { + process.error = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error +// captured before the async barrier to get the original error cause +// which may otherwise be hidden. +jQuery.Deferred.exceptionHook = function( error, asyncError ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, + error.stack, asyncError ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See trac-6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (trac-9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see trac-8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (trac-14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (trac-11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (trac-14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (trac-13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (trac-12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (trac-13208) + // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (trac-13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", true ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, isSetup ) { + + // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add + if ( !isSetup ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + if ( !saved ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + this[ type ](); + result = dataPriv.get( this, type ); + dataPriv.set( this, type, false ); + + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + return result; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering + // the native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved ) { + + // ...and capture the result + dataPriv.set( this, type, jQuery.event.trigger( + saved[ 0 ], + saved.slice( 1 ), + this + ) ); + + // Abort handling of the native event by all jQuery handlers while allowing + // native handlers on the same element to run. On target, this is achieved + // by stopping immediate propagation just on the jQuery event. However, + // the native event is re-wrapped by a jQuery one on each level of the + // propagation so the only way to stop it for jQuery is to stop it for + // everyone via native `stopPropagation()`. This is not a problem for + // focus/blur which don't bubble, but it does also stop click on checkboxes + // and radios. We accept this limitation. + event.stopPropagation(); + event.isImmediatePropagationStopped = returnTrue; + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (trac-504, trac-13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + + function focusMappedHandler( nativeEvent ) { + if ( document.documentMode ) { + + // Support: IE 11+ + // Attach a single focusin/focusout handler on the document while someone wants + // focus/blur. This is because the former are synchronous in IE while the latter + // are async. In other browsers, all those handlers are invoked synchronously. + + // `handle` from private data would already wrap the event, but we need + // to change the `type` here. + var handle = dataPriv.get( this, "handle" ), + event = jQuery.event.fix( nativeEvent ); + event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; + event.isSimulated = true; + + // First, handle focusin/focusout + handle( nativeEvent ); + + // ...then, handle focus/blur + // + // focus/blur don't bubble while focusin/focusout do; simulate the former by only + // invoking the handler at the lower level. + if ( event.target === event.currentTarget ) { + + // The setup part calls `leverageNative`, which, in turn, calls + // `jQuery.event.add`, so event handle will already have been set + // by this point. + handle( event ); + } + } else { + + // For non-IE browsers, attach a single capturing handler on the document + // while someone wants focusin/focusout. + jQuery.event.simulate( delegateType, nativeEvent.target, + jQuery.event.fix( nativeEvent ) ); + } + } + + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + var attaches; + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, true ); + + if ( document.documentMode ) { + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + attaches = dataPriv.get( this, delegateType ); + if ( !attaches ) { + this.addEventListener( delegateType, focusMappedHandler ); + } + dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 ); + } else { + + // Return false to allow normal processing in the caller + return false; + } + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + teardown: function() { + var attaches; + + if ( document.documentMode ) { + attaches = dataPriv.get( this, delegateType ) - 1; + if ( !attaches ) { + this.removeEventListener( delegateType, focusMappedHandler ); + dataPriv.remove( this, delegateType ); + } else { + dataPriv.set( this, delegateType, attaches ); + } + } else { + + // Return false to indicate standard teardown should be applied + return false; + } + }, + + // Suppress native focus or blur if we're currently inside + // a leveraged native-event stack + _default: function( event ) { + return dataPriv.get( event.target, type ); + }, + + delegateType: delegateType + }; + + // Support: Firefox <=44 + // Firefox doesn't have focus(in | out) events + // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 + // + // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 + // focus(in | out) events fire after focus & blur events, + // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order + // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 + // + // Support: IE 9 - 11+ + // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, + // attach a single handler for both events in IE. + jQuery.event.special[ delegateType ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ); + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + if ( !attaches ) { + if ( document.documentMode ) { + this.addEventListener( delegateType, focusMappedHandler ); + } else { + doc.addEventListener( type, focusMappedHandler, true ); + } + } + dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ) - 1; + + if ( !attaches ) { + if ( document.documentMode ) { + this.removeEventListener( delegateType, focusMappedHandler ); + } else { + doc.removeEventListener( type, focusMappedHandler, true ); + } + dataPriv.remove( dataHolder, delegateType ); + } else { + dataPriv.set( dataHolder, delegateType, attaches ); + } + } + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (trac-8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Re-enable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + + // Unwrap a CDATA section containing script contents. This shouldn't be + // needed as in XML documents they're already not visible when + // inspecting element contents and in HTML documents they have no + // meaning but we're preserving that logic for backwards compatibility. + // This will be removed completely in 4.0. See gh-4904. + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew jQuery#find here for performance reasons: + // https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var rcustomProp = /^--/; + + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (trac-8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "box-sizing:content-box;border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is `display: block` + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + isCustomProp = rcustomProp.test( name ), + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, trac-12537) + // .css('--customProperty) (gh-3144) + if ( computed ) { + + // Support: IE <=9 - 11+ + // IE only supports `"float"` in `getPropertyValue`; in computed styles + // it's only available as `"cssFloat"`. We no longer modify properties + // sent to `.css()` apart from camelCasing, so we need to check both. + // Normally, this would create difference in behavior: if + // `getPropertyValue` returns an empty string, the value returned + // by `.css()` would be `undefined`. This is usually the case for + // disconnected elements. However, in IE even disconnected elements + // with no styles return `"none"` for `getPropertyValue( "float" )` + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( isCustomProp && ret ) { + + // Support: Firefox 105+, Chrome <=105+ + // Spec requires trimming whitespace for custom properties (gh-4926). + // Firefox only trims leading whitespace. Chrome just collapses + // both leading & trailing whitespace to a single space. + // + // Fall back to `undefined` if empty string returned. + // This collapses a missing definition with property defined + // and set to an empty string but there's no standard API + // allowing us to differentiate them without a performance penalty + // and returning `undefined` aligns with older jQuery. + // + // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED + // as whitespace while CSS does not, but this is not a problem + // because CSS preprocessing replaces them with U+000A LINE FEED + // (which *is* CSS whitespace) + // https://www.w3.org/TR/css-syntax-3/#input-preprocessing + ret = ret.replace( rtrimCSS, "$1" ) || undefined; + } + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0, + marginDelta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + // Count margin delta separately to only add it after scroll gutter adjustment. + // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). + if ( box === "margin" ) { + marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta + marginDelta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + animationIterationCount: true, + aspectRatio: true, + borderImageSlice: true, + columnCount: true, + flexGrow: true, + flexShrink: true, + fontWeight: true, + gridArea: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnStart: true, + gridRow: true, + gridRowEnd: true, + gridRowStart: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + scale: true, + widows: true, + zIndex: true, + zoom: true, + + // SVG-related + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeMiterlimit: true, + strokeOpacity: true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (trac-7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug trac-9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (trac-7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // Use proper attribute retrieval (trac-12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + if ( cur.indexOf( " " + className + " " ) < 0 ) { + cur += className + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + removeClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + + // This expression is here for better compressibility (see addClass) + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Remove *all* instances + while ( cur.indexOf( " " + className + " " ) > -1 ) { + cur = cur.replace( " " + className + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var classNames, className, i, self, + type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + classNames = classesToArray( value ); + + return this.each( function() { + if ( isValidValue ) { + + // Toggle individual class names + self = jQuery( this ); + + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (trac-14686, trac-14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (trac-2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (trac-9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (trac-6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // trac-7653, trac-8125, trac-8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes trac-9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (trac-10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket trac-12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // trac-9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (trac-11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // trac-1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see trac-8605, trac-14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // trac-14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "", rE: !0, sL: ["actionscript", "javascript", "handlebars", "xml"]} + }, {cN: "tag", b: "", c: [{cN: "name", b: /[^\/><\s]+/, r: 0}, r]}] + } + }), e.registerLanguage("markdown", function (e) { + return { + aliases: ["md", "mkdown", "mkd"], + c: [{cN: "section", v: [{b: "^#{1,6}", e: "$"}, {b: "^.+?\\n[=-]{2,}$"}]}, { + b: "<", + e: ">", + sL: "xml", + r: 0 + }, {cN: "bullet", b: "^([*+-]|(\\d+\\.))\\s+"}, {cN: "strong", b: "[*_]{2}.+?[*_]{2}"}, { + cN: "emphasis", + v: [{b: "\\*.+?\\*"}, {b: "_.+?_", r: 0}] + }, {cN: "quote", b: "^>\\s+", e: "$"}, { + cN: "code", + v: [{b: "^```w*s*$", e: "^```s*$"}, {b: "`.+?`"}, {b: "^( {4}| )", e: "$", r: 0}] + }, {b: "^[-\\*]{3,}", e: "$"}, { + b: "\\[.+?\\][\\(\\[].*?[\\)\\]]", + rB: !0, + c: [{cN: "string", b: "\\[", e: "\\]", eB: !0, rE: !0, r: 0}, { + cN: "link", + b: "\\]\\(", + e: "\\)", + eB: !0, + eE: !0 + }, {cN: "symbol", b: "\\]\\[", e: "\\]", eB: !0, eE: !0}], + r: 10 + }, { + b: /^\[[^\n]+\]:/, + rB: !0, + c: [{cN: "symbol", b: /\[/, e: /\]/, eB: !0, eE: !0}, {cN: "link", b: /:\s*/, e: /$/, eB: !0}] + }] + } + }), e.registerLanguage("nginx", function (e) { + var t = {cN: "variable", v: [{b: /\$\d+/}, {b: /\$\{/, e: /}/}, {b: "[\\$\\@]" + e.UIR}]}, r = { + eW: !0, + l: "[a-z/_]+", + k: {literal: "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"}, + r: 0, + i: "=>", + c: [e.HCM, {cN: "string", c: [e.BE, t], v: [{b: /"/, e: /"/}, {b: /'/, e: /'/}]}, { + b: "([a-z]+):/", + e: "\\s", + eW: !0, + eE: !0, + c: [t] + }, { + cN: "regexp", + c: [e.BE, t], + v: [{b: "\\s\\^", e: "\\s|{|;", rE: !0}, { + b: "~\\*?\\s+", + e: "\\s|{|;", + rE: !0 + }, {b: "\\*(\\.[a-z\\-]+)+"}, {b: "([a-z\\-]+\\.)+\\*"}] + }, {cN: "number", b: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"}, { + cN: "number", + b: "\\b\\d+[kKmMgGdshdwy]*\\b", + r: 0 + }, t] + }; + return { + aliases: ["nginxconf"], + c: [e.HCM, {b: e.UIR + "\\s+{", rB: !0, e: "{", c: [{cN: "section", b: e.UIR}], r: 0}, { + b: e.UIR + "\\s", + e: ";|{", + rB: !0, + c: [{cN: "attribute", b: e.UIR, starts: r}], + r: 0 + }], + i: "[^\\s\\}]" + } + }), e.registerLanguage("objectivec", function (e) { + var t = {cN: "built_in", b: "\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"}, r = { + keyword: "int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN", + literal: "false true FALSE TRUE nil YES NO NULL", + built_in: "BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" + }, a = /[a-zA-Z@][a-zA-Z0-9_]*/, n = "@interface @class @protocol @implementation"; + return { + aliases: ["mm", "objc", "obj-c"], + k: r, + l: a, + i: ""}]}] + }, { + cN: "class", + b: "(" + n.split(" ").join("|") + ")\\b", + e: "({|$)", + eE: !0, + k: n, + l: a, + c: [e.UTM] + }, {b: "\\." + e.UIR, r: 0}] + } + }), e.registerLanguage("perl", function (e) { + var t = "getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when", + r = {cN: "subst", b: "[$@]\\{", e: "\\}", k: t}, a = {b: "->{", e: "}"}, + n = {v: [{b: /\$\d/}, {b: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/}, {b: /[\$%@][^\s\w{]/, r: 0}]}, + i = [e.BE, r, n], s = [n, e.HCM, e.C("^\\=\\w", "\\=cut", {eW: !0}), a, { + cN: "string", + c: i, + v: [{b: "q[qwxr]?\\s*\\(", e: "\\)", r: 5}, {b: "q[qwxr]?\\s*\\[", e: "\\]", r: 5}, { + b: "q[qwxr]?\\s*\\{", + e: "\\}", + r: 5 + }, {b: "q[qwxr]?\\s*\\|", e: "\\|", r: 5}, {b: "q[qwxr]?\\s*\\<", e: "\\>", r: 5}, { + b: "qw\\s+q", + e: "q", + r: 5 + }, {b: "'", e: "'", c: [e.BE]}, {b: '"', e: '"'}, {b: "`", e: "`", c: [e.BE]}, { + b: "{\\w+}", + c: [], + r: 0 + }, {b: "-?\\w+\\s*\\=\\>", c: [], r: 0}] + }, { + cN: "number", + b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", + r: 0 + }, { + b: "(\\/\\/|" + e.RSR + "|\\b(split|return|print|reverse|grep)\\b)\\s*", + k: "split return print reverse grep", + r: 0, + c: [e.HCM, {cN: "regexp", b: "(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*", r: 10}, { + cN: "regexp", + b: "(m|qr)?/", + e: "/[a-z]*", + c: [e.BE], + r: 0 + }] + }, {cN: "function", bK: "sub", e: "(\\s*\\(.*?\\))?[;{]", eE: !0, r: 5, c: [e.TM]}, { + b: "-\\w\\b", + r: 0 + }, {b: "^__DATA__$", e: "^__END__$", sL: "mojolicious", c: [{b: "^@@.*", e: "$", cN: "comment"}]}]; + return r.c = s, a.c = s, {aliases: ["pl", "pm"], l: /[\w\.]+/, k: t, c: s} + }), e.registerLanguage("php", function (e) { + var t = {b: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"}, r = {cN: "meta", b: /<\?(php)?|\?>/}, a = { + cN: "string", + c: [e.BE, r], + v: [{b: 'b"', e: '"'}, {b: "b'", e: "'"}, e.inherit(e.ASM, {i: null}), e.inherit(e.QSM, {i: null})] + }, n = { + v: [e.BNM, e.CNM] + }; + return { + aliases: ["php", "php3", "php4", "php5", "php6", "php7"], + cI: !0, + k: "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally", + c: [e.HCM, e.C("//", "$", {c: [r]}), e.C("/\\*", "\\*/", { + c: [{ + cN: "doctag", + b: "@[A-Za-z]+" + }] + }), e.C("__halt_compiler.+?;", !1, {eW: !0, k: "__halt_compiler", l: e.UIR}), { + cN: "string", + b: /<<<['"]?\w+['"]?$/, + e: /^\w+;?$/, + c: [e.BE, {cN: "subst", v: [{b: /\$\w+/}, {b: /\{\$/, e: /\}/}]}] + }, r, { + cN: "keyword", + b: /\$this\b/ + }, t, {b: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/}, { + cN: "function", + bK: "function", + e: /[;{]/, + eE: !0, + i: "\\$|\\[|%", + c: [e.UTM, {cN: "params", b: "\\(", e: "\\)", c: ["self", t, e.CBCM, a, n]}] + }, { + cN: "class", + bK: "class interface", + e: "{", + eE: !0, + i: /[:\(\$"]/, + c: [{bK: "extends implements"}, e.UTM] + }, {bK: "namespace", e: ";", i: /[\.']/, c: [e.UTM]}, {bK: "use", e: ";", c: [e.UTM]}, {b: "=>"}, a, n] + } + }), e.registerLanguage("properties", function (e) { + var t = "[ \\t\\f]*", r = "[ \\t\\f]+", a = "(" + t + "[:=]" + t + "|" + r + ")", + n = "([^\\\\\\W:= \\t\\f\\n]|\\\\.)+", i = "([^\\\\:= \\t\\f\\n]|\\\\.)+", + s = {e: a, r: 0, starts: {cN: "string", e: /$/, r: 0, c: [{b: "\\\\\\n"}]}}; + return { + cI: !0, + i: /\S/, + c: [e.C("^\\s*[!#]", "$"), { + b: n + a, + rB: !0, + c: [{cN: "attr", b: n, endsParent: !0, r: 0}], + starts: s + }, {b: i + a, rB: !0, r: 0, c: [{cN: "meta", b: i, endsParent: !0, r: 0}], starts: s}, { + cN: "attr", + r: 0, + b: i + t + "$" + }] + } + }), e.registerLanguage("python", function (e) { + var t = { + keyword: "and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10", + built_in: "Ellipsis NotImplemented", + literal: "False None True" + }, r = {cN: "meta", b: /^(>>>|\.\.\.) /}, a = {cN: "subst", b: /\{/, e: /\}/, k: t, i: /#/}, n = { + cN: "string", + c: [e.BE], + v: [{b: /(u|b)?r?'''/, e: /'''/, c: [e.BE, r], r: 10}, { + b: /(u|b)?r?"""/, + e: /"""/, + c: [e.BE, r], + r: 10 + }, {b: /(fr|rf|f)'''/, e: /'''/, c: [e.BE, r, a]}, { + b: /(fr|rf|f)"""/, + e: /"""/, + c: [e.BE, r, a] + }, {b: /(u|r|ur)'/, e: /'/, r: 10}, {b: /(u|r|ur)"/, e: /"/, r: 10}, {b: /(b|br)'/, e: /'/}, { + b: /(b|br)"/, + e: /"/ + }, {b: /(fr|rf|f)'/, e: /'/, c: [e.BE, a]}, {b: /(fr|rf|f)"/, e: /"/, c: [e.BE, a]}, e.ASM, e.QSM] + }, i = {cN: "number", r: 0, v: [{b: e.BNR + "[lLjJ]?"}, {b: "\\b(0o[0-7]+)[lLjJ]?"}, {b: e.CNR + "[lLjJ]?"}]}, + s = {cN: "params", b: /\(/, e: /\)/, c: ["self", r, i, n]}; + return a.c = [n, i, r], { + aliases: ["py", "gyp", "ipython"], + k: t, + i: /(<\/|->|\?)|=>/, + c: [r, i, n, e.HCM, { + v: [{cN: "function", bK: "def"}, {cN: "class", bK: "class"}], + e: /:/, + i: /[${=;\n,]/, + c: [e.UTM, s, {b: /->/, eW: !0, k: "None"}] + }, {cN: "meta", b: /^[\t ]*@/, e: /$/}, {b: /\b(print|exec)\(/}] + } + }), e.registerLanguage("ruby", function (e) { + var t = "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?", r = { + keyword: "and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor", + literal: "true false nil" + }, a = {cN: "doctag", b: "@[A-Za-z]+"}, n = {b: "#<", e: ">"}, + i = [e.C("#", "$", {c: [a]}), e.C("^\\=begin", "^\\=end", {c: [a], r: 10}), e.C("^__END__", "\\n$")], + s = {cN: "subst", b: "#\\{", e: "}", k: r}, c = { + cN: "string", + c: [e.BE, s], + v: [{b: /'/, e: /'/}, {b: /"/, e: /"/}, {b: /`/, e: /`/}, {b: "%[qQwWx]?\\(", e: "\\)"}, { + b: "%[qQwWx]?\\[", + e: "\\]" + }, {b: "%[qQwWx]?{", e: "}"}, {b: "%[qQwWx]?<", e: ">"}, {b: "%[qQwWx]?/", e: "/"}, { + b: "%[qQwWx]?%", + e: "%" + }, {b: "%[qQwWx]?-", e: "-"}, { + b: "%[qQwWx]?\\|", + e: "\\|" + }, {b: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}, {b: /<<(-?)\w+$/, e: /^\s*\w+$/}] + }, o = {cN: "params", b: "\\(", e: "\\)", endsParent: !0, k: r}, l = [c, n, { + cN: "class", + bK: "class module", + e: "$|;", + i: /=/, + c: [e.inherit(e.TM, {b: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}), { + b: "<\\s*", + c: [{b: "(" + e.IR + "::)?" + e.IR}] + }].concat(i) + }, { + cN: "function", + bK: "def", + e: "$|;", + c: [e.inherit(e.TM, {b: t}), o].concat(i) + }, {b: e.IR + "::"}, {cN: "symbol", b: e.UIR + "(\\!|\\?)?:", r: 0}, { + cN: "symbol", + b: ":(?!\\s)", + c: [c, {b: t}], + r: 0 + }, { + cN: "number", + b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", + r: 0 + }, {b: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))"}, { + cN: "params", + b: /\|/, + e: /\|/, + k: r + }, { + b: "(" + e.RSR + "|unless)\\s*", + k: "unless", + c: [n, { + cN: "regexp", + c: [e.BE, s], + i: /\n/, + v: [{b: "/", e: "/[a-z]*"}, {b: "%r{", e: "}[a-z]*"}, {b: "%r\\(", e: "\\)[a-z]*"}, { + b: "%r!", + e: "![a-z]*" + }, {b: "%r\\[", e: "\\][a-z]*"}] + }].concat(i), + r: 0 + }].concat(i); + s.c = l, o.c = l; + var u = "[>?]>", d = "[\\w#]+\\(\\w+\\):\\d+:\\d+>", b = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>", + p = [{b: /^\s*=>/, starts: {e: "$", c: l}}, { + cN: "meta", + b: "^(" + u + "|" + d + "|" + b + ")", + starts: {e: "$", c: l} + }]; + return {aliases: ["rb", "gemspec", "podspec", "thor", "irb"], k: r, i: /\/\*/, c: i.concat(p).concat(l)} + }), e.registerLanguage("shell", function (e) { + return { + aliases: ["console"], + c: [{cN: "meta", b: "^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]", starts: {e: "$", sL: "bash"}}] + } + }), e.registerLanguage("sql", function (e) { + var t = e.C("--", "$"); + return { + cI: !0, i: /[<>{}*]/, c: [{ + bK: "begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with", + e: /;/, + eW: !0, + l: /[\w\.]+/, + k: { + keyword: "as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek", + literal: "true false null unknown", + built_in: "array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varying void" + }, + c: [{cN: "string", b: "'", e: "'", c: [e.BE, {b: "''"}]}, { + cN: "string", + b: '"', + e: '"', + c: [e.BE, {b: '""'}] + }, {cN: "string", b: "`", e: "`", c: [e.BE]}, e.CNM, e.CBCM, t, e.HCM] + }, e.CBCM, t, e.HCM] + } + }), e +}); \ No newline at end of file diff --git a/src/main/resources/static/js/fw/quill/quill.js b/src/main/resources/static/js/fw/quill/quill.js new file mode 100644 index 0000000..c9ed835 --- /dev/null +++ b/src/main/resources/static/js/fw/quill/quill.js @@ -0,0 +1,7237 @@ +/*! For license information please see quill.js.LICENSE.txt */ +!function (t, e) { + "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.Quill = e() : t.Quill = e() +}(self, (function () { + return function () { + var t = { + 9698: function (t, e, n) { + "use strict"; + n.d(e, { + Ay: function () { + return c + }, Ji: function () { + return d + }, mG: function () { + return h + }, zo: function () { + return u + } + }); + var r = n(6003), i = n(5232), s = n.n(i), o = n(3036), l = n(4850), a = n(5508); + + class c extends r.BlockBlot { + cache = {}; + + delta() { + return null == this.cache.delta && (this.cache.delta = h(this)), this.cache.delta + } + + deleteAt(t, e) { + super.deleteAt(t, e), this.cache = {} + } + + formatAt(t, e, n, i) { + e <= 0 || (this.scroll.query(n, r.Scope.BLOCK) ? t + e === this.length() && this.format(n, i) : super.formatAt(t, Math.min(e, this.length() - t - 1), n, i), this.cache = {}) + } + + insertAt(t, e, n) { + if (null != n) return super.insertAt(t, e, n), void (this.cache = {}); + if (0 === e.length) return; + const r = e.split("\n"), i = r.shift(); + i.length > 0 && (t < this.length() - 1 || null == this.children.tail ? super.insertAt(Math.min(t, this.length() - 1), i) : this.children.tail.insertAt(this.children.tail.length(), i), this.cache = {}); + let s = this; + r.reduce(((t, e) => (s = s.split(t, !0), s.insertAt(0, e), e.length)), t + i.length) + } + + insertBefore(t, e) { + const {head: n} = this.children; + super.insertBefore(t, e), n instanceof o.A && n.remove(), this.cache = {} + } + + length() { + return null == this.cache.length && (this.cache.length = super.length() + 1), this.cache.length + } + + moveChildren(t, e) { + super.moveChildren(t, e), this.cache = {} + } + + optimize(t) { + super.optimize(t), this.cache = {} + } + + path(t) { + return super.path(t, !0) + } + + removeChild(t) { + super.removeChild(t), this.cache = {} + } + + split(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + if (e && (0 === t || t >= this.length() - 1)) { + const e = this.clone(); + return 0 === t ? (this.parent.insertBefore(e, this), this) : (this.parent.insertBefore(e, this.next), e) + } + const n = super.split(t, e); + return this.cache = {}, n + } + } + + c.blotName = "block", c.tagName = "P", c.defaultChild = o.A, c.allowedChildren = [o.A, l.A, r.EmbedBlot, a.A]; + + class u extends r.EmbedBlot { + attach() { + super.attach(), this.attributes = new r.AttributorStore(this.domNode) + } + + delta() { + return (new (s())).insert(this.value(), {...this.formats(), ...this.attributes.values()}) + } + + format(t, e) { + const n = this.scroll.query(t, r.Scope.BLOCK_ATTRIBUTE); + null != n && this.attributes.attribute(n, e) + } + + formatAt(t, e, n, r) { + this.format(n, r) + } + + insertAt(t, e, n) { + if (null != n) return void super.insertAt(t, e, n); + const r = e.split("\n"), i = r.pop(), s = r.map((t => { + const e = this.scroll.create(c.blotName); + return e.insertAt(0, t), e + })), o = this.split(t); + s.forEach((t => { + this.parent.insertBefore(t, o) + })), i && this.parent.insertBefore(this.scroll.create("text", i), o) + } + } + + function h(t) { + let e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + return t.descendants(r.LeafBlot).reduce(((t, n) => 0 === n.length() ? t : t.insert(n.value(), d(n, {}, e))), new (s())).insert("\n", d(t)) + } + + function d(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + return null == t ? e : ("formats" in t && "function" == typeof t.formats && (e = {...e, ...t.formats()}, n && delete e["code-token"]), null == t.parent || "scroll" === t.parent.statics.blotName || t.parent.statics.scope !== t.statics.scope ? e : d(t.parent, e, n)) + } + + u.scope = r.Scope.BLOCK_BLOT + }, 3036: function (t, e, n) { + "use strict"; + var r = n(6003); + + class i extends r.EmbedBlot { + static value() { + } + + optimize() { + (this.prev || this.next) && this.remove() + } + + length() { + return 0 + } + + value() { + return "" + } + } + + i.blotName = "break", i.tagName = "BR", e.A = i + }, 580: function (t, e, n) { + "use strict"; + var r = n(6003); + + class i extends r.ContainerBlot { + } + + e.A = i + }, 4541: function (t, e, n) { + "use strict"; + var r = n(6003), i = n(5508); + + class s extends r.EmbedBlot { + static blotName = "cursor"; + static className = "ql-cursor"; + static tagName = "span"; + static CONTENTS = "\ufeff"; + + static value() { + } + + constructor(t, e, n) { + super(t, e), this.selection = n, this.textNode = document.createTextNode(s.CONTENTS), this.domNode.appendChild(this.textNode), this.savedLength = 0 + } + + detach() { + null != this.parent && this.parent.removeChild(this) + } + + format(t, e) { + if (0 !== this.savedLength) return void super.format(t, e); + let n = this, i = 0; + for (; null != n && n.statics.scope !== r.Scope.BLOCK_BLOT;) i += n.offset(n.parent), n = n.parent; + null != n && (this.savedLength = s.CONTENTS.length, n.optimize(), n.formatAt(i, s.CONTENTS.length, t, e), this.savedLength = 0) + } + + index(t, e) { + return t === this.textNode ? 0 : super.index(t, e) + } + + length() { + return this.savedLength + } + + position() { + return [this.textNode, this.textNode.data.length] + } + + remove() { + super.remove(), this.parent = null + } + + restore() { + if (this.selection.composing || null == this.parent) return null; + const t = this.selection.getNativeRange(); + for (; null != this.domNode.lastChild && this.domNode.lastChild !== this.textNode;) this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode); + const e = this.prev instanceof i.A ? this.prev : null, n = e ? e.length() : 0, + r = this.next instanceof i.A ? this.next : null, o = r ? r.text : "", {textNode: l} = this, + a = l.data.split(s.CONTENTS).join(""); + let c; + if (l.data = s.CONTENTS, e) c = e, (a || r) && (e.insertAt(e.length(), a + o), r && r.remove()); else if (r) c = r, r.insertAt(0, a); else { + const t = document.createTextNode(a); + c = this.scroll.create(t), this.parent.insertBefore(c, this) + } + if (this.remove(), t) { + const i = (t, i) => e && t === e.domNode ? i : t === l ? n + i - 1 : r && t === r.domNode ? n + a.length + i : null, + s = i(t.start.node, t.start.offset), o = i(t.end.node, t.end.offset); + if (null !== s && null !== o) return { + startNode: c.domNode, + startOffset: s, + endNode: c.domNode, + endOffset: o + } + } + return null + } + + update(t, e) { + if (t.some((t => "characterData" === t.type && t.target === this.textNode))) { + const t = this.restore(); + t && (e.range = t) + } + } + + optimize(t) { + super.optimize(t); + let {parent: e} = this; + for (; e;) { + if ("A" === e.domNode.tagName) { + this.savedLength = s.CONTENTS.length, e.isolate(this.offset(e), this.length()).unwrap(), this.savedLength = 0; + break + } + e = e.parent + } + } + + value() { + return "" + } + } + + e.A = s + }, 746: function (t, e, n) { + "use strict"; + var r = n(6003), i = n(5508); + const s = "\ufeff"; + + class o extends r.EmbedBlot { + constructor(t, e) { + super(t, e), this.contentNode = document.createElement("span"), this.contentNode.setAttribute("contenteditable", "false"), Array.from(this.domNode.childNodes).forEach((t => { + this.contentNode.appendChild(t) + })), this.leftGuard = document.createTextNode(s), this.rightGuard = document.createTextNode(s), this.domNode.appendChild(this.leftGuard), this.domNode.appendChild(this.contentNode), this.domNode.appendChild(this.rightGuard) + } + + index(t, e) { + return t === this.leftGuard ? 0 : t === this.rightGuard ? 1 : super.index(t, e) + } + + restore(t) { + let e, n = null; + const r = t.data.split(s).join(""); + if (t === this.leftGuard) if (this.prev instanceof i.A) { + const t = this.prev.length(); + this.prev.insertAt(t, r), n = {startNode: this.prev.domNode, startOffset: t + r.length} + } else e = document.createTextNode(r), this.parent.insertBefore(this.scroll.create(e), this), n = { + startNode: e, + startOffset: r.length + }; else t === this.rightGuard && (this.next instanceof i.A ? (this.next.insertAt(0, r), n = { + startNode: this.next.domNode, + startOffset: r.length + }) : (e = document.createTextNode(r), this.parent.insertBefore(this.scroll.create(e), this.next), n = { + startNode: e, + startOffset: r.length + })); + return t.data = s, n + } + + update(t, e) { + t.forEach((t => { + if ("characterData" === t.type && (t.target === this.leftGuard || t.target === this.rightGuard)) { + const n = this.restore(t.target); + n && (e.range = n) + } + })) + } + } + + e.A = o + }, 4850: function (t, e, n) { + "use strict"; + var r = n(6003), i = n(3036), s = n(5508); + + class o extends r.InlineBlot { + static allowedChildren = [o, i.A, r.EmbedBlot, s.A]; + static order = ["cursor", "inline", "link", "underline", "strike", "italic", "bold", "script", "code"]; + + static compare(t, e) { + const n = o.order.indexOf(t), r = o.order.indexOf(e); + return n >= 0 || r >= 0 ? n - r : t === e ? 0 : t < e ? -1 : 1 + } + + formatAt(t, e, n, i) { + if (o.compare(this.statics.blotName, n) < 0 && this.scroll.query(n, r.Scope.BLOT)) { + const r = this.isolate(t, e); + i && r.wrap(n, i) + } else super.formatAt(t, e, n, i) + } + + optimize(t) { + if (super.optimize(t), this.parent instanceof o && o.compare(this.statics.blotName, this.parent.statics.blotName) > 0) { + const t = this.parent.isolate(this.offset(), this.length()); + this.moveChildren(t), t.wrap(this) + } + } + } + + e.A = o + }, 5508: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return i + }, X: function () { + return o + } + }); + var r = n(6003); + + class i extends r.TextBlot { + } + + const s = {"&": "&", "<": "<", ">": ">", '"': """, "'": "'"}; + + function o(t) { + return t.replace(/[&<>"']/g, (t => s[t])) + } + }, 3729: function (t, e, n) { + "use strict"; + n.d(e, { + default: function () { + return R + } + }); + var r = n(6142), i = n(9698), s = n(3036), o = n(580), l = n(4541), a = n(746), c = n(4850), + u = n(6003), h = n(5232), d = n.n(h), f = n(5374); + + function p(t) { + return t instanceof i.Ay || t instanceof i.zo + } + + function g(t) { + return "function" == typeof t.updateContent + } + + class m extends u.ScrollBlot { + static blotName = "scroll"; + static className = "ql-editor"; + static tagName = "DIV"; + static defaultChild = i.Ay; + static allowedChildren = [i.Ay, i.zo, o.A]; + + constructor(t, e, n) { + let {emitter: r} = n; + super(t, e), this.emitter = r, this.batch = !1, this.optimize(), this.enable(), this.domNode.addEventListener("dragstart", (t => this.handleDragStart(t))) + } + + batchStart() { + Array.isArray(this.batch) || (this.batch = []) + } + + batchEnd() { + if (!this.batch) return; + const t = this.batch; + this.batch = !1, this.update(t) + } + + emitMount(t) { + this.emitter.emit(f.A.events.SCROLL_BLOT_MOUNT, t) + } + + emitUnmount(t) { + this.emitter.emit(f.A.events.SCROLL_BLOT_UNMOUNT, t) + } + + emitEmbedUpdate(t, e) { + this.emitter.emit(f.A.events.SCROLL_EMBED_UPDATE, t, e) + } + + deleteAt(t, e) { + const [n, r] = this.line(t), [o] = this.line(t + e); + if (super.deleteAt(t, e), null != o && n !== o && r > 0) { + if (n instanceof i.zo || o instanceof i.zo) return void this.optimize(); + const t = o.children.head instanceof s.A ? null : o.children.head; + n.moveChildren(o, t), n.remove() + } + this.optimize() + } + + enable() { + let t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + this.domNode.setAttribute("contenteditable", t ? "true" : "false") + } + + formatAt(t, e, n, r) { + super.formatAt(t, e, n, r), this.optimize() + } + + insertAt(t, e, n) { + if (t >= this.length()) if (null == n || null == this.scroll.query(e, u.Scope.BLOCK)) { + const t = this.scroll.create(this.statics.defaultChild.blotName); + this.appendChild(t), null == n && e.endsWith("\n") ? t.insertAt(0, e.slice(0, -1), n) : t.insertAt(0, e, n) + } else { + const t = this.scroll.create(e, n); + this.appendChild(t) + } else super.insertAt(t, e, n); + this.optimize() + } + + insertBefore(t, e) { + if (t.statics.scope === u.Scope.INLINE_BLOT) { + const n = this.scroll.create(this.statics.defaultChild.blotName); + n.appendChild(t), super.insertBefore(n, e) + } else super.insertBefore(t, e) + } + + insertContents(t, e) { + const n = this.deltaToRenderBlocks(e.concat((new (d())).insert("\n"))), r = n.pop(); + if (null == r) return; + this.batchStart(); + const s = n.shift(); + if (s) { + const e = "block" === s.type && (0 === s.delta.length() || !this.descendant(i.zo, t)[0] && t < this.length()), + n = "block" === s.type ? s.delta : (new (d())).insert({[s.key]: s.value}); + b(this, t, n); + const r = "block" === s.type ? 1 : 0, o = t + n.length() + r; + e && this.insertAt(o - 1, "\n"); + const l = (0, i.Ji)(this.line(t)[0]), a = h.AttributeMap.diff(l, s.attributes) || {}; + Object.keys(a).forEach((t => { + this.formatAt(o - 1, 1, t, a[t]) + })), t = o + } + let [o, l] = this.children.find(t); + n.length && (o && (o = o.split(l), l = 0), n.forEach((t => { + if ("block" === t.type) b(this.createBlock(t.attributes, o || void 0), 0, t.delta); else { + const e = this.create(t.key, t.value); + this.insertBefore(e, o || void 0), Object.keys(t.attributes).forEach((n => { + e.format(n, t.attributes[n]) + })) + } + }))), "block" === r.type && r.delta.length() && b(this, o ? o.offset(o.scroll) + l : this.length(), r.delta), this.batchEnd(), this.optimize() + } + + isEnabled() { + return "true" === this.domNode.getAttribute("contenteditable") + } + + leaf(t) { + const e = this.path(t).pop(); + if (!e) return [null, -1]; + const [n, r] = e; + return n instanceof u.LeafBlot ? [n, r] : [null, -1] + } + + line(t) { + return t === this.length() ? this.line(t - 1) : this.descendant(p, t) + } + + lines() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE; + const n = (t, e, r) => { + let i = [], s = r; + return t.children.forEachAt(e, r, ((t, e, r) => { + p(t) ? i.push(t) : t instanceof u.ContainerBlot && (i = i.concat(n(t, e, s))), s -= r + })), i + }; + return n(this, t, e) + } + + optimize() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + this.batch || (super.optimize(t, e), t.length > 0 && this.emitter.emit(f.A.events.SCROLL_OPTIMIZE, t, e)) + } + + path(t) { + return super.path(t).slice(1) + } + + remove() { + } + + update(t) { + if (this.batch) return void (Array.isArray(t) && (this.batch = this.batch.concat(t))); + let e = f.A.sources.USER; + "string" == typeof t && (e = t), Array.isArray(t) || (t = this.observer.takeRecords()), (t = t.filter((t => { + let {target: e} = t; + const n = this.find(e, !0); + return n && !g(n) + }))).length > 0 && this.emitter.emit(f.A.events.SCROLL_BEFORE_UPDATE, e, t), super.update(t.concat([])), t.length > 0 && this.emitter.emit(f.A.events.SCROLL_UPDATE, e, t) + } + + updateEmbedAt(t, e, n) { + const [r] = this.descendant((t => t instanceof i.zo), t); + r && r.statics.blotName === e && g(r) && r.updateContent(n) + } + + handleDragStart(t) { + t.preventDefault() + } + + deltaToRenderBlocks(t) { + const e = []; + let n = new (d()); + return t.forEach((t => { + const r = t?.insert; + if (r) if ("string" == typeof r) { + const i = r.split("\n"); + i.slice(0, -1).forEach((r => { + n.insert(r, t.attributes), e.push({ + type: "block", + delta: n, + attributes: t.attributes ?? {} + }), n = new (d()) + })); + const s = i[i.length - 1]; + s && n.insert(s, t.attributes) + } else { + const i = Object.keys(r)[0]; + if (!i) return; + this.query(i, u.Scope.INLINE) ? n.push(t) : (n.length() && e.push({ + type: "block", + delta: n, + attributes: {} + }), n = new (d()), e.push({ + type: "blockEmbed", + key: i, + value: r[i], + attributes: t.attributes ?? {} + })) + } + })), n.length() && e.push({type: "block", delta: n, attributes: {}}), e + } + + createBlock(t, e) { + let n; + const r = {}; + Object.entries(t).forEach((t => { + let [e, i] = t; + null != this.query(e, u.Scope.BLOCK & u.Scope.BLOT) ? n = e : r[e] = i + })); + const i = this.create(n || this.statics.defaultChild.blotName, n ? t[n] : void 0); + this.insertBefore(i, e || void 0); + const s = i.length(); + return Object.entries(r).forEach((t => { + let [e, n] = t; + i.formatAt(0, s, e, n) + })), i + } + } + + function b(t, e, n) { + n.reduce(((e, n) => { + const r = h.Op.length(n); + let s = n.attributes || {}; + if (null != n.insert) if ("string" == typeof n.insert) { + const r = n.insert; + t.insertAt(e, r); + const [o] = t.descendant(u.LeafBlot, e), l = (0, i.Ji)(o); + s = h.AttributeMap.diff(l, s) || {} + } else if ("object" == typeof n.insert) { + const r = Object.keys(n.insert)[0]; + if (null == r) return e; + if (t.insertAt(e, r, n.insert[r]), null != t.scroll.query(r, u.Scope.INLINE)) { + const [n] = t.descendant(u.LeafBlot, e), r = (0, i.Ji)(n); + s = h.AttributeMap.diff(r, s) || {} + } + } + return Object.keys(s).forEach((n => { + t.formatAt(e, r, n, s[n]) + })), e + r + }), e) + } + + var y = m, v = n(5508), A = n(584), x = n(4266); + + class N extends x.A { + static DEFAULTS = {delay: 1e3, maxStack: 100, userOnly: !1}; + lastRecorded = 0; + ignoreChange = !1; + stack = {undo: [], redo: []}; + currentRange = null; + + constructor(t, e) { + super(t, e), this.quill.on(r.Ay.events.EDITOR_CHANGE, ((t, e, n, i) => { + t === r.Ay.events.SELECTION_CHANGE ? e && i !== r.Ay.sources.SILENT && (this.currentRange = e) : t === r.Ay.events.TEXT_CHANGE && (this.ignoreChange || (this.options.userOnly && i !== r.Ay.sources.USER ? this.transform(e) : this.record(e, n)), this.currentRange = w(this.currentRange, e)) + })), this.quill.keyboard.addBinding({ + key: "z", + shortKey: !0 + }, this.undo.bind(this)), this.quill.keyboard.addBinding({ + key: ["z", "Z"], + shortKey: !0, + shiftKey: !0 + }, this.redo.bind(this)), /Win/i.test(navigator.platform) && this.quill.keyboard.addBinding({ + key: "y", + shortKey: !0 + }, this.redo.bind(this)), this.quill.root.addEventListener("beforeinput", (t => { + "historyUndo" === t.inputType ? (this.undo(), t.preventDefault()) : "historyRedo" === t.inputType && (this.redo(), t.preventDefault()) + })) + } + + change(t, e) { + if (0 === this.stack[t].length) return; + const n = this.stack[t].pop(); + if (!n) return; + const i = this.quill.getContents(), s = n.delta.invert(i); + this.stack[e].push({ + delta: s, + range: w(n.range, s) + }), this.lastRecorded = 0, this.ignoreChange = !0, this.quill.updateContents(n.delta, r.Ay.sources.USER), this.ignoreChange = !1, this.restoreSelection(n) + } + + clear() { + this.stack = {undo: [], redo: []} + } + + cutoff() { + this.lastRecorded = 0 + } + + record(t, e) { + if (0 === t.ops.length) return; + this.stack.redo = []; + let n = t.invert(e), r = this.currentRange; + const i = Date.now(); + if (this.lastRecorded + this.options.delay > i && this.stack.undo.length > 0) { + const t = this.stack.undo.pop(); + t && (n = n.compose(t.delta), r = t.range) + } else this.lastRecorded = i; + 0 !== n.length() && (this.stack.undo.push({ + delta: n, + range: r + }), this.stack.undo.length > this.options.maxStack && this.stack.undo.shift()) + } + + redo() { + this.change("redo", "undo") + } + + transform(t) { + E(this.stack.undo, t), E(this.stack.redo, t) + } + + undo() { + this.change("undo", "redo") + } + + restoreSelection(t) { + if (t.range) this.quill.setSelection(t.range, r.Ay.sources.USER); else { + const e = function (t, e) { + const n = e.reduce(((t, e) => t + (e.delete || 0)), 0); + let r = e.length() - n; + return function (t, e) { + const n = e.ops[e.ops.length - 1]; + return null != n && (null != n.insert ? "string" == typeof n.insert && n.insert.endsWith("\n") : null != n.attributes && Object.keys(n.attributes).some((e => null != t.query(e, u.Scope.BLOCK)))) + }(t, e) && (r -= 1), r + }(this.quill.scroll, t.delta); + this.quill.setSelection(e, r.Ay.sources.USER) + } + } + } + + function E(t, e) { + let n = e; + for (let e = t.length - 1; e >= 0; e -= 1) { + const r = t[e]; + t[e] = { + delta: n.transform(r.delta, !0), + range: r.range && w(r.range, n) + }, n = r.delta.transform(n), 0 === t[e].delta.length() && t.splice(e, 1) + } + } + + function w(t, e) { + if (!t) return t; + const n = e.transformPosition(t.index); + return {index: n, length: e.transformPosition(t.index + t.length) - n} + } + + var q = n(8123); + + class k extends x.A { + constructor(t, e) { + super(t, e), t.root.addEventListener("drop", (e => { + e.preventDefault(); + let n = null; + if (document.caretRangeFromPoint) n = document.caretRangeFromPoint(e.clientX, e.clientY); else if (document.caretPositionFromPoint) { + const t = document.caretPositionFromPoint(e.clientX, e.clientY); + n = document.createRange(), n.setStart(t.offsetNode, t.offset), n.setEnd(t.offsetNode, t.offset) + } + const r = n && t.selection.normalizeNative(n); + if (r) { + const n = t.selection.normalizedToRange(r); + e.dataTransfer?.files && this.upload(n, e.dataTransfer.files) + } + })) + } + + upload(t, e) { + const n = []; + Array.from(e).forEach((t => { + t && this.options.mimetypes?.includes(t.type) && n.push(t) + })), n.length > 0 && this.options.handler.call(this, t, n) + } + } + + k.DEFAULTS = { + mimetypes: ["image/png", "image/jpeg"], handler(t, e) { + if (!this.quill.scroll.query("image")) return; + const n = e.map((t => new Promise((e => { + const n = new FileReader; + n.onload = () => { + e(n.result) + }, n.readAsDataURL(t) + })))); + Promise.all(n).then((e => { + const n = e.reduce(((t, e) => t.insert({image: e})), (new (d())).retain(t.index).delete(t.length)); + this.quill.updateContents(n, f.A.sources.USER), this.quill.setSelection(t.index + e.length, f.A.sources.SILENT) + })) + } + }; + var _ = k; + const L = ["insertText", "insertReplacementText"]; + + class S extends x.A { + constructor(t, e) { + super(t, e), t.root.addEventListener("beforeinput", (t => { + this.handleBeforeInput(t) + })), /Android/i.test(navigator.userAgent) || t.on(r.Ay.events.COMPOSITION_BEFORE_START, (() => { + this.handleCompositionStart() + })) + } + + deleteRange(t) { + (0, q.Xo)({range: t, quill: this.quill}) + } + + replaceText(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; + if (0 === t.length) return !1; + if (e) { + const n = this.quill.getFormat(t.index, 1); + this.deleteRange(t), this.quill.updateContents((new (d())).retain(t.index).insert(e, n), r.Ay.sources.USER) + } else this.deleteRange(t); + return this.quill.setSelection(t.index + e.length, 0, r.Ay.sources.SILENT), !0 + } + + handleBeforeInput(t) { + if (this.quill.composition.isComposing || t.defaultPrevented || !L.includes(t.inputType)) return; + const e = t.getTargetRanges ? t.getTargetRanges()[0] : null; + if (!e || !0 === e.collapsed) return; + const n = function (t) { + return "string" == typeof t.data ? t.data : t.dataTransfer?.types.includes("text/plain") ? t.dataTransfer.getData("text/plain") : null + }(t); + if (null == n) return; + const r = this.quill.selection.normalizeNative(e), + i = r ? this.quill.selection.normalizedToRange(r) : null; + i && this.replaceText(i, n) && t.preventDefault() + } + + handleCompositionStart() { + const t = this.quill.getSelection(); + t && this.replaceText(t) + } + } + + var O = S; + const T = /Mac/i.test(navigator.platform); + + class j extends x.A { + isListening = !1; + selectionChangeDeadline = 0; + + constructor(t, e) { + super(t, e), this.handleArrowKeys(), this.handleNavigationShortcuts() + } + + handleArrowKeys() { + this.quill.keyboard.addBinding({ + key: ["ArrowLeft", "ArrowRight"], + offset: 0, + shiftKey: null, + handler(t, e) { + let {line: n, event: i} = e; + if (!(n instanceof u.ParentBlot && n.uiNode)) return !0; + const s = "rtl" === getComputedStyle(n.domNode).direction; + return !!(s && "ArrowRight" !== i.key || !s && "ArrowLeft" !== i.key) || (this.quill.setSelection(t.index - 1, t.length + (i.shiftKey ? 1 : 0), r.Ay.sources.USER), !1) + } + }) + } + + handleNavigationShortcuts() { + this.quill.root.addEventListener("keydown", (t => { + !t.defaultPrevented && (t => "ArrowLeft" === t.key || "ArrowRight" === t.key || "ArrowUp" === t.key || "ArrowDown" === t.key || "Home" === t.key || !(!T || "a" !== t.key || !0 !== t.ctrlKey))(t) && this.ensureListeningToSelectionChange() + })) + } + + ensureListeningToSelectionChange() { + this.selectionChangeDeadline = Date.now() + 100, this.isListening || (this.isListening = !0, document.addEventListener("selectionchange", (() => { + this.isListening = !1, Date.now() <= this.selectionChangeDeadline && this.handleSelectionChange() + }), {once: !0})) + } + + handleSelectionChange() { + const t = document.getSelection(); + if (!t) return; + const e = t.getRangeAt(0); + if (!0 !== e.collapsed || 0 !== e.startOffset) return; + const n = this.quill.scroll.find(e.startContainer); + if (!(n instanceof u.ParentBlot && n.uiNode)) return; + const r = document.createRange(); + r.setStartAfter(n.uiNode), r.setEndAfter(n.uiNode), t.removeAllRanges(), t.addRange(r) + } + } + + var C = j; + r.Ay.register({ + "blots/block": i.Ay, + "blots/block/embed": i.zo, + "blots/break": s.A, + "blots/container": o.A, + "blots/cursor": l.A, + "blots/embed": a.A, + "blots/inline": c.A, + "blots/scroll": y, + "blots/text": v.A, + "modules/clipboard": A.Ay, + "modules/history": N, + "modules/keyboard": q.Ay, + "modules/uploader": _, + "modules/input": O, + "modules/uiNode": C + }); + var R = r.Ay + }, 5374: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return o + } + }); + var r = n(8920), i = n(7356); + const s = (0, n(6078).A)("quill:events"); + ["selectionchange", "mousedown", "mouseup", "click"].forEach((t => { + document.addEventListener(t, (function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; + Array.from(document.querySelectorAll(".ql-container")).forEach((t => { + const n = i.A.get(t); + n && n.emitter && n.emitter.handleDOM(...e) + })) + })) + })); + var o = class extends r { + static events = { + EDITOR_CHANGE: "editor-change", + SCROLL_BEFORE_UPDATE: "scroll-before-update", + SCROLL_BLOT_MOUNT: "scroll-blot-mount", + SCROLL_BLOT_UNMOUNT: "scroll-blot-unmount", + SCROLL_OPTIMIZE: "scroll-optimize", + SCROLL_UPDATE: "scroll-update", + SCROLL_EMBED_UPDATE: "scroll-embed-update", + SELECTION_CHANGE: "selection-change", + TEXT_CHANGE: "text-change", + COMPOSITION_BEFORE_START: "composition-before-start", + COMPOSITION_START: "composition-start", + COMPOSITION_BEFORE_END: "composition-before-end", + COMPOSITION_END: "composition-end" + }; + static sources = {API: "api", SILENT: "silent", USER: "user"}; + + constructor() { + super(), this.domListeners = {}, this.on("error", s.error) + } + + emit() { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; + return s.log.call(s, ...e), super.emit(...e) + } + + handleDOM(t) { + for (var e = arguments.length, n = new Array(e > 1 ? e - 1 : 0), r = 1; r < e; r++) n[r - 1] = arguments[r]; + (this.domListeners[t.type] || []).forEach((e => { + let {node: r, handler: i} = e; + (t.target === r || r.contains(t.target)) && i(t, ...n) + })) + } + + listenDOM(t, e, n) { + this.domListeners[t] || (this.domListeners[t] = []), this.domListeners[t].push({ + node: e, + handler: n + }) + } + } + }, 7356: function (t, e) { + "use strict"; + e.A = new WeakMap + }, 6078: function (t, e) { + "use strict"; + const n = ["error", "warn", "log", "info"]; + let r = "warn"; + + function i(t) { + if (r && n.indexOf(t) <= n.indexOf(r)) { + for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), s = 1; s < e; s++) i[s - 1] = arguments[s]; + console[t](...i) + } + } + + function s(t) { + return n.reduce(((e, n) => (e[n] = i.bind(console, n, t), e)), {}) + } + + s.level = t => { + r = t + }, i.level = s.level, e.A = s + }, 4266: function (t, e) { + "use strict"; + e.A = class { + static DEFAULTS = {}; + + constructor(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + this.quill = t, this.options = e + } + } + }, 6142: function (t, e, n) { + "use strict"; + n.d(e, { + Ay: function () { + return I + } + }); + var r = n(8347), i = n(6003), s = n(5232), o = n.n(s), l = n(3707), a = n(5123), c = n(9698), + u = n(3036), h = n(4541), d = n(5508), f = n(8298); + const p = /^[ -~]*$/; + + function g(t, e, n) { + if (0 === t.length) { + const [t] = y(n.pop()); + return e <= 0 ? `` : `${g([], e - 1, n)}` + } + const [{child: r, offset: i, length: s, indent: o, type: l}, ...a] = t, [c, u] = y(l); + if (o > e) return n.push(l), o === e + 1 ? `<${c}>${m(r, i, s)}${g(a, o, n)}` : `<${c}>
  • ${g(t, e + 1, n)}`; + const h = n[n.length - 1]; + if (o === e && l === h) return `
  • ${m(r, i, s)}${g(a, o, n)}`; + const [d] = y(n.pop()); + return `${g(t, e - 1, n)}` + } + + function m(t, e, n) { + let r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; + if ("html" in t && "function" == typeof t.html) return t.html(e, n); + if (t instanceof d.A) return (0, d.X)(t.value().slice(e, e + n)).replaceAll(" ", " "); + if (t instanceof i.ParentBlot) { + if ("list-container" === t.statics.blotName) { + const r = []; + return t.children.forEachAt(e, n, ((t, e, n) => { + const i = "formats" in t && "function" == typeof t.formats ? t.formats() : {}; + r.push({child: t, offset: e, length: n, indent: i.indent || 0, type: i.list}) + })), g(r, -1, []) + } + const i = []; + if (t.children.forEachAt(e, n, ((t, e, n) => { + i.push(m(t, e, n)) + })), r || "list" === t.statics.blotName) return i.join(""); + const {outerHTML: s, innerHTML: o} = t.domNode, [l, a] = s.split(`>${o}<`); + return "${i.join("")}<${a}` : `${l}>${i.join("")}<${a}` + } + return t.domNode instanceof Element ? t.domNode.outerHTML : "" + } + + function b(t, e) { + return Object.keys(e).reduce(((n, r) => { + if (null == t[r]) return n; + const i = e[r]; + return i === t[r] ? n[r] = i : Array.isArray(i) ? i.indexOf(t[r]) < 0 ? n[r] = i.concat([t[r]]) : n[r] = i : n[r] = [i, t[r]], n + }), {}) + } + + function y(t) { + const e = "ordered" === t ? "ol" : "ul"; + switch (t) { + case"checked": + return [e, ' data-list="checked"']; + case"unchecked": + return [e, ' data-list="unchecked"']; + default: + return [e, ""] + } + } + + function v(t) { + return t.reduce(((t, e) => { + if ("string" == typeof e.insert) { + const n = e.insert.replace(/\r\n/g, "\n").replace(/\r/g, "\n"); + return t.insert(n, e.attributes) + } + return t.push(e) + }), new (o())) + } + + function A(t, e) { + let {index: n, length: r} = t; + return new f.Q(n + e, r) + } + + var x = class { + constructor(t) { + this.scroll = t, this.delta = this.getDelta() + } + + applyDelta(t) { + this.scroll.update(); + let e = this.scroll.length(); + this.scroll.batchStart(); + const n = v(t), l = new (o()); + return function (t) { + const e = []; + return t.forEach((t => { + "string" == typeof t.insert ? t.insert.split("\n").forEach(((n, r) => { + r && e.push({insert: "\n", attributes: t.attributes}), n && e.push({ + insert: n, + attributes: t.attributes + }) + })) : e.push(t) + })), e + }(n.ops.slice()).reduce(((t, n) => { + const o = s.Op.length(n); + let a = n.attributes || {}, u = !1, h = !1; + if (null != n.insert) { + if (l.retain(o), "string" == typeof n.insert) { + const o = n.insert; + h = !o.endsWith("\n") && (e <= t || !!this.scroll.descendant(c.zo, t)[0]), this.scroll.insertAt(t, o); + const [l, u] = this.scroll.line(t); + let d = (0, r.A)({}, (0, c.Ji)(l)); + if (l instanceof c.Ay) { + const [t] = l.descendant(i.LeafBlot, u); + t && (d = (0, r.A)(d, (0, c.Ji)(t))) + } + a = s.AttributeMap.diff(d, a) || {} + } else if ("object" == typeof n.insert) { + const o = Object.keys(n.insert)[0]; + if (null == o) return t; + const l = null != this.scroll.query(o, i.Scope.INLINE); + if (l) (e <= t || this.scroll.descendant(c.zo, t)[0]) && (h = !0); else if (t > 0) { + const [e, n] = this.scroll.descendant(i.LeafBlot, t - 1); + e instanceof d.A ? "\n" !== e.value()[n] && (u = !0) : e instanceof i.EmbedBlot && e.statics.scope === i.Scope.INLINE_BLOT && (u = !0) + } + if (this.scroll.insertAt(t, o, n.insert[o]), l) { + const [e] = this.scroll.descendant(i.LeafBlot, t); + if (e) { + const t = (0, r.A)({}, (0, c.Ji)(e)); + a = s.AttributeMap.diff(t, a) || {} + } + } + } + e += o + } else if (l.push(n), null !== n.retain && "object" == typeof n.retain) { + const e = Object.keys(n.retain)[0]; + if (null == e) return t; + this.scroll.updateEmbedAt(t, e, n.retain[e]) + } + Object.keys(a).forEach((e => { + this.scroll.formatAt(t, o, e, a[e]) + })); + const f = u ? 1 : 0, p = h ? 1 : 0; + return e += f + p, l.retain(f), l.delete(p), t + o + f + p + }), 0), l.reduce(((t, e) => "number" == typeof e.delete ? (this.scroll.deleteAt(t, e.delete), t) : t + s.Op.length(e)), 0), this.scroll.batchEnd(), this.scroll.optimize(), this.update(n) + } + + deleteText(t, e) { + return this.scroll.deleteAt(t, e), this.update((new (o())).retain(t).delete(e)) + } + + formatLine(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + this.scroll.update(), Object.keys(n).forEach((r => { + this.scroll.lines(t, Math.max(e, 1)).forEach((t => { + t.format(r, n[r]) + })) + })), this.scroll.optimize(); + const r = (new (o())).retain(t).retain(e, (0, l.A)(n)); + return this.update(r) + } + + formatText(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + Object.keys(n).forEach((r => { + this.scroll.formatAt(t, e, r, n[r]) + })); + const r = (new (o())).retain(t).retain(e, (0, l.A)(n)); + return this.update(r) + } + + getContents(t, e) { + return this.delta.slice(t, t + e) + } + + getDelta() { + return this.scroll.lines().reduce(((t, e) => t.concat(e.delta())), new (o())) + } + + getFormat(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = [], r = []; + 0 === e ? this.scroll.path(t).forEach((t => { + const [e] = t; + e instanceof c.Ay ? n.push(e) : e instanceof i.LeafBlot && r.push(e) + })) : (n = this.scroll.lines(t, e), r = this.scroll.descendants(i.LeafBlot, t, e)); + const [s, o] = [n, r].map((t => { + const e = t.shift(); + if (null == e) return {}; + let n = (0, c.Ji)(e); + for (; Object.keys(n).length > 0;) { + const e = t.shift(); + if (null == e) return n; + n = b((0, c.Ji)(e), n) + } + return n + })); + return {...s, ...o} + } + + getHTML(t, e) { + const [n, r] = this.scroll.line(t); + if (n) { + const i = n.length(); + return n.length() >= r + e && (0 !== r || e !== i) ? m(n, r, e, !0) : m(this.scroll, t, e, !0) + } + return "" + } + + getText(t, e) { + return this.getContents(t, e).filter((t => "string" == typeof t.insert)).map((t => t.insert)).join("") + } + + insertContents(t, e) { + const n = v(e), r = (new (o())).retain(t).concat(n); + return this.scroll.insertContents(t, n), this.update(r) + } + + insertEmbed(t, e, n) { + return this.scroll.insertAt(t, e, n), this.update((new (o())).retain(t).insert({[e]: n})) + } + + insertText(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + return e = e.replace(/\r\n/g, "\n").replace(/\r/g, "\n"), this.scroll.insertAt(t, e), Object.keys(n).forEach((r => { + this.scroll.formatAt(t, e.length, r, n[r]) + })), this.update((new (o())).retain(t).insert(e, (0, l.A)(n))) + } + + isBlank() { + if (0 === this.scroll.children.length) return !0; + if (this.scroll.children.length > 1) return !1; + const t = this.scroll.children.head; + if (t?.statics.blotName !== c.Ay.blotName) return !1; + const e = t; + return !(e.children.length > 1) && e.children.head instanceof u.A + } + + removeFormat(t, e) { + const n = this.getText(t, e), [r, i] = this.scroll.line(t + e); + let s = 0, l = new (o()); + null != r && (s = r.length() - i, l = r.delta().slice(i, i + s - 1).insert("\n")); + const a = this.getContents(t, e + s).diff((new (o())).insert(n).concat(l)), + c = (new (o())).retain(t).concat(a); + return this.applyDelta(c) + } + + update(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0; + const r = this.delta; + if (1 === e.length && "characterData" === e[0].type && e[0].target.data.match(p) && this.scroll.find(e[0].target)) { + const i = this.scroll.find(e[0].target), s = (0, c.Ji)(i), l = i.offset(this.scroll), + a = e[0].oldValue.replace(h.A.CONTENTS, ""), u = (new (o())).insert(a), + d = (new (o())).insert(i.value()), + f = n && {oldRange: A(n.oldRange, -l), newRange: A(n.newRange, -l)}; + t = (new (o())).retain(l).concat(u.diff(d, f)).reduce(((t, e) => e.insert ? t.insert(e.insert, s) : t.push(e)), new (o())), this.delta = r.compose(t) + } else this.delta = this.getDelta(), t && (0, a.A)(r.compose(t), this.delta) || (t = r.diff(this.delta, n)); + return t + } + }, N = n(5374), E = n(7356), w = n(6078), q = n(4266), k = n(746), _ = class { + isComposing = !1; + + constructor(t, e) { + this.scroll = t, this.emitter = e, this.setupListeners() + } + + setupListeners() { + this.scroll.domNode.addEventListener("compositionstart", (t => { + this.isComposing || this.handleCompositionStart(t) + })), this.scroll.domNode.addEventListener("compositionend", (t => { + this.isComposing && queueMicrotask((() => { + this.handleCompositionEnd(t) + })) + })) + } + + handleCompositionStart(t) { + const e = t.target instanceof Node ? this.scroll.find(t.target, !0) : null; + !e || e instanceof k.A || (this.emitter.emit(N.A.events.COMPOSITION_BEFORE_START, t), this.scroll.batchStart(), this.emitter.emit(N.A.events.COMPOSITION_START, t), this.isComposing = !0) + } + + handleCompositionEnd(t) { + this.emitter.emit(N.A.events.COMPOSITION_BEFORE_END, t), this.scroll.batchEnd(), this.emitter.emit(N.A.events.COMPOSITION_END, t), this.isComposing = !1 + } + }, L = n(9609); + const S = t => { + const e = t.getBoundingClientRect(), + n = "offsetWidth" in t && Math.abs(e.width) / t.offsetWidth || 1, + r = "offsetHeight" in t && Math.abs(e.height) / t.offsetHeight || 1; + return { + top: e.top, + right: e.left + t.clientWidth * n, + bottom: e.top + t.clientHeight * r, + left: e.left + } + }, O = t => { + const e = parseInt(t, 10); + return Number.isNaN(e) ? 0 : e + }, + T = (t, e, n, r, i, s) => t < n && e > r ? 0 : t < n ? -(n - t + i) : e > r ? e - t > r - n ? t + i - n : e - r + s : 0; + const j = ["block", "break", "cursor", "inline", "scroll", "text"]; + const C = (0, w.A)("quill"), R = new i.Registry; + i.ParentBlot.uiClass = "ql-ui"; + + class I { + static DEFAULTS = { + bounds: null, + modules: {clipboard: !0, keyboard: !0, history: !0, uploader: !0}, + placeholder: "", + readOnly: !1, + registry: R, + theme: "default" + }; + static events = N.A.events; + static sources = N.A.sources; + static version = "2.0.3"; + static imports = {delta: o(), parchment: i, "core/module": q.A, "core/theme": L.A}; + + static debug(t) { + !0 === t && (t = "log"), w.A.level(t) + } + + static find(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return E.A.get(t) || R.find(t, e) + } + + static import(t) { + return null == this.imports[t] && C.error(`Cannot import ${t}. Are you sure it was registered?`), this.imports[t] + } + + static register() { + if ("string" != typeof (arguments.length <= 0 ? void 0 : arguments[0])) { + const t = arguments.length <= 0 ? void 0 : arguments[0], + e = !!(arguments.length <= 1 ? void 0 : arguments[1]), + n = "attrName" in t ? t.attrName : t.blotName; + "string" == typeof n ? this.register(`formats/${n}`, t, e) : Object.keys(t).forEach((n => { + this.register(n, t[n], e) + })) + } else { + const t = arguments.length <= 0 ? void 0 : arguments[0], + e = arguments.length <= 1 ? void 0 : arguments[1], + n = !!(arguments.length <= 2 ? void 0 : arguments[2]); + null == this.imports[t] || n || C.warn(`Overwriting ${t} with`, e), this.imports[t] = e, (t.startsWith("blots/") || t.startsWith("formats/")) && e && "boolean" != typeof e && "abstract" !== e.blotName && R.register(e), "function" == typeof e.register && e.register(R) + } + } + + constructor(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + if (this.options = function (t, e) { + const n = B(t); + if (!n) throw new Error("Invalid Quill container"); + const s = !e.theme || e.theme === I.DEFAULTS.theme ? L.A : I.import(`themes/${e.theme}`); + if (!s) throw new Error(`Invalid theme ${e.theme}. Did you register it?`); + const {modules: o, ...l} = I.DEFAULTS, {modules: a, ...c} = s.DEFAULTS; + let u = M(e.modules); + null != u && u.toolbar && u.toolbar.constructor !== Object && (u = { + ...u, + toolbar: {container: u.toolbar} + }); + const h = (0, r.A)({}, M(o), M(a), u), d = {...l, ...U(c), ...U(e)}; + let f = e.registry; + return f ? e.formats && C.warn('Ignoring "formats" option because "registry" is specified') : f = e.formats ? ((t, e, n) => { + const r = new i.Registry; + return j.forEach((t => { + const n = e.query(t); + n && r.register(n) + })), t.forEach((t => { + let i = e.query(t); + i || n.error(`Cannot register "${t}" specified in "formats" config. Are you sure it was registered?`); + let s = 0; + for (; i;) if (r.register(i), i = "blotName" in i ? i.requiredContainer ?? null : null, s += 1, s > 100) { + n.error(`Cycle detected in registering blot requiredContainer: "${t}"`); + break + } + })), r + })(e.formats, d.registry, C) : d.registry, { + ...d, + registry: f, + container: n, + theme: s, + modules: Object.entries(h).reduce(((t, e) => { + let [n, i] = e; + if (!i) return t; + const s = I.import(`modules/${n}`); + return null == s ? (C.error(`Cannot load ${n} module. Are you sure you registered it?`), t) : { + ...t, + [n]: (0, r.A)({}, s.DEFAULTS || {}, i) + } + }), {}), + bounds: B(d.bounds) + } + }(t, e), this.container = this.options.container, null == this.container) return void C.error("Invalid Quill container", t); + this.options.debug && I.debug(this.options.debug); + const n = this.container.innerHTML.trim(); + this.container.classList.add("ql-container"), this.container.innerHTML = "", E.A.set(this.container, this), this.root = this.addContainer("ql-editor"), this.root.classList.add("ql-blank"), this.emitter = new N.A; + const s = i.ScrollBlot.blotName, l = this.options.registry.query(s); + if (!l || !("blotName" in l)) throw new Error(`Cannot initialize Quill without "${s}" blot`); + if (this.scroll = new l(this.options.registry, this.root, {emitter: this.emitter}), this.editor = new x(this.scroll), this.selection = new f.A(this.scroll, this.emitter), this.composition = new _(this.scroll, this.emitter), this.theme = new this.options.theme(this, this.options), this.keyboard = this.theme.addModule("keyboard"), this.clipboard = this.theme.addModule("clipboard"), this.history = this.theme.addModule("history"), this.uploader = this.theme.addModule("uploader"), this.theme.addModule("input"), this.theme.addModule("uiNode"), this.theme.init(), this.emitter.on(N.A.events.EDITOR_CHANGE, (t => { + t === N.A.events.TEXT_CHANGE && this.root.classList.toggle("ql-blank", this.editor.isBlank()) + })), this.emitter.on(N.A.events.SCROLL_UPDATE, ((t, e) => { + const n = this.selection.lastRange, [r] = this.selection.getRange(), + i = n && r ? {oldRange: n, newRange: r} : void 0; + D.call(this, (() => this.editor.update(null, e, i)), t) + })), this.emitter.on(N.A.events.SCROLL_EMBED_UPDATE, ((t, e) => { + const n = this.selection.lastRange, [r] = this.selection.getRange(), + i = n && r ? {oldRange: n, newRange: r} : void 0; + D.call(this, (() => { + const n = (new (o())).retain(t.offset(this)).retain({[t.statics.blotName]: e}); + return this.editor.update(n, [], i) + }), I.sources.USER) + })), n) { + const t = this.clipboard.convert({html: `${n}


    `, text: "\n"}); + this.setContents(t) + } + this.history.clear(), this.options.placeholder && this.root.setAttribute("data-placeholder", this.options.placeholder), this.options.readOnly && this.disable(), this.allowReadOnlyEdits = !1 + } + + addContainer(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + if ("string" == typeof t) { + const e = t; + (t = document.createElement("div")).classList.add(e) + } + return this.container.insertBefore(t, e), t + } + + blur() { + this.selection.setRange(null) + } + + deleteText(t, e, n) { + return [t, e, , n] = P(t, e, n), D.call(this, (() => this.editor.deleteText(t, e)), n, t, -1 * e) + } + + disable() { + this.enable(!1) + } + + editReadOnly(t) { + this.allowReadOnlyEdits = !0; + const e = t(); + return this.allowReadOnlyEdits = !1, e + } + + enable() { + let t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + this.scroll.enable(t), this.container.classList.toggle("ql-disabled", !t) + } + + focus() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this.selection.focus(), t.preventScroll || this.scrollSelectionIntoView() + } + + format(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : N.A.sources.API; + return D.call(this, (() => { + const n = this.getSelection(!0); + let r = new (o()); + if (null == n) return r; + if (this.scroll.query(t, i.Scope.BLOCK)) r = this.editor.formatLine(n.index, n.length, {[t]: e}); else { + if (0 === n.length) return this.selection.format(t, e), r; + r = this.editor.formatText(n.index, n.length, {[t]: e}) + } + return this.setSelection(n, N.A.sources.SILENT), r + }), n) + } + + formatLine(t, e, n, r, i) { + let s; + return [t, e, s, i] = P(t, e, n, r, i), D.call(this, (() => this.editor.formatLine(t, e, s)), i, t, 0) + } + + formatText(t, e, n, r, i) { + let s; + return [t, e, s, i] = P(t, e, n, r, i), D.call(this, (() => this.editor.formatText(t, e, s)), i, t, 0) + } + + getBounds(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = null; + if (n = "number" == typeof t ? this.selection.getBounds(t, e) : this.selection.getBounds(t.index, t.length), !n) return null; + const r = this.container.getBoundingClientRect(); + return { + bottom: n.bottom - r.top, + height: n.height, + left: n.left - r.left, + right: n.right - r.left, + top: n.top - r.top, + width: n.width + } + } + + getContents() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.getLength() - t; + return [t, e] = P(t, e), this.editor.getContents(t, e) + } + + getFormat() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.getSelection(!0), + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + return "number" == typeof t ? this.editor.getFormat(t, e) : this.editor.getFormat(t.index, t.length) + } + + getIndex(t) { + return t.offset(this.scroll) + } + + getLength() { + return this.scroll.length() + } + + getLeaf(t) { + return this.scroll.leaf(t) + } + + getLine(t) { + return this.scroll.line(t) + } + + getLines() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE; + return "number" != typeof t ? this.scroll.lines(t.index, t.length) : this.scroll.lines(t, e) + } + + getModule(t) { + return this.theme.modules[t] + } + + getSelection() { + return arguments.length > 0 && void 0 !== arguments[0] && arguments[0] && this.focus(), this.update(), this.selection.getRange()[0] + } + + getSemanticHTML() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 ? arguments[1] : void 0; + return "number" == typeof t && (e = e ?? this.getLength() - t), [t, e] = P(t, e), this.editor.getHTML(t, e) + } + + getText() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = arguments.length > 1 ? arguments[1] : void 0; + return "number" == typeof t && (e = e ?? this.getLength() - t), [t, e] = P(t, e), this.editor.getText(t, e) + } + + hasFocus() { + return this.selection.hasFocus() + } + + insertEmbed(t, e, n) { + let r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : I.sources.API; + return D.call(this, (() => this.editor.insertEmbed(t, e, n)), r, t) + } + + insertText(t, e, n, r, i) { + let s; + return [t, , s, i] = P(t, 0, n, r, i), D.call(this, (() => this.editor.insertText(t, e, s)), i, t, e.length) + } + + isEnabled() { + return this.scroll.isEnabled() + } + + off() { + return this.emitter.off(...arguments) + } + + on() { + return this.emitter.on(...arguments) + } + + once() { + return this.emitter.once(...arguments) + } + + removeFormat(t, e, n) { + return [t, e, , n] = P(t, e, n), D.call(this, (() => this.editor.removeFormat(t, e)), n, t) + } + + scrollRectIntoView(t) { + ((t, e) => { + const n = t.ownerDocument; + let r = e, i = t; + for (; i;) { + const t = i === n.body, e = t ? { + top: 0, + right: window.visualViewport?.width ?? n.documentElement.clientWidth, + bottom: window.visualViewport?.height ?? n.documentElement.clientHeight, + left: 0 + } : S(i), o = getComputedStyle(i), + l = T(r.left, r.right, e.left, e.right, O(o.scrollPaddingLeft), O(o.scrollPaddingRight)), + a = T(r.top, r.bottom, e.top, e.bottom, O(o.scrollPaddingTop), O(o.scrollPaddingBottom)); + if (l || a) if (t) n.defaultView?.scrollBy(l, a); else { + const {scrollLeft: t, scrollTop: e} = i; + a && (i.scrollTop += a), l && (i.scrollLeft += l); + const n = i.scrollLeft - t, s = i.scrollTop - e; + r = {left: r.left - n, top: r.top - s, right: r.right - n, bottom: r.bottom - s} + } + i = t || "fixed" === o.position ? null : (s = i).parentElement || s.getRootNode().host || null + } + var s + })(this.root, t) + } + + scrollIntoView() { + console.warn("Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead."), this.scrollSelectionIntoView() + } + + scrollSelectionIntoView() { + const t = this.selection.lastRange, e = t && this.selection.getBounds(t.index, t.length); + e && this.scrollRectIntoView(e) + } + + setContents(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : N.A.sources.API; + return D.call(this, (() => { + t = new (o())(t); + const e = this.getLength(), n = this.editor.deleteText(0, e), + r = this.editor.insertContents(0, t), + i = this.editor.deleteText(this.getLength() - 1, 1); + return n.compose(r).compose(i) + }), e) + } + + setSelection(t, e, n) { + null == t ? this.selection.setRange(null, e || I.sources.API) : ([t, e, , n] = P(t, e, n), this.selection.setRange(new f.Q(Math.max(0, t), e), n), n !== N.A.sources.SILENT && this.scrollSelectionIntoView()) + } + + setText(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : N.A.sources.API; + const n = (new (o())).insert(t); + return this.setContents(n, e) + } + + update() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : N.A.sources.USER; + const e = this.scroll.update(t); + return this.selection.update(t), e + } + + updateContents(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : N.A.sources.API; + return D.call(this, (() => (t = new (o())(t), this.editor.applyDelta(t))), e, !0) + } + } + + function B(t) { + return "string" == typeof t ? document.querySelector(t) : t + } + + function M(t) { + return Object.entries(t ?? {}).reduce(((t, e) => { + let [n, r] = e; + return {...t, [n]: !0 === r ? {} : r} + }), {}) + } + + function U(t) { + return Object.fromEntries(Object.entries(t).filter((t => void 0 !== t[1]))) + } + + function D(t, e, n, r) { + if (!this.isEnabled() && e === N.A.sources.USER && !this.allowReadOnlyEdits) return new (o()); + let i = null == n ? null : this.getSelection(); + const s = this.editor.delta, l = t(); + if (null != i && (!0 === n && (n = i.index), null == r ? i = z(i, l, e) : 0 !== r && (i = z(i, n, r, e)), this.setSelection(i, N.A.sources.SILENT)), l.length() > 0) { + const t = [N.A.events.TEXT_CHANGE, l, s, e]; + this.emitter.emit(N.A.events.EDITOR_CHANGE, ...t), e !== N.A.sources.SILENT && this.emitter.emit(...t) + } + return l + } + + function P(t, e, n, r, i) { + let s = {}; + return "number" == typeof t.index && "number" == typeof t.length ? "number" != typeof e ? (i = r, r = n, n = e, e = t.length, t = t.index) : (e = t.length, t = t.index) : "number" != typeof e && (i = r, r = n, n = e, e = 0), "object" == typeof n ? (s = n, i = r) : "string" == typeof n && (null != r ? s[n] = r : i = n), [t, e, s, i = i || N.A.sources.API] + } + + function z(t, e, n, r) { + const i = "number" == typeof n ? n : 0; + if (null == t) return null; + let s, o; + return e && "function" == typeof e.transformPosition ? [s, o] = [t.index, t.index + t.length].map((t => e.transformPosition(t, r !== N.A.sources.USER))) : [s, o] = [t.index, t.index + t.length].map((t => t < e || t === e && r === N.A.sources.USER ? t : i >= 0 ? t + i : Math.max(e, t + i))), new f.Q(s, o - s) + } + }, 8298: function (t, e, n) { + "use strict"; + n.d(e, { + Q: function () { + return a + } + }); + var r = n(6003), i = n(5123), s = n(3707), o = n(5374); + const l = (0, n(6078).A)("quill:selection"); + + class a { + constructor(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + this.index = t, this.length = e + } + } + + function c(t, e) { + try { + e.parentNode + } catch (t) { + return !1 + } + return t.contains(e) + } + + e.A = class { + constructor(t, e) { + this.emitter = e, this.scroll = t, this.composing = !1, this.mouseDown = !1, this.root = this.scroll.domNode, this.cursor = this.scroll.create("cursor", this), this.savedRange = new a(0, 0), this.lastRange = this.savedRange, this.lastNative = null, this.handleComposition(), this.handleDragging(), this.emitter.listenDOM("selectionchange", document, (() => { + this.mouseDown || this.composing || setTimeout(this.update.bind(this, o.A.sources.USER), 1) + })), this.emitter.on(o.A.events.SCROLL_BEFORE_UPDATE, (() => { + if (!this.hasFocus()) return; + const t = this.getNativeRange(); + null != t && t.start.node !== this.cursor.textNode && this.emitter.once(o.A.events.SCROLL_UPDATE, ((e, n) => { + try { + this.root.contains(t.start.node) && this.root.contains(t.end.node) && this.setNativeRange(t.start.node, t.start.offset, t.end.node, t.end.offset); + const r = n.some((t => "characterData" === t.type || "childList" === t.type || "attributes" === t.type && t.target === this.root)); + this.update(r ? o.A.sources.SILENT : e) + } catch (t) { + } + })) + })), this.emitter.on(o.A.events.SCROLL_OPTIMIZE, ((t, e) => { + if (e.range) { + const {startNode: t, startOffset: n, endNode: r, endOffset: i} = e.range; + this.setNativeRange(t, n, r, i), this.update(o.A.sources.SILENT) + } + })), this.update(o.A.sources.SILENT) + } + + handleComposition() { + this.emitter.on(o.A.events.COMPOSITION_BEFORE_START, (() => { + this.composing = !0 + })), this.emitter.on(o.A.events.COMPOSITION_END, (() => { + if (this.composing = !1, this.cursor.parent) { + const t = this.cursor.restore(); + if (!t) return; + setTimeout((() => { + this.setNativeRange(t.startNode, t.startOffset, t.endNode, t.endOffset) + }), 1) + } + })) + } + + handleDragging() { + this.emitter.listenDOM("mousedown", document.body, (() => { + this.mouseDown = !0 + })), this.emitter.listenDOM("mouseup", document.body, (() => { + this.mouseDown = !1, this.update(o.A.sources.USER) + })) + } + + focus() { + this.hasFocus() || (this.root.focus({preventScroll: !0}), this.setRange(this.savedRange)) + } + + format(t, e) { + this.scroll.update(); + const n = this.getNativeRange(); + if (null != n && n.native.collapsed && !this.scroll.query(t, r.Scope.BLOCK)) { + if (n.start.node !== this.cursor.textNode) { + const t = this.scroll.find(n.start.node, !1); + if (null == t) return; + if (t instanceof r.LeafBlot) { + const e = t.split(n.start.offset); + t.parent.insertBefore(this.cursor, e) + } else t.insertBefore(this.cursor, n.start.node); + this.cursor.attach() + } + this.cursor.format(t, e), this.scroll.optimize(), this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length), this.update() + } + } + + getBounds(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + const n = this.scroll.length(); + let r; + t = Math.min(t, n - 1), e = Math.min(t + e, n - 1) - t; + let [i, s] = this.scroll.leaf(t); + if (null == i) return null; + if (e > 0 && s === i.length()) { + const [e] = this.scroll.leaf(t + 1); + if (e) { + const [n] = this.scroll.line(t), [r] = this.scroll.line(t + 1); + n === r && (i = e, s = 0) + } + } + [r, s] = i.position(s, !0); + const o = document.createRange(); + if (e > 0) return o.setStart(r, s), [i, s] = this.scroll.leaf(t + e), null == i ? null : ([r, s] = i.position(s, !0), o.setEnd(r, s), o.getBoundingClientRect()); + let l, a = "left"; + if (r instanceof Text) { + if (!r.data.length) return null; + s < r.data.length ? (o.setStart(r, s), o.setEnd(r, s + 1)) : (o.setStart(r, s - 1), o.setEnd(r, s), a = "right"), l = o.getBoundingClientRect() + } else { + if (!(i.domNode instanceof Element)) return null; + l = i.domNode.getBoundingClientRect(), s > 0 && (a = "right") + } + return { + bottom: l.top + l.height, + height: l.height, + left: l[a], + right: l[a], + top: l.top, + width: 0 + } + } + + getNativeRange() { + const t = document.getSelection(); + if (null == t || t.rangeCount <= 0) return null; + const e = t.getRangeAt(0); + if (null == e) return null; + const n = this.normalizeNative(e); + return l.info("getNativeRange", n), n + } + + getRange() { + const t = this.scroll.domNode; + if ("isConnected" in t && !t.isConnected) return [null, null]; + const e = this.getNativeRange(); + return null == e ? [null, null] : [this.normalizedToRange(e), e] + } + + hasFocus() { + return document.activeElement === this.root || null != document.activeElement && c(this.root, document.activeElement) + } + + normalizedToRange(t) { + const e = [[t.start.node, t.start.offset]]; + t.native.collapsed || e.push([t.end.node, t.end.offset]); + const n = e.map((t => { + const [e, n] = t, i = this.scroll.find(e, !0), s = i.offset(this.scroll); + return 0 === n ? s : i instanceof r.LeafBlot ? s + i.index(e, n) : s + i.length() + })), i = Math.min(Math.max(...n), this.scroll.length() - 1), s = Math.min(i, ...n); + return new a(s, i - s) + } + + normalizeNative(t) { + if (!c(this.root, t.startContainer) || !t.collapsed && !c(this.root, t.endContainer)) return null; + const e = { + start: {node: t.startContainer, offset: t.startOffset}, + end: {node: t.endContainer, offset: t.endOffset}, + native: t + }; + return [e.start, e.end].forEach((t => { + let {node: e, offset: n} = t; + for (; !(e instanceof Text) && e.childNodes.length > 0;) if (e.childNodes.length > n) e = e.childNodes[n], n = 0; else { + if (e.childNodes.length !== n) break; + e = e.lastChild, n = e instanceof Text ? e.data.length : e.childNodes.length > 0 ? e.childNodes.length : e.childNodes.length + 1 + } + t.node = e, t.offset = n + })), e + } + + rangeToNative(t) { + const e = this.scroll.length(), n = (t, n) => { + t = Math.min(e - 1, t); + const [r, i] = this.scroll.leaf(t); + return r ? r.position(i, n) : [null, -1] + }; + return [...n(t.index, !1), ...n(t.index + t.length, !0)] + } + + setNativeRange(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t, + r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : e, + i = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; + if (l.info("setNativeRange", t, e, n, r), null != t && (null == this.root.parentNode || null == t.parentNode || null == n.parentNode)) return; + const s = document.getSelection(); + if (null != s) if (null != t) { + this.hasFocus() || this.root.focus({preventScroll: !0}); + const {native: o} = this.getNativeRange() || {}; + if (null == o || i || t !== o.startContainer || e !== o.startOffset || n !== o.endContainer || r !== o.endOffset) { + t instanceof Element && "BR" === t.tagName && (e = Array.from(t.parentNode.childNodes).indexOf(t), t = t.parentNode), n instanceof Element && "BR" === n.tagName && (r = Array.from(n.parentNode.childNodes).indexOf(n), n = n.parentNode); + const i = document.createRange(); + i.setStart(t, e), i.setEnd(n, r), s.removeAllRanges(), s.addRange(i) + } + } else s.removeAllRanges(), this.root.blur() + } + + setRange(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : o.A.sources.API; + if ("string" == typeof e && (n = e, e = !1), l.info("setRange", t), null != t) { + const n = this.rangeToNative(t); + this.setNativeRange(...n, e) + } else this.setNativeRange(null); + this.update(n) + } + + update() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.A.sources.USER; + const e = this.lastRange, [n, r] = this.getRange(); + if (this.lastRange = n, this.lastNative = r, null != this.lastRange && (this.savedRange = this.lastRange), !(0, i.A)(e, this.lastRange)) { + if (!this.composing && null != r && r.native.collapsed && r.start.node !== this.cursor.textNode) { + const t = this.cursor.restore(); + t && this.setNativeRange(t.startNode, t.startOffset, t.endNode, t.endOffset) + } + const n = [o.A.events.SELECTION_CHANGE, (0, s.A)(this.lastRange), (0, s.A)(e), t]; + this.emitter.emit(o.A.events.EDITOR_CHANGE, ...n), t !== o.A.sources.SILENT && this.emitter.emit(...n) + } + } + } + }, 9609: function (t, e) { + "use strict"; + + class n { + static DEFAULTS = {modules: {}}; + static themes = {default: n}; + modules = {}; + + constructor(t, e) { + this.quill = t, this.options = e + } + + init() { + Object.keys(this.options.modules).forEach((t => { + null == this.modules[t] && this.addModule(t) + })) + } + + addModule(t) { + const e = this.quill.constructor.import(`modules/${t}`); + return this.modules[t] = new e(this.quill, this.options.modules[t] || {}), this.modules[t] + } + } + + e.A = n + }, 8276: function (t, e, n) { + "use strict"; + n.d(e, { + Hu: function () { + return l + }, gS: function () { + return s + }, qh: function () { + return o + } + }); + var r = n(6003); + const i = {scope: r.Scope.BLOCK, whitelist: ["right", "center", "justify"]}, + s = new r.Attributor("align", "align", i), o = new r.ClassAttributor("align", "ql-align", i), + l = new r.StyleAttributor("align", "text-align", i) + }, 9541: function (t, e, n) { + "use strict"; + n.d(e, { + l: function () { + return s + }, s: function () { + return o + } + }); + var r = n(6003), i = n(8638); + const s = new r.ClassAttributor("background", "ql-bg", {scope: r.Scope.INLINE}), + o = new i.a2("background", "background-color", {scope: r.Scope.INLINE}) + }, 9404: function (t, e, n) { + "use strict"; + n.d(e, { + Ay: function () { + return h + }, Cy: function () { + return d + }, EJ: function () { + return u + } + }); + var r = n(9698), i = n(3036), s = n(4541), o = n(4850), l = n(5508), a = n(580), c = n(6142); + + class u extends a.A { + static create(t) { + const e = super.create(t); + return e.setAttribute("spellcheck", "false"), e + } + + code(t, e) { + return this.children.map((t => t.length() <= 1 ? "" : t.domNode.innerText)).join("\n").slice(t, t + e) + } + + html(t, e) { + return `
    \n${(0, l.X)(this.code(t, e))}\n
    ` + } + } + + class h extends r.Ay { + static TAB = " "; + + static register() { + c.Ay.register(u) + } + } + + class d extends o.A { + } + + d.blotName = "code", d.tagName = "CODE", h.blotName = "code-block", h.className = "ql-code-block", h.tagName = "DIV", u.blotName = "code-block-container", u.className = "ql-code-block-container", u.tagName = "DIV", u.allowedChildren = [h], h.allowedChildren = [l.A, i.A, s.A], h.requiredContainer = u + }, 8638: function (t, e, n) { + "use strict"; + n.d(e, { + JM: function () { + return o + }, a2: function () { + return i + }, g3: function () { + return s + } + }); + var r = n(6003); + + class i extends r.StyleAttributor { + value(t) { + let e = super.value(t); + return e.startsWith("rgb(") ? (e = e.replace(/^[^\d]+/, "").replace(/[^\d]+$/, ""), `#${e.split(",").map((t => `00${parseInt(t, 10).toString(16)}`.slice(-2))).join("")}`) : e + } + } + + const s = new r.ClassAttributor("color", "ql-color", {scope: r.Scope.INLINE}), + o = new i("color", "color", {scope: r.Scope.INLINE}) + }, 7912: function (t, e, n) { + "use strict"; + n.d(e, { + Mc: function () { + return s + }, VL: function () { + return l + }, sY: function () { + return o + } + }); + var r = n(6003); + const i = {scope: r.Scope.BLOCK, whitelist: ["rtl"]}, s = new r.Attributor("direction", "dir", i), + o = new r.ClassAttributor("direction", "ql-direction", i), + l = new r.StyleAttributor("direction", "direction", i) + }, 6772: function (t, e, n) { + "use strict"; + n.d(e, { + q: function () { + return s + }, z: function () { + return l + } + }); + var r = n(6003); + const i = {scope: r.Scope.INLINE, whitelist: ["serif", "monospace"]}, + s = new r.ClassAttributor("font", "ql-font", i); + + class o extends r.StyleAttributor { + value(t) { + return super.value(t).replace(/["']/g, "") + } + } + + const l = new o("font", "font-family", i) + }, 664: function (t, e, n) { + "use strict"; + n.d(e, { + U: function () { + return i + }, r: function () { + return s + } + }); + var r = n(6003); + const i = new r.ClassAttributor("size", "ql-size", { + scope: r.Scope.INLINE, + whitelist: ["small", "large", "huge"] + }), s = new r.StyleAttributor("size", "font-size", { + scope: r.Scope.INLINE, + whitelist: ["10px", "18px", "32px"] + }) + }, 584: function (t, e, n) { + "use strict"; + n.d(e, { + Ay: function () { + return S + }, hV: function () { + return I + } + }); + var r = n(6003), i = n(5232), s = n.n(i), o = n(9698), l = n(6078), a = n(4266), c = n(6142), + u = n(8276), h = n(9541), d = n(9404), f = n(8638), p = n(7912), g = n(6772), m = n(664), + b = n(8123); + const y = /font-weight:\s*normal/, v = ["P", "OL", "UL"], A = t => t && v.includes(t.tagName), + x = /\bmso-list:[^;]*ignore/i, N = /\bmso-list:[^;]*\bl(\d+)/i, E = /\bmso-list:[^;]*\blevel(\d+)/i, + w = [function (t) { + "urn:schemas-microsoft-com:office:word" === t.documentElement.getAttribute("xmlns:w") && (t => { + const e = Array.from(t.querySelectorAll("[style*=mso-list]")), n = [], r = []; + e.forEach((t => { + (t.getAttribute("style") || "").match(x) ? n.push(t) : r.push(t) + })), n.forEach((t => t.parentNode?.removeChild(t))); + const i = t.documentElement.innerHTML, s = r.map((t => ((t, e) => { + const n = t.getAttribute("style"), r = n?.match(N); + if (!r) return null; + const i = Number(r[1]), s = n?.match(E), o = s ? Number(s[1]) : 1, + l = new RegExp(`@list l${i}:level${o}\\s*\\{[^\\}]*mso-level-number-format:\\s*([\\w-]+)`, "i"), + a = e.match(l); + return { + id: i, + indent: o, + type: a && "bullet" === a[1] ? "bullet" : "ordered", + element: t + } + })(t, i))).filter((t => t)); + for (; s.length;) { + const t = []; + let e = s.shift(); + for (; e;) t.push(e), e = s.length && s[0]?.element === e.element.nextElementSibling && s[0].id === e.id ? s.shift() : null; + const n = document.createElement("ul"); + t.forEach((t => { + const e = document.createElement("li"); + e.setAttribute("data-list", t.type), t.indent > 1 && e.setAttribute("class", "ql-indent-" + (t.indent - 1)), e.innerHTML = t.element.innerHTML, n.appendChild(e) + })); + const r = t[0]?.element, {parentNode: i} = r ?? {}; + r && i?.replaceChild(n, r), t.slice(1).forEach((t => { + let {element: e} = t; + i?.removeChild(e) + })) + } + })(t) + }, function (t) { + t.querySelector('[id^="docs-internal-guid-"]') && ((t => { + Array.from(t.querySelectorAll('b[style*="font-weight"]')).filter((t => t.getAttribute("style")?.match(y))).forEach((e => { + const n = t.createDocumentFragment(); + n.append(...e.childNodes), e.parentNode?.replaceChild(n, e) + })) + })(t), (t => { + Array.from(t.querySelectorAll("br")).filter((t => A(t.previousElementSibling) && A(t.nextElementSibling))).forEach((t => { + t.parentNode?.removeChild(t) + })) + })(t)) + }]; + const q = (0, l.A)("quill:clipboard"), k = [[Node.TEXT_NODE, function (t, e, n) { + let r = t.data; + if ("O:P" === t.parentElement?.tagName) return e.insert(r.trim()); + if (!R(t)) { + if (0 === r.trim().length && r.includes("\n") && !function (t, e) { + return t.previousElementSibling && t.nextElementSibling && !j(t.previousElementSibling, e) && !j(t.nextElementSibling, e) + }(t, n)) return e; + r = r.replace(/[^\S\u00a0]/g, " "), r = r.replace(/ {2,}/g, " "), (null == t.previousSibling && null != t.parentElement && j(t.parentElement, n) || t.previousSibling instanceof Element && j(t.previousSibling, n)) && (r = r.replace(/^ /, "")), (null == t.nextSibling && null != t.parentElement && j(t.parentElement, n) || t.nextSibling instanceof Element && j(t.nextSibling, n)) && (r = r.replace(/ $/, "")), r = r.replaceAll(" ", " ") + } + return e.insert(r) + }], [Node.TEXT_NODE, M], ["br", function (t, e) { + return T(e, "\n") || e.insert("\n"), e + }], [Node.ELEMENT_NODE, M], [Node.ELEMENT_NODE, function (t, e, n) { + const i = n.query(t); + if (null == i) return e; + if (i.prototype instanceof r.EmbedBlot) { + const e = {}, r = i.value(t); + if (null != r) return e[i.blotName] = r, (new (s())).insert(e, i.formats(t, n)) + } else if (i.prototype instanceof r.BlockBlot && !T(e, "\n") && e.insert("\n"), "blotName" in i && "formats" in i && "function" == typeof i.formats) return O(e, i.blotName, i.formats(t, n), n); + return e + }], [Node.ELEMENT_NODE, function (t, e, n) { + const i = r.Attributor.keys(t), s = r.ClassAttributor.keys(t), o = r.StyleAttributor.keys(t), + l = {}; + return i.concat(s).concat(o).forEach((e => { + let i = n.query(e, r.Scope.ATTRIBUTE); + null != i && (l[i.attrName] = i.value(t), l[i.attrName]) || (i = _[e], null == i || i.attrName !== e && i.keyName !== e || (l[i.attrName] = i.value(t) || void 0), i = L[e], null == i || i.attrName !== e && i.keyName !== e || (i = L[e], l[i.attrName] = i.value(t) || void 0)) + })), Object.entries(l).reduce(((t, e) => { + let [r, i] = e; + return O(t, r, i, n) + }), e) + }], [Node.ELEMENT_NODE, function (t, e, n) { + const r = {}, i = t.style || {}; + return "italic" === i.fontStyle && (r.italic = !0), "underline" === i.textDecoration && (r.underline = !0), "line-through" === i.textDecoration && (r.strike = !0), (i.fontWeight?.startsWith("bold") || parseInt(i.fontWeight, 10) >= 700) && (r.bold = !0), e = Object.entries(r).reduce(((t, e) => { + let [r, i] = e; + return O(t, r, i, n) + }), e), parseFloat(i.textIndent || 0) > 0 ? (new (s())).insert("\t").concat(e) : e + }], ["li", function (t, e, n) { + const r = n.query(t); + if (null == r || "list" !== r.blotName || !T(e, "\n")) return e; + let i = -1, o = t.parentNode; + for (; null != o;) ["OL", "UL"].includes(o.tagName) && (i += 1), o = o.parentNode; + return i <= 0 ? e : e.reduce(((t, e) => e.insert ? e.attributes && "number" == typeof e.attributes.indent ? t.push(e) : t.insert(e.insert, {indent: i, ...e.attributes || {}}) : t), new (s())) + }], ["ol, ul", function (t, e, n) { + const r = t; + let i = "OL" === r.tagName ? "ordered" : "bullet"; + const s = r.getAttribute("data-checked"); + return s && (i = "true" === s ? "checked" : "unchecked"), O(e, "list", i, n) + }], ["pre", function (t, e, n) { + const r = n.query("code-block"); + return O(e, "code-block", !r || !("formats" in r) || "function" != typeof r.formats || r.formats(t, n), n) + }], ["tr", function (t, e, n) { + const r = "TABLE" === t.parentElement?.tagName ? t.parentElement : t.parentElement?.parentElement; + return null != r ? O(e, "table", Array.from(r.querySelectorAll("tr")).indexOf(t) + 1, n) : e + }], ["b", B("bold")], ["i", B("italic")], ["strike", B("strike")], ["style", function () { + return new (s()) + }]], _ = [u.gS, p.Mc].reduce(((t, e) => (t[e.keyName] = e, t)), {}), + L = [u.Hu, h.s, f.JM, p.VL, g.z, m.r].reduce(((t, e) => (t[e.keyName] = e, t)), {}); + + class S extends a.A { + static DEFAULTS = {matchers: []}; + + constructor(t, e) { + super(t, e), this.quill.root.addEventListener("copy", (t => this.onCaptureCopy(t, !1))), this.quill.root.addEventListener("cut", (t => this.onCaptureCopy(t, !0))), this.quill.root.addEventListener("paste", this.onCapturePaste.bind(this)), this.matchers = [], k.concat(this.options.matchers ?? []).forEach((t => { + let [e, n] = t; + this.addMatcher(e, n) + })) + } + + addMatcher(t, e) { + this.matchers.push([t, e]) + } + + convert(t) { + let {html: e, text: n} = t, + r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + if (r[d.Ay.blotName]) return (new (s())).insert(n || "", {[d.Ay.blotName]: r[d.Ay.blotName]}); + if (!e) return (new (s())).insert(n || "", r); + const i = this.convertHTML(e); + return T(i, "\n") && (null == i.ops[i.ops.length - 1].attributes || r.table) ? i.compose((new (s())).retain(i.length() - 1).delete(1)) : i + } + + normalizeHTML(t) { + (t => { + t.documentElement && w.forEach((e => { + e(t) + })) + })(t) + } + + convertHTML(t) { + const e = (new DOMParser).parseFromString(t, "text/html"); + this.normalizeHTML(e); + const n = e.body, r = new WeakMap, [i, s] = this.prepareMatching(n, r); + return I(this.quill.scroll, n, i, s, r) + } + + dangerouslyPasteHTML(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : c.Ay.sources.API; + if ("string" == typeof t) { + const n = this.convert({html: t, text: ""}); + this.quill.setContents(n, e), this.quill.setSelection(0, c.Ay.sources.SILENT) + } else { + const r = this.convert({html: e, text: ""}); + this.quill.updateContents((new (s())).retain(t).concat(r), n), this.quill.setSelection(t + r.length(), c.Ay.sources.SILENT) + } + } + + onCaptureCopy(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + if (t.defaultPrevented) return; + t.preventDefault(); + const [n] = this.quill.selection.getRange(); + if (null == n) return; + const {html: r, text: i} = this.onCopy(n, e); + t.clipboardData?.setData("text/plain", i), t.clipboardData?.setData("text/html", r), e && (0, b.Xo)({ + range: n, + quill: this.quill + }) + } + + normalizeURIList(t) { + return t.split(/\r?\n/).filter((t => "#" !== t[0])).join("\n") + } + + onCapturePaste(t) { + if (t.defaultPrevented || !this.quill.isEnabled()) return; + t.preventDefault(); + const e = this.quill.getSelection(!0); + if (null == e) return; + const n = t.clipboardData?.getData("text/html"); + let r = t.clipboardData?.getData("text/plain"); + if (!n && !r) { + const e = t.clipboardData?.getData("text/uri-list"); + e && (r = this.normalizeURIList(e)) + } + const i = Array.from(t.clipboardData?.files || []); + if (!n && i.length > 0) this.quill.uploader.upload(e, i); else { + if (n && i.length > 0) { + const t = (new DOMParser).parseFromString(n, "text/html"); + if (1 === t.body.childElementCount && "IMG" === t.body.firstElementChild?.tagName) return void this.quill.uploader.upload(e, i) + } + this.onPaste(e, {html: n, text: r}) + } + } + + onCopy(t) { + const e = this.quill.getText(t); + return {html: this.quill.getSemanticHTML(t), text: e} + } + + onPaste(t, e) { + let {text: n, html: r} = e; + const i = this.quill.getFormat(t.index), o = this.convert({text: n, html: r}, i); + q.log("onPaste", o, {text: n, html: r}); + const l = (new (s())).retain(t.index).delete(t.length).concat(o); + this.quill.updateContents(l, c.Ay.sources.USER), this.quill.setSelection(l.length() - t.length, c.Ay.sources.SILENT), this.quill.scrollSelectionIntoView() + } + + prepareMatching(t, e) { + const n = [], r = []; + return this.matchers.forEach((i => { + const [s, o] = i; + switch (s) { + case Node.TEXT_NODE: + r.push(o); + break; + case Node.ELEMENT_NODE: + n.push(o); + break; + default: + Array.from(t.querySelectorAll(s)).forEach((t => { + if (e.has(t)) { + const n = e.get(t); + n?.push(o) + } else e.set(t, [o]) + })) + } + })), [n, r] + } + } + + function O(t, e, n, r) { + return r.query(e) ? t.reduce(((t, r) => { + if (!r.insert) return t; + if (r.attributes && r.attributes[e]) return t.push(r); + const i = n ? {[e]: n} : {}; + return t.insert(r.insert, {...i, ...r.attributes}) + }), new (s())) : t + } + + function T(t, e) { + let n = ""; + for (let r = t.ops.length - 1; r >= 0 && n.length < e.length; --r) { + const e = t.ops[r]; + if ("string" != typeof e.insert) break; + n = e.insert + n + } + return n.slice(-1 * e.length) === e + } + + function j(t, e) { + if (!(t instanceof Element)) return !1; + const n = e.query(t); + return !(n && n.prototype instanceof r.EmbedBlot) && ["address", "article", "blockquote", "canvas", "dd", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "iframe", "li", "main", "nav", "ol", "output", "p", "pre", "section", "table", "td", "tr", "ul", "video"].includes(t.tagName.toLowerCase()) + } + + const C = new WeakMap; + + function R(t) { + return null != t && (C.has(t) || ("PRE" === t.tagName ? C.set(t, !0) : C.set(t, R(t.parentNode))), C.get(t)) + } + + function I(t, e, n, r, i) { + return e.nodeType === e.TEXT_NODE ? r.reduce(((n, r) => r(e, n, t)), new (s())) : e.nodeType === e.ELEMENT_NODE ? Array.from(e.childNodes || []).reduce(((s, o) => { + let l = I(t, o, n, r, i); + return o.nodeType === e.ELEMENT_NODE && (l = n.reduce(((e, n) => n(o, e, t)), l), l = (i.get(o) || []).reduce(((e, n) => n(o, e, t)), l)), s.concat(l) + }), new (s())) : new (s()) + } + + function B(t) { + return (e, n, r) => O(n, t, !0, r) + } + + function M(t, e, n) { + if (!T(e, "\n")) { + if (j(t, n) && (t.childNodes.length > 0 || t instanceof HTMLParagraphElement)) return e.insert("\n"); + if (e.length() > 0 && t.nextSibling) { + let r = t.nextSibling; + for (; null != r;) { + if (j(r, n)) return e.insert("\n"); + const t = n.query(r); + if (t && t.prototype instanceof o.zo) return e.insert("\n"); + r = r.firstChild + } + } + } + return e + } + }, 8123: function (t, e, n) { + "use strict"; + n.d(e, { + Ay: function () { + return f + }, Xo: function () { + return v + } + }); + var r = n(5123), i = n(3707), s = n(5232), o = n.n(s), l = n(6003), a = n(6142), c = n(6078), + u = n(4266); + const h = (0, c.A)("quill:keyboard"), d = /Mac/i.test(navigator.platform) ? "metaKey" : "ctrlKey"; + + class f extends u.A { + static match(t, e) { + return !["altKey", "ctrlKey", "metaKey", "shiftKey"].some((n => !!e[n] !== t[n] && null !== e[n])) && (e.key === t.key || e.key === t.which) + } + + constructor(t, e) { + super(t, e), this.bindings = {}, Object.keys(this.options.bindings).forEach((t => { + this.options.bindings[t] && this.addBinding(this.options.bindings[t]) + })), this.addBinding({ + key: "Enter", + shiftKey: null + }, this.handleEnter), this.addBinding({ + key: "Enter", + metaKey: null, + ctrlKey: null, + altKey: null + }, (() => { + })), /Firefox/i.test(navigator.userAgent) ? (this.addBinding({key: "Backspace"}, {collapsed: !0}, this.handleBackspace), this.addBinding({key: "Delete"}, {collapsed: !0}, this.handleDelete)) : (this.addBinding({key: "Backspace"}, { + collapsed: !0, + prefix: /^.?$/ + }, this.handleBackspace), this.addBinding({key: "Delete"}, { + collapsed: !0, + suffix: /^.?$/ + }, this.handleDelete)), this.addBinding({key: "Backspace"}, {collapsed: !1}, this.handleDeleteRange), this.addBinding({key: "Delete"}, {collapsed: !1}, this.handleDeleteRange), this.addBinding({ + key: "Backspace", + altKey: null, + ctrlKey: null, + metaKey: null, + shiftKey: null + }, {collapsed: !0, offset: 0}, this.handleBackspace), this.listen() + } + + addBinding(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + const r = function (t) { + if ("string" == typeof t || "number" == typeof t) t = {key: t}; else { + if ("object" != typeof t) return null; + t = (0, i.A)(t) + } + return t.shortKey && (t[d] = t.shortKey, delete t.shortKey), t + }(t); + null != r ? ("function" == typeof e && (e = {handler: e}), "function" == typeof n && (n = {handler: n}), (Array.isArray(r.key) ? r.key : [r.key]).forEach((t => { + const i = {...r, key: t, ...e, ...n}; + this.bindings[i.key] = this.bindings[i.key] || [], this.bindings[i.key].push(i) + }))) : h.warn("Attempted to add invalid keyboard binding", r) + } + + listen() { + this.quill.root.addEventListener("keydown", (t => { + if (t.defaultPrevented || t.isComposing) return; + if (229 === t.keyCode && ("Enter" === t.key || "Backspace" === t.key)) return; + const e = (this.bindings[t.key] || []).concat(this.bindings[t.which] || []).filter((e => f.match(t, e))); + if (0 === e.length) return; + const n = a.Ay.find(t.target, !0); + if (n && n.scroll !== this.quill.scroll) return; + const i = this.quill.getSelection(); + if (null == i || !this.quill.hasFocus()) return; + const [s, o] = this.quill.getLine(i.index), [c, u] = this.quill.getLeaf(i.index), [h, d] = 0 === i.length ? [c, u] : this.quill.getLeaf(i.index + i.length), + p = c instanceof l.TextBlot ? c.value().slice(0, u) : "", + g = h instanceof l.TextBlot ? h.value().slice(d) : "", m = { + collapsed: 0 === i.length, + empty: 0 === i.length && s.length() <= 1, + format: this.quill.getFormat(i), + line: s, + offset: o, + prefix: p, + suffix: g, + event: t + }; + e.some((t => { + if (null != t.collapsed && t.collapsed !== m.collapsed) return !1; + if (null != t.empty && t.empty !== m.empty) return !1; + if (null != t.offset && t.offset !== m.offset) return !1; + if (Array.isArray(t.format)) { + if (t.format.every((t => null == m.format[t]))) return !1 + } else if ("object" == typeof t.format && !Object.keys(t.format).every((e => !0 === t.format[e] ? null != m.format[e] : !1 === t.format[e] ? null == m.format[e] : (0, r.A)(t.format[e], m.format[e])))) return !1; + return !(null != t.prefix && !t.prefix.test(m.prefix) || null != t.suffix && !t.suffix.test(m.suffix) || !0 === t.handler.call(this, i, m, t)) + })) && t.preventDefault() + })) + } + + handleBackspace(t, e) { + const n = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(e.prefix) ? 2 : 1; + if (0 === t.index || this.quill.getLength() <= 1) return; + let r = {}; + const [i] = this.quill.getLine(t.index); + let l = (new (o())).retain(t.index - n).delete(n); + if (0 === e.offset) { + const [e] = this.quill.getLine(t.index - 1); + if (e && !("block" === e.statics.blotName && e.length() <= 1)) { + const e = i.formats(), n = this.quill.getFormat(t.index - 1, 1); + if (r = s.AttributeMap.diff(e, n) || {}, Object.keys(r).length > 0) { + const e = (new (o())).retain(t.index + i.length() - 2).retain(1, r); + l = l.compose(e) + } + } + } + this.quill.updateContents(l, a.Ay.sources.USER), this.quill.focus() + } + + handleDelete(t, e) { + const n = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(e.suffix) ? 2 : 1; + if (t.index >= this.quill.getLength() - n) return; + let r = {}; + const [i] = this.quill.getLine(t.index); + let l = (new (o())).retain(t.index).delete(n); + if (e.offset >= i.length() - 1) { + const [e] = this.quill.getLine(t.index + 1); + if (e) { + const n = i.formats(), o = this.quill.getFormat(t.index, 1); + r = s.AttributeMap.diff(n, o) || {}, Object.keys(r).length > 0 && (l = l.retain(e.length() - 1).retain(1, r)) + } + } + this.quill.updateContents(l, a.Ay.sources.USER), this.quill.focus() + } + + handleDeleteRange(t) { + v({range: t, quill: this.quill}), this.quill.focus() + } + + handleEnter(t, e) { + const n = Object.keys(e.format).reduce(((t, n) => (this.quill.scroll.query(n, l.Scope.BLOCK) && !Array.isArray(e.format[n]) && (t[n] = e.format[n]), t)), {}), + r = (new (o())).retain(t.index).delete(t.length).insert("\n", n); + this.quill.updateContents(r, a.Ay.sources.USER), this.quill.setSelection(t.index + 1, a.Ay.sources.SILENT), this.quill.focus() + } + } + + const p = { + bindings: { + bold: b("bold"), + italic: b("italic"), + underline: b("underline"), + indent: { + key: "Tab", format: ["blockquote", "indent", "list"], handler(t, e) { + return !(!e.collapsed || 0 === e.offset) || (this.quill.format("indent", "+1", a.Ay.sources.USER), !1) + } + }, + outdent: { + key: "Tab", shiftKey: !0, format: ["blockquote", "indent", "list"], handler(t, e) { + return !(!e.collapsed || 0 === e.offset) || (this.quill.format("indent", "-1", a.Ay.sources.USER), !1) + } + }, + "outdent backspace": { + key: "Backspace", + collapsed: !0, + shiftKey: null, + metaKey: null, + ctrlKey: null, + altKey: null, + format: ["indent", "list"], + offset: 0, + handler(t, e) { + null != e.format.indent ? this.quill.format("indent", "-1", a.Ay.sources.USER) : null != e.format.list && this.quill.format("list", !1, a.Ay.sources.USER) + } + }, + "indent code-block": g(!0), + "outdent code-block": g(!1), + "remove tab": { + key: "Tab", shiftKey: !0, collapsed: !0, prefix: /\t$/, handler(t) { + this.quill.deleteText(t.index - 1, 1, a.Ay.sources.USER) + } + }, + tab: { + key: "Tab", handler(t, e) { + if (e.format.table) return !0; + this.quill.history.cutoff(); + const n = (new (o())).retain(t.index).delete(t.length).insert("\t"); + return this.quill.updateContents(n, a.Ay.sources.USER), this.quill.history.cutoff(), this.quill.setSelection(t.index + 1, a.Ay.sources.SILENT), !1 + } + }, + "blockquote empty enter": { + key: "Enter", + collapsed: !0, + format: ["blockquote"], + empty: !0, + handler() { + this.quill.format("blockquote", !1, a.Ay.sources.USER) + } + }, + "list empty enter": { + key: "Enter", collapsed: !0, format: ["list"], empty: !0, handler(t, e) { + const n = {list: !1}; + e.format.indent && (n.indent = !1), this.quill.formatLine(t.index, t.length, n, a.Ay.sources.USER) + } + }, + "checklist enter": { + key: "Enter", collapsed: !0, format: {list: "checked"}, handler(t) { + const [e, n] = this.quill.getLine(t.index), r = {...e.formats(), list: "checked"}, + i = (new (o())).retain(t.index).insert("\n", r).retain(e.length() - n - 1).retain(1, {list: "unchecked"}); + this.quill.updateContents(i, a.Ay.sources.USER), this.quill.setSelection(t.index + 1, a.Ay.sources.SILENT), this.quill.scrollSelectionIntoView() + } + }, + "header enter": { + key: "Enter", collapsed: !0, format: ["header"], suffix: /^$/, handler(t, e) { + const [n, r] = this.quill.getLine(t.index), + i = (new (o())).retain(t.index).insert("\n", e.format).retain(n.length() - r - 1).retain(1, {header: null}); + this.quill.updateContents(i, a.Ay.sources.USER), this.quill.setSelection(t.index + 1, a.Ay.sources.SILENT), this.quill.scrollSelectionIntoView() + } + }, + "table backspace": { + key: "Backspace", format: ["table"], collapsed: !0, offset: 0, handler() { + } + }, + "table delete": { + key: "Delete", format: ["table"], collapsed: !0, suffix: /^$/, handler() { + } + }, + "table enter": { + key: "Enter", shiftKey: null, format: ["table"], handler(t) { + const e = this.quill.getModule("table"); + if (e) { + const [n, r, i, s] = e.getTable(t), l = function (t, e, n, r) { + return null == e.prev && null == e.next ? null == n.prev && null == n.next ? 0 === r ? -1 : 1 : null == n.prev ? -1 : 1 : null == e.prev ? -1 : null == e.next ? 1 : null + }(0, r, i, s); + if (null == l) return; + let c = n.offset(); + if (l < 0) { + const e = (new (o())).retain(c).insert("\n"); + this.quill.updateContents(e, a.Ay.sources.USER), this.quill.setSelection(t.index + 1, t.length, a.Ay.sources.SILENT) + } else if (l > 0) { + c += n.length(); + const t = (new (o())).retain(c).insert("\n"); + this.quill.updateContents(t, a.Ay.sources.USER), this.quill.setSelection(c, a.Ay.sources.USER) + } + } + } + }, + "table tab": { + key: "Tab", shiftKey: null, format: ["table"], handler(t, e) { + const {event: n, line: r} = e, i = r.offset(this.quill.scroll); + n.shiftKey ? this.quill.setSelection(i - 1, a.Ay.sources.USER) : this.quill.setSelection(i + r.length(), a.Ay.sources.USER) + } + }, + "list autofill": { + key: " ", + shiftKey: null, + collapsed: !0, + format: {"code-block": !1, blockquote: !1, table: !1}, + prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/, + handler(t, e) { + if (null == this.quill.scroll.query("list")) return !0; + const {length: n} = e.prefix, [r, i] = this.quill.getLine(t.index); + if (i > n) return !0; + let s; + switch (e.prefix.trim()) { + case"[]": + case"[ ]": + s = "unchecked"; + break; + case"[x]": + s = "checked"; + break; + case"-": + case"*": + s = "bullet"; + break; + default: + s = "ordered" + } + this.quill.insertText(t.index, " ", a.Ay.sources.USER), this.quill.history.cutoff(); + const l = (new (o())).retain(t.index - i).delete(n + 1).retain(r.length() - 2 - i).retain(1, {list: s}); + return this.quill.updateContents(l, a.Ay.sources.USER), this.quill.history.cutoff(), this.quill.setSelection(t.index - n, a.Ay.sources.SILENT), !1 + } + }, + "code exit": { + key: "Enter", + collapsed: !0, + format: ["code-block"], + prefix: /^$/, + suffix: /^\s*$/, + handler(t) { + const [e, n] = this.quill.getLine(t.index); + let r = 2, i = e; + for (; null != i && i.length() <= 1 && i.formats()["code-block"];) if (i = i.prev, r -= 1, r <= 0) { + const r = (new (o())).retain(t.index + e.length() - n - 2).retain(1, {"code-block": null}).delete(1); + return this.quill.updateContents(r, a.Ay.sources.USER), this.quill.setSelection(t.index - 1, a.Ay.sources.SILENT), !1 + } + return !0 + } + }, + "embed left": m("ArrowLeft", !1), + "embed left shift": m("ArrowLeft", !0), + "embed right": m("ArrowRight", !1), + "embed right shift": m("ArrowRight", !0), + "table down": y(!1), + "table up": y(!0) + } + }; + + function g(t) { + return { + key: "Tab", shiftKey: !t, format: {"code-block": !0}, handler(e, n) { + let {event: r} = n; + const i = this.quill.scroll.query("code-block"), {TAB: s} = i; + if (0 === e.length && !r.shiftKey) return this.quill.insertText(e.index, s, a.Ay.sources.USER), void this.quill.setSelection(e.index + s.length, a.Ay.sources.SILENT); + const o = 0 === e.length ? this.quill.getLines(e.index, 1) : this.quill.getLines(e); + let {index: l, length: c} = e; + o.forEach(((e, n) => { + t ? (e.insertAt(0, s), 0 === n ? l += s.length : c += s.length) : e.domNode.textContent.startsWith(s) && (e.deleteAt(0, s.length), 0 === n ? l -= s.length : c -= s.length) + })), this.quill.update(a.Ay.sources.USER), this.quill.setSelection(l, c, a.Ay.sources.SILENT) + } + } + } + + function m(t, e) { + return { + key: t, + shiftKey: e, + altKey: null, + ["ArrowLeft" === t ? "prefix" : "suffix"]: /^$/, + handler(n) { + let {index: r} = n; + "ArrowRight" === t && (r += n.length + 1); + const [i] = this.quill.getLeaf(r); + return !(i instanceof l.EmbedBlot && ("ArrowLeft" === t ? e ? this.quill.setSelection(n.index - 1, n.length + 1, a.Ay.sources.USER) : this.quill.setSelection(n.index - 1, a.Ay.sources.USER) : e ? this.quill.setSelection(n.index, n.length + 1, a.Ay.sources.USER) : this.quill.setSelection(n.index + n.length + 1, a.Ay.sources.USER), 1)) + } + } + } + + function b(t) { + return { + key: t[0], shortKey: !0, handler(e, n) { + this.quill.format(t, !n.format[t], a.Ay.sources.USER) + } + } + } + + function y(t) { + return { + key: t ? "ArrowUp" : "ArrowDown", collapsed: !0, format: ["table"], handler(e, n) { + const r = t ? "prev" : "next", i = n.line, s = i.parent[r]; + if (null != s) { + if ("table-row" === s.statics.blotName) { + let t = s.children.head, e = i; + for (; null != e.prev;) e = e.prev, t = t.next; + const r = t.offset(this.quill.scroll) + Math.min(n.offset, t.length() - 1); + this.quill.setSelection(r, 0, a.Ay.sources.USER) + } + } else { + const e = i.table()[r]; + null != e && (t ? this.quill.setSelection(e.offset(this.quill.scroll) + e.length() - 1, 0, a.Ay.sources.USER) : this.quill.setSelection(e.offset(this.quill.scroll), 0, a.Ay.sources.USER)) + } + return !1 + } + } + } + + function v(t) { + let {quill: e, range: n} = t; + const r = e.getLines(n); + let i = {}; + if (r.length > 1) { + const t = r[0].formats(), e = r[r.length - 1].formats(); + i = s.AttributeMap.diff(e, t) || {} + } + e.deleteText(n, a.Ay.sources.USER), Object.keys(i).length > 0 && e.formatLine(n.index, 1, i, a.Ay.sources.USER), e.setSelection(n.index, a.Ay.sources.SILENT) + } + + f.DEFAULTS = p + }, 8920: function (t) { + "use strict"; + var e = Object.prototype.hasOwnProperty, n = "~"; + + function r() { + } + + function i(t, e, n) { + this.fn = t, this.context = e, this.once = n || !1 + } + + function s(t, e, r, s, o) { + if ("function" != typeof r) throw new TypeError("The listener must be a function"); + var l = new i(r, s || t, o), a = n ? n + e : e; + return t._events[a] ? t._events[a].fn ? t._events[a] = [t._events[a], l] : t._events[a].push(l) : (t._events[a] = l, t._eventsCount++), t + } + + function o(t, e) { + 0 == --t._eventsCount ? t._events = new r : delete t._events[e] + } + + function l() { + this._events = new r, this._eventsCount = 0 + } + + Object.create && (r.prototype = Object.create(null), (new r).__proto__ || (n = !1)), l.prototype.eventNames = function () { + var t, r, i = []; + if (0 === this._eventsCount) return i; + for (r in t = this._events) e.call(t, r) && i.push(n ? r.slice(1) : r); + return Object.getOwnPropertySymbols ? i.concat(Object.getOwnPropertySymbols(t)) : i + }, l.prototype.listeners = function (t) { + var e = n ? n + t : t, r = this._events[e]; + if (!r) return []; + if (r.fn) return [r.fn]; + for (var i = 0, s = r.length, o = new Array(s); i < s; i++) o[i] = r[i].fn; + return o + }, l.prototype.listenerCount = function (t) { + var e = n ? n + t : t, r = this._events[e]; + return r ? r.fn ? 1 : r.length : 0 + }, l.prototype.emit = function (t, e, r, i, s, o) { + var l = n ? n + t : t; + if (!this._events[l]) return !1; + var a, c, u = this._events[l], h = arguments.length; + if (u.fn) { + switch (u.once && this.removeListener(t, u.fn, void 0, !0), h) { + case 1: + return u.fn.call(u.context), !0; + case 2: + return u.fn.call(u.context, e), !0; + case 3: + return u.fn.call(u.context, e, r), !0; + case 4: + return u.fn.call(u.context, e, r, i), !0; + case 5: + return u.fn.call(u.context, e, r, i, s), !0; + case 6: + return u.fn.call(u.context, e, r, i, s, o), !0 + } + for (c = 1, a = new Array(h - 1); c < h; c++) a[c - 1] = arguments[c]; + u.fn.apply(u.context, a) + } else { + var d, f = u.length; + for (c = 0; c < f; c++) switch (u[c].once && this.removeListener(t, u[c].fn, void 0, !0), h) { + case 1: + u[c].fn.call(u[c].context); + break; + case 2: + u[c].fn.call(u[c].context, e); + break; + case 3: + u[c].fn.call(u[c].context, e, r); + break; + case 4: + u[c].fn.call(u[c].context, e, r, i); + break; + default: + if (!a) for (d = 1, a = new Array(h - 1); d < h; d++) a[d - 1] = arguments[d]; + u[c].fn.apply(u[c].context, a) + } + } + return !0 + }, l.prototype.on = function (t, e, n) { + return s(this, t, e, n, !1) + }, l.prototype.once = function (t, e, n) { + return s(this, t, e, n, !0) + }, l.prototype.removeListener = function (t, e, r, i) { + var s = n ? n + t : t; + if (!this._events[s]) return this; + if (!e) return o(this, s), this; + var l = this._events[s]; + if (l.fn) l.fn !== e || i && !l.once || r && l.context !== r || o(this, s); else { + for (var a = 0, c = [], u = l.length; a < u; a++) (l[a].fn !== e || i && !l[a].once || r && l[a].context !== r) && c.push(l[a]); + c.length ? this._events[s] = 1 === c.length ? c[0] : c : o(this, s) + } + return this + }, l.prototype.removeAllListeners = function (t) { + var e; + return t ? (e = n ? n + t : t, this._events[e] && o(this, e)) : (this._events = new r, this._eventsCount = 0), this + }, l.prototype.off = l.prototype.removeListener, l.prototype.addListener = l.prototype.on, l.prefixed = n, l.EventEmitter = l, t.exports = l + }, 5090: function (t) { + var e = -1, n = 1, r = 0; + + function i(t, g, m, b, y) { + if (t === g) return t ? [[r, t]] : []; + if (null != m) { + var A = function (t, e, n) { + var r = "number" == typeof n ? {index: n, length: 0} : n.oldRange, + i = "number" == typeof n ? null : n.newRange, s = t.length, o = e.length; + if (0 === r.length && (null === i || 0 === i.length)) { + var l = r.index, a = t.slice(0, l), c = t.slice(l), u = i ? i.index : null, + h = l + o - s; + if ((null === u || u === h) && !(h < 0 || h > o)) { + var d = e.slice(0, h); + if ((g = e.slice(h)) === c) { + var f = Math.min(l, h); + if ((b = a.slice(0, f)) === (A = d.slice(0, f))) return v(b, a.slice(f), d.slice(f), c) + } + } + if (null === u || u === l) { + var p = l, g = (d = e.slice(0, p), e.slice(p)); + if (d === a) { + var m = Math.min(s - p, o - p); + if ((y = c.slice(c.length - m)) === (x = g.slice(g.length - m))) return v(a, c.slice(0, c.length - m), g.slice(0, g.length - m), y) + } + } + } + if (r.length > 0 && i && 0 === i.length) { + var b = t.slice(0, r.index), y = t.slice(r.index + r.length); + if (!(o < (f = b.length) + (m = y.length))) { + var A = e.slice(0, f), x = e.slice(o - m); + if (b === A && y === x) return v(b, t.slice(f, s - m), e.slice(f, o - m), y) + } + } + return null + }(t, g, m); + if (A) return A + } + var x = o(t, g), N = t.substring(0, x); + x = a(t = t.substring(x), g = g.substring(x)); + var E = t.substring(t.length - x), w = function (t, l) { + var c; + if (!t) return [[n, l]]; + if (!l) return [[e, t]]; + var u = t.length > l.length ? t : l, h = t.length > l.length ? l : t, d = u.indexOf(h); + if (-1 !== d) return c = [[n, u.substring(0, d)], [r, h], [n, u.substring(d + h.length)]], t.length > l.length && (c[0][0] = c[2][0] = e), c; + if (1 === h.length) return [[e, t], [n, l]]; + var f = function (t, e) { + var n = t.length > e.length ? t : e, r = t.length > e.length ? e : t; + if (n.length < 4 || 2 * r.length < n.length) return null; + + function i(t, e, n) { + for (var r, i, s, l, c = t.substring(n, n + Math.floor(t.length / 4)), u = -1, h = ""; -1 !== (u = e.indexOf(c, u + 1));) { + var d = o(t.substring(n), e.substring(u)), + f = a(t.substring(0, n), e.substring(0, u)); + h.length < f + d && (h = e.substring(u - f, u) + e.substring(u, u + d), r = t.substring(0, n - f), i = t.substring(n + d), s = e.substring(0, u - f), l = e.substring(u + d)) + } + return 2 * h.length >= t.length ? [r, i, s, l, h] : null + } + + var s, l, c, u, h, d = i(n, r, Math.ceil(n.length / 4)), + f = i(n, r, Math.ceil(n.length / 2)); + return d || f ? (s = f ? d && d[4].length > f[4].length ? d : f : d, t.length > e.length ? (l = s[0], c = s[1], u = s[2], h = s[3]) : (u = s[0], h = s[1], l = s[2], c = s[3]), [l, c, u, h, s[4]]) : null + }(t, l); + if (f) { + var p = f[0], g = f[1], m = f[2], b = f[3], y = f[4], v = i(p, m), A = i(g, b); + return v.concat([[r, y]], A) + } + return function (t, r) { + for (var i = t.length, o = r.length, l = Math.ceil((i + o) / 2), a = l, c = 2 * l, u = new Array(c), h = new Array(c), d = 0; d < c; d++) u[d] = -1, h[d] = -1; + u[a + 1] = 0, h[a + 1] = 0; + for (var f = i - o, p = f % 2 != 0, g = 0, m = 0, b = 0, y = 0, v = 0; v < l; v++) { + for (var A = -v + g; A <= v - m; A += 2) { + for (var x = a + A, N = (_ = A === -v || A !== v && u[x - 1] < u[x + 1] ? u[x + 1] : u[x - 1] + 1) - A; _ < i && N < o && t.charAt(_) === r.charAt(N);) _++, N++; + if (u[x] = _, _ > i) m += 2; else if (N > o) g += 2; else if (p && (q = a + f - A) >= 0 && q < c && -1 !== h[q] && _ >= (w = i - h[q])) return s(t, r, _, N) + } + for (var E = -v + b; E <= v - y; E += 2) { + for (var w, q = a + E, k = (w = E === -v || E !== v && h[q - 1] < h[q + 1] ? h[q + 1] : h[q - 1] + 1) - E; w < i && k < o && t.charAt(i - w - 1) === r.charAt(o - k - 1);) w++, k++; + if (h[q] = w, w > i) y += 2; else if (k > o) b += 2; else if (!p) { + var _; + if ((x = a + f - E) >= 0 && x < c && -1 !== u[x]) if (N = a + (_ = u[x]) - x, _ >= (w = i - w)) return s(t, r, _, N) + } + } + } + return [[e, t], [n, r]] + }(t, l) + }(t = t.substring(0, t.length - x), g = g.substring(0, g.length - x)); + return N && w.unshift([r, N]), E && w.push([r, E]), p(w, y), b && function (t) { + for (var i = !1, s = [], o = 0, g = null, m = 0, b = 0, y = 0, v = 0, A = 0; m < t.length;) t[m][0] == r ? (s[o++] = m, b = v, y = A, v = 0, A = 0, g = t[m][1]) : (t[m][0] == n ? v += t[m][1].length : A += t[m][1].length, g && g.length <= Math.max(b, y) && g.length <= Math.max(v, A) && (t.splice(s[o - 1], 0, [e, g]), t[s[o - 1] + 1][0] = n, o--, m = --o > 0 ? s[o - 1] : -1, b = 0, y = 0, v = 0, A = 0, g = null, i = !0)), m++; + for (i && p(t), function (t) { + function e(t, e) { + if (!t || !e) return 6; + var n = t.charAt(t.length - 1), r = e.charAt(0), i = n.match(c), s = r.match(c), + o = i && n.match(u), l = s && r.match(u), a = o && n.match(h), p = l && r.match(h), + g = a && t.match(d), m = p && e.match(f); + return g || m ? 5 : a || p ? 4 : i && !o && l ? 3 : o || l ? 2 : i || s ? 1 : 0 + } + + for (var n = 1; n < t.length - 1;) { + if (t[n - 1][0] == r && t[n + 1][0] == r) { + var i = t[n - 1][1], s = t[n][1], o = t[n + 1][1], l = a(i, s); + if (l) { + var p = s.substring(s.length - l); + i = i.substring(0, i.length - l), s = p + s.substring(0, s.length - l), o = p + o + } + for (var g = i, m = s, b = o, y = e(i, s) + e(s, o); s.charAt(0) === o.charAt(0);) { + i += s.charAt(0), s = s.substring(1) + o.charAt(0), o = o.substring(1); + var v = e(i, s) + e(s, o); + v >= y && (y = v, g = i, m = s, b = o) + } + t[n - 1][1] != g && (g ? t[n - 1][1] = g : (t.splice(n - 1, 1), n--), t[n][1] = m, b ? t[n + 1][1] = b : (t.splice(n + 1, 1), n--)) + } + n++ + } + }(t), m = 1; m < t.length;) { + if (t[m - 1][0] == e && t[m][0] == n) { + var x = t[m - 1][1], N = t[m][1], E = l(x, N), w = l(N, x); + E >= w ? (E >= x.length / 2 || E >= N.length / 2) && (t.splice(m, 0, [r, N.substring(0, E)]), t[m - 1][1] = x.substring(0, x.length - E), t[m + 1][1] = N.substring(E), m++) : (w >= x.length / 2 || w >= N.length / 2) && (t.splice(m, 0, [r, x.substring(0, w)]), t[m - 1][0] = n, t[m - 1][1] = N.substring(0, N.length - w), t[m + 1][0] = e, t[m + 1][1] = x.substring(w), m++), m++ + } + m++ + } + }(w), w + } + + function s(t, e, n, r) { + var s = t.substring(0, n), o = e.substring(0, r), l = t.substring(n), a = e.substring(r), + c = i(s, o), u = i(l, a); + return c.concat(u) + } + + function o(t, e) { + if (!t || !e || t.charAt(0) !== e.charAt(0)) return 0; + for (var n = 0, r = Math.min(t.length, e.length), i = r, s = 0; n < i;) t.substring(s, i) == e.substring(s, i) ? s = n = i : r = i, i = Math.floor((r - n) / 2 + n); + return g(t.charCodeAt(i - 1)) && i--, i + } + + function l(t, e) { + var n = t.length, r = e.length; + if (0 == n || 0 == r) return 0; + n > r ? t = t.substring(n - r) : n < r && (e = e.substring(0, n)); + var i = Math.min(n, r); + if (t == e) return i; + for (var s = 0, o = 1; ;) { + var l = t.substring(i - o), a = e.indexOf(l); + if (-1 == a) return s; + o += a, 0 != a && t.substring(i - o) != e.substring(0, o) || (s = o, o++) + } + } + + function a(t, e) { + if (!t || !e || t.slice(-1) !== e.slice(-1)) return 0; + for (var n = 0, r = Math.min(t.length, e.length), i = r, s = 0; n < i;) t.substring(t.length - i, t.length - s) == e.substring(e.length - i, e.length - s) ? s = n = i : r = i, i = Math.floor((r - n) / 2 + n); + return m(t.charCodeAt(t.length - i)) && i--, i + } + + var c = /[^a-zA-Z0-9]/, u = /\s/, h = /[\r\n]/, d = /\n\r?\n$/, f = /^\r?\n\r?\n/; + + function p(t, i) { + t.push([r, ""]); + for (var s, l = 0, c = 0, u = 0, h = "", d = ""; l < t.length;) if (l < t.length - 1 && !t[l][1]) t.splice(l, 1); else switch (t[l][0]) { + case n: + u++, d += t[l][1], l++; + break; + case e: + c++, h += t[l][1], l++; + break; + case r: + var f = l - u - c - 1; + if (i) { + if (f >= 0 && y(t[f][1])) { + var g = t[f][1].slice(-1); + if (t[f][1] = t[f][1].slice(0, -1), h = g + h, d = g + d, !t[f][1]) { + t.splice(f, 1), l--; + var m = f - 1; + t[m] && t[m][0] === n && (u++, d = t[m][1] + d, m--), t[m] && t[m][0] === e && (c++, h = t[m][1] + h, m--), f = m + } + } + b(t[l][1]) && (g = t[l][1].charAt(0), t[l][1] = t[l][1].slice(1), h += g, d += g) + } + if (l < t.length - 1 && !t[l][1]) { + t.splice(l, 1); + break + } + if (h.length > 0 || d.length > 0) { + h.length > 0 && d.length > 0 && (0 !== (s = o(d, h)) && (f >= 0 ? t[f][1] += d.substring(0, s) : (t.splice(0, 0, [r, d.substring(0, s)]), l++), d = d.substring(s), h = h.substring(s)), 0 !== (s = a(d, h)) && (t[l][1] = d.substring(d.length - s) + t[l][1], d = d.substring(0, d.length - s), h = h.substring(0, h.length - s))); + var v = u + c; + 0 === h.length && 0 === d.length ? (t.splice(l - v, v), l -= v) : 0 === h.length ? (t.splice(l - v, v, [n, d]), l = l - v + 1) : 0 === d.length ? (t.splice(l - v, v, [e, h]), l = l - v + 1) : (t.splice(l - v, v, [e, h], [n, d]), l = l - v + 2) + } + 0 !== l && t[l - 1][0] === r ? (t[l - 1][1] += t[l][1], t.splice(l, 1)) : l++, u = 0, c = 0, h = "", d = "" + } + "" === t[t.length - 1][1] && t.pop(); + var A = !1; + for (l = 1; l < t.length - 1;) t[l - 1][0] === r && t[l + 1][0] === r && (t[l][1].substring(t[l][1].length - t[l - 1][1].length) === t[l - 1][1] ? (t[l][1] = t[l - 1][1] + t[l][1].substring(0, t[l][1].length - t[l - 1][1].length), t[l + 1][1] = t[l - 1][1] + t[l + 1][1], t.splice(l - 1, 1), A = !0) : t[l][1].substring(0, t[l + 1][1].length) == t[l + 1][1] && (t[l - 1][1] += t[l + 1][1], t[l][1] = t[l][1].substring(t[l + 1][1].length) + t[l + 1][1], t.splice(l + 1, 1), A = !0)), l++; + A && p(t, i) + } + + function g(t) { + return t >= 55296 && t <= 56319 + } + + function m(t) { + return t >= 56320 && t <= 57343 + } + + function b(t) { + return m(t.charCodeAt(0)) + } + + function y(t) { + return g(t.charCodeAt(t.length - 1)) + } + + function v(t, i, s, o) { + return y(t) || b(o) ? null : function (t) { + for (var e = [], n = 0; n < t.length; n++) t[n][1].length > 0 && e.push(t[n]); + return e + }([[r, t], [e, i], [n, s], [r, o]]) + } + + function A(t, e, n, r) { + return i(t, e, n, r, !0) + } + + A.INSERT = n, A.DELETE = e, A.EQUAL = r, t.exports = A + }, 9629: function (t, e, n) { + t = n.nmd(t); + var r = "__lodash_hash_undefined__", i = 9007199254740991, s = "[object Arguments]", + o = "[object Boolean]", l = "[object Date]", a = "[object Function]", + c = "[object GeneratorFunction]", u = "[object Map]", h = "[object Number]", d = "[object Object]", + f = "[object Promise]", p = "[object RegExp]", g = "[object Set]", m = "[object String]", + b = "[object Symbol]", y = "[object WeakMap]", v = "[object ArrayBuffer]", A = "[object DataView]", + x = "[object Float32Array]", N = "[object Float64Array]", E = "[object Int8Array]", + w = "[object Int16Array]", q = "[object Int32Array]", k = "[object Uint8Array]", + _ = "[object Uint8ClampedArray]", L = "[object Uint16Array]", S = "[object Uint32Array]", + O = /\w*$/, T = /^\[object .+?Constructor\]$/, j = /^(?:0|[1-9]\d*)$/, C = {}; + C[s] = C["[object Array]"] = C[v] = C[A] = C[o] = C[l] = C[x] = C[N] = C[E] = C[w] = C[q] = C[u] = C[h] = C[d] = C[p] = C[g] = C[m] = C[b] = C[k] = C[_] = C[L] = C[S] = !0, C["[object Error]"] = C[a] = C[y] = !1; + var R = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, + I = "object" == typeof self && self && self.Object === Object && self, + B = R || I || Function("return this")(), M = e && !e.nodeType && e, U = M && t && !t.nodeType && t, + D = U && U.exports === M; + + function P(t, e) { + return t.set(e[0], e[1]), t + } + + function z(t, e) { + return t.add(e), t + } + + function F(t, e, n, r) { + var i = -1, s = t ? t.length : 0; + for (r && s && (n = t[++i]); ++i < s;) n = e(n, t[i], i, t); + return n + } + + function H(t) { + var e = !1; + if (null != t && "function" != typeof t.toString) try { + e = !!(t + "") + } catch (t) { + } + return e + } + + function $(t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t, r) { + n[++e] = [r, t] + })), n + } + + function V(t, e) { + return function (n) { + return t(e(n)) + } + } + + function K(t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t) { + n[++e] = t + })), n + } + + var W, Z = Array.prototype, G = Function.prototype, X = Object.prototype, Q = B["__core-js_shared__"], + J = (W = /[^.]+$/.exec(Q && Q.keys && Q.keys.IE_PROTO || "")) ? "Symbol(src)_1." + W : "", + Y = G.toString, tt = X.hasOwnProperty, et = X.toString, + nt = RegExp("^" + Y.call(tt).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), + rt = D ? B.Buffer : void 0, it = B.Symbol, st = B.Uint8Array, ot = V(Object.getPrototypeOf, Object), + lt = Object.create, at = X.propertyIsEnumerable, ct = Z.splice, ut = Object.getOwnPropertySymbols, + ht = rt ? rt.isBuffer : void 0, dt = V(Object.keys, Object), ft = Bt(B, "DataView"), + pt = Bt(B, "Map"), gt = Bt(B, "Promise"), mt = Bt(B, "Set"), bt = Bt(B, "WeakMap"), + yt = Bt(Object, "create"), vt = zt(ft), At = zt(pt), xt = zt(gt), Nt = zt(mt), Et = zt(bt), + wt = it ? it.prototype : void 0, qt = wt ? wt.valueOf : void 0; + + function kt(t) { + var e = -1, n = t ? t.length : 0; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function _t(t) { + var e = -1, n = t ? t.length : 0; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function Lt(t) { + var e = -1, n = t ? t.length : 0; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function St(t) { + this.__data__ = new _t(t) + } + + function Ot(t, e, n) { + var r = t[e]; + tt.call(t, e) && Ft(r, n) && (void 0 !== n || e in t) || (t[e] = n) + } + + function Tt(t, e) { + for (var n = t.length; n--;) if (Ft(t[n][0], e)) return n; + return -1 + } + + function jt(t, e, n, r, i, f, y) { + var T; + if (r && (T = f ? r(t, i, f, y) : r(t)), void 0 !== T) return T; + if (!Wt(t)) return t; + var j = Ht(t); + if (j) { + if (T = function (t) { + var e = t.length, n = t.constructor(e); + return e && "string" == typeof t[0] && tt.call(t, "index") && (n.index = t.index, n.input = t.input), n + }(t), !e) return function (t, e) { + var n = -1, r = t.length; + for (e || (e = Array(r)); ++n < r;) e[n] = t[n]; + return e + }(t, T) + } else { + var R = Ut(t), I = R == a || R == c; + if (Vt(t)) return function (t, e) { + if (e) return t.slice(); + var n = new t.constructor(t.length); + return t.copy(n), n + }(t, e); + if (R == d || R == s || I && !f) { + if (H(t)) return f ? t : {}; + if (T = function (t) { + return "function" != typeof t.constructor || Pt(t) ? {} : Wt(e = ot(t)) ? lt(e) : {}; + var e + }(I ? {} : t), !e) return function (t, e) { + return Rt(t, Mt(t), e) + }(t, function (t, e) { + return t && Rt(e, Zt(e), t) + }(T, t)) + } else { + if (!C[R]) return f ? t : {}; + T = function (t, e, n, r) { + var i, s = t.constructor; + switch (e) { + case v: + return Ct(t); + case o: + case l: + return new s(+t); + case A: + return function (t, e) { + var n = e ? Ct(t.buffer) : t.buffer; + return new t.constructor(n, t.byteOffset, t.byteLength) + }(t, r); + case x: + case N: + case E: + case w: + case q: + case k: + case _: + case L: + case S: + return function (t, e) { + var n = e ? Ct(t.buffer) : t.buffer; + return new t.constructor(n, t.byteOffset, t.length) + }(t, r); + case u: + return function (t, e, n) { + return F(e ? n($(t), !0) : $(t), P, new t.constructor) + }(t, r, n); + case h: + case m: + return new s(t); + case p: + return function (t) { + var e = new t.constructor(t.source, O.exec(t)); + return e.lastIndex = t.lastIndex, e + }(t); + case g: + return function (t, e, n) { + return F(e ? n(K(t), !0) : K(t), z, new t.constructor) + }(t, r, n); + case b: + return i = t, qt ? Object(qt.call(i)) : {} + } + }(t, R, jt, e) + } + } + y || (y = new St); + var B = y.get(t); + if (B) return B; + if (y.set(t, T), !j) var M = n ? function (t) { + return function (t, e, n) { + var r = e(t); + return Ht(t) ? r : function (t, e) { + for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n]; + return t + }(r, n(t)) + }(t, Zt, Mt) + }(t) : Zt(t); + return function (t, e) { + for (var n = -1, r = t ? t.length : 0; ++n < r && !1 !== e(t[n], n);) ; + }(M || t, (function (i, s) { + M && (i = t[s = i]), Ot(T, s, jt(i, e, n, r, s, t, y)) + })), T + } + + function Ct(t) { + var e = new t.constructor(t.byteLength); + return new st(e).set(new st(t)), e + } + + function Rt(t, e, n, r) { + n || (n = {}); + for (var i = -1, s = e.length; ++i < s;) { + var o = e[i], l = r ? r(n[o], t[o], o, n, t) : void 0; + Ot(n, o, void 0 === l ? t[o] : l) + } + return n + } + + function It(t, e) { + var n, r, i = t.__data__; + return ("string" == (r = typeof (n = e)) || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== n : null === n) ? i["string" == typeof e ? "string" : "hash"] : i.map + } + + function Bt(t, e) { + var n = function (t, e) { + return null == t ? void 0 : t[e] + }(t, e); + return function (t) { + return !(!Wt(t) || (e = t, J && J in e)) && (Kt(t) || H(t) ? nt : T).test(zt(t)); + var e + }(n) ? n : void 0 + } + + kt.prototype.clear = function () { + this.__data__ = yt ? yt(null) : {} + }, kt.prototype.delete = function (t) { + return this.has(t) && delete this.__data__[t] + }, kt.prototype.get = function (t) { + var e = this.__data__; + if (yt) { + var n = e[t]; + return n === r ? void 0 : n + } + return tt.call(e, t) ? e[t] : void 0 + }, kt.prototype.has = function (t) { + var e = this.__data__; + return yt ? void 0 !== e[t] : tt.call(e, t) + }, kt.prototype.set = function (t, e) { + return this.__data__[t] = yt && void 0 === e ? r : e, this + }, _t.prototype.clear = function () { + this.__data__ = [] + }, _t.prototype.delete = function (t) { + var e = this.__data__, n = Tt(e, t); + return !(n < 0 || (n == e.length - 1 ? e.pop() : ct.call(e, n, 1), 0)) + }, _t.prototype.get = function (t) { + var e = this.__data__, n = Tt(e, t); + return n < 0 ? void 0 : e[n][1] + }, _t.prototype.has = function (t) { + return Tt(this.__data__, t) > -1 + }, _t.prototype.set = function (t, e) { + var n = this.__data__, r = Tt(n, t); + return r < 0 ? n.push([t, e]) : n[r][1] = e, this + }, Lt.prototype.clear = function () { + this.__data__ = {hash: new kt, map: new (pt || _t), string: new kt} + }, Lt.prototype.delete = function (t) { + return It(this, t).delete(t) + }, Lt.prototype.get = function (t) { + return It(this, t).get(t) + }, Lt.prototype.has = function (t) { + return It(this, t).has(t) + }, Lt.prototype.set = function (t, e) { + return It(this, t).set(t, e), this + }, St.prototype.clear = function () { + this.__data__ = new _t + }, St.prototype.delete = function (t) { + return this.__data__.delete(t) + }, St.prototype.get = function (t) { + return this.__data__.get(t) + }, St.prototype.has = function (t) { + return this.__data__.has(t) + }, St.prototype.set = function (t, e) { + var n = this.__data__; + if (n instanceof _t) { + var r = n.__data__; + if (!pt || r.length < 199) return r.push([t, e]), this; + n = this.__data__ = new Lt(r) + } + return n.set(t, e), this + }; + var Mt = ut ? V(ut, Object) : function () { + return [] + }, Ut = function (t) { + return et.call(t) + }; + + function Dt(t, e) { + return !!(e = null == e ? i : e) && ("number" == typeof t || j.test(t)) && t > -1 && t % 1 == 0 && t < e + } + + function Pt(t) { + var e = t && t.constructor; + return t === ("function" == typeof e && e.prototype || X) + } + + function zt(t) { + if (null != t) { + try { + return Y.call(t) + } catch (t) { + } + try { + return t + "" + } catch (t) { + } + } + return "" + } + + function Ft(t, e) { + return t === e || t != t && e != e + } + + (ft && Ut(new ft(new ArrayBuffer(1))) != A || pt && Ut(new pt) != u || gt && Ut(gt.resolve()) != f || mt && Ut(new mt) != g || bt && Ut(new bt) != y) && (Ut = function (t) { + var e = et.call(t), n = e == d ? t.constructor : void 0, r = n ? zt(n) : void 0; + if (r) switch (r) { + case vt: + return A; + case At: + return u; + case xt: + return f; + case Nt: + return g; + case Et: + return y + } + return e + }); + var Ht = Array.isArray; + + function $t(t) { + return null != t && function (t) { + return "number" == typeof t && t > -1 && t % 1 == 0 && t <= i + }(t.length) && !Kt(t) + } + + var Vt = ht || function () { + return !1 + }; + + function Kt(t) { + var e = Wt(t) ? et.call(t) : ""; + return e == a || e == c + } + + function Wt(t) { + var e = typeof t; + return !!t && ("object" == e || "function" == e) + } + + function Zt(t) { + return $t(t) ? function (t, e) { + var n = Ht(t) || function (t) { + return function (t) { + return function (t) { + return !!t && "object" == typeof t + }(t) && $t(t) + }(t) && tt.call(t, "callee") && (!at.call(t, "callee") || et.call(t) == s) + }(t) ? function (t, e) { + for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n); + return r + }(t.length, String) : [], r = n.length, i = !!r; + for (var o in t) !e && !tt.call(t, o) || i && ("length" == o || Dt(o, r)) || n.push(o); + return n + }(t) : function (t) { + if (!Pt(t)) return dt(t); + var e = []; + for (var n in Object(t)) tt.call(t, n) && "constructor" != n && e.push(n); + return e + }(t) + } + + t.exports = function (t) { + return jt(t, !0, !0) + } + }, 4162: function (t, e, n) { + t = n.nmd(t); + var r = "__lodash_hash_undefined__", i = 1, s = 2, o = 9007199254740991, l = "[object Arguments]", + a = "[object Array]", c = "[object AsyncFunction]", u = "[object Boolean]", h = "[object Date]", + d = "[object Error]", f = "[object Function]", p = "[object GeneratorFunction]", g = "[object Map]", + m = "[object Number]", b = "[object Null]", y = "[object Object]", v = "[object Promise]", + A = "[object Proxy]", x = "[object RegExp]", N = "[object Set]", E = "[object String]", + w = "[object Undefined]", q = "[object WeakMap]", k = "[object ArrayBuffer]", + _ = "[object DataView]", L = /^\[object .+?Constructor\]$/, S = /^(?:0|[1-9]\d*)$/, O = {}; + O["[object Float32Array]"] = O["[object Float64Array]"] = O["[object Int8Array]"] = O["[object Int16Array]"] = O["[object Int32Array]"] = O["[object Uint8Array]"] = O["[object Uint8ClampedArray]"] = O["[object Uint16Array]"] = O["[object Uint32Array]"] = !0, O[l] = O[a] = O[k] = O[u] = O[_] = O[h] = O[d] = O[f] = O[g] = O[m] = O[y] = O[x] = O[N] = O[E] = O[q] = !1; + var T = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, + j = "object" == typeof self && self && self.Object === Object && self, + C = T || j || Function("return this")(), R = e && !e.nodeType && e, I = R && t && !t.nodeType && t, + B = I && I.exports === R, M = B && T.process, U = function () { + try { + return M && M.binding && M.binding("util") + } catch (t) { + } + }(), D = U && U.isTypedArray; + + function P(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r;) if (e(t[n], n, t)) return !0; + return !1 + } + + function z(t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t, r) { + n[++e] = [r, t] + })), n + } + + function F(t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t) { + n[++e] = t + })), n + } + + var H, $, V, K = Array.prototype, W = Function.prototype, Z = Object.prototype, + G = C["__core-js_shared__"], X = W.toString, Q = Z.hasOwnProperty, + J = (H = /[^.]+$/.exec(G && G.keys && G.keys.IE_PROTO || "")) ? "Symbol(src)_1." + H : "", + Y = Z.toString, + tt = RegExp("^" + X.call(Q).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), + et = B ? C.Buffer : void 0, nt = C.Symbol, rt = C.Uint8Array, it = Z.propertyIsEnumerable, + st = K.splice, ot = nt ? nt.toStringTag : void 0, lt = Object.getOwnPropertySymbols, + at = et ? et.isBuffer : void 0, ct = ($ = Object.keys, V = Object, function (t) { + return $(V(t)) + }), ut = It(C, "DataView"), ht = It(C, "Map"), dt = It(C, "Promise"), ft = It(C, "Set"), + pt = It(C, "WeakMap"), gt = It(Object, "create"), mt = Dt(ut), bt = Dt(ht), yt = Dt(dt), + vt = Dt(ft), At = Dt(pt), xt = nt ? nt.prototype : void 0, Nt = xt ? xt.valueOf : void 0; + + function Et(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function wt(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function qt(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + function kt(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.__data__ = new qt; ++e < n;) this.add(t[e]) + } + + function _t(t) { + var e = this.__data__ = new wt(t); + this.size = e.size + } + + function Lt(t, e) { + for (var n = t.length; n--;) if (Pt(t[n][0], e)) return n; + return -1 + } + + function St(t) { + return null == t ? void 0 === t ? w : b : ot && ot in Object(t) ? function (t) { + var e = Q.call(t, ot), n = t[ot]; + try { + t[ot] = void 0; + var r = !0 + } catch (t) { + } + var i = Y.call(t); + return r && (e ? t[ot] = n : delete t[ot]), i + }(t) : function (t) { + return Y.call(t) + }(t) + } + + function Ot(t) { + return Wt(t) && St(t) == l + } + + function Tt(t, e, n, r, o) { + return t === e || (null == t || null == e || !Wt(t) && !Wt(e) ? t != t && e != e : function (t, e, n, r, o, c) { + var f = Ft(t), p = Ft(e), b = f ? a : Mt(t), v = p ? a : Mt(e), A = (b = b == l ? y : b) == y, + w = (v = v == l ? y : v) == y, q = b == v; + if (q && Ht(t)) { + if (!Ht(e)) return !1; + f = !0, A = !1 + } + if (q && !A) return c || (c = new _t), f || Zt(t) ? jt(t, e, n, r, o, c) : function (t, e, n, r, o, l, a) { + switch (n) { + case _: + if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1; + t = t.buffer, e = e.buffer; + case k: + return !(t.byteLength != e.byteLength || !l(new rt(t), new rt(e))); + case u: + case h: + case m: + return Pt(+t, +e); + case d: + return t.name == e.name && t.message == e.message; + case x: + case E: + return t == e + ""; + case g: + var c = z; + case N: + var f = r & i; + if (c || (c = F), t.size != e.size && !f) return !1; + var p = a.get(t); + if (p) return p == e; + r |= s, a.set(t, e); + var b = jt(c(t), c(e), r, o, l, a); + return a.delete(t), b; + case"[object Symbol]": + if (Nt) return Nt.call(t) == Nt.call(e) + } + return !1 + }(t, e, b, n, r, o, c); + if (!(n & i)) { + var L = A && Q.call(t, "__wrapped__"), S = w && Q.call(e, "__wrapped__"); + if (L || S) { + var O = L ? t.value() : t, T = S ? e.value() : e; + return c || (c = new _t), o(O, T, n, r, c) + } + } + return !!q && (c || (c = new _t), function (t, e, n, r, s, o) { + var l = n & i, a = Ct(t), c = a.length; + if (c != Ct(e).length && !l) return !1; + for (var u = c; u--;) { + var h = a[u]; + if (!(l ? h in e : Q.call(e, h))) return !1 + } + var d = o.get(t); + if (d && o.get(e)) return d == e; + var f = !0; + o.set(t, e), o.set(e, t); + for (var p = l; ++u < c;) { + var g = t[h = a[u]], m = e[h]; + if (r) var b = l ? r(m, g, h, e, t, o) : r(g, m, h, t, e, o); + if (!(void 0 === b ? g === m || s(g, m, n, r, o) : b)) { + f = !1; + break + } + p || (p = "constructor" == h) + } + if (f && !p) { + var y = t.constructor, v = e.constructor; + y == v || !("constructor" in t) || !("constructor" in e) || "function" == typeof y && y instanceof y && "function" == typeof v && v instanceof v || (f = !1) + } + return o.delete(t), o.delete(e), f + }(t, e, n, r, o, c)) + }(t, e, n, r, Tt, o)) + } + + function jt(t, e, n, r, o, l) { + var a = n & i, c = t.length, u = e.length; + if (c != u && !(a && u > c)) return !1; + var h = l.get(t); + if (h && l.get(e)) return h == e; + var d = -1, f = !0, p = n & s ? new kt : void 0; + for (l.set(t, e), l.set(e, t); ++d < c;) { + var g = t[d], m = e[d]; + if (r) var b = a ? r(m, g, d, e, t, l) : r(g, m, d, t, e, l); + if (void 0 !== b) { + if (b) continue; + f = !1; + break + } + if (p) { + if (!P(e, (function (t, e) { + if (i = e, !p.has(i) && (g === t || o(g, t, n, r, l))) return p.push(e); + var i + }))) { + f = !1; + break + } + } else if (g !== m && !o(g, m, n, r, l)) { + f = !1; + break + } + } + return l.delete(t), l.delete(e), f + } + + function Ct(t) { + return function (t, e, n) { + var r = e(t); + return Ft(t) ? r : function (t, e) { + for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n]; + return t + }(r, n(t)) + }(t, Gt, Bt) + } + + function Rt(t, e) { + var n, r, i = t.__data__; + return ("string" == (r = typeof (n = e)) || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== n : null === n) ? i["string" == typeof e ? "string" : "hash"] : i.map + } + + function It(t, e) { + var n = function (t, e) { + return null == t ? void 0 : t[e] + }(t, e); + return function (t) { + return !(!Kt(t) || function (t) { + return !!J && J in t + }(t)) && ($t(t) ? tt : L).test(Dt(t)) + }(n) ? n : void 0 + } + + Et.prototype.clear = function () { + this.__data__ = gt ? gt(null) : {}, this.size = 0 + }, Et.prototype.delete = function (t) { + var e = this.has(t) && delete this.__data__[t]; + return this.size -= e ? 1 : 0, e + }, Et.prototype.get = function (t) { + var e = this.__data__; + if (gt) { + var n = e[t]; + return n === r ? void 0 : n + } + return Q.call(e, t) ? e[t] : void 0 + }, Et.prototype.has = function (t) { + var e = this.__data__; + return gt ? void 0 !== e[t] : Q.call(e, t) + }, Et.prototype.set = function (t, e) { + var n = this.__data__; + return this.size += this.has(t) ? 0 : 1, n[t] = gt && void 0 === e ? r : e, this + }, wt.prototype.clear = function () { + this.__data__ = [], this.size = 0 + }, wt.prototype.delete = function (t) { + var e = this.__data__, n = Lt(e, t); + return !(n < 0 || (n == e.length - 1 ? e.pop() : st.call(e, n, 1), --this.size, 0)) + }, wt.prototype.get = function (t) { + var e = this.__data__, n = Lt(e, t); + return n < 0 ? void 0 : e[n][1] + }, wt.prototype.has = function (t) { + return Lt(this.__data__, t) > -1 + }, wt.prototype.set = function (t, e) { + var n = this.__data__, r = Lt(n, t); + return r < 0 ? (++this.size, n.push([t, e])) : n[r][1] = e, this + }, qt.prototype.clear = function () { + this.size = 0, this.__data__ = {hash: new Et, map: new (ht || wt), string: new Et} + }, qt.prototype.delete = function (t) { + var e = Rt(this, t).delete(t); + return this.size -= e ? 1 : 0, e + }, qt.prototype.get = function (t) { + return Rt(this, t).get(t) + }, qt.prototype.has = function (t) { + return Rt(this, t).has(t) + }, qt.prototype.set = function (t, e) { + var n = Rt(this, t), r = n.size; + return n.set(t, e), this.size += n.size == r ? 0 : 1, this + }, kt.prototype.add = kt.prototype.push = function (t) { + return this.__data__.set(t, r), this + }, kt.prototype.has = function (t) { + return this.__data__.has(t) + }, _t.prototype.clear = function () { + this.__data__ = new wt, this.size = 0 + }, _t.prototype.delete = function (t) { + var e = this.__data__, n = e.delete(t); + return this.size = e.size, n + }, _t.prototype.get = function (t) { + return this.__data__.get(t) + }, _t.prototype.has = function (t) { + return this.__data__.has(t) + }, _t.prototype.set = function (t, e) { + var n = this.__data__; + if (n instanceof wt) { + var r = n.__data__; + if (!ht || r.length < 199) return r.push([t, e]), this.size = ++n.size, this; + n = this.__data__ = new qt(r) + } + return n.set(t, e), this.size = n.size, this + }; + var Bt = lt ? function (t) { + return null == t ? [] : (t = Object(t), function (e, n) { + for (var r = -1, i = null == e ? 0 : e.length, s = 0, o = []; ++r < i;) { + var l = e[r]; + a = l, it.call(t, a) && (o[s++] = l) + } + var a; + return o + }(lt(t))) + } : function () { + return [] + }, Mt = St; + + function Ut(t, e) { + return !!(e = null == e ? o : e) && ("number" == typeof t || S.test(t)) && t > -1 && t % 1 == 0 && t < e + } + + function Dt(t) { + if (null != t) { + try { + return X.call(t) + } catch (t) { + } + try { + return t + "" + } catch (t) { + } + } + return "" + } + + function Pt(t, e) { + return t === e || t != t && e != e + } + + (ut && Mt(new ut(new ArrayBuffer(1))) != _ || ht && Mt(new ht) != g || dt && Mt(dt.resolve()) != v || ft && Mt(new ft) != N || pt && Mt(new pt) != q) && (Mt = function (t) { + var e = St(t), n = e == y ? t.constructor : void 0, r = n ? Dt(n) : ""; + if (r) switch (r) { + case mt: + return _; + case bt: + return g; + case yt: + return v; + case vt: + return N; + case At: + return q + } + return e + }); + var zt = Ot(function () { + return arguments + }()) ? Ot : function (t) { + return Wt(t) && Q.call(t, "callee") && !it.call(t, "callee") + }, Ft = Array.isArray, Ht = at || function () { + return !1 + }; + + function $t(t) { + if (!Kt(t)) return !1; + var e = St(t); + return e == f || e == p || e == c || e == A + } + + function Vt(t) { + return "number" == typeof t && t > -1 && t % 1 == 0 && t <= o + } + + function Kt(t) { + var e = typeof t; + return null != t && ("object" == e || "function" == e) + } + + function Wt(t) { + return null != t && "object" == typeof t + } + + var Zt = D ? function (t) { + return function (e) { + return t(e) + } + }(D) : function (t) { + return Wt(t) && Vt(t.length) && !!O[St(t)] + }; + + function Gt(t) { + return null != (e = t) && Vt(e.length) && !$t(e) ? function (t, e) { + var n = Ft(t), r = !n && zt(t), i = !n && !r && Ht(t), s = !n && !r && !i && Zt(t), + o = n || r || i || s, l = o ? function (t, e) { + for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n); + return r + }(t.length, String) : [], a = l.length; + for (var c in t) !e && !Q.call(t, c) || o && ("length" == c || i && ("offset" == c || "parent" == c) || s && ("buffer" == c || "byteLength" == c || "byteOffset" == c) || Ut(c, a)) || l.push(c); + return l + }(t) : function (t) { + if (n = (e = t) && e.constructor, e !== ("function" == typeof n && n.prototype || Z)) return ct(t); + var e, n, r = []; + for (var i in Object(t)) Q.call(t, i) && "constructor" != i && r.push(i); + return r + }(t); + var e + } + + t.exports = function (t, e) { + return Tt(t, e) + } + }, 1270: function (t, e, n) { + "use strict"; + Object.defineProperty(e, "__esModule", {value: !0}); + const r = n(9629), i = n(4162); + var s; + !function (t) { + t.compose = function (t = {}, e = {}, n = !1) { + "object" != typeof t && (t = {}), "object" != typeof e && (e = {}); + let i = r(e); + n || (i = Object.keys(i).reduce(((t, e) => (null != i[e] && (t[e] = i[e]), t)), {})); + for (const n in t) void 0 !== t[n] && void 0 === e[n] && (i[n] = t[n]); + return Object.keys(i).length > 0 ? i : void 0 + }, t.diff = function (t = {}, e = {}) { + "object" != typeof t && (t = {}), "object" != typeof e && (e = {}); + const n = Object.keys(t).concat(Object.keys(e)).reduce(((n, r) => (i(t[r], e[r]) || (n[r] = void 0 === e[r] ? null : e[r]), n)), {}); + return Object.keys(n).length > 0 ? n : void 0 + }, t.invert = function (t = {}, e = {}) { + t = t || {}; + const n = Object.keys(e).reduce(((n, r) => (e[r] !== t[r] && void 0 !== t[r] && (n[r] = e[r]), n)), {}); + return Object.keys(t).reduce(((n, r) => (t[r] !== e[r] && void 0 === e[r] && (n[r] = null), n)), n) + }, t.transform = function (t, e, n = !1) { + if ("object" != typeof t) return e; + if ("object" != typeof e) return; + if (!n) return e; + const r = Object.keys(e).reduce(((n, r) => (void 0 === t[r] && (n[r] = e[r]), n)), {}); + return Object.keys(r).length > 0 ? r : void 0 + } + }(s || (s = {})), e.default = s + }, 5232: function (t, e, n) { + "use strict"; + Object.defineProperty(e, "__esModule", {value: !0}), e.AttributeMap = e.OpIterator = e.Op = void 0; + const r = n(5090), i = n(9629), s = n(4162), o = n(1270); + e.AttributeMap = o.default; + const l = n(4123); + e.Op = l.default; + const a = n(7033); + e.OpIterator = a.default; + const c = String.fromCharCode(0), u = (t, e) => { + if ("object" != typeof t || null === t) throw new Error("cannot retain a " + typeof t); + if ("object" != typeof e || null === e) throw new Error("cannot retain a " + typeof e); + const n = Object.keys(t)[0]; + if (!n || n !== Object.keys(e)[0]) throw new Error(`embed types not matched: ${n} != ${Object.keys(e)[0]}`); + return [n, t[n], e[n]] + }; + + class h { + constructor(t) { + Array.isArray(t) ? this.ops = t : null != t && Array.isArray(t.ops) ? this.ops = t.ops : this.ops = [] + } + + static registerEmbed(t, e) { + this.handlers[t] = e + } + + static unregisterEmbed(t) { + delete this.handlers[t] + } + + static getHandler(t) { + const e = this.handlers[t]; + if (!e) throw new Error(`no handlers for embed type "${t}"`); + return e + } + + insert(t, e) { + const n = {}; + return "string" == typeof t && 0 === t.length ? this : (n.insert = t, null != e && "object" == typeof e && Object.keys(e).length > 0 && (n.attributes = e), this.push(n)) + } + + delete(t) { + return t <= 0 ? this : this.push({delete: t}) + } + + retain(t, e) { + if ("number" == typeof t && t <= 0) return this; + const n = {retain: t}; + return null != e && "object" == typeof e && Object.keys(e).length > 0 && (n.attributes = e), this.push(n) + } + + push(t) { + let e = this.ops.length, n = this.ops[e - 1]; + if (t = i(t), "object" == typeof n) { + if ("number" == typeof t.delete && "number" == typeof n.delete) return this.ops[e - 1] = {delete: n.delete + t.delete}, this; + if ("number" == typeof n.delete && null != t.insert && (e -= 1, n = this.ops[e - 1], "object" != typeof n)) return this.ops.unshift(t), this; + if (s(t.attributes, n.attributes)) { + if ("string" == typeof t.insert && "string" == typeof n.insert) return this.ops[e - 1] = {insert: n.insert + t.insert}, "object" == typeof t.attributes && (this.ops[e - 1].attributes = t.attributes), this; + if ("number" == typeof t.retain && "number" == typeof n.retain) return this.ops[e - 1] = {retain: n.retain + t.retain}, "object" == typeof t.attributes && (this.ops[e - 1].attributes = t.attributes), this + } + } + return e === this.ops.length ? this.ops.push(t) : this.ops.splice(e, 0, t), this + } + + chop() { + const t = this.ops[this.ops.length - 1]; + return t && "number" == typeof t.retain && !t.attributes && this.ops.pop(), this + } + + filter(t) { + return this.ops.filter(t) + } + + forEach(t) { + this.ops.forEach(t) + } + + map(t) { + return this.ops.map(t) + } + + partition(t) { + const e = [], n = []; + return this.forEach((r => { + (t(r) ? e : n).push(r) + })), [e, n] + } + + reduce(t, e) { + return this.ops.reduce(t, e) + } + + changeLength() { + return this.reduce(((t, e) => e.insert ? t + l.default.length(e) : e.delete ? t - e.delete : t), 0) + } + + length() { + return this.reduce(((t, e) => t + l.default.length(e)), 0) + } + + slice(t = 0, e = 1 / 0) { + const n = [], r = new a.default(this.ops); + let i = 0; + for (; i < e && r.hasNext();) { + let s; + i < t ? s = r.next(t - i) : (s = r.next(e - i), n.push(s)), i += l.default.length(s) + } + return new h(n) + } + + compose(t) { + const e = new a.default(this.ops), n = new a.default(t.ops), r = [], i = n.peek(); + if (null != i && "number" == typeof i.retain && null == i.attributes) { + let t = i.retain; + for (; "insert" === e.peekType() && e.peekLength() <= t;) t -= e.peekLength(), r.push(e.next()); + i.retain - t > 0 && n.next(i.retain - t) + } + const l = new h(r); + for (; e.hasNext() || n.hasNext();) if ("insert" === n.peekType()) l.push(n.next()); else if ("delete" === e.peekType()) l.push(e.next()); else { + const t = Math.min(e.peekLength(), n.peekLength()), r = e.next(t), i = n.next(t); + if (i.retain) { + const a = {}; + if ("number" == typeof r.retain) a.retain = "number" == typeof i.retain ? t : i.retain; else if ("number" == typeof i.retain) null == r.retain ? a.insert = r.insert : a.retain = r.retain; else { + const t = null == r.retain ? "insert" : "retain", [e, n, s] = u(r[t], i.retain), + o = h.getHandler(e); + a[t] = {[e]: o.compose(n, s, "retain" === t)} + } + const c = o.default.compose(r.attributes, i.attributes, "number" == typeof r.retain); + if (c && (a.attributes = c), l.push(a), !n.hasNext() && s(l.ops[l.ops.length - 1], a)) { + const t = new h(e.rest()); + return l.concat(t).chop() + } + } else "number" == typeof i.delete && ("number" == typeof r.retain || "object" == typeof r.retain && null !== r.retain) && l.push(i) + } + return l.chop() + } + + concat(t) { + const e = new h(this.ops.slice()); + return t.ops.length > 0 && (e.push(t.ops[0]), e.ops = e.ops.concat(t.ops.slice(1))), e + } + + diff(t, e) { + if (this.ops === t.ops) return new h; + const n = [this, t].map((e => e.map((n => { + if (null != n.insert) return "string" == typeof n.insert ? n.insert : c; + throw new Error("diff() called " + (e === t ? "on" : "with") + " non-document") + })).join(""))), i = new h, l = r(n[0], n[1], e, !0), u = new a.default(this.ops), + d = new a.default(t.ops); + return l.forEach((t => { + let e = t[1].length; + for (; e > 0;) { + let n = 0; + switch (t[0]) { + case r.INSERT: + n = Math.min(d.peekLength(), e), i.push(d.next(n)); + break; + case r.DELETE: + n = Math.min(e, u.peekLength()), u.next(n), i.delete(n); + break; + case r.EQUAL: + n = Math.min(u.peekLength(), d.peekLength(), e); + const t = u.next(n), l = d.next(n); + s(t.insert, l.insert) ? i.retain(n, o.default.diff(t.attributes, l.attributes)) : i.push(l).delete(n) + } + e -= n + } + })), i.chop() + } + + eachLine(t, e = "\n") { + const n = new a.default(this.ops); + let r = new h, i = 0; + for (; n.hasNext();) { + if ("insert" !== n.peekType()) return; + const s = n.peek(), o = l.default.length(s) - n.peekLength(), + a = "string" == typeof s.insert ? s.insert.indexOf(e, o) - o : -1; + if (a < 0) r.push(n.next()); else if (a > 0) r.push(n.next(a)); else { + if (!1 === t(r, n.next(1).attributes || {}, i)) return; + i += 1, r = new h + } + } + r.length() > 0 && t(r, {}, i) + } + + invert(t) { + const e = new h; + return this.reduce(((n, r) => { + if (r.insert) e.delete(l.default.length(r)); else { + if ("number" == typeof r.retain && null == r.attributes) return e.retain(r.retain), n + r.retain; + if (r.delete || "number" == typeof r.retain) { + const i = r.delete || r.retain; + return t.slice(n, n + i).forEach((t => { + r.delete ? e.push(t) : r.retain && r.attributes && e.retain(l.default.length(t), o.default.invert(r.attributes, t.attributes)) + })), n + i + } + if ("object" == typeof r.retain && null !== r.retain) { + const i = t.slice(n, n + 1), + s = new a.default(i.ops).next(), [l, c, d] = u(r.retain, s.insert), + f = h.getHandler(l); + return e.retain({[l]: f.invert(c, d)}, o.default.invert(r.attributes, s.attributes)), n + 1 + } + } + return n + }), 0), e.chop() + } + + transform(t, e = !1) { + if (e = !!e, "number" == typeof t) return this.transformPosition(t, e); + const n = t, r = new a.default(this.ops), i = new a.default(n.ops), s = new h; + for (; r.hasNext() || i.hasNext();) if ("insert" !== r.peekType() || !e && "insert" === i.peekType()) if ("insert" === i.peekType()) s.push(i.next()); else { + const t = Math.min(r.peekLength(), i.peekLength()), n = r.next(t), l = i.next(t); + if (n.delete) continue; + if (l.delete) s.push(l); else { + const r = n.retain, i = l.retain; + let a = "object" == typeof i && null !== i ? i : t; + if ("object" == typeof r && null !== r && "object" == typeof i && null !== i) { + const t = Object.keys(r)[0]; + if (t === Object.keys(i)[0]) { + const n = h.getHandler(t); + n && (a = {[t]: n.transform(r[t], i[t], e)}) + } + } + s.retain(a, o.default.transform(n.attributes, l.attributes, e)) + } + } else s.retain(l.default.length(r.next())); + return s.chop() + } + + transformPosition(t, e = !1) { + e = !!e; + const n = new a.default(this.ops); + let r = 0; + for (; n.hasNext() && r <= t;) { + const i = n.peekLength(), s = n.peekType(); + n.next(), "delete" !== s ? ("insert" === s && (r < t || !e) && (t += i), r += i) : t -= Math.min(i, t - r) + } + return t + } + } + + h.Op = l.default, h.OpIterator = a.default, h.AttributeMap = o.default, h.handlers = {}, e.default = h, t.exports = h, t.exports.default = h + }, 4123: function (t, e) { + "use strict"; + var n; + Object.defineProperty(e, "__esModule", {value: !0}), function (t) { + t.length = function (t) { + return "number" == typeof t.delete ? t.delete : "number" == typeof t.retain ? t.retain : "object" == typeof t.retain && null !== t.retain ? 1 : "string" == typeof t.insert ? t.insert.length : 1 + } + }(n || (n = {})), e.default = n + }, 7033: function (t, e, n) { + "use strict"; + Object.defineProperty(e, "__esModule", {value: !0}); + const r = n(4123); + e.default = class { + constructor(t) { + this.ops = t, this.index = 0, this.offset = 0 + } + + hasNext() { + return this.peekLength() < 1 / 0 + } + + next(t) { + t || (t = 1 / 0); + const e = this.ops[this.index]; + if (e) { + const n = this.offset, i = r.default.length(e); + if (t >= i - n ? (t = i - n, this.index += 1, this.offset = 0) : this.offset += t, "number" == typeof e.delete) return {delete: t}; + { + const r = {}; + return e.attributes && (r.attributes = e.attributes), "number" == typeof e.retain ? r.retain = t : "object" == typeof e.retain && null !== e.retain ? r.retain = e.retain : "string" == typeof e.insert ? r.insert = e.insert.substr(n, t) : r.insert = e.insert, r + } + } + return {retain: 1 / 0} + } + + peek() { + return this.ops[this.index] + } + + peekLength() { + return this.ops[this.index] ? r.default.length(this.ops[this.index]) - this.offset : 1 / 0 + } + + peekType() { + const t = this.ops[this.index]; + return t ? "number" == typeof t.delete ? "delete" : "number" == typeof t.retain || "object" == typeof t.retain && null !== t.retain ? "retain" : "insert" : "retain" + } + + rest() { + if (this.hasNext()) { + if (0 === this.offset) return this.ops.slice(this.index); + { + const t = this.offset, e = this.index, n = this.next(), r = this.ops.slice(this.index); + return this.offset = t, this.index = e, [n].concat(r) + } + } + return [] + } + } + }, 8820: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return l + } + }); + var r = n(8138), i = function (t, e) { + for (var n = t.length; n--;) if ((0, r.A)(t[n][0], e)) return n; + return -1 + }, s = Array.prototype.splice; + + function o(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + o.prototype.clear = function () { + this.__data__ = [], this.size = 0 + }, o.prototype.delete = function (t) { + var e = this.__data__, n = i(e, t); + return !(n < 0 || (n == e.length - 1 ? e.pop() : s.call(e, n, 1), --this.size, 0)) + }, o.prototype.get = function (t) { + var e = this.__data__, n = i(e, t); + return n < 0 ? void 0 : e[n][1] + }, o.prototype.has = function (t) { + return i(this.__data__, t) > -1 + }, o.prototype.set = function (t, e) { + var n = this.__data__, r = i(n, t); + return r < 0 ? (++this.size, n.push([t, e])) : n[r][1] = e, this + }; + var l = o + }, 2461: function (t, e, n) { + "use strict"; + var r = n(2281), i = n(5507), s = (0, r.A)(i.A, "Map"); + e.A = s + }, 3558: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return d + } + }); + var r = (0, n(2281).A)(Object, "create"), i = Object.prototype.hasOwnProperty, + s = Object.prototype.hasOwnProperty; + + function o(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + o.prototype.clear = function () { + this.__data__ = r ? r(null) : {}, this.size = 0 + }, o.prototype.delete = function (t) { + var e = this.has(t) && delete this.__data__[t]; + return this.size -= e ? 1 : 0, e + }, o.prototype.get = function (t) { + var e = this.__data__; + if (r) { + var n = e[t]; + return "__lodash_hash_undefined__" === n ? void 0 : n + } + return i.call(e, t) ? e[t] : void 0 + }, o.prototype.has = function (t) { + var e = this.__data__; + return r ? void 0 !== e[t] : s.call(e, t) + }, o.prototype.set = function (t, e) { + var n = this.__data__; + return this.size += this.has(t) ? 0 : 1, n[t] = r && void 0 === e ? "__lodash_hash_undefined__" : e, this + }; + var l = o, a = n(8820), c = n(2461), u = function (t, e) { + var n, r, i = t.__data__; + return ("string" == (r = typeof (n = e)) || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== n : null === n) ? i["string" == typeof e ? "string" : "hash"] : i.map + }; + + function h(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.clear(); ++e < n;) { + var r = t[e]; + this.set(r[0], r[1]) + } + } + + h.prototype.clear = function () { + this.size = 0, this.__data__ = {hash: new l, map: new (c.A || a.A), string: new l} + }, h.prototype.delete = function (t) { + var e = u(this, t).delete(t); + return this.size -= e ? 1 : 0, e + }, h.prototype.get = function (t) { + return u(this, t).get(t) + }, h.prototype.has = function (t) { + return u(this, t).has(t) + }, h.prototype.set = function (t, e) { + var n = u(this, t), r = n.size; + return n.set(t, e), this.size += n.size == r ? 0 : 1, this + }; + var d = h + }, 2673: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return l + } + }); + var r = n(8820), i = n(2461), s = n(3558); + + function o(t) { + var e = this.__data__ = new r.A(t); + this.size = e.size + } + + o.prototype.clear = function () { + this.__data__ = new r.A, this.size = 0 + }, o.prototype.delete = function (t) { + var e = this.__data__, n = e.delete(t); + return this.size = e.size, n + }, o.prototype.get = function (t) { + return this.__data__.get(t) + }, o.prototype.has = function (t) { + return this.__data__.has(t) + }, o.prototype.set = function (t, e) { + var n = this.__data__; + if (n instanceof r.A) { + var o = n.__data__; + if (!i.A || o.length < 199) return o.push([t, e]), this.size = ++n.size, this; + n = this.__data__ = new s.A(o) + } + return n.set(t, e), this.size = n.size, this + }; + var l = o + }, 439: function (t, e, n) { + "use strict"; + var r = n(5507).A.Symbol; + e.A = r + }, 7218: function (t, e, n) { + "use strict"; + var r = n(5507).A.Uint8Array; + e.A = r + }, 6753: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return c + } + }); + var r = n(8412), i = n(723), s = n(776), o = n(3767), l = n(5755), a = Object.prototype.hasOwnProperty, + c = function (t, e) { + var n = (0, i.A)(t), c = !n && (0, r.A)(t), u = !n && !c && (0, s.A)(t), + h = !n && !c && !u && (0, l.A)(t), d = n || c || u || h, f = d ? function (t, e) { + for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n); + return r + }(t.length, String) : [], p = f.length; + for (var g in t) !e && !a.call(t, g) || d && ("length" == g || u && ("offset" == g || "parent" == g) || h && ("buffer" == g || "byteLength" == g || "byteOffset" == g) || (0, o.A)(g, p)) || f.push(g); + return f + } + }, 802: function (t, e) { + "use strict"; + e.A = function (t, e) { + for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n]; + return t + } + }, 6437: function (t, e, n) { + "use strict"; + var r = n(6770), i = n(8138), s = Object.prototype.hasOwnProperty; + e.A = function (t, e, n) { + var o = t[e]; + s.call(t, e) && (0, i.A)(o, n) && (void 0 !== n || e in t) || (0, r.A)(t, e, n) + } + }, 6770: function (t, e, n) { + "use strict"; + var r = n(7889); + e.A = function (t, e, n) { + "__proto__" == e && r.A ? (0, r.A)(t, e, { + configurable: !0, + enumerable: !0, + value: n, + writable: !0 + }) : t[e] = n + } + }, 1381: function (t, e, n) { + "use strict"; + var r = n(802), i = n(723); + e.A = function (t, e, n) { + var s = e(t); + return (0, i.A)(t) ? s : (0, r.A)(s, n(t)) + } + }, 2159: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return u + } + }); + var r = n(439), i = Object.prototype, s = i.hasOwnProperty, o = i.toString, + l = r.A ? r.A.toStringTag : void 0, a = Object.prototype.toString, + c = r.A ? r.A.toStringTag : void 0, u = function (t) { + return null == t ? void 0 === t ? "[object Undefined]" : "[object Null]" : c && c in Object(t) ? function (t) { + var e = s.call(t, l), n = t[l]; + try { + t[l] = void 0; + var r = !0 + } catch (t) { + } + var i = o.call(t); + return r && (e ? t[l] = n : delete t[l]), i + }(t) : function (t) { + return a.call(t) + }(t) + } + }, 5771: function (t, e) { + "use strict"; + e.A = function (t) { + return function (e) { + return t(e) + } + } + }, 2899: function (t, e, n) { + "use strict"; + var r = n(7218); + e.A = function (t) { + var e = new t.constructor(t.byteLength); + return new r.A(e).set(new r.A(t)), e + } + }, 3812: function (t, e, n) { + "use strict"; + var r = n(5507), i = "object" == typeof exports && exports && !exports.nodeType && exports, + s = i && "object" == typeof module && module && !module.nodeType && module, + o = s && s.exports === i ? r.A.Buffer : void 0, l = o ? o.allocUnsafe : void 0; + e.A = function (t, e) { + if (e) return t.slice(); + var n = t.length, r = l ? l(n) : new t.constructor(n); + return t.copy(r), r + } + }, 1827: function (t, e, n) { + "use strict"; + var r = n(2899); + e.A = function (t, e) { + var n = e ? (0, r.A)(t.buffer) : t.buffer; + return new t.constructor(n, t.byteOffset, t.length) + } + }, 4405: function (t, e) { + "use strict"; + e.A = function (t, e) { + var n = -1, r = t.length; + for (e || (e = Array(r)); ++n < r;) e[n] = t[n]; + return e + } + }, 9601: function (t, e, n) { + "use strict"; + var r = n(6437), i = n(6770); + e.A = function (t, e, n, s) { + var o = !n; + n || (n = {}); + for (var l = -1, a = e.length; ++l < a;) { + var c = e[l], u = s ? s(n[c], t[c], c, n, t) : void 0; + void 0 === u && (u = t[c]), o ? (0, i.A)(n, c, u) : (0, r.A)(n, c, u) + } + return n + } + }, 7889: function (t, e, n) { + "use strict"; + var r = n(2281), i = function () { + try { + var t = (0, r.A)(Object, "defineProperty"); + return t({}, "", {}), t + } catch (t) { + } + }(); + e.A = i + }, 9646: function (t, e) { + "use strict"; + var n = "object" == typeof global && global && global.Object === Object && global; + e.A = n + }, 2816: function (t, e, n) { + "use strict"; + var r = n(1381), i = n(9844), s = n(3169); + e.A = function (t) { + return (0, r.A)(t, s.A, i.A) + } + }, 2281: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return m + } + }); + var r, i = n(7572), s = n(5507).A["__core-js_shared__"], + o = (r = /[^.]+$/.exec(s && s.keys && s.keys.IE_PROTO || "")) ? "Symbol(src)_1." + r : "", + l = n(659), a = n(1543), c = /^\[object .+?Constructor\]$/, u = Function.prototype, + h = Object.prototype, d = u.toString, f = h.hasOwnProperty, + p = RegExp("^" + d.call(f).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), + g = function (t) { + return !(!(0, l.A)(t) || (e = t, o && o in e)) && ((0, i.A)(t) ? p : c).test((0, a.A)(t)); + var e + }, m = function (t, e) { + var n = function (t, e) { + return null == t ? void 0 : t[e] + }(t, e); + return g(n) ? n : void 0 + } + }, 8769: function (t, e, n) { + "use strict"; + var r = (0, n(2217).A)(Object.getPrototypeOf, Object); + e.A = r + }, 9844: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return o + } + }); + var r = n(6935), i = Object.prototype.propertyIsEnumerable, s = Object.getOwnPropertySymbols, + o = s ? function (t) { + return null == t ? [] : (t = Object(t), function (t, e) { + for (var n = -1, r = null == t ? 0 : t.length, i = 0, s = []; ++n < r;) { + var o = t[n]; + e(o, n, t) && (s[i++] = o) + } + return s + }(s(t), (function (e) { + return i.call(t, e) + }))) + } : r.A + }, 7995: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return E + } + }); + var r = n(2281), i = n(5507), s = (0, r.A)(i.A, "DataView"), o = n(2461), l = (0, r.A)(i.A, "Promise"), + a = (0, r.A)(i.A, "Set"), c = (0, r.A)(i.A, "WeakMap"), u = n(2159), h = n(1543), + d = "[object Map]", f = "[object Promise]", p = "[object Set]", g = "[object WeakMap]", + m = "[object DataView]", b = (0, h.A)(s), y = (0, h.A)(o.A), v = (0, h.A)(l), A = (0, h.A)(a), + x = (0, h.A)(c), N = u.A; + (s && N(new s(new ArrayBuffer(1))) != m || o.A && N(new o.A) != d || l && N(l.resolve()) != f || a && N(new a) != p || c && N(new c) != g) && (N = function (t) { + var e = (0, u.A)(t), n = "[object Object]" == e ? t.constructor : void 0, r = n ? (0, h.A)(n) : ""; + if (r) switch (r) { + case b: + return m; + case y: + return d; + case v: + return f; + case A: + return p; + case x: + return g + } + return e + }); + var E = N + }, 1683: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return a + } + }); + var r = n(659), i = Object.create, s = function () { + function t() { + } + + return function (e) { + if (!(0, r.A)(e)) return {}; + if (i) return i(e); + t.prototype = e; + var n = new t; + return t.prototype = void 0, n + } + }(), o = n(8769), l = n(501), a = function (t) { + return "function" != typeof t.constructor || (0, l.A)(t) ? {} : s((0, o.A)(t)) + } + }, 3767: function (t, e) { + "use strict"; + var n = /^(?:0|[1-9]\d*)$/; + e.A = function (t, e) { + var r = typeof t; + return !!(e = null == e ? 9007199254740991 : e) && ("number" == r || "symbol" != r && n.test(t)) && t > -1 && t % 1 == 0 && t < e + } + }, 501: function (t, e) { + "use strict"; + var n = Object.prototype; + e.A = function (t) { + var e = t && t.constructor; + return t === ("function" == typeof e && e.prototype || n) + } + }, 8795: function (t, e, n) { + "use strict"; + var r = n(9646), i = "object" == typeof exports && exports && !exports.nodeType && exports, + s = i && "object" == typeof module && module && !module.nodeType && module, + o = s && s.exports === i && r.A.process, l = function () { + try { + return s && s.require && s.require("util").types || o && o.binding && o.binding("util") + } catch (t) { + } + }(); + e.A = l + }, 2217: function (t, e) { + "use strict"; + e.A = function (t, e) { + return function (n) { + return t(e(n)) + } + } + }, 5507: function (t, e, n) { + "use strict"; + var r = n(9646), i = "object" == typeof self && self && self.Object === Object && self, + s = r.A || i || Function("return this")(); + e.A = s + }, 1543: function (t, e) { + "use strict"; + var n = Function.prototype.toString; + e.A = function (t) { + if (null != t) { + try { + return n.call(t) + } catch (t) { + } + try { + return t + "" + } catch (t) { + } + } + return "" + } + }, 3707: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return H + } + }); + var r = n(2673), i = n(6437), s = n(9601), o = n(3169), l = n(2624), a = n(3812), c = n(4405), + u = n(9844), h = n(802), d = n(8769), f = n(6935), p = Object.getOwnPropertySymbols ? function (t) { + for (var e = []; t;) (0, h.A)(e, (0, u.A)(t)), t = (0, d.A)(t); + return e + } : f.A, g = n(2816), m = n(1381), b = function (t) { + return (0, m.A)(t, l.A, p) + }, y = n(7995), v = Object.prototype.hasOwnProperty, A = n(2899), x = /\w*$/, N = n(439), + E = N.A ? N.A.prototype : void 0, w = E ? E.valueOf : void 0, q = n(1827), k = function (t, e, n) { + var r, i, s, o = t.constructor; + switch (e) { + case"[object ArrayBuffer]": + return (0, A.A)(t); + case"[object Boolean]": + case"[object Date]": + return new o(+t); + case"[object DataView]": + return function (t, e) { + var n = e ? (0, A.A)(t.buffer) : t.buffer; + return new t.constructor(n, t.byteOffset, t.byteLength) + }(t, n); + case"[object Float32Array]": + case"[object Float64Array]": + case"[object Int8Array]": + case"[object Int16Array]": + case"[object Int32Array]": + case"[object Uint8Array]": + case"[object Uint8ClampedArray]": + case"[object Uint16Array]": + case"[object Uint32Array]": + return (0, q.A)(t, n); + case"[object Map]": + case"[object Set]": + return new o; + case"[object Number]": + case"[object String]": + return new o(t); + case"[object RegExp]": + return (s = new (i = t).constructor(i.source, x.exec(i))).lastIndex = i.lastIndex, s; + case"[object Symbol]": + return r = t, w ? Object(w.call(r)) : {} + } + }, _ = n(1683), L = n(723), S = n(776), O = n(7948), T = n(5771), j = n(8795), C = j.A && j.A.isMap, + R = C ? (0, T.A)(C) : function (t) { + return (0, O.A)(t) && "[object Map]" == (0, y.A)(t) + }, I = n(659), B = j.A && j.A.isSet, M = B ? (0, T.A)(B) : function (t) { + return (0, O.A)(t) && "[object Set]" == (0, y.A)(t) + }, U = "[object Arguments]", D = "[object Function]", P = "[object Object]", z = {}; + z[U] = z["[object Array]"] = z["[object ArrayBuffer]"] = z["[object DataView]"] = z["[object Boolean]"] = z["[object Date]"] = z["[object Float32Array]"] = z["[object Float64Array]"] = z["[object Int8Array]"] = z["[object Int16Array]"] = z["[object Int32Array]"] = z["[object Map]"] = z["[object Number]"] = z[P] = z["[object RegExp]"] = z["[object Set]"] = z["[object String]"] = z["[object Symbol]"] = z["[object Uint8Array]"] = z["[object Uint8ClampedArray]"] = z["[object Uint16Array]"] = z["[object Uint32Array]"] = !0, z["[object Error]"] = z[D] = z["[object WeakMap]"] = !1; + var F = function t(e, n, h, d, f, m) { + var A, x = 1 & n, N = 2 & n, E = 4 & n; + if (h && (A = f ? h(e, d, f, m) : h(e)), void 0 !== A) return A; + if (!(0, I.A)(e)) return e; + var w = (0, L.A)(e); + if (w) { + if (A = function (t) { + var e = t.length, n = new t.constructor(e); + return e && "string" == typeof t[0] && v.call(t, "index") && (n.index = t.index, n.input = t.input), n + }(e), !x) return (0, c.A)(e, A) + } else { + var q = (0, y.A)(e), O = q == D || "[object GeneratorFunction]" == q; + if ((0, S.A)(e)) return (0, a.A)(e, x); + if (q == P || q == U || O && !f) { + if (A = N || O ? {} : (0, _.A)(e), !x) return N ? function (t, e) { + return (0, s.A)(t, p(t), e) + }(e, function (t, e) { + return t && (0, s.A)(e, (0, l.A)(e), t) + }(A, e)) : function (t, e) { + return (0, s.A)(t, (0, u.A)(t), e) + }(e, function (t, e) { + return t && (0, s.A)(e, (0, o.A)(e), t) + }(A, e)) + } else { + if (!z[q]) return f ? e : {}; + A = k(e, q, x) + } + } + m || (m = new r.A); + var T = m.get(e); + if (T) return T; + m.set(e, A), M(e) ? e.forEach((function (r) { + A.add(t(r, n, h, r, e, m)) + })) : R(e) && e.forEach((function (r, i) { + A.set(i, t(r, n, h, i, e, m)) + })); + var j = E ? N ? b : g.A : N ? l.A : o.A, C = w ? void 0 : j(e); + return function (t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t);) ; + }(C || e, (function (r, s) { + C && (r = e[s = r]), (0, i.A)(A, s, t(r, n, h, s, e, m)) + })), A + }, H = function (t) { + return F(t, 5) + } + }, 8138: function (t, e) { + "use strict"; + e.A = function (t, e) { + return t === e || t != t && e != e + } + }, 8412: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return u + } + }); + var r = n(2159), i = n(7948), s = function (t) { + return (0, i.A)(t) && "[object Arguments]" == (0, r.A)(t) + }, o = Object.prototype, l = o.hasOwnProperty, a = o.propertyIsEnumerable, c = s(function () { + return arguments + }()) ? s : function (t) { + return (0, i.A)(t) && l.call(t, "callee") && !a.call(t, "callee") + }, u = c + }, 723: function (t, e) { + "use strict"; + var n = Array.isArray; + e.A = n + }, 3628: function (t, e, n) { + "use strict"; + var r = n(7572), i = n(1628); + e.A = function (t) { + return null != t && (0, i.A)(t.length) && !(0, r.A)(t) + } + }, 776: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return l + } + }); + var r = n(5507), i = "object" == typeof exports && exports && !exports.nodeType && exports, + s = i && "object" == typeof module && module && !module.nodeType && module, + o = s && s.exports === i ? r.A.Buffer : void 0, l = (o ? o.isBuffer : void 0) || function () { + return !1 + } + }, 5123: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return S + } + }); + var r = n(2673), i = n(3558); + + function s(t) { + var e = -1, n = null == t ? 0 : t.length; + for (this.__data__ = new i.A; ++e < n;) this.add(t[e]) + } + + s.prototype.add = s.prototype.push = function (t) { + return this.__data__.set(t, "__lodash_hash_undefined__"), this + }, s.prototype.has = function (t) { + return this.__data__.has(t) + }; + var o = s, l = function (t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r;) if (e(t[n], n, t)) return !0; + return !1 + }, a = function (t, e, n, r, i, s) { + var a = 1 & n, c = t.length, u = e.length; + if (c != u && !(a && u > c)) return !1; + var h = s.get(t), d = s.get(e); + if (h && d) return h == e && d == t; + var f = -1, p = !0, g = 2 & n ? new o : void 0; + for (s.set(t, e), s.set(e, t); ++f < c;) { + var m = t[f], b = e[f]; + if (r) var y = a ? r(b, m, f, e, t, s) : r(m, b, f, t, e, s); + if (void 0 !== y) { + if (y) continue; + p = !1; + break + } + if (g) { + if (!l(e, (function (t, e) { + if (o = e, !g.has(o) && (m === t || i(m, t, n, r, s))) return g.push(e); + var o + }))) { + p = !1; + break + } + } else if (m !== b && !i(m, b, n, r, s)) { + p = !1; + break + } + } + return s.delete(t), s.delete(e), p + }, c = n(439), u = n(7218), h = n(8138), d = function (t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t, r) { + n[++e] = [r, t] + })), n + }, f = function (t) { + var e = -1, n = Array(t.size); + return t.forEach((function (t) { + n[++e] = t + })), n + }, p = c.A ? c.A.prototype : void 0, g = p ? p.valueOf : void 0, m = n(2816), + b = Object.prototype.hasOwnProperty, y = n(7995), v = n(723), A = n(776), x = n(5755), + N = "[object Arguments]", E = "[object Array]", w = "[object Object]", + q = Object.prototype.hasOwnProperty, k = function (t, e, n, i, s, o) { + var l = (0, v.A)(t), c = (0, v.A)(e), p = l ? E : (0, y.A)(t), k = c ? E : (0, y.A)(e), + _ = (p = p == N ? w : p) == w, L = (k = k == N ? w : k) == w, S = p == k; + if (S && (0, A.A)(t)) { + if (!(0, A.A)(e)) return !1; + l = !0, _ = !1 + } + if (S && !_) return o || (o = new r.A), l || (0, x.A)(t) ? a(t, e, n, i, s, o) : function (t, e, n, r, i, s, o) { + switch (n) { + case"[object DataView]": + if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1; + t = t.buffer, e = e.buffer; + case"[object ArrayBuffer]": + return !(t.byteLength != e.byteLength || !s(new u.A(t), new u.A(e))); + case"[object Boolean]": + case"[object Date]": + case"[object Number]": + return (0, h.A)(+t, +e); + case"[object Error]": + return t.name == e.name && t.message == e.message; + case"[object RegExp]": + case"[object String]": + return t == e + ""; + case"[object Map]": + var l = d; + case"[object Set]": + var c = 1 & r; + if (l || (l = f), t.size != e.size && !c) return !1; + var p = o.get(t); + if (p) return p == e; + r |= 2, o.set(t, e); + var m = a(l(t), l(e), r, i, s, o); + return o.delete(t), m; + case"[object Symbol]": + if (g) return g.call(t) == g.call(e) + } + return !1 + }(t, e, p, n, i, s, o); + if (!(1 & n)) { + var O = _ && q.call(t, "__wrapped__"), T = L && q.call(e, "__wrapped__"); + if (O || T) { + var j = O ? t.value() : t, C = T ? e.value() : e; + return o || (o = new r.A), s(j, C, n, i, o) + } + } + return !!S && (o || (o = new r.A), function (t, e, n, r, i, s) { + var o = 1 & n, l = (0, m.A)(t), a = l.length; + if (a != (0, m.A)(e).length && !o) return !1; + for (var c = a; c--;) { + var u = l[c]; + if (!(o ? u in e : b.call(e, u))) return !1 + } + var h = s.get(t), d = s.get(e); + if (h && d) return h == e && d == t; + var f = !0; + s.set(t, e), s.set(e, t); + for (var p = o; ++c < a;) { + var g = t[u = l[c]], y = e[u]; + if (r) var v = o ? r(y, g, u, e, t, s) : r(g, y, u, t, e, s); + if (!(void 0 === v ? g === y || i(g, y, n, r, s) : v)) { + f = !1; + break + } + p || (p = "constructor" == u) + } + if (f && !p) { + var A = t.constructor, x = e.constructor; + A == x || !("constructor" in t) || !("constructor" in e) || "function" == typeof A && A instanceof A && "function" == typeof x && x instanceof x || (f = !1) + } + return s.delete(t), s.delete(e), f + }(t, e, n, i, s, o)) + }, _ = n(7948), L = function t(e, n, r, i, s) { + return e === n || (null == e || null == n || !(0, _.A)(e) && !(0, _.A)(n) ? e != e && n != n : k(e, n, r, i, t, s)) + }, S = function (t, e) { + return L(t, e) + } + }, 7572: function (t, e, n) { + "use strict"; + var r = n(2159), i = n(659); + e.A = function (t) { + if (!(0, i.A)(t)) return !1; + var e = (0, r.A)(t); + return "[object Function]" == e || "[object GeneratorFunction]" == e || "[object AsyncFunction]" == e || "[object Proxy]" == e + } + }, 1628: function (t, e) { + "use strict"; + e.A = function (t) { + return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991 + } + }, 659: function (t, e) { + "use strict"; + e.A = function (t) { + var e = typeof t; + return null != t && ("object" == e || "function" == e) + } + }, 7948: function (t, e) { + "use strict"; + e.A = function (t) { + return null != t && "object" == typeof t + } + }, 5755: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return u + } + }); + var r = n(2159), i = n(1628), s = n(7948), o = {}; + o["[object Float32Array]"] = o["[object Float64Array]"] = o["[object Int8Array]"] = o["[object Int16Array]"] = o["[object Int32Array]"] = o["[object Uint8Array]"] = o["[object Uint8ClampedArray]"] = o["[object Uint16Array]"] = o["[object Uint32Array]"] = !0, o["[object Arguments]"] = o["[object Array]"] = o["[object ArrayBuffer]"] = o["[object Boolean]"] = o["[object DataView]"] = o["[object Date]"] = o["[object Error]"] = o["[object Function]"] = o["[object Map]"] = o["[object Number]"] = o["[object Object]"] = o["[object RegExp]"] = o["[object Set]"] = o["[object String]"] = o["[object WeakMap]"] = !1; + var l = n(5771), a = n(8795), c = a.A && a.A.isTypedArray, u = c ? (0, l.A)(c) : function (t) { + return (0, s.A)(t) && (0, i.A)(t.length) && !!o[(0, r.A)(t)] + } + }, 3169: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return a + } + }); + var r = n(6753), i = n(501), s = (0, n(2217).A)(Object.keys, Object), + o = Object.prototype.hasOwnProperty, l = n(3628), a = function (t) { + return (0, l.A)(t) ? (0, r.A)(t) : function (t) { + if (!(0, i.A)(t)) return s(t); + var e = []; + for (var n in Object(t)) o.call(t, n) && "constructor" != n && e.push(n); + return e + }(t) + } + }, 2624: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return c + } + }); + var r = n(6753), i = n(659), s = n(501), o = Object.prototype.hasOwnProperty, l = function (t) { + if (!(0, i.A)(t)) return function (t) { + var e = []; + if (null != t) for (var n in Object(t)) e.push(n); + return e + }(t); + var e = (0, s.A)(t), n = []; + for (var r in t) ("constructor" != r || !e && o.call(t, r)) && n.push(r); + return n + }, a = n(3628), c = function (t) { + return (0, a.A)(t) ? (0, r.A)(t, !0) : l(t) + } + }, 8347: function (t, e, n) { + "use strict"; + n.d(e, { + A: function () { + return $ + } + }); + var r, i, s, o, l = n(2673), a = n(6770), c = n(8138), u = function (t, e, n) { + (void 0 !== n && !(0, c.A)(t[e], n) || void 0 === n && !(e in t)) && (0, a.A)(t, e, n) + }, h = function (t, e, n) { + for (var r = -1, i = Object(t), s = n(t), o = s.length; o--;) { + var l = s[++r]; + if (!1 === e(i[l], l, i)) break + } + return t + }, d = n(3812), f = n(1827), p = n(4405), g = n(1683), m = n(8412), b = n(723), y = n(3628), + v = n(7948), A = n(776), x = n(7572), N = n(659), E = n(2159), w = n(8769), q = Function.prototype, + k = Object.prototype, _ = q.toString, L = k.hasOwnProperty, S = _.call(Object), O = n(5755), + T = function (t, e) { + if (("constructor" !== e || "function" != typeof t[e]) && "__proto__" != e) return t[e] + }, j = n(9601), C = n(2624), R = function (t, e, n, r, i, s, o) { + var l, a = T(t, n), c = T(e, n), h = o.get(c); + if (h) u(t, n, h); else { + var q = s ? s(a, c, n + "", t, e, o) : void 0, k = void 0 === q; + if (k) { + var R = (0, b.A)(c), I = !R && (0, A.A)(c), B = !R && !I && (0, O.A)(c); + q = c, R || I || B ? (0, b.A)(a) ? q = a : (l = a, (0, v.A)(l) && (0, y.A)(l) ? q = (0, p.A)(a) : I ? (k = !1, q = (0, d.A)(c, !0)) : B ? (k = !1, q = (0, f.A)(c, !0)) : q = []) : function (t) { + if (!(0, v.A)(t) || "[object Object]" != (0, E.A)(t)) return !1; + var e = (0, w.A)(t); + if (null === e) return !0; + var n = L.call(e, "constructor") && e.constructor; + return "function" == typeof n && n instanceof n && _.call(n) == S + }(c) || (0, m.A)(c) ? (q = a, (0, m.A)(a) ? q = function (t) { + return (0, j.A)(t, (0, C.A)(t)) + }(a) : (0, N.A)(a) && !(0, x.A)(a) || (q = (0, g.A)(c))) : k = !1 + } + k && (o.set(c, q), i(q, c, r, s, o), o.delete(c)), u(t, n, q) + } + }, I = function t(e, n, r, i, s) { + e !== n && h(n, (function (o, a) { + if (s || (s = new l.A), (0, N.A)(o)) R(e, n, a, r, t, i, s); else { + var c = i ? i(T(e, a), o, a + "", e, n, s) : void 0; + void 0 === c && (c = o), u(e, a, c) + } + }), C.A) + }, B = function (t) { + return t + }, M = Math.max, U = n(7889), D = U.A ? function (t, e) { + return (0, U.A)(t, "toString", { + configurable: !0, enumerable: !1, value: (n = e, function () { + return n + }), writable: !0 + }); + var n + } : B, P = Date.now, z = (r = D, i = 0, s = 0, function () { + var t = P(), e = 16 - (t - s); + if (s = t, e > 0) { + if (++i >= 800) return arguments[0] + } else i = 0; + return r.apply(void 0, arguments) + }), F = function (t, e) { + return z(function (t, e, n) { + return e = M(void 0 === e ? t.length - 1 : e, 0), function () { + for (var r = arguments, i = -1, s = M(r.length - e, 0), o = Array(s); ++i < s;) o[i] = r[e + i]; + i = -1; + for (var l = Array(e + 1); ++i < e;) l[i] = r[i]; + return l[e] = n(o), function (t, e, n) { + switch (n.length) { + case 0: + return t.call(e); + case 1: + return t.call(e, n[0]); + case 2: + return t.call(e, n[0], n[1]); + case 3: + return t.call(e, n[0], n[1], n[2]) + } + return t.apply(e, n) + }(t, this, l) + } + }(t, e, B), t + "") + }, H = n(3767), $ = (o = function (t, e, n) { + I(t, e, n) + }, F((function (t, e) { + var n = -1, r = e.length, i = r > 1 ? e[r - 1] : void 0, s = r > 2 ? e[2] : void 0; + for (i = o.length > 3 && "function" == typeof i ? (r--, i) : void 0, s && function (t, e, n) { + if (!(0, N.A)(n)) return !1; + var r = typeof e; + return !!("number" == r ? (0, y.A)(n) && (0, H.A)(e, n.length) : "string" == r && e in n) && (0, c.A)(n[e], t) + }(e[0], e[1], s) && (i = r < 3 ? void 0 : i, r = 1), t = Object(t); ++n < r;) { + var l = e[n]; + l && o(t, l, n) + } + return t + }))) + }, 6935: function (t, e) { + "use strict"; + e.A = function () { + return [] + } + }, 6003: function (t, e, n) { + "use strict"; + n.r(e), n.d(e, { + Attributor: function () { + return i + }, AttributorStore: function () { + return d + }, BlockBlot: function () { + return w + }, ClassAttributor: function () { + return c + }, ContainerBlot: function () { + return k + }, EmbedBlot: function () { + return _ + }, InlineBlot: function () { + return N + }, LeafBlot: function () { + return m + }, ParentBlot: function () { + return A + }, Registry: function () { + return l + }, Scope: function () { + return r + }, ScrollBlot: function () { + return O + }, StyleAttributor: function () { + return h + }, TextBlot: function () { + return j + } + }); + var r = (t => (t[t.TYPE = 3] = "TYPE", t[t.LEVEL = 12] = "LEVEL", t[t.ATTRIBUTE = 13] = "ATTRIBUTE", t[t.BLOT = 14] = "BLOT", t[t.INLINE = 7] = "INLINE", t[t.BLOCK = 11] = "BLOCK", t[t.BLOCK_BLOT = 10] = "BLOCK_BLOT", t[t.INLINE_BLOT = 6] = "INLINE_BLOT", t[t.BLOCK_ATTRIBUTE = 9] = "BLOCK_ATTRIBUTE", t[t.INLINE_ATTRIBUTE = 5] = "INLINE_ATTRIBUTE", t[t.ANY = 15] = "ANY", t))(r || {}); + + class i { + constructor(t, e, n = {}) { + this.attrName = t, this.keyName = e; + const i = r.TYPE & r.ATTRIBUTE; + this.scope = null != n.scope ? n.scope & r.LEVEL | i : r.ATTRIBUTE, null != n.whitelist && (this.whitelist = n.whitelist) + } + + static keys(t) { + return Array.from(t.attributes).map((t => t.name)) + } + + add(t, e) { + return !!this.canAdd(t, e) && (t.setAttribute(this.keyName, e), !0) + } + + canAdd(t, e) { + return null == this.whitelist || ("string" == typeof e ? this.whitelist.indexOf(e.replace(/["']/g, "")) > -1 : this.whitelist.indexOf(e) > -1) + } + + remove(t) { + t.removeAttribute(this.keyName) + } + + value(t) { + const e = t.getAttribute(this.keyName); + return this.canAdd(t, e) && e ? e : "" + } + } + + class s extends Error { + constructor(t) { + super(t = "[Parchment] " + t), this.message = t, this.name = this.constructor.name + } + } + + const o = class t { + constructor() { + this.attributes = {}, this.classes = {}, this.tags = {}, this.types = {} + } + + static find(t, e = !1) { + if (null == t) return null; + if (this.blots.has(t)) return this.blots.get(t) || null; + if (e) { + let n = null; + try { + n = t.parentNode + } catch { + return null + } + return this.find(n, e) + } + return null + } + + create(e, n, r) { + const i = this.query(n); + if (null == i) throw new s(`Unable to create ${n} blot`); + const o = i, l = n instanceof Node || n.nodeType === Node.TEXT_NODE ? n : o.create(r), + a = new o(e, l, r); + return t.blots.set(a.domNode, a), a + } + + find(e, n = !1) { + return t.find(e, n) + } + + query(t, e = r.ANY) { + let n; + return "string" == typeof t ? n = this.types[t] || this.attributes[t] : t instanceof Text || t.nodeType === Node.TEXT_NODE ? n = this.types.text : "number" == typeof t ? t & r.LEVEL & r.BLOCK ? n = this.types.block : t & r.LEVEL & r.INLINE && (n = this.types.inline) : t instanceof Element && ((t.getAttribute("class") || "").split(/\s+/).some((t => (n = this.classes[t], !!n))), n = n || this.tags[t.tagName]), null == n ? null : "scope" in n && e & r.LEVEL & n.scope && e & r.TYPE & n.scope ? n : null + } + + register(...t) { + return t.map((t => { + const e = "blotName" in t, n = "attrName" in t; + if (!e && !n) throw new s("Invalid definition"); + if (e && "abstract" === t.blotName) throw new s("Cannot register abstract class"); + const r = e ? t.blotName : n ? t.attrName : void 0; + return this.types[r] = t, n ? "string" == typeof t.keyName && (this.attributes[t.keyName] = t) : e && (t.className && (this.classes[t.className] = t), t.tagName && (Array.isArray(t.tagName) ? t.tagName = t.tagName.map((t => t.toUpperCase())) : t.tagName = t.tagName.toUpperCase(), (Array.isArray(t.tagName) ? t.tagName : [t.tagName]).forEach((e => { + (null == this.tags[e] || null == t.className) && (this.tags[e] = t) + })))), t + })) + } + }; + o.blots = new WeakMap; + let l = o; + + function a(t, e) { + return (t.getAttribute("class") || "").split(/\s+/).filter((t => 0 === t.indexOf(`${e}-`))) + } + + const c = class extends i { + static keys(t) { + return (t.getAttribute("class") || "").split(/\s+/).map((t => t.split("-").slice(0, -1).join("-"))) + } + + add(t, e) { + return !!this.canAdd(t, e) && (this.remove(t), t.classList.add(`${this.keyName}-${e}`), !0) + } + + remove(t) { + a(t, this.keyName).forEach((e => { + t.classList.remove(e) + })), 0 === t.classList.length && t.removeAttribute("class") + } + + value(t) { + const e = (a(t, this.keyName)[0] || "").slice(this.keyName.length + 1); + return this.canAdd(t, e) ? e : "" + } + }; + + function u(t) { + const e = t.split("-"), n = e.slice(1).map((t => t[0].toUpperCase() + t.slice(1))).join(""); + return e[0] + n + } + + const h = class extends i { + static keys(t) { + return (t.getAttribute("style") || "").split(";").map((t => t.split(":")[0].trim())) + } + + add(t, e) { + return !!this.canAdd(t, e) && (t.style[u(this.keyName)] = e, !0) + } + + remove(t) { + t.style[u(this.keyName)] = "", t.getAttribute("style") || t.removeAttribute("style") + } + + value(t) { + const e = t.style[u(this.keyName)]; + return this.canAdd(t, e) ? e : "" + } + }, d = class { + constructor(t) { + this.attributes = {}, this.domNode = t, this.build() + } + + attribute(t, e) { + e ? t.add(this.domNode, e) && (null != t.value(this.domNode) ? this.attributes[t.attrName] = t : delete this.attributes[t.attrName]) : (t.remove(this.domNode), delete this.attributes[t.attrName]) + } + + build() { + this.attributes = {}; + const t = l.find(this.domNode); + if (null == t) return; + const e = i.keys(this.domNode), n = c.keys(this.domNode), s = h.keys(this.domNode); + e.concat(n).concat(s).forEach((e => { + const n = t.scroll.query(e, r.ATTRIBUTE); + n instanceof i && (this.attributes[n.attrName] = n) + })) + } + + copy(t) { + Object.keys(this.attributes).forEach((e => { + const n = this.attributes[e].value(this.domNode); + t.format(e, n) + })) + } + + move(t) { + this.copy(t), Object.keys(this.attributes).forEach((t => { + this.attributes[t].remove(this.domNode) + })), this.attributes = {} + } + + values() { + return Object.keys(this.attributes).reduce(((t, e) => (t[e] = this.attributes[e].value(this.domNode), t)), {}) + } + }, f = class { + constructor(t, e) { + this.scroll = t, this.domNode = e, l.blots.set(e, this), this.prev = null, this.next = null + } + + static create(t) { + if (null == this.tagName) throw new s("Blot definition missing tagName"); + let e, n; + return Array.isArray(this.tagName) ? ("string" == typeof t ? (n = t.toUpperCase(), parseInt(n, 10).toString() === n && (n = parseInt(n, 10))) : "number" == typeof t && (n = t), e = "number" == typeof n ? document.createElement(this.tagName[n - 1]) : n && this.tagName.indexOf(n) > -1 ? document.createElement(n) : document.createElement(this.tagName[0])) : e = document.createElement(this.tagName), this.className && e.classList.add(this.className), e + } + + get statics() { + return this.constructor + } + + attach() { + } + + clone() { + const t = this.domNode.cloneNode(!1); + return this.scroll.create(t) + } + + detach() { + null != this.parent && this.parent.removeChild(this), l.blots.delete(this.domNode) + } + + deleteAt(t, e) { + this.isolate(t, e).remove() + } + + formatAt(t, e, n, i) { + const s = this.isolate(t, e); + if (null != this.scroll.query(n, r.BLOT) && i) s.wrap(n, i); else if (null != this.scroll.query(n, r.ATTRIBUTE)) { + const t = this.scroll.create(this.statics.scope); + s.wrap(t), t.format(n, i) + } + } + + insertAt(t, e, n) { + const r = null == n ? this.scroll.create("text", e) : this.scroll.create(e, n), + i = this.split(t); + this.parent.insertBefore(r, i || void 0) + } + + isolate(t, e) { + const n = this.split(t); + if (null == n) throw new Error("Attempt to isolate at end"); + return n.split(e), n + } + + length() { + return 1 + } + + offset(t = this.parent) { + return null == this.parent || this === t ? 0 : this.parent.children.offset(this) + this.parent.offset(t) + } + + optimize(t) { + this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer) && this.wrap(this.statics.requiredContainer.blotName) + } + + remove() { + null != this.domNode.parentNode && this.domNode.parentNode.removeChild(this.domNode), this.detach() + } + + replaceWith(t, e) { + const n = "string" == typeof t ? this.scroll.create(t, e) : t; + return null != this.parent && (this.parent.insertBefore(n, this.next || void 0), this.remove()), n + } + + split(t, e) { + return 0 === t ? this : this.next + } + + update(t, e) { + } + + wrap(t, e) { + const n = "string" == typeof t ? this.scroll.create(t, e) : t; + if (null != this.parent && this.parent.insertBefore(n, this.next || void 0), "function" != typeof n.appendChild) throw new s(`Cannot wrap ${t}`); + return n.appendChild(this), n + } + }; + f.blotName = "abstract"; + let p = f; + const g = class extends p { + static value(t) { + return !0 + } + + index(t, e) { + return this.domNode === t || this.domNode.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_CONTAINED_BY ? Math.min(e, 1) : -1 + } + + position(t, e) { + let n = Array.from(this.parent.domNode.childNodes).indexOf(this.domNode); + return t > 0 && (n += 1), [this.parent.domNode, n] + } + + value() { + return {[this.statics.blotName]: this.statics.value(this.domNode) || !0} + } + }; + g.scope = r.INLINE_BLOT; + const m = g; + + class b { + constructor() { + this.head = null, this.tail = null, this.length = 0 + } + + append(...t) { + if (this.insertBefore(t[0], null), t.length > 1) { + const e = t.slice(1); + this.append(...e) + } + } + + at(t) { + const e = this.iterator(); + let n = e(); + for (; n && t > 0;) t -= 1, n = e(); + return n + } + + contains(t) { + const e = this.iterator(); + let n = e(); + for (; n;) { + if (n === t) return !0; + n = e() + } + return !1 + } + + indexOf(t) { + const e = this.iterator(); + let n = e(), r = 0; + for (; n;) { + if (n === t) return r; + r += 1, n = e() + } + return -1 + } + + insertBefore(t, e) { + null != t && (this.remove(t), t.next = e, null != e ? (t.prev = e.prev, null != e.prev && (e.prev.next = t), e.prev = t, e === this.head && (this.head = t)) : null != this.tail ? (this.tail.next = t, t.prev = this.tail, this.tail = t) : (t.prev = null, this.head = this.tail = t), this.length += 1) + } + + offset(t) { + let e = 0, n = this.head; + for (; null != n;) { + if (n === t) return e; + e += n.length(), n = n.next + } + return -1 + } + + remove(t) { + this.contains(t) && (null != t.prev && (t.prev.next = t.next), null != t.next && (t.next.prev = t.prev), t === this.head && (this.head = t.next), t === this.tail && (this.tail = t.prev), this.length -= 1) + } + + iterator(t = this.head) { + return () => { + const e = t; + return null != t && (t = t.next), e + } + } + + find(t, e = !1) { + const n = this.iterator(); + let r = n(); + for (; r;) { + const i = r.length(); + if (t < i || e && t === i && (null == r.next || 0 !== r.next.length())) return [r, t]; + t -= i, r = n() + } + return [null, 0] + } + + forEach(t) { + const e = this.iterator(); + let n = e(); + for (; n;) t(n), n = e() + } + + forEachAt(t, e, n) { + if (e <= 0) return; + const [r, i] = this.find(t); + let s = t - i; + const o = this.iterator(r); + let l = o(); + for (; l && s < t + e;) { + const r = l.length(); + t > s ? n(l, t - s, Math.min(e, s + r - t)) : n(l, 0, Math.min(r, t + e - s)), s += r, l = o() + } + } + + map(t) { + return this.reduce(((e, n) => (e.push(t(n)), e)), []) + } + + reduce(t, e) { + const n = this.iterator(); + let r = n(); + for (; r;) e = t(e, r), r = n(); + return e + } + } + + function y(t, e) { + const n = e.find(t); + if (n) return n; + try { + return e.create(t) + } catch { + const n = e.create(r.INLINE); + return Array.from(t.childNodes).forEach((t => { + n.domNode.appendChild(t) + })), t.parentNode && t.parentNode.replaceChild(n.domNode, t), n.attach(), n + } + } + + const v = class t extends p { + constructor(t, e) { + super(t, e), this.uiNode = null, this.build() + } + + appendChild(t) { + this.insertBefore(t) + } + + attach() { + super.attach(), this.children.forEach((t => { + t.attach() + })) + } + + attachUI(e) { + null != this.uiNode && this.uiNode.remove(), this.uiNode = e, t.uiClass && this.uiNode.classList.add(t.uiClass), this.uiNode.setAttribute("contenteditable", "false"), this.domNode.insertBefore(this.uiNode, this.domNode.firstChild) + } + + build() { + this.children = new b, Array.from(this.domNode.childNodes).filter((t => t !== this.uiNode)).reverse().forEach((t => { + try { + const e = y(t, this.scroll); + this.insertBefore(e, this.children.head || void 0) + } catch (t) { + if (t instanceof s) return; + throw t + } + })) + } + + deleteAt(t, e) { + if (0 === t && e === this.length()) return this.remove(); + this.children.forEachAt(t, e, ((t, e, n) => { + t.deleteAt(e, n) + })) + } + + descendant(e, n = 0) { + const [r, i] = this.children.find(n); + return null == e.blotName && e(r) || null != e.blotName && r instanceof e ? [r, i] : r instanceof t ? r.descendant(e, i) : [null, -1] + } + + descendants(e, n = 0, r = Number.MAX_VALUE) { + let i = [], s = r; + return this.children.forEachAt(n, r, ((n, r, o) => { + (null == e.blotName && e(n) || null != e.blotName && n instanceof e) && i.push(n), n instanceof t && (i = i.concat(n.descendants(e, r, s))), s -= o + })), i + } + + detach() { + this.children.forEach((t => { + t.detach() + })), super.detach() + } + + enforceAllowedChildren() { + let e = !1; + this.children.forEach((n => { + e || this.statics.allowedChildren.some((t => n instanceof t)) || (n.statics.scope === r.BLOCK_BLOT ? (null != n.next && this.splitAfter(n), null != n.prev && this.splitAfter(n.prev), n.parent.unwrap(), e = !0) : n instanceof t ? n.unwrap() : n.remove()) + })) + } + + formatAt(t, e, n, r) { + this.children.forEachAt(t, e, ((t, e, i) => { + t.formatAt(e, i, n, r) + })) + } + + insertAt(t, e, n) { + const [r, i] = this.children.find(t); + if (r) r.insertAt(i, e, n); else { + const t = null == n ? this.scroll.create("text", e) : this.scroll.create(e, n); + this.appendChild(t) + } + } + + insertBefore(t, e) { + null != t.parent && t.parent.children.remove(t); + let n = null; + this.children.insertBefore(t, e || null), t.parent = this, null != e && (n = e.domNode), (this.domNode.parentNode !== t.domNode || this.domNode.nextSibling !== n) && this.domNode.insertBefore(t.domNode, n), t.attach() + } + + length() { + return this.children.reduce(((t, e) => t + e.length()), 0) + } + + moveChildren(t, e) { + this.children.forEach((n => { + t.insertBefore(n, e) + })) + } + + optimize(t) { + if (super.optimize(t), this.enforceAllowedChildren(), null != this.uiNode && this.uiNode !== this.domNode.firstChild && this.domNode.insertBefore(this.uiNode, this.domNode.firstChild), 0 === this.children.length) if (null != this.statics.defaultChild) { + const t = this.scroll.create(this.statics.defaultChild.blotName); + this.appendChild(t) + } else this.remove() + } + + path(e, n = !1) { + const [r, i] = this.children.find(e, n), s = [[this, e]]; + return r instanceof t ? s.concat(r.path(i, n)) : (null != r && s.push([r, i]), s) + } + + removeChild(t) { + this.children.remove(t) + } + + replaceWith(e, n) { + const r = "string" == typeof e ? this.scroll.create(e, n) : e; + return r instanceof t && this.moveChildren(r), super.replaceWith(r) + } + + split(t, e = !1) { + if (!e) { + if (0 === t) return this; + if (t === this.length()) return this.next + } + const n = this.clone(); + return this.parent && this.parent.insertBefore(n, this.next || void 0), this.children.forEachAt(t, this.length(), ((t, r, i) => { + const s = t.split(r, e); + null != s && n.appendChild(s) + })), n + } + + splitAfter(t) { + const e = this.clone(); + for (; null != t.next;) e.appendChild(t.next); + return this.parent && this.parent.insertBefore(e, this.next || void 0), e + } + + unwrap() { + this.parent && this.moveChildren(this.parent, this.next || void 0), this.remove() + } + + update(t, e) { + const n = [], r = []; + t.forEach((t => { + t.target === this.domNode && "childList" === t.type && (n.push(...t.addedNodes), r.push(...t.removedNodes)) + })), r.forEach((t => { + if (null != t.parentNode && "IFRAME" !== t.tagName && document.body.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_CONTAINED_BY) return; + const e = this.scroll.find(t); + null != e && (null == e.domNode.parentNode || e.domNode.parentNode === this.domNode) && e.detach() + })), n.filter((t => t.parentNode === this.domNode && t !== this.uiNode)).sort(((t, e) => t === e ? 0 : t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING ? 1 : -1)).forEach((t => { + let e = null; + null != t.nextSibling && (e = this.scroll.find(t.nextSibling)); + const n = y(t, this.scroll); + (n.next !== e || null == n.next) && (null != n.parent && n.parent.removeChild(this), this.insertBefore(n, e || void 0)) + })), this.enforceAllowedChildren() + } + }; + v.uiClass = ""; + const A = v, x = class t extends A { + static create(t) { + return super.create(t) + } + + static formats(e, n) { + const r = n.query(t.blotName); + if (null == r || e.tagName !== r.tagName) { + if ("string" == typeof this.tagName) return !0; + if (Array.isArray(this.tagName)) return e.tagName.toLowerCase() + } + } + + constructor(t, e) { + super(t, e), this.attributes = new d(this.domNode) + } + + format(e, n) { + if (e !== this.statics.blotName || n) { + const t = this.scroll.query(e, r.INLINE); + if (null == t) return; + t instanceof i ? this.attributes.attribute(t, n) : n && (e !== this.statics.blotName || this.formats()[e] !== n) && this.replaceWith(e, n) + } else this.children.forEach((e => { + e instanceof t || (e = e.wrap(t.blotName, !0)), this.attributes.copy(e) + })), this.unwrap() + } + + formats() { + const t = this.attributes.values(), e = this.statics.formats(this.domNode, this.scroll); + return null != e && (t[this.statics.blotName] = e), t + } + + formatAt(t, e, n, i) { + null != this.formats()[n] || this.scroll.query(n, r.ATTRIBUTE) ? this.isolate(t, e).format(n, i) : super.formatAt(t, e, n, i) + } + + optimize(e) { + super.optimize(e); + const n = this.formats(); + if (0 === Object.keys(n).length) return this.unwrap(); + const r = this.next; + r instanceof t && r.prev === this && function (t, e) { + if (Object.keys(t).length !== Object.keys(e).length) return !1; + for (const n in t) if (t[n] !== e[n]) return !1; + return !0 + }(n, r.formats()) && (r.moveChildren(this), r.remove()) + } + + replaceWith(t, e) { + const n = super.replaceWith(t, e); + return this.attributes.copy(n), n + } + + update(t, e) { + super.update(t, e), t.some((t => t.target === this.domNode && "attributes" === t.type)) && this.attributes.build() + } + + wrap(e, n) { + const r = super.wrap(e, n); + return r instanceof t && this.attributes.move(r), r + } + }; + x.allowedChildren = [x, m], x.blotName = "inline", x.scope = r.INLINE_BLOT, x.tagName = "SPAN"; + const N = x, E = class t extends A { + static create(t) { + return super.create(t) + } + + static formats(e, n) { + const r = n.query(t.blotName); + if (null == r || e.tagName !== r.tagName) { + if ("string" == typeof this.tagName) return !0; + if (Array.isArray(this.tagName)) return e.tagName.toLowerCase() + } + } + + constructor(t, e) { + super(t, e), this.attributes = new d(this.domNode) + } + + format(e, n) { + const s = this.scroll.query(e, r.BLOCK); + null != s && (s instanceof i ? this.attributes.attribute(s, n) : e !== this.statics.blotName || n ? n && (e !== this.statics.blotName || this.formats()[e] !== n) && this.replaceWith(e, n) : this.replaceWith(t.blotName)) + } + + formats() { + const t = this.attributes.values(), e = this.statics.formats(this.domNode, this.scroll); + return null != e && (t[this.statics.blotName] = e), t + } + + formatAt(t, e, n, i) { + null != this.scroll.query(n, r.BLOCK) ? this.format(n, i) : super.formatAt(t, e, n, i) + } + + insertAt(t, e, n) { + if (null == n || null != this.scroll.query(e, r.INLINE)) super.insertAt(t, e, n); else { + const r = this.split(t); + if (null == r) throw new Error("Attempt to insertAt after block boundaries"); + { + const t = this.scroll.create(e, n); + r.parent.insertBefore(t, r) + } + } + } + + replaceWith(t, e) { + const n = super.replaceWith(t, e); + return this.attributes.copy(n), n + } + + update(t, e) { + super.update(t, e), t.some((t => t.target === this.domNode && "attributes" === t.type)) && this.attributes.build() + } + }; + E.blotName = "block", E.scope = r.BLOCK_BLOT, E.tagName = "P", E.allowedChildren = [N, E, m]; + const w = E, q = class extends A { + checkMerge() { + return null !== this.next && this.next.statics.blotName === this.statics.blotName + } + + deleteAt(t, e) { + super.deleteAt(t, e), this.enforceAllowedChildren() + } + + formatAt(t, e, n, r) { + super.formatAt(t, e, n, r), this.enforceAllowedChildren() + } + + insertAt(t, e, n) { + super.insertAt(t, e, n), this.enforceAllowedChildren() + } + + optimize(t) { + super.optimize(t), this.children.length > 0 && null != this.next && this.checkMerge() && (this.next.moveChildren(this), this.next.remove()) + } + }; + q.blotName = "container", q.scope = r.BLOCK_BLOT; + const k = q, _ = class extends m { + static formats(t, e) { + } + + format(t, e) { + super.formatAt(0, this.length(), t, e) + } + + formatAt(t, e, n, r) { + 0 === t && e === this.length() ? this.format(n, r) : super.formatAt(t, e, n, r) + } + + formats() { + return this.statics.formats(this.domNode, this.scroll) + } + }, L = {attributes: !0, characterData: !0, characterDataOldValue: !0, childList: !0, subtree: !0}, + S = class extends A { + constructor(t, e) { + super(null, e), this.registry = t, this.scroll = this, this.build(), this.observer = new MutationObserver((t => { + this.update(t) + })), this.observer.observe(this.domNode, L), this.attach() + } + + create(t, e) { + return this.registry.create(this, t, e) + } + + find(t, e = !1) { + const n = this.registry.find(t, e); + return n ? n.scroll === this ? n : e ? this.find(n.scroll.domNode.parentNode, !0) : null : null + } + + query(t, e = r.ANY) { + return this.registry.query(t, e) + } + + register(...t) { + return this.registry.register(...t) + } + + build() { + null != this.scroll && super.build() + } + + detach() { + super.detach(), this.observer.disconnect() + } + + deleteAt(t, e) { + this.update(), 0 === t && e === this.length() ? this.children.forEach((t => { + t.remove() + })) : super.deleteAt(t, e) + } + + formatAt(t, e, n, r) { + this.update(), super.formatAt(t, e, n, r) + } + + insertAt(t, e, n) { + this.update(), super.insertAt(t, e, n) + } + + optimize(t = [], e = {}) { + super.optimize(e); + const n = e.mutationsMap || new WeakMap; + let r = Array.from(this.observer.takeRecords()); + for (; r.length > 0;) t.push(r.pop()); + const i = (t, e = !0) => { + null == t || t === this || null != t.domNode.parentNode && (n.has(t.domNode) || n.set(t.domNode, []), e && i(t.parent)) + }, s = t => { + n.has(t.domNode) && (t instanceof A && t.children.forEach(s), n.delete(t.domNode), t.optimize(e)) + }; + let o = t; + for (let e = 0; o.length > 0; e += 1) { + if (e >= 100) throw new Error("[Parchment] Maximum optimize iterations reached"); + for (o.forEach((t => { + const e = this.find(t.target, !0); + null != e && (e.domNode === t.target && ("childList" === t.type ? (i(this.find(t.previousSibling, !1)), Array.from(t.addedNodes).forEach((t => { + const e = this.find(t, !1); + i(e, !1), e instanceof A && e.children.forEach((t => { + i(t, !1) + })) + }))) : "attributes" === t.type && i(e.prev)), i(e)) + })), this.children.forEach(s), o = Array.from(this.observer.takeRecords()), r = o.slice(); r.length > 0;) t.push(r.pop()) + } + } + + update(t, e = {}) { + t = t || this.observer.takeRecords(); + const n = new WeakMap; + t.map((t => { + const e = this.find(t.target, !0); + return null == e ? null : n.has(e.domNode) ? (n.get(e.domNode).push(t), null) : (n.set(e.domNode, [t]), e) + })).forEach((t => { + null != t && t !== this && n.has(t.domNode) && t.update(n.get(t.domNode) || [], e) + })), e.mutationsMap = n, n.has(this.domNode) && super.update(n.get(this.domNode), e), this.optimize(t, e) + } + }; + S.blotName = "scroll", S.defaultChild = w, S.allowedChildren = [w, k], S.scope = r.BLOCK_BLOT, S.tagName = "DIV"; + const O = S, T = class t extends m { + static create(t) { + return document.createTextNode(t) + } + + static value(t) { + return t.data + } + + constructor(t, e) { + super(t, e), this.text = this.statics.value(this.domNode) + } + + deleteAt(t, e) { + this.domNode.data = this.text = this.text.slice(0, t) + this.text.slice(t + e) + } + + index(t, e) { + return this.domNode === t ? e : -1 + } + + insertAt(t, e, n) { + null == n ? (this.text = this.text.slice(0, t) + e + this.text.slice(t), this.domNode.data = this.text) : super.insertAt(t, e, n) + } + + length() { + return this.text.length + } + + optimize(e) { + super.optimize(e), this.text = this.statics.value(this.domNode), 0 === this.text.length ? this.remove() : this.next instanceof t && this.next.prev === this && (this.insertAt(this.length(), this.next.value()), this.next.remove()) + } + + position(t, e = !1) { + return [this.domNode, t] + } + + split(t, e = !1) { + if (!e) { + if (0 === t) return this; + if (t === this.length()) return this.next + } + const n = this.scroll.create(this.domNode.splitText(t)); + return this.parent.insertBefore(n, this.next || void 0), this.text = this.statics.value(this.domNode), n + } + + update(t, e) { + t.some((t => "characterData" === t.type && t.target === this.domNode)) && (this.text = this.statics.value(this.domNode)) + } + + value() { + return this.text + } + }; + T.blotName = "text", T.scope = r.INLINE_BLOT; + const j = T + } + }, e = {}; + + function n(r) { + var i = e[r]; + if (void 0 !== i) return i.exports; + var s = e[r] = {id: r, loaded: !1, exports: {}}; + return t[r](s, s.exports, n), s.loaded = !0, s.exports + } + + n.n = function (t) { + var e = t && t.__esModule ? function () { + return t.default + } : function () { + return t + }; + return n.d(e, {a: e}), e + }, n.d = function (t, e) { + for (var r in e) n.o(e, r) && !n.o(t, r) && Object.defineProperty(t, r, {enumerable: !0, get: e[r]}) + }, n.g = function () { + if ("object" == typeof globalThis) return globalThis; + try { + return this || new Function("return this")() + } catch (t) { + if ("object" == typeof window) return window + } + }(), n.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e) + }, n.r = function (t) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0}) + }, n.nmd = function (t) { + return t.paths = [], t.children || (t.children = []), t + }; + var r = {}; + return function () { + "use strict"; + n.d(r, { + default: function () { + return It + } + }); + var t = n(3729), e = n(8276), i = n(7912), s = n(6003); + + class o extends s.ClassAttributor { + add(t, e) { + let n = 0; + if ("+1" === e || "-1" === e) { + const r = this.value(t) || 0; + n = "+1" === e ? r + 1 : r - 1 + } else "number" == typeof e && (n = e); + return 0 === n ? (this.remove(t), !0) : super.add(t, n.toString()) + } + + canAdd(t, e) { + return super.canAdd(t, e) || super.canAdd(t, parseInt(e, 10)) + } + + value(t) { + return parseInt(super.value(t), 10) || void 0 + } + } + + var l = new o("indent", "ql-indent", {scope: s.Scope.BLOCK, whitelist: [1, 2, 3, 4, 5, 6, 7, 8]}), + a = n(9698); + + class c extends a.Ay { + static blotName = "blockquote"; + static tagName = "blockquote" + } + + var u = c; + + class h extends a.Ay { + static blotName = "header"; + static tagName = ["H1", "H2", "H3", "H4", "H5", "H6"]; + + static formats(t) { + return this.tagName.indexOf(t.tagName) + 1 + } + } + + var d = h, f = n(580), p = n(6142); + + class g extends f.A { + } + + g.blotName = "list-container", g.tagName = "OL"; + + class m extends a.Ay { + static create(t) { + const e = super.create(); + return e.setAttribute("data-list", t), e + } + + static formats(t) { + return t.getAttribute("data-list") || void 0 + } + + static register() { + p.Ay.register(g) + } + + constructor(t, e) { + super(t, e); + const n = e.ownerDocument.createElement("span"), r = n => { + if (!t.isEnabled()) return; + const r = this.statics.formats(e, t); + "checked" === r ? (this.format("list", "unchecked"), n.preventDefault()) : "unchecked" === r && (this.format("list", "checked"), n.preventDefault()) + }; + n.addEventListener("mousedown", r), n.addEventListener("touchstart", r), this.attachUI(n) + } + + format(t, e) { + t === this.statics.blotName && e ? this.domNode.setAttribute("data-list", e) : super.format(t, e) + } + } + + m.blotName = "list", m.tagName = "LI", g.allowedChildren = [m], m.requiredContainer = g; + var b = n(9541), y = n(8638), v = n(6772), A = n(664), x = n(4850); + + class N extends x.A { + static blotName = "bold"; + static tagName = ["STRONG", "B"]; + + static create() { + return super.create() + } + + static formats() { + return !0 + } + + optimize(t) { + super.optimize(t), this.domNode.tagName !== this.statics.tagName[0] && this.replaceWith(this.statics.blotName) + } + } + + var E = N; + + class w extends x.A { + static blotName = "link"; + static tagName = "A"; + static SANITIZED_URL = "about:blank"; + static PROTOCOL_WHITELIST = ["http", "https", "mailto", "tel", "sms"]; + + static create(t) { + const e = super.create(t); + return e.setAttribute("href", this.sanitize(t)), e.setAttribute("rel", "noopener noreferrer"), e.setAttribute("target", "_blank"), e + } + + static formats(t) { + return t.getAttribute("href") + } + + static sanitize(t) { + return q(t, this.PROTOCOL_WHITELIST) ? t : this.SANITIZED_URL + } + + format(t, e) { + t === this.statics.blotName && e ? this.domNode.setAttribute("href", this.constructor.sanitize(e)) : super.format(t, e) + } + } + + function q(t, e) { + const n = document.createElement("a"); + n.href = t; + const r = n.href.slice(0, n.href.indexOf(":")); + return e.indexOf(r) > -1 + } + + class k extends x.A { + static blotName = "script"; + static tagName = ["SUB", "SUP"]; + + static create(t) { + return "super" === t ? document.createElement("sup") : "sub" === t ? document.createElement("sub") : super.create(t) + } + + static formats(t) { + return "SUB" === t.tagName ? "sub" : "SUP" === t.tagName ? "super" : void 0 + } + } + + var _ = k; + + class L extends x.A { + static blotName = "underline"; + static tagName = "U" + } + + var S = L, O = n(746); + + class T extends O.A { + static blotName = "formula"; + static className = "ql-formula"; + static tagName = "SPAN"; + + static create(t) { + if (null == window.katex) throw new Error("Formula module requires KaTeX."); + const e = super.create(t); + return "string" == typeof t && (window.katex.render(t, e, { + throwOnError: !1, + errorColor: "#f00" + }), e.setAttribute("data-value", t)), e + } + + static value(t) { + return t.getAttribute("data-value") + } + + html() { + const {formula: t} = this.value(); + return `${t}` + } + } + + var j = T; + const C = ["alt", "height", "width"]; + + class R extends s.EmbedBlot { + static blotName = "image"; + static tagName = "IMG"; + + static create(t) { + const e = super.create(t); + return "string" == typeof t && e.setAttribute("src", this.sanitize(t)), e + } + + static formats(t) { + return C.reduce(((e, n) => (t.hasAttribute(n) && (e[n] = t.getAttribute(n)), e)), {}) + } + + static match(t) { + return /\.(jpe?g|gif|png)$/.test(t) || /^data:image\/.+;base64/.test(t) + } + + static sanitize(t) { + return q(t, ["http", "https", "data"]) ? t : "//:0" + } + + static value(t) { + return t.getAttribute("src") + } + + format(t, e) { + C.indexOf(t) > -1 ? e ? this.domNode.setAttribute(t, e) : this.domNode.removeAttribute(t) : super.format(t, e) + } + } + + var I = R; + const B = ["height", "width"]; + + class M extends a.zo { + static blotName = "video"; + static className = "ql-video"; + static tagName = "IFRAME"; + + static create(t) { + const e = super.create(t); + return e.setAttribute("frameborder", "0"), e.setAttribute("allowfullscreen", "true"), e.setAttribute("src", this.sanitize(t)), e + } + + static formats(t) { + return B.reduce(((e, n) => (t.hasAttribute(n) && (e[n] = t.getAttribute(n)), e)), {}) + } + + static sanitize(t) { + return w.sanitize(t) + } + + static value(t) { + return t.getAttribute("src") + } + + format(t, e) { + B.indexOf(t) > -1 ? e ? this.domNode.setAttribute(t, e) : this.domNode.removeAttribute(t) : super.format(t, e) + } + + html() { + const {video: t} = this.value(); + return `${t}` + } + } + + var U = M, D = n(9404), P = n(5232), z = n.n(P), F = n(4266), H = n(3036), $ = n(4541), V = n(5508), + K = n(584); + const W = new s.ClassAttributor("code-token", "hljs", {scope: s.Scope.INLINE}); + + class Z extends x.A { + static formats(t, e) { + for (; null != t && t !== e.domNode;) { + if (t.classList && t.classList.contains(D.Ay.className)) return super.formats(t, e); + t = t.parentNode + } + } + + constructor(t, e, n) { + super(t, e, n), W.add(this.domNode, n) + } + + format(t, e) { + t !== Z.blotName ? super.format(t, e) : e ? W.add(this.domNode, e) : (W.remove(this.domNode), this.domNode.classList.remove(this.statics.className)) + } + + optimize() { + super.optimize(...arguments), W.value(this.domNode) || this.unwrap() + } + } + + Z.blotName = "code-token", Z.className = "ql-token"; + + class G extends D.Ay { + static create(t) { + const e = super.create(t); + return "string" == typeof t && e.setAttribute("data-language", t), e + } + + static formats(t) { + return t.getAttribute("data-language") || "plain" + } + + static register() { + } + + format(t, e) { + t === this.statics.blotName && e ? this.domNode.setAttribute("data-language", e) : super.format(t, e) + } + + replaceWith(t, e) { + return this.formatAt(0, this.length(), Z.blotName, !1), super.replaceWith(t, e) + } + } + + class X extends D.EJ { + attach() { + super.attach(), this.forceNext = !1, this.scroll.emitMount(this) + } + + format(t, e) { + t === G.blotName && (this.forceNext = !0, this.children.forEach((n => { + n.format(t, e) + }))) + } + + formatAt(t, e, n, r) { + n === G.blotName && (this.forceNext = !0), super.formatAt(t, e, n, r) + } + + highlight(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + if (null == this.children.head) return; + const n = `${Array.from(this.domNode.childNodes).filter((t => t !== this.uiNode)).map((t => t.textContent)).join("\n")}\n`, + r = G.formats(this.children.head.domNode); + if (e || this.forceNext || this.cachedText !== n) { + if (n.trim().length > 0 || null == this.cachedText) { + const e = this.children.reduce(((t, e) => t.concat((0, a.mG)(e, !1))), new (z())), + i = t(n, r); + e.diff(i).reduce(((t, e) => { + let {retain: n, attributes: r} = e; + return n ? (r && Object.keys(r).forEach((e => { + [G.blotName, Z.blotName].includes(e) && this.formatAt(t, n, e, r[e]) + })), t + n) : t + }), 0) + } + this.cachedText = n, this.forceNext = !1 + } + } + + html(t, e) { + const [n] = this.children.find(t); + return `
    \n${(0, V.X)(this.code(t, e))}\n
    ` + } + + optimize(t) { + if (super.optimize(t), null != this.parent && null != this.children.head && null != this.uiNode) { + const t = G.formats(this.children.head.domNode); + t !== this.uiNode.value && (this.uiNode.value = t) + } + } + } + + X.allowedChildren = [G], G.requiredContainer = X, G.allowedChildren = [Z, $.A, V.A, H.A]; + + class Q extends F.A { + static register() { + p.Ay.register(Z, !0), p.Ay.register(G, !0), p.Ay.register(X, !0) + } + + constructor(t, e) { + if (super(t, e), null == this.options.hljs) throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill."); + this.languages = this.options.languages.reduce(((t, e) => { + let {key: n} = e; + return t[n] = !0, t + }), {}), this.highlightBlot = this.highlightBlot.bind(this), this.initListener(), this.initTimer() + } + + initListener() { + this.quill.on(p.Ay.events.SCROLL_BLOT_MOUNT, (t => { + if (!(t instanceof X)) return; + const e = this.quill.root.ownerDocument.createElement("select"); + this.options.languages.forEach((t => { + let {key: n, label: r} = t; + const i = e.ownerDocument.createElement("option"); + i.textContent = r, i.setAttribute("value", n), e.appendChild(i) + })), e.addEventListener("change", (() => { + t.format(G.blotName, e.value), this.quill.root.focus(), this.highlight(t, !0) + })), null == t.uiNode && (t.attachUI(e), t.children.head && (e.value = G.formats(t.children.head.domNode))) + })) + } + + initTimer() { + let t = null; + this.quill.on(p.Ay.events.SCROLL_OPTIMIZE, (() => { + t && clearTimeout(t), t = setTimeout((() => { + this.highlight(), t = null + }), this.options.interval) + })) + } + + highlight() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, + e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + if (this.quill.selection.composing) return; + this.quill.update(p.Ay.sources.USER); + const n = this.quill.getSelection(); + (null == t ? this.quill.scroll.descendants(X) : [t]).forEach((t => { + t.highlight(this.highlightBlot, e) + })), this.quill.update(p.Ay.sources.SILENT), null != n && this.quill.setSelection(n, p.Ay.sources.SILENT) + } + + highlightBlot(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "plain"; + if (e = this.languages[e] ? e : "plain", "plain" === e) return (0, V.X)(t).split("\n").reduce(((t, n, r) => (0 !== r && t.insert("\n", {[D.Ay.blotName]: e}), t.insert(n))), new (z())); + const n = this.quill.root.ownerDocument.createElement("div"); + return n.classList.add(D.Ay.className), n.innerHTML = ((t, e, n) => { + if ("string" == typeof t.versionString) { + const r = t.versionString.split(".")[0]; + if (parseInt(r, 10) >= 11) return t.highlight(n, {language: e}).value + } + return t.highlight(e, n).value + })(this.options.hljs, e, t), (0, K.hV)(this.quill.scroll, n, [(t, e) => { + const n = W.value(t); + return n ? e.compose((new (z())).retain(e.length(), {[Z.blotName]: n})) : e + }], [(t, n) => t.data.split("\n").reduce(((t, n, r) => (0 !== r && t.insert("\n", {[D.Ay.blotName]: e}), t.insert(n))), n)], new WeakMap) + } + } + + Q.DEFAULTS = { + hljs: window.hljs, + interval: 1e3, + languages: [{key: "plain", label: "Plain"}, {key: "bash", label: "Bash"}, { + key: "cpp", + label: "C++" + }, {key: "cs", label: "C#"}, {key: "css", label: "CSS"}, {key: "diff", label: "Diff"}, { + key: "xml", + label: "HTML/XML" + }, {key: "java", label: "Java"}, {key: "javascript", label: "JavaScript"}, { + key: "markdown", + label: "Markdown" + }, {key: "php", label: "PHP"}, {key: "python", label: "Python"}, { + key: "ruby", + label: "Ruby" + }, {key: "sql", label: "SQL"}] + }; + + class J extends a.Ay { + static blotName = "table"; + static tagName = "TD"; + + static create(t) { + const e = super.create(); + return t ? e.setAttribute("data-row", t) : e.setAttribute("data-row", nt()), e + } + + static formats(t) { + if (t.hasAttribute("data-row")) return t.getAttribute("data-row") + } + + cellOffset() { + return this.parent ? this.parent.children.indexOf(this) : -1 + } + + format(t, e) { + t === J.blotName && e ? this.domNode.setAttribute("data-row", e) : super.format(t, e) + } + + row() { + return this.parent + } + + rowOffset() { + return this.row() ? this.row().rowOffset() : -1 + } + + table() { + return this.row() && this.row().table() + } + } + + class Y extends f.A { + static blotName = "table-row"; + static tagName = "TR"; + + checkMerge() { + if (super.checkMerge() && null != this.next.children.head) { + const t = this.children.head.formats(), e = this.children.tail.formats(), + n = this.next.children.head.formats(), r = this.next.children.tail.formats(); + return t.table === e.table && t.table === n.table && t.table === r.table + } + return !1 + } + + optimize(t) { + super.optimize(t), this.children.forEach((t => { + if (null == t.next) return; + const e = t.formats(), n = t.next.formats(); + if (e.table !== n.table) { + const e = this.splitAfter(t); + e && e.optimize(), this.prev && this.prev.optimize() + } + })) + } + + rowOffset() { + return this.parent ? this.parent.children.indexOf(this) : -1 + } + + table() { + return this.parent && this.parent.parent + } + } + + class tt extends f.A { + static blotName = "table-body"; + static tagName = "TBODY" + } + + class et extends f.A { + static blotName = "table-container"; + static tagName = "TABLE"; + + balanceCells() { + const t = this.descendants(Y), e = t.reduce(((t, e) => Math.max(e.children.length, t)), 0); + t.forEach((t => { + new Array(e - t.children.length).fill(0).forEach((() => { + let e; + null != t.children.head && (e = J.formats(t.children.head.domNode)); + const n = this.scroll.create(J.blotName, e); + t.appendChild(n), n.optimize() + })) + })) + } + + cells(t) { + return this.rows().map((e => e.children.at(t))) + } + + deleteColumn(t) { + const [e] = this.descendant(tt); + null != e && null != e.children.head && e.children.forEach((e => { + const n = e.children.at(t); + null != n && n.remove() + })) + } + + insertColumn(t) { + const [e] = this.descendant(tt); + null != e && null != e.children.head && e.children.forEach((e => { + const n = e.children.at(t), r = J.formats(e.children.head.domNode), + i = this.scroll.create(J.blotName, r); + e.insertBefore(i, n) + })) + } + + insertRow(t) { + const [e] = this.descendant(tt); + if (null == e || null == e.children.head) return; + const n = nt(), r = this.scroll.create(Y.blotName); + e.children.head.children.forEach((() => { + const t = this.scroll.create(J.blotName, n); + r.appendChild(t) + })); + const i = e.children.at(t); + e.insertBefore(r, i) + } + + rows() { + const t = this.children.head; + return null == t ? [] : t.children.map((t => t)) + } + } + + function nt() { + return `row-${Math.random().toString(36).slice(2, 6)}` + } + + et.allowedChildren = [tt], tt.requiredContainer = et, tt.allowedChildren = [Y], Y.requiredContainer = tt, Y.allowedChildren = [J], J.requiredContainer = Y; + + class rt extends F.A { + static register() { + p.Ay.register(J), p.Ay.register(Y), p.Ay.register(tt), p.Ay.register(et) + } + + constructor() { + super(...arguments), this.listenBalanceCells() + } + + balanceTables() { + this.quill.scroll.descendants(et).forEach((t => { + t.balanceCells() + })) + } + + deleteColumn() { + const [t, , e] = this.getTable(); + null != e && (t.deleteColumn(e.cellOffset()), this.quill.update(p.Ay.sources.USER)) + } + + deleteRow() { + const [, t] = this.getTable(); + null != t && (t.remove(), this.quill.update(p.Ay.sources.USER)) + } + + deleteTable() { + const [t] = this.getTable(); + if (null == t) return; + const e = t.offset(); + t.remove(), this.quill.update(p.Ay.sources.USER), this.quill.setSelection(e, p.Ay.sources.SILENT) + } + + getTable() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.quill.getSelection(); + if (null == t) return [null, null, null, -1]; + const [e, n] = this.quill.getLine(t.index); + if (null == e || e.statics.blotName !== J.blotName) return [null, null, null, -1]; + const r = e.parent; + return [r.parent.parent, r, e, n] + } + + insertColumn(t) { + const e = this.quill.getSelection(); + if (!e) return; + const [n, r, i] = this.getTable(e); + if (null == i) return; + const s = i.cellOffset(); + n.insertColumn(s + t), this.quill.update(p.Ay.sources.USER); + let o = r.rowOffset(); + 0 === t && (o += 1), this.quill.setSelection(e.index + o, e.length, p.Ay.sources.SILENT) + } + + insertColumnLeft() { + this.insertColumn(0) + } + + insertColumnRight() { + this.insertColumn(1) + } + + insertRow(t) { + const e = this.quill.getSelection(); + if (!e) return; + const [n, r, i] = this.getTable(e); + if (null == i) return; + const s = r.rowOffset(); + n.insertRow(s + t), this.quill.update(p.Ay.sources.USER), t > 0 ? this.quill.setSelection(e, p.Ay.sources.SILENT) : this.quill.setSelection(e.index + r.children.length, e.length, p.Ay.sources.SILENT) + } + + insertRowAbove() { + this.insertRow(0) + } + + insertRowBelow() { + this.insertRow(1) + } + + insertTable(t, e) { + const n = this.quill.getSelection(); + if (null == n) return; + const r = new Array(t).fill(0).reduce((t => { + const n = new Array(e).fill("\n").join(""); + return t.insert(n, {table: nt()}) + }), (new (z())).retain(n.index)); + this.quill.updateContents(r, p.Ay.sources.USER), this.quill.setSelection(n.index, p.Ay.sources.SILENT), this.balanceTables() + } + + listenBalanceCells() { + this.quill.on(p.Ay.events.SCROLL_OPTIMIZE, (t => { + t.some((t => !!["TD", "TR", "TBODY", "TABLE"].includes(t.target.tagName) && (this.quill.once(p.Ay.events.TEXT_CHANGE, ((t, e, n) => { + n === p.Ay.sources.USER && this.balanceTables() + })), !0))) + })) + } + } + + var it = rt; + const st = (0, n(6078).A)("quill:toolbar"); + + class ot extends F.A { + constructor(t, e) { + if (super(t, e), Array.isArray(this.options.container)) { + const e = document.createElement("div"); + e.setAttribute("role", "toolbar"), function (t, e) { + Array.isArray(e[0]) || (e = [e]), e.forEach((e => { + const n = document.createElement("span"); + n.classList.add("ql-formats"), e.forEach((t => { + if ("string" == typeof t) lt(n, t); else { + const e = Object.keys(t)[0], r = t[e]; + Array.isArray(r) ? function (t, e, n) { + const r = document.createElement("select"); + r.classList.add(`ql-${e}`), n.forEach((t => { + const e = document.createElement("option"); + !1 !== t ? e.setAttribute("value", String(t)) : e.setAttribute("selected", "selected"), r.appendChild(e) + })), t.appendChild(r) + }(n, e, r) : lt(n, e, r) + } + })), t.appendChild(n) + })) + }(e, this.options.container), t.container?.parentNode?.insertBefore(e, t.container), this.container = e + } else "string" == typeof this.options.container ? this.container = document.querySelector(this.options.container) : this.container = this.options.container; + this.container instanceof HTMLElement ? (this.container.classList.add("ql-toolbar"), this.controls = [], this.handlers = {}, this.options.handlers && Object.keys(this.options.handlers).forEach((t => { + const e = this.options.handlers?.[t]; + e && this.addHandler(t, e) + })), Array.from(this.container.querySelectorAll("button, select")).forEach((t => { + this.attach(t) + })), this.quill.on(p.Ay.events.EDITOR_CHANGE, (() => { + const [t] = this.quill.selection.getRange(); + this.update(t) + }))) : st.error("Container required for toolbar", this.options) + } + + addHandler(t, e) { + this.handlers[t] = e + } + + attach(t) { + let e = Array.from(t.classList).find((t => 0 === t.indexOf("ql-"))); + if (!e) return; + if (e = e.slice(3), "BUTTON" === t.tagName && t.setAttribute("type", "button"), null == this.handlers[e] && null == this.quill.scroll.query(e)) return void st.warn("ignoring attaching to nonexistent format", e, t); + const n = "SELECT" === t.tagName ? "change" : "click"; + t.addEventListener(n, (n => { + let r; + if ("SELECT" === t.tagName) { + if (t.selectedIndex < 0) return; + const e = t.options[t.selectedIndex]; + r = !e.hasAttribute("selected") && (e.value || !1) + } else r = !t.classList.contains("ql-active") && (t.value || !t.hasAttribute("value")), n.preventDefault(); + this.quill.focus(); + const [i] = this.quill.selection.getRange(); + if (null != this.handlers[e]) this.handlers[e].call(this, r); else if (this.quill.scroll.query(e).prototype instanceof s.EmbedBlot) { + if (r = prompt(`Enter ${e}`), !r) return; + this.quill.updateContents((new (z())).retain(i.index).delete(i.length).insert({[e]: r}), p.Ay.sources.USER) + } else this.quill.format(e, r, p.Ay.sources.USER); + this.update(i) + })), this.controls.push([e, t]) + } + + update(t) { + const e = null == t ? {} : this.quill.getFormat(t); + this.controls.forEach((n => { + const [r, i] = n; + if ("SELECT" === i.tagName) { + let n = null; + if (null == t) n = null; else if (null == e[r]) n = i.querySelector("option[selected]"); else if (!Array.isArray(e[r])) { + let t = e[r]; + "string" == typeof t && (t = t.replace(/"/g, '\\"')), n = i.querySelector(`option[value="${t}"]`) + } + null == n ? (i.value = "", i.selectedIndex = -1) : n.selected = !0 + } else if (null == t) i.classList.remove("ql-active"), i.setAttribute("aria-pressed", "false"); else if (i.hasAttribute("value")) { + const t = e[r], + n = t === i.getAttribute("value") || null != t && t.toString() === i.getAttribute("value") || null == t && !i.getAttribute("value"); + i.classList.toggle("ql-active", n), i.setAttribute("aria-pressed", n.toString()) + } else { + const t = null != e[r]; + i.classList.toggle("ql-active", t), i.setAttribute("aria-pressed", t.toString()) + } + })) + } + } + + function lt(t, e, n) { + const r = document.createElement("button"); + r.setAttribute("type", "button"), r.classList.add(`ql-${e}`), r.setAttribute("aria-pressed", "false"), null != n ? (r.value = n, r.setAttribute("aria-label", `${e}: ${n}`)) : r.setAttribute("aria-label", e), t.appendChild(r) + } + + ot.DEFAULTS = {}, ot.DEFAULTS = { + container: null, handlers: { + clean() { + const t = this.quill.getSelection(); + if (null != t) if (0 === t.length) { + const t = this.quill.getFormat(); + Object.keys(t).forEach((t => { + null != this.quill.scroll.query(t, s.Scope.INLINE) && this.quill.format(t, !1, p.Ay.sources.USER) + })) + } else this.quill.removeFormat(t.index, t.length, p.Ay.sources.USER) + }, direction(t) { + const {align: e} = this.quill.getFormat(); + "rtl" === t && null == e ? this.quill.format("align", "right", p.Ay.sources.USER) : t || "right" !== e || this.quill.format("align", !1, p.Ay.sources.USER), this.quill.format("direction", t, p.Ay.sources.USER) + }, indent(t) { + const e = this.quill.getSelection(), n = this.quill.getFormat(e), + r = parseInt(n.indent || 0, 10); + if ("+1" === t || "-1" === t) { + let e = "+1" === t ? 1 : -1; + "rtl" === n.direction && (e *= -1), this.quill.format("indent", r + e, p.Ay.sources.USER) + } + }, link(t) { + !0 === t && (t = prompt("Enter link URL:")), this.quill.format("link", t, p.Ay.sources.USER) + }, list(t) { + const e = this.quill.getSelection(), n = this.quill.getFormat(e); + "check" === t ? "checked" === n.list || "unchecked" === n.list ? this.quill.format("list", !1, p.Ay.sources.USER) : this.quill.format("list", "unchecked", p.Ay.sources.USER) : this.quill.format("list", t, p.Ay.sources.USER) + } + } + }; + const at = ''; + var ct = { + align: { + "": '', + center: '', + right: '', + justify: '' + }, + background: '', + blockquote: '', + bold: '', + clean: '', + code: at, + "code-block": at, + color: '', + direction: { + "": '', + rtl: '' + }, + formula: '', + header: { + 1: '', + 2: '', + 3: '', + 4: '', + 5: '', + 6: '' + }, + italic: '', + image: '', + indent: { + "+1": '', + "-1": '' + }, + link: '', + list: { + bullet: '', + check: '', + ordered: '' + }, + script: { + sub: '', + super: '' + }, + strike: '', + table: '', + underline: '', + video: '' + }; + let ut = 0; + + function ht(t, e) { + t.setAttribute(e, `${!("true" === t.getAttribute(e))}`) + } + + var dt = class { + constructor(t) { + this.select = t, this.container = document.createElement("span"), this.buildPicker(), this.select.style.display = "none", this.select.parentNode.insertBefore(this.container, this.select), this.label.addEventListener("mousedown", (() => { + this.togglePicker() + })), this.label.addEventListener("keydown", (t => { + switch (t.key) { + case"Enter": + this.togglePicker(); + break; + case"Escape": + this.escape(), t.preventDefault() + } + })), this.select.addEventListener("change", this.update.bind(this)) + } + + togglePicker() { + this.container.classList.toggle("ql-expanded"), ht(this.label, "aria-expanded"), ht(this.options, "aria-hidden") + } + + buildItem(t) { + const e = document.createElement("span"); + e.tabIndex = "0", e.setAttribute("role", "button"), e.classList.add("ql-picker-item"); + const n = t.getAttribute("value"); + return n && e.setAttribute("data-value", n), t.textContent && e.setAttribute("data-label", t.textContent), e.addEventListener("click", (() => { + this.selectItem(e, !0) + })), e.addEventListener("keydown", (t => { + switch (t.key) { + case"Enter": + this.selectItem(e, !0), t.preventDefault(); + break; + case"Escape": + this.escape(), t.preventDefault() + } + })), e + } + + buildLabel() { + const t = document.createElement("span"); + return t.classList.add("ql-picker-label"), t.innerHTML = '', t.tabIndex = "0", t.setAttribute("role", "button"), t.setAttribute("aria-expanded", "false"), this.container.appendChild(t), t + } + + buildOptions() { + const t = document.createElement("span"); + t.classList.add("ql-picker-options"), t.setAttribute("aria-hidden", "true"), t.tabIndex = "-1", t.id = `ql-picker-options-${ut}`, ut += 1, this.label.setAttribute("aria-controls", t.id), this.options = t, Array.from(this.select.options).forEach((e => { + const n = this.buildItem(e); + t.appendChild(n), !0 === e.selected && this.selectItem(n) + })), this.container.appendChild(t) + } + + buildPicker() { + Array.from(this.select.attributes).forEach((t => { + this.container.setAttribute(t.name, t.value) + })), this.container.classList.add("ql-picker"), this.label = this.buildLabel(), this.buildOptions() + } + + escape() { + this.close(), setTimeout((() => this.label.focus()), 1) + } + + close() { + this.container.classList.remove("ql-expanded"), this.label.setAttribute("aria-expanded", "false"), this.options.setAttribute("aria-hidden", "true") + } + + selectItem(t) { + let e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + const n = this.container.querySelector(".ql-selected"); + t !== n && (null != n && n.classList.remove("ql-selected"), null != t && (t.classList.add("ql-selected"), this.select.selectedIndex = Array.from(t.parentNode.children).indexOf(t), t.hasAttribute("data-value") ? this.label.setAttribute("data-value", t.getAttribute("data-value")) : this.label.removeAttribute("data-value"), t.hasAttribute("data-label") ? this.label.setAttribute("data-label", t.getAttribute("data-label")) : this.label.removeAttribute("data-label"), e && (this.select.dispatchEvent(new Event("change")), this.close()))) + } + + update() { + let t; + if (this.select.selectedIndex > -1) { + const e = this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex]; + t = this.select.options[this.select.selectedIndex], this.selectItem(e) + } else this.selectItem(null); + const e = null != t && t !== this.select.querySelector("option[selected]"); + this.label.classList.toggle("ql-active", e) + } + }, ft = class extends dt { + constructor(t, e) { + super(t), this.label.innerHTML = e, this.container.classList.add("ql-color-picker"), Array.from(this.container.querySelectorAll(".ql-picker-item")).slice(0, 7).forEach((t => { + t.classList.add("ql-primary") + })) + } + + buildItem(t) { + const e = super.buildItem(t); + return e.style.backgroundColor = t.getAttribute("value") || "", e + } + + selectItem(t, e) { + super.selectItem(t, e); + const n = this.label.querySelector(".ql-color-label"), r = t && t.getAttribute("data-value") || ""; + n && ("line" === n.tagName ? n.style.stroke = r : n.style.fill = r) + } + }, pt = class extends dt { + constructor(t, e) { + super(t), this.container.classList.add("ql-icon-picker"), Array.from(this.container.querySelectorAll(".ql-picker-item")).forEach((t => { + t.innerHTML = e[t.getAttribute("data-value") || ""] + })), this.defaultItem = this.container.querySelector(".ql-selected"), this.selectItem(this.defaultItem) + } + + selectItem(t, e) { + super.selectItem(t, e); + const n = t || this.defaultItem; + if (null != n) { + if (this.label.innerHTML === n.innerHTML) return; + this.label.innerHTML = n.innerHTML + } + } + }, gt = class { + constructor(t, e) { + this.quill = t, this.boundsContainer = e || document.body, this.root = t.addContainer("ql-tooltip"), this.root.innerHTML = this.constructor.TEMPLATE, (t => { + const {overflowY: e} = getComputedStyle(t, null); + return "visible" !== e && "clip" !== e + })(this.quill.root) && this.quill.root.addEventListener("scroll", (() => { + this.root.style.marginTop = -1 * this.quill.root.scrollTop + "px" + })), this.hide() + } + + hide() { + this.root.classList.add("ql-hidden") + } + + position(t) { + const e = t.left + t.width / 2 - this.root.offsetWidth / 2, + n = t.bottom + this.quill.root.scrollTop; + this.root.style.left = `${e}px`, this.root.style.top = `${n}px`, this.root.classList.remove("ql-flip"); + const r = this.boundsContainer.getBoundingClientRect(), i = this.root.getBoundingClientRect(); + let s = 0; + if (i.right > r.right && (s = r.right - i.right, this.root.style.left = `${e + s}px`), i.left < r.left && (s = r.left - i.left, this.root.style.left = `${e + s}px`), i.bottom > r.bottom) { + const e = i.bottom - i.top, r = t.bottom - t.top + e; + this.root.style.top = n - r + "px", this.root.classList.add("ql-flip") + } + return s + } + + show() { + this.root.classList.remove("ql-editing"), this.root.classList.remove("ql-hidden") + } + }, mt = n(8347), bt = n(5374), yt = n(9609); + const vt = [!1, "center", "right", "justify"], + At = ["#000000", "#e60000", "#ff9900", "#ffff00", "#008a00", "#0066cc", "#9933ff", "#ffffff", "#facccc", "#ffebcc", "#ffffcc", "#cce8cc", "#cce0f5", "#ebd6ff", "#bbbbbb", "#f06666", "#ffc266", "#ffff66", "#66b966", "#66a3e0", "#c285ff", "#888888", "#a10000", "#b26b00", "#b2b200", "#006100", "#0047b2", "#6b24b2", "#444444", "#5c0000", "#663d00", "#666600", "#003700", "#002966", "#3d1466"], + xt = [!1, "serif", "monospace"], Nt = ["1", "2", "3", !1], Et = ["small", !1, "large", "huge"]; + + class wt extends yt.A { + constructor(t, e) { + super(t, e); + const n = e => { + document.body.contains(t.root) ? (null == this.tooltip || this.tooltip.root.contains(e.target) || document.activeElement === this.tooltip.textbox || this.quill.hasFocus() || this.tooltip.hide(), null != this.pickers && this.pickers.forEach((t => { + t.container.contains(e.target) || t.close() + }))) : document.body.removeEventListener("click", n) + }; + t.emitter.listenDOM("click", document.body, n) + } + + addModule(t) { + const e = super.addModule(t); + return "toolbar" === t && this.extendToolbar(e), e + } + + buildButtons(t, e) { + Array.from(t).forEach((t => { + (t.getAttribute("class") || "").split(/\s+/).forEach((n => { + if (n.startsWith("ql-") && (n = n.slice(3), null != e[n])) if ("direction" === n) t.innerHTML = e[n][""] + e[n].rtl; else if ("string" == typeof e[n]) t.innerHTML = e[n]; else { + const r = t.value || ""; + null != r && e[n][r] && (t.innerHTML = e[n][r]) + } + })) + })) + } + + buildPickers(t, e) { + this.pickers = Array.from(t).map((t => { + if (t.classList.contains("ql-align") && (null == t.querySelector("option") && kt(t, vt), "object" == typeof e.align)) return new pt(t, e.align); + if (t.classList.contains("ql-background") || t.classList.contains("ql-color")) { + const n = t.classList.contains("ql-background") ? "background" : "color"; + return null == t.querySelector("option") && kt(t, At, "background" === n ? "#ffffff" : "#000000"), new ft(t, e[n]) + } + return null == t.querySelector("option") && (t.classList.contains("ql-font") ? kt(t, xt) : t.classList.contains("ql-header") ? kt(t, Nt) : t.classList.contains("ql-size") && kt(t, Et)), new dt(t) + })), this.quill.on(bt.A.events.EDITOR_CHANGE, (() => { + this.pickers.forEach((t => { + t.update() + })) + })) + } + } + + wt.DEFAULTS = (0, mt.A)({}, yt.A.DEFAULTS, { + modules: { + toolbar: { + handlers: { + formula() { + this.quill.theme.tooltip.edit("formula") + }, image() { + let t = this.container.querySelector("input.ql-image[type=file]"); + null == t && (t = document.createElement("input"), t.setAttribute("type", "file"), t.setAttribute("accept", this.quill.uploader.options.mimetypes.join(", ")), t.classList.add("ql-image"), t.addEventListener("change", (() => { + const e = this.quill.getSelection(!0); + this.quill.uploader.upload(e, t.files), t.value = "" + })), this.container.appendChild(t)), t.click() + }, video() { + this.quill.theme.tooltip.edit("video") + } + } + } + } + }); + + class qt extends gt { + constructor(t, e) { + super(t, e), this.textbox = this.root.querySelector('input[type="text"]'), this.listen() + } + + listen() { + this.textbox.addEventListener("keydown", (t => { + "Enter" === t.key ? (this.save(), t.preventDefault()) : "Escape" === t.key && (this.cancel(), t.preventDefault()) + })) + } + + cancel() { + this.hide(), this.restoreFocus() + } + + edit() { + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "link", + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + if (this.root.classList.remove("ql-hidden"), this.root.classList.add("ql-editing"), null == this.textbox) return; + null != e ? this.textbox.value = e : t !== this.root.getAttribute("data-mode") && (this.textbox.value = ""); + const n = this.quill.getBounds(this.quill.selection.savedRange); + null != n && this.position(n), this.textbox.select(), this.textbox.setAttribute("placeholder", this.textbox.getAttribute(`data-${t}`) || ""), this.root.setAttribute("data-mode", t) + } + + restoreFocus() { + this.quill.focus({preventScroll: !0}) + } + + save() { + let {value: t} = this.textbox; + switch (this.root.getAttribute("data-mode")) { + case"link": { + const {scrollTop: e} = this.quill.root; + this.linkRange ? (this.quill.formatText(this.linkRange, "link", t, bt.A.sources.USER), delete this.linkRange) : (this.restoreFocus(), this.quill.format("link", t, bt.A.sources.USER)), this.quill.root.scrollTop = e; + break + } + case"video": + t = function (t) { + let e = t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/) || t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/); + return e ? `${e[1] || "https"}://www.youtube.com/embed/${e[2]}?showinfo=0` : (e = t.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/)) ? `${e[1] || "https"}://player.vimeo.com/video/${e[2]}/` : t + }(t); + case"formula": { + if (!t) break; + const e = this.quill.getSelection(!0); + if (null != e) { + const n = e.index + e.length; + this.quill.insertEmbed(n, this.root.getAttribute("data-mode"), t, bt.A.sources.USER), "formula" === this.root.getAttribute("data-mode") && this.quill.insertText(n + 1, " ", bt.A.sources.USER), this.quill.setSelection(n + 2, bt.A.sources.USER) + } + break + } + } + this.textbox.value = "", this.hide() + } + } + + function kt(t, e) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + e.forEach((e => { + const r = document.createElement("option"); + e === n ? r.setAttribute("selected", "selected") : r.setAttribute("value", String(e)), t.appendChild(r) + })) + } + + var _t = n(8298); + const Lt = [["bold", "italic", "link"], [{header: 1}, {header: 2}, "blockquote"]]; + + class St extends qt { + static TEMPLATE = ['', '
    ', '', '', "
    "].join(""); + + constructor(t, e) { + super(t, e), this.quill.on(bt.A.events.EDITOR_CHANGE, ((t, e, n, r) => { + if (t === bt.A.events.SELECTION_CHANGE) if (null != e && e.length > 0 && r === bt.A.sources.USER) { + this.show(), this.root.style.left = "0px", this.root.style.width = "", this.root.style.width = `${this.root.offsetWidth}px`; + const t = this.quill.getLines(e.index, e.length); + if (1 === t.length) { + const t = this.quill.getBounds(e); + null != t && this.position(t) + } else { + const n = t[t.length - 1], r = this.quill.getIndex(n), + i = Math.min(n.length() - 1, e.index + e.length - r), + s = this.quill.getBounds(new _t.Q(r, i)); + null != s && this.position(s) + } + } else document.activeElement !== this.textbox && this.quill.hasFocus() && this.hide() + })) + } + + listen() { + super.listen(), this.root.querySelector(".ql-close").addEventListener("click", (() => { + this.root.classList.remove("ql-editing") + })), this.quill.on(bt.A.events.SCROLL_OPTIMIZE, (() => { + setTimeout((() => { + if (this.root.classList.contains("ql-hidden")) return; + const t = this.quill.getSelection(); + if (null != t) { + const e = this.quill.getBounds(t); + null != e && this.position(e) + } + }), 1) + })) + } + + cancel() { + this.show() + } + + position(t) { + const e = super.position(t), n = this.root.querySelector(".ql-tooltip-arrow"); + return n.style.marginLeft = "", 0 !== e && (n.style.marginLeft = -1 * e - n.offsetWidth / 2 + "px"), e + } + } + + class Ot extends wt { + constructor(t, e) { + null != e.modules.toolbar && null == e.modules.toolbar.container && (e.modules.toolbar.container = Lt), super(t, e), this.quill.container.classList.add("ql-bubble") + } + + extendToolbar(t) { + this.tooltip = new St(this.quill, this.options.bounds), null != t.container && (this.tooltip.root.appendChild(t.container), this.buildButtons(t.container.querySelectorAll("button"), ct), this.buildPickers(t.container.querySelectorAll("select"), ct)) + } + } + + Ot.DEFAULTS = (0, mt.A)({}, wt.DEFAULTS, { + modules: { + toolbar: { + handlers: { + link(t) { + t ? this.quill.theme.tooltip.edit() : this.quill.format("link", !1, p.Ay.sources.USER) + } + } + } + } + }); + const Tt = [[{header: ["1", "2", "3", !1]}], ["bold", "italic", "underline", "link"], [{list: "ordered"}, {list: "bullet"}], ["clean"]]; + + class jt extends qt { + static TEMPLATE = ['', '', '', ''].join(""); + preview = this.root.querySelector("a.ql-preview"); + + listen() { + super.listen(), this.root.querySelector("a.ql-action").addEventListener("click", (t => { + this.root.classList.contains("ql-editing") ? this.save() : this.edit("link", this.preview.textContent), t.preventDefault() + })), this.root.querySelector("a.ql-remove").addEventListener("click", (t => { + if (null != this.linkRange) { + const t = this.linkRange; + this.restoreFocus(), this.quill.formatText(t, "link", !1, bt.A.sources.USER), delete this.linkRange + } + t.preventDefault(), this.hide() + })), this.quill.on(bt.A.events.SELECTION_CHANGE, ((t, e, n) => { + if (null != t) { + if (0 === t.length && n === bt.A.sources.USER) { + const [e, n] = this.quill.scroll.descendant(w, t.index); + if (null != e) { + this.linkRange = new _t.Q(t.index - n, e.length()); + const r = w.formats(e.domNode); + this.preview.textContent = r, this.preview.setAttribute("href", r), this.show(); + const i = this.quill.getBounds(this.linkRange); + return void (null != i && this.position(i)) + } + } else delete this.linkRange; + this.hide() + } + })) + } + + show() { + super.show(), this.root.removeAttribute("data-mode") + } + } + + class Ct extends wt { + constructor(t, e) { + null != e.modules.toolbar && null == e.modules.toolbar.container && (e.modules.toolbar.container = Tt), super(t, e), this.quill.container.classList.add("ql-snow") + } + + extendToolbar(t) { + null != t.container && (t.container.classList.add("ql-snow"), this.buildButtons(t.container.querySelectorAll("button"), ct), this.buildPickers(t.container.querySelectorAll("select"), ct), this.tooltip = new jt(this.quill, this.options.bounds), t.container.querySelector(".ql-link") && this.quill.keyboard.addBinding({ + key: "k", + shortKey: !0 + }, ((e, n) => { + t.handlers.link.call(t, !n.format.link) + }))) + } + } + + Ct.DEFAULTS = (0, mt.A)({}, wt.DEFAULTS, { + modules: { + toolbar: { + handlers: { + link(t) { + if (t) { + const t = this.quill.getSelection(); + if (null == t || 0 === t.length) return; + let e = this.quill.getText(t); + /^\S+@\S+\.\S+$/.test(e) && 0 !== e.indexOf("mailto:") && (e = `mailto:${e}`); + const {tooltip: n} = this.quill.theme; + n.edit("link", e) + } else this.quill.format("link", !1, p.Ay.sources.USER) + } + } + } + } + }); + var Rt = Ct; + t.default.register({ + "attributors/attribute/direction": i.Mc, + "attributors/class/align": e.qh, + "attributors/class/background": b.l, + "attributors/class/color": y.g3, + "attributors/class/direction": i.sY, + "attributors/class/font": v.q, + "attributors/class/size": A.U, + "attributors/style/align": e.Hu, + "attributors/style/background": b.s, + "attributors/style/color": y.JM, + "attributors/style/direction": i.VL, + "attributors/style/font": v.z, + "attributors/style/size": A.r + }, !0), t.default.register({ + "formats/align": e.qh, + "formats/direction": i.sY, + "formats/indent": l, + "formats/background": b.s, + "formats/color": y.JM, + "formats/font": v.q, + "formats/size": A.U, + "formats/blockquote": u, + "formats/code-block": D.Ay, + "formats/header": d, + "formats/list": m, + "formats/bold": E, + "formats/code": D.Cy, + "formats/italic": class extends E { + static blotName = "italic"; + static tagName = ["EM", "I"] + }, + "formats/link": w, + "formats/script": _, + "formats/strike": class extends E { + static blotName = "strike"; + static tagName = ["S", "STRIKE"] + }, + "formats/underline": S, + "formats/formula": j, + "formats/image": I, + "formats/video": U, + "modules/syntax": Q, + "modules/table": it, + "modules/toolbar": ot, + "themes/bubble": Ot, + "themes/snow": Rt, + "ui/icons": ct, + "ui/picker": dt, + "ui/icon-picker": pt, + "ui/color-picker": ft, + "ui/tooltip": gt + }, !0); + var It = t.default + }(), r.default + }() +})); +//# sourceMappingURL=quill.js.map \ No newline at end of file diff --git a/src/main/resources/static/js/global/popover.controller.js b/src/main/resources/static/js/global/popover.controller.js new file mode 100644 index 0000000..b6fbd96 --- /dev/null +++ b/src/main/resources/static/js/global/popover.controller.js @@ -0,0 +1,4 @@ +let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')) +let popoverList = popoverTriggerList.map(function (popoverTriggerEl) { + return new bootstrap.Popover(popoverTriggerEl) +}) \ No newline at end of file diff --git a/src/main/resources/static/js/global/toast.controller.js b/src/main/resources/static/js/global/toast.controller.js new file mode 100644 index 0000000..e52181b --- /dev/null +++ b/src/main/resources/static/js/global/toast.controller.js @@ -0,0 +1,52 @@ +function showToast(type, message){ + let $infoToast = $('#info-toast'); + let toastId = 'toast-' + Date.now(); // Уникальный идентификатор для каждого тоста + $infoToast.append(` + + `); + + let toastElement = $infoToast.find(`#${toastId}`); + let completedToast = new bootstrap.Toast(toastElement[0], { + autohide: true, + delay: 2000 + }); // Отключаем автоматическое закрытие + completedToast.show(); +} + +function showActionToast(message, func){ + let $infoToast = $('#info-toast'); + let toastId = 'toast-' + Date.now(); // Уникальный идентификатор для каждого тоста + $infoToast.append(` + + `); + + let toastElement = $infoToast.find(`#${toastId}`); + let completedToast = new bootstrap.Toast(toastElement[0], { autohide: false }); // Отключаем автоматическое закрытие + completedToast.show(); + + $infoToast.find(`#${toastId} .confirm-button`).on('click', function() { + func(); // Вызов функции + completedToast.hide(); // Скрытие тоста после выполнения функции + }); +} diff --git a/src/main/resources/static/js/global/tooltip.controller.js b/src/main/resources/static/js/global/tooltip.controller.js new file mode 100644 index 0000000..5aaad90 --- /dev/null +++ b/src/main/resources/static/js/global/tooltip.controller.js @@ -0,0 +1,19 @@ +let Tooltipelements = document.querySelectorAll("[data-bs-toggle='tooltip']"); +Tooltipelements.forEach((el) => { + new bootstrap.Tooltip(el); +}); + +function reloadTooltip(){ + let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) + let tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) + }) + tooltipList.forEach(function (tooltip) { + tooltip.dispose() + }) + + tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) + tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) + }) +} \ No newline at end of file diff --git a/src/main/resources/static/js/site/blocks/footer.js b/src/main/resources/static/js/site/blocks/footer.js new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/static/js/site/blocks/header.js b/src/main/resources/static/js/site/blocks/header.js new file mode 100644 index 0000000..b854e69 --- /dev/null +++ b/src/main/resources/static/js/site/blocks/header.js @@ -0,0 +1,3 @@ +function initHeader($header){ + +} \ No newline at end of file diff --git a/src/main/resources/templates/all-html.html b/src/main/resources/templates/all-html.html new file mode 100644 index 0000000..89237e3 --- /dev/null +++ b/src/main/resources/templates/all-html.html @@ -0,0 +1,1388 @@ + + + + + + DatePlanner - Идеальные места для свиданий + + + + + + + + + + +
    +
    ❤️
    +
    ❤️
    +
    ❤️
    +
    ❤️
    + +
    +
    +
    +

    Найдите идеальное место для свидания

    +

    Более 500 проверенных локаций: от романтических ужинов до экстремальных приключений. Подберите свидание по настроению, бюджету и интересам.

    + +
    +
    + Свидание в парке +
    +
    +
    +
    + + +
    +
    +
    +

    Какое свидание вы ищете?

    +
    +
    +
    Тип свидания
    +
    +
    + Романтическое +
    +
    + Активное +
    +
    + Интеллектуальное +
    +
    + Хоррор +
    +
    + Уютное +
    +
    + Тайна +
    +
    +
    +
    +
    Бюджет
    +
    +
    + Эконом (до 2,000₽) +
    +
    + Премиум (от 5,000₽) +
    +
    + +
    Время
    +
    +
    + День +
    +
    + Вечер +
    +
    + Ночь +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +

    Локации на карте

    +

    Выбирайте места рядом с вами или планируйте маршрут

    +
    +
    + +
    +
    +
    +
    Легенда карты
    +
    +
    + Романтическое +
    +
    +
    + Активное +
    +
    +
    + Интеллектуальное +
    +
    +
    + Хоррор/Тайна +
    +
    +
    + Уютное +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +

    Популярные места для свиданий

    +

    Проверенные локации с отзывами реальных пар

    +
    +
    + +
    + +
    +
    +
    + + +
    +
    +
    +
    +

    Готовые идеи для свиданий

    +

    Проверенные маршруты и сценарии для идеального свидания

    +
    +
    + +
    +
    +
    + Романтический вечер +
    +
    +

    Романтический вечер в центре города

    +
    + Романтическое + Вечернее + ~ 5,000₽ + + + + + + + 4.7 + +
    +

    Идеальный маршрут для первого свидания или годовщины. Начинаем с прогулки по набережной, затем ужин в ресторане с панорамным видом, завершаем вечер в лаундж-баре с живой музыкой.

    +
    +
    + 19:00 - Прогулка по набережной +
    +
    + 20:30 - Ужин в ресторане "Панорама" +
    +
    + 22:30 - Лаундж-бар "Джаз & Вино" +
    +
    + +
    +
    +
    + +
    +
    +
    + Активное приключение +
    +
    +

    Активное приключение на природе

    +
    + Активное + Дневное + ~ 3,000₽ + + + + + + + 5.0 + +
    +

    Для пар, которые любят адреналин и природу. Катание на квадроциклах по лесным трассам, пикник у озера, вечер у костра с гитарой. Незабываемые эмоции гарантированы!

    + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +

    Для организаций и заведений

    +

    Добавьте ваше заведение в каталог мест для свиданий

    +
    +
    + +
    +
    +
    +
    +
    + +
    +

    Добавить заведение

    +

    Разместите информацию о вашем ресторане, парке или развлечении

    + +
    +
    + +
    +
    +
    + +
    +

    Создать событие

    +

    Организуйте специальное мероприятие для свиданий

    + +
    +
    + +
    +
    +
    + +
    +

    Аналитика

    +

    Отслеживайте популярность и статистику посещений

    + +
    +
    +
    + +
    +
    +
    +
    +
    Мои заведения
    +
    +
    +
    + + + + + + + + + + + + + + +
    НазваниеТипПросмотрыРейтингСтатусДействия
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    Статистика
    +
    +
    +
    +
    +
    +
    1,245
    +

    Всего просмотров

    +
    +
    +
    +
    +
    4.7
    +

    Средний рейтинг

    +
    +
    +
    +
    +
    8
    +

    Мои заведения

    +
    +
    +
    +
    +
    12
    +

    Новых броней

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/blocks/footer.html b/src/main/resources/templates/blocks/footer.html new file mode 100644 index 0000000..7ed6e13 --- /dev/null +++ b/src/main/resources/templates/blocks/footer.html @@ -0,0 +1,5 @@ + + + diff --git a/src/main/resources/templates/blocks/header.html b/src/main/resources/templates/blocks/header.html new file mode 100644 index 0000000..4b8ff1d --- /dev/null +++ b/src/main/resources/templates/blocks/header.html @@ -0,0 +1,5 @@ + + + diff --git a/src/main/resources/templates/template.html b/src/main/resources/templates/template.html new file mode 100644 index 0000000..8ab27aa --- /dev/null +++ b/src/main/resources/templates/template.html @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/example/dateplanner/DatePlannerApplicationTests.java b/src/test/java/com/example/dateplanner/DatePlannerApplicationTests.java new file mode 100644 index 0000000..ce21628 --- /dev/null +++ b/src/test/java/com/example/dateplanner/DatePlannerApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.dateplanner; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DatePlannerApplicationTests { + + @Test + void contextLoads() { + } + +}