diff --git a/.build.yml b/.build.yml index 0061d73..f5f406d 100644 --- a/.build.yml +++ b/.build.yml @@ -13,5 +13,4 @@ steps: - apk add --no-cache gcc musl-dev python3-dev - pip install --upgrade pip && pip install -r requirements.txt - python3 configure.py - - coverage run manage.py test - - coverage report + - coverage run --parallel-mode --concurrency=multiprocessing manage.py test --parallel=$(nproc) && coverage report diff --git a/.gitignore b/.gitignore index e2b6211..b338100 100644 --- a/.gitignore +++ b/.gitignore @@ -129,4 +129,6 @@ dmypy.json .pyre/ staticfiles/ -testdata.py \ No newline at end of file +userfiles/ +backend/templates/ +backend/testdata.py \ No newline at end of file diff --git a/README.md b/README.md index 854b54b..a2c0135 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ ``` bash git clone https://github.com/gr4yj3d1/toolshed.git ``` + or + ``` bash git clone https://git.neulandlabor.de/j3d1/toolshed.git ``` @@ -20,7 +22,9 @@ pip install -r requirements.txt python configure.py python manage.py runserver 0.0.0.0:8000 --insecure ``` -to run this in properly in production, you need to configure a webserver to serve the static files and proxy the requests to the backend, then run the backend with just `python manage.py runserver` without the `--insecure` flag. + +to run this in properly in production, you need to configure a webserver to serve the static files and proxy the +requests to the backend, then run the backend with just `python manage.py runserver` without the `--insecure` flag. ### Frontend @@ -37,8 +41,6 @@ cd toolshed/docs mkdocs serve ``` - - ## CLI Client ### Requirements diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..12187f1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.3' + +services: + # db: + # image: postgres + # container_name: docker-django-vue-db + # environment: + # POSTGRES_USER: user + # POSTGRES_PASSWORD: pass + # POSTGRES_DB: db + # restart: unless-stopped + # ports: + # - "5432:5432" + django: + build: + context: ./backend + dockerfile: ./Dockerfile + command: python backend/manage.py runserver 0.0.0.0:8000 + volumes: + - .:/app + ports: + - "8002:8000" + networks: + - internal + # depends_on: + # - db + vue: + build: + context: ./frontend + dockerfile: ./Dockerfile + command: nginx -g 'daemon off;' + volumes: + - .:/app + ports: + - "8001:80" + networks: + - internal + - external + depends_on: + - django +networks: + external: + internal: \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..cbff043 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,14 @@ +FROM node:alpine as builder +WORKDIR /app +COPY ./package.json /app/package.json +COPY . /app +RUN npm install +RUN npm run build + + +FROM nginx:alpine as runner +RUN apk add --update npm +WORKDIR /app +COPY --from=builder /app/dist /usr/share/nginx/html +COPY ./nginx.conf /etc/nginx/nginx.conf +EXPOSE 80 diff --git a/frontend/fullchain.pem b/frontend/fullchain.pem new file mode 100644 index 0000000..f733cbd --- /dev/null +++ b/frontend/fullchain.pem @@ -0,0 +1,87 @@ +-----BEGIN CERTIFICATE----- +MIIEXTCCA0WgAwIBAgISBEHk0Sh8UrMfT+VPkRhr83mfMA0GCSqGSIb3DQEBCwUA +MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD +EwJSMzAeFw0yMzA2MDIxNzI1MDVaFw0yMzA4MzExNzI1MDRaMBsxGTAXBgNVBAMT +EHRvb2xzaGVkLmozZDEuZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYeMpT +k1DaC8cigL3DivanGrLQahYBEDm5B26VaS3gUmq9T0RNkEUxJIPnZBwdF8p7xAEB +hlTXwgy3eBLAp8lAo4ICTTCCAkkwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQG +CCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTRtqOn +Qht7rD+2IEGzuYt8frTgVjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTC +xjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNy +Lm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAbBgNVHREE +FDASghB0b29sc2hlZC5qM2QxLmRlMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysG +AQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQu +b3JnMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcAtz77JN+cTbp18jnFulj0bF38 +Qs96nzXEnh0JgSXttJkAAAGIfVskxgAABAMASDBGAiEA+D8rCaCpttJm7w0M4N5N +3cmJSfPNmh/t2ojaDB0iSe0CIQCS2XkwJzUrDZ35fIJ9evwJduk/K2I/tmWs4Uk5 +vnPSNQB3AK33vvp8/xDIi509nB4+GGq0Zyldz7EMJMqFhjTr3IKKAAABiH1bJOoA +AAQDAEgwRgIhAPHQQwLf5xSi1VH6BeOpiUKyTMawd36FFU8eCIdB43q6AiEA0KDD +yRssPcmGnyWDGq9Of3mpKjCChFrnxzpeDXCTlsswDQYJKoZIhvcNAQELBQADggEB +AKo8APReSKNTydks9yqASKhUjuLfXS+mpFQSl2tbU8ER6eIiYHx8o+n2QCdT7h91 +ZLkGx8ZAmWBvVwXC3QPH5W08ilogi4EU/+HGffkditG5K6/Qn2bzjqnmFIyYqgdT +RVaRcxqS9byAGEw3oU5FSCIOuFSBeOHeTwaj+lSVMZTv6LmoovOpCo8sA5xZ6K6H +XVwNXIwunssaR4MrnWupB/5N+T7zkhanky4GgiLRuTm+mDbK+OIDx47Hv9jTe+tm +s4aixD0eWhzAaiA7HuHJI3Xi64YjK7eNlrwE0ZKdgy8KveDwUBiVcVtz7LR+0v1l +P27Z/OkZlA+42LvIJdISMl4= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw +WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg +RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP +R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx +sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm +NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg +Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG +/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB +Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA +FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw +AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw +Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB +gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W +PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl +ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz +CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm +lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 +avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 +yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O +yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids +hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ +HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv +MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX +nLRbwHOoq7hHwg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC +ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL +wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D +LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK +4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 +bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y +sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ +Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 +FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc +SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql +PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND +TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 +c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx ++tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB +ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu +b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E +U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu +MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC +5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW +9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG +WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O +he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC +Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 +-----END CERTIFICATE----- diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..9a9af3d --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,14 @@ + + + + + + + + Toolshed + + +
+ + + diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 0000000..d6ee127 --- /dev/null +++ b/frontend/nginx.conf @@ -0,0 +1,14 @@ +server { + listen 80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + location /api { + proxy_pass http://django:8000; + } + +} \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..359f06a --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,2413 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "bootstrap-icons-vue": "^1.10.3", + "dns-query": "^0.11.2", + "js-nacl": "^1.4.0", + "moment": "^2.29.4", + "vue": "^3.2.47", + "vue-multiselect": "^2.1.7", + "vue-router": "^4.1.6", + "vuex": "^4.1.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.0.0", + "@vue/test-utils": "^2.3.2", + "jsdom": "^22.0.0", + "sass": "^1.62.1", + "vite": "^4.1.4", + "vitest": "^0.31.1" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@leichtgewicht/base64-codec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@leichtgewicht/base64-codec/-/base64-codec-1.0.0.tgz", + "integrity": "sha512-0cgP4lRBzh3F4tlpTfs7F+PJyBN8j5yUC9KrQFWp/bREswgzZVHE8T1rNyRDWgvALwwpPtnJDQfqWUmxI33Epg==" + }, + "node_modules/@leichtgewicht/dns-packet": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/dns-packet/-/dns-packet-6.0.3.tgz", + "integrity": "sha512-qmVHhFBFiBvPsk/wJ/EdoWHb+tGkzY4haybmDPukhF6w0+8wpEbrHTIRE9LzeUu2P0bAbmrK8WOXt5V5QN6jQg==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.4", + "bytes.js": "^0.0.2", + "utf8-bytes": "^0.0.1", + "utf8-codec": "^1.0.0", + "utf8-length": "^0.0.1", + "utf8-string-bytes": "^1.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@leichtgewicht/dns-socket": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@leichtgewicht/dns-socket/-/dns-socket-5.0.0.tgz", + "integrity": "sha512-Sbrn/OG0HTTPGSkwIDCHy8/tUI6UglIzFsMNjzZn/Na1/i5owSm6rVi9CfKNNjRcUlYEzICELYW6EoZdjwVY2A==", + "dependencies": { + "@leichtgewicht/dns-packet": "^6.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/node": { + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.2.tgz", + "integrity": "sha512-iXqchnHr5CvfO+s/H5/Ji7fNak5bxb2Q2Fadq54sVhXRvEBRZAEyvVs3keVPS0xQNTnhLtxc5QDNXKyzSRpyKA==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz", + "integrity": "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitest/expect": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.31.1.tgz", + "integrity": "sha512-BV1LyNvhnX+eNYzJxlHIGPWZpwJFZaCcOIzp2CNG0P+bbetenTupk6EO0LANm4QFt0TTit+yqx7Rxd1qxi/SQA==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.31.1", + "@vitest/utils": "0.31.1", + "chai": "^4.3.7" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.31.1.tgz", + "integrity": "sha512-imWuc82ngOtxdCUpXwtEzZIuc1KMr+VlQ3Ondph45VhWoQWit5yvG/fFcldbnCi8DUuFi+NmNx5ehMUw/cGLUw==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.31.1", + "concordance": "^5.0.4", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.31.1.tgz", + "integrity": "sha512-L3w5uU9bMe6asrNzJ8WZzN+jUTX4KSgCinEJPXyny0o90fG4FPQMV0OWsq7vrCWfQlAilMjDnOF9nP8lidsJ+g==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "pretty-format": "^27.5.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitest/spy": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.31.1.tgz", + "integrity": "sha512-1cTpt2m9mdo3hRLDyCG2hDQvRrePTDgEJBFQQNz1ydHHZy03EiA6EpFxY+7ODaY7vMRCie+WlFZBZ0/dQWyssQ==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.31.1.tgz", + "integrity": "sha512-yFyRD5ilwojsZfo3E0BnH72pSVSuLg2356cN1tCEe/0RtDzxTPYwOomIC+eQbot7m6DRy4tPZw+09mB7NkbMmA==", + "dev": true, + "dependencies": { + "concordance": "^5.0.4", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vue/test-utils": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.3.2.tgz", + "integrity": "sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==", + "dev": true, + "dependencies": { + "js-beautify": "1.14.6" + }, + "optionalDependencies": { + "@vue/compiler-dom": "^3.0.1", + "@vue/server-renderer": "^3.0.1" + }, + "peerDependencies": { + "@vue/compiler-dom": "^3.0.1", + "@vue/server-renderer": "^3.0.1", + "vue": "^3.0.1" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/bootstrap-icons-vue": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/bootstrap-icons-vue/-/bootstrap-icons-vue-1.10.3.tgz", + "integrity": "sha512-BzqmLufgHjFvSReJ1GQqNkl780UFK0rWT4Y1IQC7lZClXyOSsM5Ipw04BnuVmmrqgtSxzak83jcBwLJgCK3scg==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes.js": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/bytes.js/-/bytes.js-0.0.2.tgz", + "integrity": "sha512-KrLm4hv5Qs9w6b0U7h1bCdqxrsf+e9QMsfHeyQFzAz94x/5Aqa+FTEUSNBtt5d2VuV3Hfiea3c4ti74RZDDYkg==" + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dns-query": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/dns-query/-/dns-query-0.11.2.tgz", + "integrity": "sha512-zF8qxQpqCB467o4A63DLpQClo77H642JEKMx0Ra9GFww7Rx0234Fo8NoG0LBoSBZxamWkXfLxhzDG19bTBHvXQ==", + "dependencies": { + "@leichtgewicht/base64-codec": "^1.0.0", + "@leichtgewicht/dns-packet": "^6.0.2", + "@leichtgewicht/dns-socket": "^5.0.0", + "@leichtgewicht/ip-codec": "^2.0.4", + "utf8-codec": "^1.0.0" + }, + "bin": { + "dns-query": "bin/dns-query" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/editorconfig/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/js-beautify": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.6.tgz", + "integrity": "sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^0.15.3", + "glob": "^8.0.3", + "nopt": "^6.0.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-nacl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/js-nacl/-/js-nacl-1.4.0.tgz", + "integrity": "sha512-HgYLcutGbMYBJrwgVICiHliuw1OJLy2U3tIuK6a1rZ06KC84TPl81WG1hcBRrBCiIIuBe3PSo9G4IZOMGdSg3Q==", + "engines": { + "node": "*" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/jsdom": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.0.0.tgz", + "integrity": "sha512-p5ZTEb5h+O+iU02t0GfEjAnkdYPrQSkfuTSMkMYyIoMvUNEHsbG0bHHbfXIcfTqD2UfvjQX7mmgiFsyRwGscVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.1.tgz", + "integrity": "sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.3", + "ufo": "^1.1.2" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", + "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/rollup": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.0.tgz", + "integrity": "sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", + "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", + "dev": true + }, + "node_modules/strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tinybench": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", + "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz", + "integrity": "sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz", + "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ufo": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", + "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/utf8-bytes": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/utf8-bytes/-/utf8-bytes-0.0.1.tgz", + "integrity": "sha512-GifWmJAx2qAXT+lZLhbkWhBsy7pr6xWHiPWlVToDiELdWgZwt4Ogjf9tlgvKuALzTFR/d+EPQQI9ogJV3957Jg==" + }, + "node_modules/utf8-codec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utf8-codec/-/utf8-codec-1.0.0.tgz", + "integrity": "sha512-S/QSLezp3qvG4ld5PUfXiH7mCFxLKjSVZRFkB3DOjgwHuJPFDkInAXc/anf7BAbHt/D38ozDzL+QMZ6/7gsI6w==" + }, + "node_modules/utf8-length": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/utf8-length/-/utf8-length-0.0.1.tgz", + "integrity": "sha512-j/XH2ftofBiobnyApxlN/J6j/ixwT89WEjDcjT66d2i0+GIn9RZfzt8lpEXXE4jUe4NsjBSUq70kS2euQ4nnMw==" + }, + "node_modules/utf8-string-bytes": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/utf8-string-bytes/-/utf8-string-bytes-1.0.3.tgz", + "integrity": "sha512-i/I1Omf6lADjVBlwJpQifZOePV15snHny9w04+lc71+3t8PyWuLC/7clyoOSHOBNGXFe2PAGxmTiZ+Z4HWsPyw==" + }, + "node_modules/vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.31.1.tgz", + "integrity": "sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.31.1.tgz", + "integrity": "sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.31.1", + "@vitest/runner": "0.31.1", + "@vitest/snapshot": "0.31.1", + "@vitest/spy": "0.31.1", + "@vitest/utils": "0.31.1", + "acorn": "^8.8.2", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "concordance": "^5.0.4", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.5.0", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.31.1", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/vue-multiselect": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.7.tgz", + "integrity": "sha512-KIegcN+Ntwg3cbkY/jhw2s/+XJUM0Lpi/LcKFYCS8PrZHcWBl2iKCVze7ZCnRj3w8H7/lUJ9v7rj9KQiNxApBw==", + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "dependencies": { + "@vue/devtools-api": "^6.4.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", + "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "dependencies": { + "@vue/devtools-api": "^6.0.0-beta.11" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..29846ea --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,28 @@ +{ + "name": "frontend", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "bootstrap-icons-vue": "^1.10.3", + "dns-query": "^0.11.2", + "js-nacl": "^1.4.0", + "moment": "^2.29.4", + "vue": "^3.2.47", + "vue-multiselect": "^2.1.7", + "vue-router": "^4.1.6", + "vuex": "^4.1.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.0.0", + "@vue/test-utils": "^2.3.2", + "jsdom": "^22.0.0", + "sass": "^1.62.1", + "vite": "^4.1.4", + "vitest": "^0.31.1" + } +} diff --git a/frontend/privkey.pem b/frontend/privkey.pem new file mode 100644 index 0000000..96b7dda --- /dev/null +++ b/frontend/privkey.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD6EmCAUWob1zUw4Q +F+Pf9cSOmSCTODe6u+Gst177IoihRANCAARYeMpTk1DaC8cigL3DivanGrLQahYB +EDm5B26VaS3gUmq9T0RNkEUxJIPnZBwdF8p7xAEBhlTXwgy3eBLAp8lA +-----END PRIVATE KEY----- diff --git a/frontend/public/assets/img/avatars/avatar-2.png b/frontend/public/assets/img/avatars/avatar-2.png new file mode 100644 index 0000000..9eb3ec9 Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar-2.png differ diff --git a/frontend/public/assets/img/avatars/avatar-3.png b/frontend/public/assets/img/avatars/avatar-3.png new file mode 100644 index 0000000..a0dbc96 Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar-3.png differ diff --git a/frontend/public/assets/img/avatars/avatar-4.png b/frontend/public/assets/img/avatars/avatar-4.png new file mode 100644 index 0000000..de75ef6 Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar-4.png differ diff --git a/frontend/public/assets/img/avatars/avatar-5.png b/frontend/public/assets/img/avatars/avatar-5.png new file mode 100644 index 0000000..40d595e Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar-5.png differ diff --git a/frontend/public/assets/img/avatars/avatar-6.png b/frontend/public/assets/img/avatars/avatar-6.png new file mode 100644 index 0000000..bc8577c Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar-6.png differ diff --git a/frontend/public/assets/img/avatars/avatar.png b/frontend/public/assets/img/avatars/avatar.png new file mode 100644 index 0000000..894246c Binary files /dev/null and b/frontend/public/assets/img/avatars/avatar.png differ diff --git a/frontend/public/assets/img/photos/unsplash-1.jpg b/frontend/public/assets/img/photos/unsplash-1.jpg new file mode 100644 index 0000000..ccc3963 Binary files /dev/null and b/frontend/public/assets/img/photos/unsplash-1.jpg differ diff --git a/frontend/public/assets/img/photos/unsplash-2.jpg b/frontend/public/assets/img/photos/unsplash-2.jpg new file mode 100644 index 0000000..3a33349 Binary files /dev/null and b/frontend/public/assets/img/photos/unsplash-2.jpg differ diff --git a/frontend/public/assets/img/photos/unsplash-3.jpg b/frontend/public/assets/img/photos/unsplash-3.jpg new file mode 100644 index 0000000..bc287e5 Binary files /dev/null and b/frontend/public/assets/img/photos/unsplash-3.jpg differ diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..d96b367 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,28 @@ + + + + + + + diff --git a/frontend/src/assets/css/toolshed.css b/frontend/src/assets/css/toolshed.css new file mode 100644 index 0000000..daced67 --- /dev/null +++ b/frontend/src/assets/css/toolshed.css @@ -0,0 +1,20696 @@ + +/*! + * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #3b7ddd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #e83e8c; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #28a745; + --bs-teal: #20c997; + --bs-cyan: #17a2b8; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #3b7ddd; + --bs-secondary: #6c757d; + --bs-success: #28a745; + --bs-info: #17a2b8; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-font-sans-serif: "Inter", "Helvetica Neue", Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, hsla(0, 0%, 100%, 0.15), hsla(0, 0%, 100%, 0)) +} + +*, :after, :before { + box-sizing: border-box +} + +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: .875rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #f7f7fc; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: .25 +} + +hr:not([size]) { + height: 1px +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: .5rem; + font-weight: 400; + line-height: 1.2; + color: #000 +} + +.h1, h1 { + font-size: 1.75rem +} + +.h2, h2 { + font-size: 1.53125rem +} + +.h3, h3 { + font-size: 1.3125rem +} + +.h4, h4 { + font-size: 1.09375rem +} + +.h5, .h6, h5, h6 { + font-size: .875rem +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +abbr[data-original-title], abbr[title] { + text-decoration: underline; + -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 +} + +dl, ol, ul { + margin-top: 0; + margin-bottom: 1rem +} + +ol ol, ol ul, ul ol, ul ul { + margin-bottom: 0 +} + +dt { + font-weight: 600 +} + +dd { + margin-bottom: .5rem; + margin-left: 0 +} + +blockquote { + margin: 0 0 1rem +} + +b, strong { + font-weight: bolder +} + +.small, small { + font-size: 80% +} + +.mark, mark { + padding: .2em; + background-color: #fcf8e3 +} + +sub, sup { + position: relative; + font-size: .75em; + line-height: 0; + vertical-align: initial +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: #3b7ddd; + text-decoration: none +} + +a:hover { + color: #1e58ad; + text-decoration: underline +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none +} + +code, kbd, pre, samp { + font-family: var(--bs-font-monospace); + font-size: 1em +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 80%; + -ms-overflow-style: scrollbar +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal +} + +code { + font-size: 80%; + color: #e83e8c; + word-wrap: break-word +} + +a > code { + color: inherit +} + +kbd { + padding: .2rem .4rem; + font-size: 80%; + color: #fff; + background-color: #212529; + border-radius: .1rem +} + +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 600 +} + +figure { + margin: 0 0 1rem +} + +img, svg { + vertical-align: middle +} + +table { + caption-side: bottom; + border-collapse: collapse +} + +caption { + padding-top: .75rem; + padding-bottom: .75rem; + color: #6c757d; + text-align: left +} + +th { + text-align: inherit; + text-align: -webkit-match-parent +} + +tbody, td, tfoot, th, thead, tr { + border: 0 solid; + border-color: inherit +} + +label { + display: inline-block +} + +button { + border-radius: 0 +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color +} + +button, input, optgroup, select, textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +button, input { + overflow: visible +} + +button, select { + text-transform: none +} + +[role=button] { + cursor: pointer +} + +select { + word-wrap: normal +} + +[list]::-webkit-calendar-picker-indicator { + display: none +} + +[type=button], [type=reset], [type=submit], button { + -webkit-appearance: button +} + +[type=button]:not(:disabled), [type=reset]:not(:disabled), [type=submit]:not(:disabled), button:not(:disabled) { + cursor: pointer +} + +::-moz-focus-inner { + padding: 0; + border-style: none +} + +textarea { + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + white-space: normal +} + +legend + * { + clear: left +} + +::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-fields-wrapper, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-text, ::-webkit-datetime-edit-year-field { + padding: 0 +} + +::-webkit-inner-spin-button { + height: auto +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield +} + +::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-color-swatch-wrapper { + padding: 0 +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +iframe { + border: 0 +} + +summary { + display: list-item; + cursor: pointer +} + +progress { + vertical-align: initial +} + +[hidden] { + display: none !important +} + +.lead { + font-size: 1.09375rem; + font-weight: 300 +} + +.display-1 { + font-size: 6rem +} + +.display-1, .display-2 { + font-weight: 300; + line-height: 1.2 +} + +.display-2 { + font-size: 5.5rem +} + +.display-3 { + font-size: 4.5rem +} + +.display-3, .display-4 { + font-weight: 300; + line-height: 1.2 +} + +.display-4 { + font-size: 3.5rem +} + +.display-5 { + font-size: 3rem +} + +.display-5, .display-6 { + font-weight: 300; + line-height: 1.2 +} + +.display-6 { + font-size: 2.5rem +} + +.list-inline, .list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline-item { + display: inline-block +} + +.list-inline-item:not(:last-child) { + margin-right: .5rem +} + +.initialism { + font-size: 80%; + text-transform: uppercase +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.09375rem +} + +.blockquote > :last-child { + margin-bottom: 0 +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 80%; + color: #6c757d +} + +.blockquote-footer:before { + content: "\2014\00A0" +} + +.img-fluid, .img-thumbnail { + max-width: 100%; + height: auto +} + +.img-thumbnail { + padding: .25rem; + background-color: #f7f7fc; + border: 1px solid #dee2e6; + border-radius: .2rem +} + +.figure { + display: inline-block +} + +.figure-img { + margin-bottom: .5rem; + line-height: 1 +} + +.figure-caption { + font-size: 80%; + color: #6c757d +} + +.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl { + --bs-gutter-x: .75rem; + width: 100%; + padding-right: calc(var(--bs-gutter-x) / 2); + padding-left: calc(var(--bs-gutter-x) / 2); + 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: 1200px + } +} + +.row { + --bs-gutter-x: 24px; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) / -2); + margin-left: calc(var(--bs-gutter-x) / -2) +} + +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) / 2); + padding-left: calc(var(--bs-gutter-x) / 2); + 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.33333% +} + +.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.66667% +} + +.col-auto { + flex: 0 0 auto; + width: auto +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333% +} + +.col-2 { + flex: 0 0 auto; + width: 16.66667% +} + +.col-3 { + flex: 0 0 auto; + width: 25% +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333% +} + +.col-5 { + flex: 0 0 auto; + width: 41.66667% +} + +.col-6 { + flex: 0 0 auto; + width: 50% +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333% +} + +.col-8 { + flex: 0 0 auto; + width: 66.66667% +} + +.col-9 { + flex: 0 0 auto; + width: 75% +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333% +} + +.col-11 { + flex: 0 0 auto; + width: 91.66667% +} + +.col-12 { + flex: 0 0 auto; + width: 100% +} + +.offset-1 { + margin-left: 8.33333% +} + +.offset-2 { + margin-left: 16.66667% +} + +.offset-3 { + margin-left: 25% +} + +.offset-4 { + margin-left: 33.33333% +} + +.offset-5 { + margin-left: 41.66667% +} + +.offset-6 { + margin-left: 50% +} + +.offset-7 { + margin-left: 58.33333% +} + +.offset-8 { + margin-left: 66.66667% +} + +.offset-9 { + margin-left: 75% +} + +.offset-10 { + margin-left: 83.33333% +} + +.offset-11 { + margin-left: 91.66667% +} + +.g-0, .gx-0 { + --bs-gutter-x: 0 +} + +.g-0, .gy-0 { + --bs-gutter-y: 0 +} + +.g-1, .gx-1 { + --bs-gutter-x: .25rem +} + +.g-1, .gy-1 { + --bs-gutter-y: .25rem +} + +.g-2, .gx-2 { + --bs-gutter-x: .5rem +} + +.g-2, .gy-2 { + --bs-gutter-y: .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 +} + +.g-6, .gx-6 { + --bs-gutter-x: 4.5rem +} + +.g-6, .gy-6 { + --bs-gutter-y: 4.5rem +} + +.g-7, .gx-7 { + --bs-gutter-x: 6rem +} + +.g-7, .gy-7 { + --bs-gutter-y: 6rem +} + +@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.33333% + } + + .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.66667% + } + + .col-sm-auto { + flex: 0 0 auto; + width: auto + } + + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333% + } + + .col-sm-2 { + flex: 0 0 auto; + width: 16.66667% + } + + .col-sm-3 { + flex: 0 0 auto; + width: 25% + } + + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333% + } + + .col-sm-5 { + flex: 0 0 auto; + width: 41.66667% + } + + .col-sm-6 { + flex: 0 0 auto; + width: 50% + } + + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333% + } + + .col-sm-8 { + flex: 0 0 auto; + width: 66.66667% + } + + .col-sm-9 { + flex: 0 0 auto; + width: 75% + } + + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333% + } + + .col-sm-11 { + flex: 0 0 auto; + width: 91.66667% + } + + .col-sm-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-sm-0 { + margin-left: 0 + } + + .offset-sm-1 { + margin-left: 8.33333% + } + + .offset-sm-2 { + margin-left: 16.66667% + } + + .offset-sm-3 { + margin-left: 25% + } + + .offset-sm-4 { + margin-left: 33.33333% + } + + .offset-sm-5 { + margin-left: 41.66667% + } + + .offset-sm-6 { + margin-left: 50% + } + + .offset-sm-7 { + margin-left: 58.33333% + } + + .offset-sm-8 { + margin-left: 66.66667% + } + + .offset-sm-9 { + margin-left: 75% + } + + .offset-sm-10 { + margin-left: 83.33333% + } + + .offset-sm-11 { + margin-left: 91.66667% + } + + .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: .25rem + } + + .g-sm-1, .gy-sm-1 { + --bs-gutter-y: .25rem + } + + .g-sm-2, .gx-sm-2 { + --bs-gutter-x: .5rem + } + + .g-sm-2, .gy-sm-2 { + --bs-gutter-y: .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 + } + + .g-sm-6, .gx-sm-6 { + --bs-gutter-x: 4.5rem + } + + .g-sm-6, .gy-sm-6 { + --bs-gutter-y: 4.5rem + } + + .g-sm-7, .gx-sm-7 { + --bs-gutter-x: 6rem + } + + .g-sm-7, .gy-sm-7 { + --bs-gutter-y: 6rem + } +} + +@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.33333% + } + + .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.66667% + } + + .col-md-auto { + flex: 0 0 auto; + width: auto + } + + .col-md-1 { + flex: 0 0 auto; + width: 8.33333% + } + + .col-md-2 { + flex: 0 0 auto; + width: 16.66667% + } + + .col-md-3 { + flex: 0 0 auto; + width: 25% + } + + .col-md-4 { + flex: 0 0 auto; + width: 33.33333% + } + + .col-md-5 { + flex: 0 0 auto; + width: 41.66667% + } + + .col-md-6 { + flex: 0 0 auto; + width: 50% + } + + .col-md-7 { + flex: 0 0 auto; + width: 58.33333% + } + + .col-md-8 { + flex: 0 0 auto; + width: 66.66667% + } + + .col-md-9 { + flex: 0 0 auto; + width: 75% + } + + .col-md-10 { + flex: 0 0 auto; + width: 83.33333% + } + + .col-md-11 { + flex: 0 0 auto; + width: 91.66667% + } + + .col-md-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-md-0 { + margin-left: 0 + } + + .offset-md-1 { + margin-left: 8.33333% + } + + .offset-md-2 { + margin-left: 16.66667% + } + + .offset-md-3 { + margin-left: 25% + } + + .offset-md-4 { + margin-left: 33.33333% + } + + .offset-md-5 { + margin-left: 41.66667% + } + + .offset-md-6 { + margin-left: 50% + } + + .offset-md-7 { + margin-left: 58.33333% + } + + .offset-md-8 { + margin-left: 66.66667% + } + + .offset-md-9 { + margin-left: 75% + } + + .offset-md-10 { + margin-left: 83.33333% + } + + .offset-md-11 { + margin-left: 91.66667% + } + + .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: .25rem + } + + .g-md-1, .gy-md-1 { + --bs-gutter-y: .25rem + } + + .g-md-2, .gx-md-2 { + --bs-gutter-x: .5rem + } + + .g-md-2, .gy-md-2 { + --bs-gutter-y: .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 + } + + .g-md-6, .gx-md-6 { + --bs-gutter-x: 4.5rem + } + + .g-md-6, .gy-md-6 { + --bs-gutter-y: 4.5rem + } + + .g-md-7, .gx-md-7 { + --bs-gutter-x: 6rem + } + + .g-md-7, .gy-md-7 { + --bs-gutter-y: 6rem + } +} + +@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.33333% + } + + .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.66667% + } + + .col-lg-auto { + flex: 0 0 auto; + width: auto + } + + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333% + } + + .col-lg-2 { + flex: 0 0 auto; + width: 16.66667% + } + + .col-lg-3 { + flex: 0 0 auto; + width: 25% + } + + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333% + } + + .col-lg-5 { + flex: 0 0 auto; + width: 41.66667% + } + + .col-lg-6 { + flex: 0 0 auto; + width: 50% + } + + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333% + } + + .col-lg-8 { + flex: 0 0 auto; + width: 66.66667% + } + + .col-lg-9 { + flex: 0 0 auto; + width: 75% + } + + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333% + } + + .col-lg-11 { + flex: 0 0 auto; + width: 91.66667% + } + + .col-lg-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-lg-0 { + margin-left: 0 + } + + .offset-lg-1 { + margin-left: 8.33333% + } + + .offset-lg-2 { + margin-left: 16.66667% + } + + .offset-lg-3 { + margin-left: 25% + } + + .offset-lg-4 { + margin-left: 33.33333% + } + + .offset-lg-5 { + margin-left: 41.66667% + } + + .offset-lg-6 { + margin-left: 50% + } + + .offset-lg-7 { + margin-left: 58.33333% + } + + .offset-lg-8 { + margin-left: 66.66667% + } + + .offset-lg-9 { + margin-left: 75% + } + + .offset-lg-10 { + margin-left: 83.33333% + } + + .offset-lg-11 { + margin-left: 91.66667% + } + + .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: .25rem + } + + .g-lg-1, .gy-lg-1 { + --bs-gutter-y: .25rem + } + + .g-lg-2, .gx-lg-2 { + --bs-gutter-x: .5rem + } + + .g-lg-2, .gy-lg-2 { + --bs-gutter-y: .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 + } + + .g-lg-6, .gx-lg-6 { + --bs-gutter-x: 4.5rem + } + + .g-lg-6, .gy-lg-6 { + --bs-gutter-y: 4.5rem + } + + .g-lg-7, .gx-lg-7 { + --bs-gutter-x: 6rem + } + + .g-lg-7, .gy-lg-7 { + --bs-gutter-y: 6rem + } +} + +@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.33333% + } + + .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.66667% + } + + .col-xl-auto { + flex: 0 0 auto; + width: auto + } + + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333% + } + + .col-xl-2 { + flex: 0 0 auto; + width: 16.66667% + } + + .col-xl-3 { + flex: 0 0 auto; + width: 25% + } + + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333% + } + + .col-xl-5 { + flex: 0 0 auto; + width: 41.66667% + } + + .col-xl-6 { + flex: 0 0 auto; + width: 50% + } + + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333% + } + + .col-xl-8 { + flex: 0 0 auto; + width: 66.66667% + } + + .col-xl-9 { + flex: 0 0 auto; + width: 75% + } + + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333% + } + + .col-xl-11 { + flex: 0 0 auto; + width: 91.66667% + } + + .col-xl-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-xl-0 { + margin-left: 0 + } + + .offset-xl-1 { + margin-left: 8.33333% + } + + .offset-xl-2 { + margin-left: 16.66667% + } + + .offset-xl-3 { + margin-left: 25% + } + + .offset-xl-4 { + margin-left: 33.33333% + } + + .offset-xl-5 { + margin-left: 41.66667% + } + + .offset-xl-6 { + margin-left: 50% + } + + .offset-xl-7 { + margin-left: 58.33333% + } + + .offset-xl-8 { + margin-left: 66.66667% + } + + .offset-xl-9 { + margin-left: 75% + } + + .offset-xl-10 { + margin-left: 83.33333% + } + + .offset-xl-11 { + margin-left: 91.66667% + } + + .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: .25rem + } + + .g-xl-1, .gy-xl-1 { + --bs-gutter-y: .25rem + } + + .g-xl-2, .gx-xl-2 { + --bs-gutter-x: .5rem + } + + .g-xl-2, .gy-xl-2 { + --bs-gutter-y: .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 + } + + .g-xl-6, .gx-xl-6 { + --bs-gutter-x: 4.5rem + } + + .g-xl-6, .gy-xl-6 { + --bs-gutter-y: 4.5rem + } + + .g-xl-7, .gx-xl-7 { + --bs-gutter-x: 6rem + } + + .g-xl-7, .gy-xl-7 { + --bs-gutter-y: 6rem + } +} + +@media (min-width: 1440px) { + .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.33333% + } + + .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.66667% + } + + .col-xxl-auto { + flex: 0 0 auto; + width: auto + } + + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333% + } + + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66667% + } + + .col-xxl-3 { + flex: 0 0 auto; + width: 25% + } + + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333% + } + + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66667% + } + + .col-xxl-6 { + flex: 0 0 auto; + width: 50% + } + + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333% + } + + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66667% + } + + .col-xxl-9 { + flex: 0 0 auto; + width: 75% + } + + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333% + } + + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66667% + } + + .col-xxl-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-xxl-0 { + margin-left: 0 + } + + .offset-xxl-1 { + margin-left: 8.33333% + } + + .offset-xxl-2 { + margin-left: 16.66667% + } + + .offset-xxl-3 { + margin-left: 25% + } + + .offset-xxl-4 { + margin-left: 33.33333% + } + + .offset-xxl-5 { + margin-left: 41.66667% + } + + .offset-xxl-6 { + margin-left: 50% + } + + .offset-xxl-7 { + margin-left: 58.33333% + } + + .offset-xxl-8 { + margin-left: 66.66667% + } + + .offset-xxl-9 { + margin-left: 75% + } + + .offset-xxl-10 { + margin-left: 83.33333% + } + + .offset-xxl-11 { + margin-left: 91.66667% + } + + .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: .25rem + } + + .g-xxl-1, .gy-xxl-1 { + --bs-gutter-y: .25rem + } + + .g-xxl-2, .gx-xxl-2 { + --bs-gutter-x: .5rem + } + + .g-xxl-2, .gy-xxl-2 { + --bs-gutter-y: .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 + } + + .g-xxl-6, .gx-xxl-6 { + --bs-gutter-x: 4.5rem + } + + .g-xxl-6, .gy-xxl-6 { + --bs-gutter-y: 4.5rem + } + + .g-xxl-7, .gx-xxl-7 { + --bs-gutter-x: 6rem + } + + .g-xxl-7, .gy-xxl-7 { + --bs-gutter-y: 6rem + } +} + +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #495057; + --bs-table-striped-bg: #f8f9fa; + --bs-table-active-color: #495057; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #495057; + --bs-table-hover-bg: rgba(0, 0, 0, 0.0375); + width: 100%; + margin-bottom: 1rem; + color: #495057; + vertical-align: top; + border-color: #dee2e6 +} + +.table > :not(caption) > * > * { + padding: .75rem; + background-color: var(--bs-table-bg); + background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); + border-bottom-width: 1px +} + +.table > tbody { + vertical-align: inherit +} + +.table > thead { + vertical-align: bottom +} + +.table > :not(:last-child) > :last-child > * { + border-bottom-color: initial +} + +.caption-top { + caption-side: top +} + +.table-sm > :not(caption) > * > * { + padding: .3rem +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0 +} + +.table-bordered > :not(caption) > * > * { + border-width: 0 1px +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0 +} + +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color) +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color) +} + +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color) +} + +.table-primary { + --bs-table-bg: #c8dbf5; + --bs-table-striped-bg: #bed0e9; + --bs-table-striped-color: #000; + --bs-table-active-bg: #b4c5dd; + --bs-table-active-color: #000; + --bs-table-hover-bg: #b9cbe3; + --bs-table-hover-color: #000; + color: #000; + border-color: #b4c5dd +} + +.table-secondary { + --bs-table-bg: #d6d8db; + --bs-table-striped-bg: #cbcdd0; + --bs-table-striped-color: #000; + --bs-table-active-bg: #c1c2c5; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c6c8cb; + --bs-table-hover-color: #000; + color: #000; + border-color: #c1c2c5 +} + +.table-success { + --bs-table-bg: #c3e6cb; + --bs-table-striped-bg: #b9dbc1; + --bs-table-striped-color: #000; + --bs-table-active-bg: #b0cfb7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #b4d5bc; + --bs-table-hover-color: #000; + color: #000; + border-color: #b0cfb7 +} + +.table-info { + --bs-table-bg: #bee5eb; + --bs-table-striped-bg: #b5dadf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #abced4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #b0d4d9; + --bs-table-hover-color: #000; + color: #000; + border-color: #abced4 +} + +.table-warning { + --bs-table-bg: #ffeeba; + --bs-table-striped-bg: #f2e2b1; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6d6a7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ecdcac; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6d6a7 +} + +.table-danger { + --bs-table-bg: #f5c6cb; + --bs-table-striped-bg: #e9bcc1; + --bs-table-striped-color: #000; + --bs-table-active-bg: #ddb2b7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e3b7bc; + --bs-table-hover-color: #000; + color: #000; + border-color: #ddb2b7 +} + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1 +} + +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width: 1439.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +.form-label { + margin-bottom: .5rem +} + +.col-form-label { + padding-top: calc(.25rem + 1px); + padding-bottom: calc(.25rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5 +} + +.col-form-label-lg { + padding-top: calc(.35rem + 1px); + padding-bottom: calc(.35rem + 1px); + font-size: .925rem +} + +.col-form-label-sm { + padding-top: calc(.15rem + 1px); + padding-bottom: calc(.15rem + 1px); + font-size: .75rem +} + +.form-text { + margin-top: .25rem; + font-size: 80%; + color: #6c757d +} + +.form-control { + display: block; + width: 100%; + min-height: calc(1.8125rem + 2px); + padding: .25rem .7rem; + font-size: .875rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + appearance: none; + border-radius: .2rem; + transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none + } +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #a8c5f0; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1 +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: .25rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #495057; + background-color: initial; + border: solid transparent; + border-width: 1px 0 +} + +.form-control-plaintext.form-control-lg, .form-control-plaintext.form-control-sm { + padding-right: 0; + padding-left: 0 +} + +.form-control-sm { + min-height: calc(1.425rem + 2px); + padding: .15rem .5rem; + font-size: .75rem; + border-radius: .1rem +} + +.form-control-lg { + min-height: calc(2.0875rem + 2px); + padding: .35rem 1rem; + font-size: .925rem; + border-radius: .3rem +} + +.form-control-color { + max-width: 3rem; + padding: .25rem +} + +.form-control-color::-moz-color-swatch { + border-radius: .2rem +} + +.form-control-color::-webkit-color-swatch { + border-radius: .2rem +} + +.form-select { + display: block; + width: 100%; + height: calc(1.8125rem + 2px); + padding: .25rem 1.7rem .25rem .7rem; + font-size: .875rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background-color: #fff; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right .7rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: .2rem; + -webkit-appearance: none; + appearance: none +} + +.form-select:focus { + border-color: #a8c5f0; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-select:focus::-ms-value { + color: #495057; + background-color: #fff +} + +.form-select[multiple], .form-select[size]:not([size="1"]) { + height: auto; + padding-right: .7rem; + background-image: none +} + +.form-select:disabled { + color: #6c757d; + background-color: #e9ecef +} + +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057 +} + +.form-select-sm { + height: calc(1.425rem + 2px); + padding-top: .15rem; + padding-bottom: .15rem; + padding-left: .5rem; + font-size: .75rem +} + +.form-select-lg { + height: calc(2.0875rem + 2px); + padding-top: .35rem; + padding-bottom: .35rem; + padding-left: 1rem; + font-size: .925rem +} + +.form-check { + display: block; + min-height: 1.3125rem; + padding-left: 1.5em; + margin-bottom: .125rem +} + +.form-check .form-check-input { + float: left; + margin-left: -1.5em +} + +.form-check-input { + width: 1em; + height: 1em; + margin-top: .25em; + vertical-align: top; + background-color: #f7f7fc; + background-repeat: no-repeat; + background-position: 50%; + background-size: contain; + border: 1px solid rgba(0, 0, 0, .25); + -webkit-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + transition: background-color .15s ease-in-out, background-position .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .form-check-input { + transition: none + } +} + +.form-check-input[type=checkbox] { + border-radius: .25em +} + +.form-check-input[type=radio] { + border-radius: 50% +} + +.form-check-input:active { + filter: brightness(90%) +} + +.form-check-input:focus { + border-color: #a8c5f0; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-check-input:checked { + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3E%3C/svg%3E") +} + +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E") +} + +.form-check-input[type=checkbox]:indeterminate { + background-color: #3b7ddd; + border-color: #3b7ddd; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E") +} + +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: .5 +} + +.form-check-input:disabled ~ .form-check-label, .form-check-input[disabled] ~ .form-check-label { + opacity: .5 +} + +.form-switch { + padding-left: 2.5em +} + +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0,0,0,0.25)'/%3E%3C/svg%3E"); + background-position: 0; + border-radius: 2em +} + +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23a8c5f0'/%3E%3C/svg%3E") +} + +.form-switch .form-check-input:checked { + background-position: 100%; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.form-file { + --bs-form-file-height: calc(1.8125rem + 2px); + position: relative +} + +.form-file-input { + position: relative; + z-index: 2; + width: 100%; + height: var(--bs-form-file-height); + margin: 0; + opacity: 0 +} + +.form-file-input:focus-within ~ .form-file-label { + border-color: #a8c5f0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-file-input:disabled ~ .form-file-label .form-file-text, .form-file-input[disabled] ~ .form-file-label .form-file-text { + background-color: #e9ecef +} + +.form-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + height: var(--bs-form-file-height); + border-color: #ced4da; + border-radius: .2rem +} + +.form-file-text { + flex-grow: 1; + overflow: hidden; + font-weight: 400; + text-overflow: ellipsis; + white-space: nowrap; + background-color: #fff; + border: 1px solid; + border-color: inherit; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit +} + +.form-file-button, .form-file-text { + display: block; + padding: .25rem .7rem; + line-height: 1.5; + color: #495057 +} + +.form-file-button { + flex-shrink: 0; + margin-left: -1px; + background-color: #e9ecef; + border: 1px solid; + border-color: inherit; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit +} + +.form-file-sm { + --bs-form-file-height: calc(1.425rem + 2px); + font-size: .75rem +} + +.form-file-sm .form-file-button, .form-file-sm .form-file-text { + padding: .15rem .5rem +} + +.form-file-lg { + --bs-form-file-height: calc(2.0875rem + 2px); + font-size: .925rem +} + +.form-file-lg .form-file-button, .form-file-lg .form-file-text { + padding: .35rem 1rem +} + +.form-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: initial; + -webkit-appearance: none; + appearance: none +} + +.form-range:focus { + outline: none +} + +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.form-range::-moz-focus-outer { + border: 0 +} + +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -.25rem; + background-color: #3b7ddd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + -webkit-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none + } +} + +.form-range::-webkit-slider-thumb:active { + background-color: #d3e2f7 +} + +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #3b7ddd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none + } +} + +.form-range::-moz-range-thumb:active { + background-color: #d3e2f7 +} + +.form-range::-moz-range-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.form-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: .2rem; + margin-left: .2rem; + background-color: #3b7ddd; + border: 0; + border-radius: 1rem; + -ms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .form-range::-ms-thumb { + -ms-transition: none; + transition: none + } +} + +.form-range::-ms-thumb:active { + background-color: #d3e2f7 +} + +.form-range::-ms-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: initial; + border-color: transparent; + border-width: .5rem +} + +.form-range::-ms-fill-lower, .form-range::-ms-fill-upper { + background-color: #dee2e6; + border-radius: 1rem +} + +.form-range::-ms-fill-upper { + margin-right: 15px +} + +.form-range:disabled { + pointer-events: none +} + +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd +} + +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd +} + +.form-range:disabled::-ms-thumb { + background-color: #adb5bd +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100% +} + +.input-group > .form-control, .input-group > .form-file, .input-group > .form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0 +} + +.input-group > .form-control:focus, .input-group > .form-file .form-file-input:focus ~ .form-file-label, .input-group > .form-select:focus { + z-index: 3 +} + +.input-group > .form-file > .form-file-input:focus { + z-index: 4 +} + +.input-group > .form-file:not(:last-child) > .form-file-label { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group > .form-file:not(:first-child) > .form-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group .btn { + position: relative; + z-index: 2 +} + +.input-group .btn:focus { + z-index: 3 +} + +.input-group-text { + display: flex; + align-items: center; + padding: .25rem .7rem; + font-size: .875rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: .2rem +} + +.input-group-lg > .form-control { + min-height: calc(2.0875rem + 2px) +} + +.input-group-lg > .form-select { + height: calc(2.0875rem + 2px) +} + +.input-group-lg > .btn, .input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text { + padding: .35rem 1rem; + font-size: .925rem; + border-radius: .3rem +} + +.input-group-sm > .form-control { + min-height: calc(1.425rem + 2px) +} + +.input-group-sm > .form-select { + height: calc(1.425rem + 2px) +} + +.input-group-sm > .btn, .input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text { + padding: .15rem .5rem; + font-size: .75rem; + border-radius: .1rem +} + +.input-group-lg > .form-select, .input-group-sm > .form-select { + padding-right: 1.7rem +} + +.input-group > .dropdown-toggle:nth-last-child(n+3), .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group > :not(:first-child):not(.dropdown-menu) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: 80%; + color: #28a745 +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .75rem; + color: #000; + background-color: rgba(40, 167, 69, .9); + border-radius: .2rem +} + +.is-valid ~ .valid-feedback, .is-valid ~ .valid-tooltip, .was-validated :valid ~ .valid-feedback, .was-validated :valid ~ .valid-tooltip { + display: block +} + +.form-control.is-valid, .was-validated .form-control:valid { + border-color: #28a745 +} + +.form-control.is-valid:focus, .was-validated .form-control:valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.form-select.is-valid, .was-validated .form-select:valid { + border-color: #28a745 +} + +.form-select.is-valid:focus, .was-validated .form-select:valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.form-check-input.is-valid, .was-validated .form-check-input:valid { + border-color: #28a745 +} + +.form-check-input.is-valid:checked, .was-validated .form-check-input:valid:checked { + background-color: #28a745 +} + +.form-check-input.is-valid:focus, .was-validated .form-check-input:valid:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.form-check-input.is-valid ~ .form-check-label, .was-validated .form-check-input:valid ~ .form-check-label { + color: #28a745 +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: .5em +} + +.form-file-input.is-valid ~ .form-file-label, .was-validated .form-file-input:valid ~ .form-file-label { + border-color: #28a745 +} + +.form-file-input.is-valid:focus ~ .form-file-label, .was-validated .form-file-input:valid:focus ~ .form-file-label { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: 80%; + color: #dc3545 +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .75rem; + color: #fff; + background-color: rgba(220, 53, 69, .9); + border-radius: .2rem +} + +.is-invalid ~ .invalid-feedback, .is-invalid ~ .invalid-tooltip, .was-validated :invalid ~ .invalid-feedback, .was-validated :invalid ~ .invalid-tooltip { + display: block +} + +.form-control.is-invalid, .was-validated .form-control:invalid { + border-color: #dc3545 +} + +.form-control.is-invalid:focus, .was-validated .form-control:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.form-select.is-invalid, .was-validated .form-select:invalid { + border-color: #dc3545 +} + +.form-select.is-invalid:focus, .was-validated .form-select:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.form-check-input.is-invalid, .was-validated .form-check-input:invalid { + border-color: #dc3545 +} + +.form-check-input.is-invalid:checked, .was-validated .form-check-input:invalid:checked { + background-color: #dc3545 +} + +.form-check-input.is-invalid:focus, .was-validated .form-check-input:invalid:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.form-check-input.is-invalid ~ .form-check-label, .was-validated .form-check-input:invalid ~ .form-check-label { + color: #dc3545 +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: .5em +} + +.form-file-input.is-invalid ~ .form-file-label, .was-validated .form-file-input:invalid ~ .form-file-label { + border-color: #dc3545 +} + +.form-file-input.is-invalid:focus ~ .form-file-label, .was-validated .form-file-input:invalid:focus ~ .form-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: initial; + border: 1px solid transparent; + padding: .25rem .7rem; + font-size: .875rem; + border-radius: .2rem; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none + } +} + +.btn:hover { + color: #495057; + text-decoration: none +} + +.btn-check:focus + .btn, .btn:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.btn.disabled, .btn:disabled, fieldset:disabled .btn { + pointer-events: none; + opacity: .65 +} + +.btn-primary { + color: #000; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.btn-check:focus + .btn-primary, .btn-primary:focus, .btn-primary:hover { + color: #000; + background-color: #5c93e3; + border-color: #518be1 +} + +.btn-check:focus + .btn-primary, .btn-primary:focus { + box-shadow: 0 0 0 .2rem rgba(50, 106, 188, .5) +} + +.btn-check:active + .btn-primary, .btn-check:checked + .btn-primary, .btn-primary.active, .btn-primary:active, .show > .btn-primary.dropdown-toggle { + color: #000; + background-color: #669ae5; + border-color: #518be1 +} + +.btn-check:active + .btn-primary:focus, .btn-check:checked + .btn-primary:focus, .btn-primary.active:focus, .btn-primary:active:focus, .show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(50, 106, 188, .5) +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #000; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-check:focus + .btn-secondary, .btn-secondary:focus, .btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62 +} + +.btn-check:focus + .btn-secondary, .btn-secondary:focus { + box-shadow: 0 0 0 .2rem rgba(130, 138, 145, .5) +} + +.btn-check:active + .btn-secondary, .btn-check:checked + .btn-secondary, .btn-secondary.active, .btn-secondary:active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b +} + +.btn-check:active + .btn-secondary:focus, .btn-check:checked + .btn-secondary:focus, .btn-secondary.active:focus, .btn-secondary:active:focus, .show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(130, 138, 145, .5) +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-success { + color: #000; + background-color: #28a745; + border-color: #28a745 +} + +.btn-check:focus + .btn-success, .btn-success:focus, .btn-success:hover { + color: #000; + background-color: #2fc652; + border-color: #2dbc4e +} + +.btn-check:focus + .btn-success, .btn-success:focus { + box-shadow: 0 0 0 .2rem rgba(34, 142, 59, .5) +} + +.btn-check:active + .btn-success, .btn-check:checked + .btn-success, .btn-success.active, .btn-success:active, .show > .btn-success.dropdown-toggle { + color: #000; + background-color: #34ce57; + border-color: #2dbc4e +} + +.btn-check:active + .btn-success:focus, .btn-check:checked + .btn-success:focus, .btn-success.active:focus, .btn-success:active:focus, .show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(34, 142, 59, .5) +} + +.btn-success.disabled, .btn-success:disabled { + color: #000; + background-color: #28a745; + border-color: #28a745 +} + +.btn-info { + color: #000; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-check:focus + .btn-info, .btn-info:focus, .btn-info:hover { + color: #000; + background-color: #1bc0da; + border-color: #1ab6cf +} + +.btn-check:focus + .btn-info, .btn-info:focus { + box-shadow: 0 0 0 .2rem rgba(20, 138, 156, .5) +} + +.btn-check:active + .btn-info, .btn-check:checked + .btn-info, .btn-info.active, .btn-info:active, .show > .btn-info.dropdown-toggle { + color: #000; + background-color: #1fc8e3; + border-color: #1ab6cf +} + +.btn-check:active + .btn-info:focus, .btn-check:checked + .btn-info:focus, .btn-info.active:focus, .btn-info:active:focus, .show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(20, 138, 156, .5) +} + +.btn-info.disabled, .btn-info:disabled { + color: #000; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-warning { + color: #000; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-check:focus + .btn-warning, .btn-warning:focus, .btn-warning:hover { + color: #000; + background-color: #ffcb2d; + border-color: #ffc721 +} + +.btn-check:focus + .btn-warning, .btn-warning:focus { + box-shadow: 0 0 0 .2rem rgba(217, 164, 6, .5) +} + +.btn-check:active + .btn-warning, .btn-check:checked + .btn-warning, .btn-warning.active, .btn-warning:active, .show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffce3a; + border-color: #ffc721 +} + +.btn-check:active + .btn-warning:focus, .btn-check:checked + .btn-warning:focus, .btn-warning.active:focus, .btn-warning:active:focus, .show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(217, 164, 6, .5) +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #000; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-check:focus + .btn-danger, .btn-danger:focus, .btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130 +} + +.btn-check:focus + .btn-danger, .btn-danger:focus { + box-shadow: 0 0 0 .2rem rgba(225, 83, 97, .5) +} + +.btn-check:active + .btn-danger, .btn-check:checked + .btn-danger, .btn-danger.active, .btn-danger:active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d +} + +.btn-check:active + .btn-danger:focus, .btn-check:checked + .btn-danger:focus, .btn-danger.active:focus, .btn-danger:active:focus, .show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(225, 83, 97, .5) +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-check:focus + .btn-light, .btn-light:focus, .btn-light:hover { + color: #000; + background-color: #fff; + border-color: #fff +} + +.btn-check:focus + .btn-light, .btn-light:focus { + box-shadow: 0 0 0 .2rem rgba(211, 212, 213, .5) +} + +.btn-check:active + .btn-light, .btn-check:checked + .btn-light, .btn-light.active, .btn-light:active, .show > .btn-light.dropdown-toggle { + color: #000; + background-color: #fff; + border-color: #fff +} + +.btn-check:active + .btn-light:focus, .btn-check:checked + .btn-light:focus, .btn-light.active:focus, .btn-light:active:focus, .show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(211, 212, 213, .5) +} + +.btn-light.disabled, .btn-light:disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529 +} + +.btn-check:focus + .btn-dark, .btn-dark:focus, .btn-dark:hover { + color: #fff; + background-color: #101214; + border-color: #0a0c0d +} + +.btn-check:focus + .btn-dark, .btn-dark:focus { + box-shadow: 0 0 0 .2rem rgba(66, 70, 73, .5) +} + +.btn-check:active + .btn-dark, .btn-check:checked + .btn-dark, .btn-dark.active, .btn-dark:active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #0a0c0d; + border-color: #050506 +} + +.btn-check:active + .btn-dark:focus, .btn-check:checked + .btn-dark:focus, .btn-dark.active:focus, .btn-dark:active:focus, .show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(66, 70, 73, .5) +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #212529; + border-color: #212529 +} + +.btn-outline-primary { + color: #3b7ddd; + border-color: #3b7ddd +} + +.btn-outline-primary:hover { + color: #000; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .5) +} + +.btn-check:active + .btn-outline-primary, .btn-check:checked + .btn-outline-primary, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show, .btn-outline-primary:active { + color: #000; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.btn-check:active + .btn-outline-primary:focus, .btn-check:checked + .btn-outline-primary:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus, .btn-outline-primary:active:focus { + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .5) +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #3b7ddd; + background-color: initial +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) +} + +.btn-check:active + .btn-outline-secondary, .btn-check:checked + .btn-outline-secondary, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show, .btn-outline-secondary:active { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-check:active + .btn-outline-secondary:focus, .btn-check:checked + .btn-outline-secondary:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus, .btn-outline-secondary:active:focus { + box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: initial +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745 +} + +.btn-outline-success:hover { + color: #000; + background-color: #28a745; + border-color: #28a745 +} + +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) +} + +.btn-check:active + .btn-outline-success, .btn-check:checked + .btn-outline-success, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show, .btn-outline-success:active { + color: #000; + background-color: #28a745; + border-color: #28a745 +} + +.btn-check:active + .btn-outline-success:focus, .btn-check:checked + .btn-outline-success:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus, .btn-outline-success:active:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: initial +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8 +} + +.btn-outline-info:hover { + color: #000; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) +} + +.btn-check:active + .btn-outline-info, .btn-check:checked + .btn-outline-info, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show, .btn-outline-info:active { + color: #000; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-check:active + .btn-outline-info:focus, .btn-check:checked + .btn-outline-info:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus, .btn-outline-info:active:focus { + box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: initial +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107 +} + +.btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) +} + +.btn-check:active + .btn-outline-warning, .btn-check:checked + .btn-outline-warning, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show, .btn-outline-warning:active { + color: #000; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-check:active + .btn-outline-warning:focus, .btn-check:checked + .btn-outline-warning:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus, .btn-outline-warning:active:focus { + box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: initial +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545 +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) +} + +.btn-check:active + .btn-outline-danger, .btn-check:checked + .btn-outline-danger, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show, .btn-outline-danger:active { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-check:active + .btn-outline-danger:focus, .btn-check:checked + .btn-outline-danger:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus, .btn-outline-danger:active:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: initial +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) +} + +.btn-check:active + .btn-outline-light, .btn-check:checked + .btn-outline-light, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show, .btn-outline-light:active { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-check:active + .btn-outline-light:focus, .btn-check:checked + .btn-outline-light:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus, .btn-outline-light:active:focus { + box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: initial +} + +.btn-outline-dark { + color: #212529; + border-color: #212529 +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529 +} + +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + box-shadow: 0 0 0 .2rem rgba(33, 37, 41, .5) +} + +.btn-check:active + .btn-outline-dark, .btn-check:checked + .btn-outline-dark, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show, .btn-outline-dark:active { + color: #fff; + background-color: #212529; + border-color: #212529 +} + +.btn-check:active + .btn-outline-dark:focus, .btn-check:checked + .btn-outline-dark:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus, .btn-outline-dark:active:focus { + box-shadow: 0 0 0 .2rem rgba(33, 37, 41, .5) +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #212529; + background-color: initial +} + +.btn-link { + font-weight: 400; + color: #3b7ddd; + text-decoration: none +} + +.btn-link:hover { + color: #1e58ad +} + +.btn-link:focus, .btn-link:hover { + text-decoration: underline +} + +.btn-link.disabled, .btn-link:disabled { + color: #6c757d +} + +.btn-group-lg > .btn, .btn-lg { + padding: .35rem 1rem; + font-size: .925rem; + border-radius: .3rem +} + +.btn-group-sm > .btn, .btn-sm { + padding: .15rem .5rem; + font-size: .75rem; + border-radius: .1rem +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block + .btn-block { + margin-top: .5rem +} + +.fade { + transition: opacity .15s linear +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none + } +} + +.fade:not(.show) { + opacity: 0 +} + +.collapse:not(.show) { + display: none +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height .35s ease +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none + } +} + +.dropdown, .dropleft, .dropright, .dropup { + position: relative +} + +.dropdown-toggle { + white-space: nowrap +} + +.dropdown-toggle:after { + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid; + border-right: .3em solid transparent; + border-bottom: 0; + border-left: .3em solid transparent +} + +.dropdown-toggle:empty:after { + margin-left: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + min-width: 10rem; + padding: .5rem 0; + margin: .125rem 0 0; + font-size: .875rem; + color: #495057; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: .2rem +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0 + } + + .dropdown-menu-sm-right { + right: 0; + left: auto + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0 + } + + .dropdown-menu-md-right { + right: 0; + left: auto + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0 + } + + .dropdown-menu-lg-right { + right: 0; + left: auto + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0 + } + + .dropdown-menu-xl-right { + right: 0; + left: auto + } +} + +@media (min-width: 1440px) { + .dropdown-menu-xxl-left { + right: auto; + left: 0 + } + + .dropdown-menu-xxl-right { + right: 0; + left: auto + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: .125rem +} + +.dropup .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: 0; + border-right: .3em solid transparent; + border-bottom: .3em solid; + border-left: .3em solid transparent +} + +.dropup .dropdown-toggle:empty:after { + margin-left: 0 +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: .125rem +} + +.dropright .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: 0; + border-bottom: .3em solid transparent; + border-left: .3em solid +} + +.dropright .dropdown-toggle:empty:after { + margin-left: 0 +} + +.dropright .dropdown-toggle:after { + vertical-align: 0 +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: .125rem +} + +.dropleft .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + display: none +} + +.dropleft .dropdown-toggle:before { + display: inline-block; + margin-right: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: .3em solid; + border-bottom: .3em solid transparent +} + +.dropleft .dropdown-toggle:empty:after { + margin-left: 0 +} + +.dropleft .dropdown-toggle:before { + vertical-align: 0 +} + +.dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=top] { + right: auto; + bottom: auto +} + +.dropdown-divider { + height: 0; + margin: .5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, .15) +} + +.dropdown-item { + display: block; + width: 100%; + padding: .35rem 1.5rem; + clear: both; + font-weight: 400; + color: #495057; + text-align: inherit; + white-space: nowrap; + background-color: initial; + border: 0 +} + +.dropdown-item:focus, .dropdown-item:hover { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #3b7ddd +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: initial +} + +.dropdown-menu.show { + display: block +} + +.dropdown-header { + display: block; + padding: .5rem 1.5rem; + margin-bottom: 0; + font-size: .75rem; + color: #6c757d; + white-space: nowrap +} + +.dropdown-item-text { + display: block; + padding: .35rem 1.5rem; + color: #495057 +} + +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, .15) +} + +.dropdown-menu-dark .dropdown-item { + color: #dee2e6 +} + +.dropdown-menu-dark .dropdown-item:focus, .dropdown-menu-dark .dropdown-item:hover { + color: #fff; + background-color: hsla(0, 0%, 100%, .15) +} + +.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #3b7ddd +} + +.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd +} + +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, .15) +} + +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6 +} + +.dropdown-menu-dark .dropdown-header { + color: #adb5bd +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle +} + +.btn-group-vertical > .btn, .btn-group > .btn { + position: relative; + flex: 1 1 auto +} + +.btn-group-vertical > .btn-check:checked + .btn, .btn-group-vertical > .btn-check:focus + .btn, .btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn-check:checked + .btn, .btn-group > .btn-check:focus + .btn, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { + z-index: 1 +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start +} + +.btn-toolbar .input-group { + width: auto +} + +.btn-group > .btn-group:not(:first-child), .btn-group > .btn:not(:first-child) { + margin-left: -1px +} + +.btn-group > .btn-group:not(:last-child) > .btn, .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group > .btn-group:not(:first-child) > .btn, .btn-group > .btn:nth-child(n+3), .btn-group > :not(.btn-check) + .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.dropdown-toggle-split { + padding-right: .525rem; + padding-left: .525rem +} + +.dropdown-toggle-split:after, .dropright .dropdown-toggle-split:after, .dropup .dropdown-toggle-split:after { + margin-left: 0 +} + +.dropleft .dropdown-toggle-split:before { + margin-right: 0 +} + +.btn-group-sm > .btn + .dropdown-toggle-split, .btn-sm + .dropdown-toggle-split { + padding-right: .375rem; + padding-left: .375rem +} + +.btn-group-lg > .btn + .dropdown-toggle-split, .btn-lg + .dropdown-toggle-split { + padding-right: .75rem; + padding-left: .75rem +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center +} + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { + width: 100% +} + +.btn-group-vertical > .btn-group:not(:first-child), .btn-group-vertical > .btn:not(:first-child) { + margin-top: -1px +} + +.btn-group-vertical > .btn-group:not(:last-child) > .btn, .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn-group:not(:first-child) > .btn, .btn-group-vertical > .btn:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav-link { + display: block; + padding: .5rem 1rem; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none + } +} + +.nav-link:focus, .nav-link:hover { + text-decoration: none +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6 +} + +.nav-tabs .nav-link { + margin-bottom: -1px; + border: 1px solid transparent; + border-top-left-radius: .2rem; + border-top-right-radius: .2rem +} + +.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { + border-color: #e9ecef #e9ecef #dee2e6 +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: initial; + border-color: transparent +} + +.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active { + color: #495057; + background-color: #f7f7fc; + border-color: #dee2e6 #dee2e6 #f7f7fc +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav-pills .nav-link { + border-radius: .2rem +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #3b7ddd +} + +.nav-fill .nav-item, .nav-fill > .nav-link { + flex: 1 1 auto; + text-align: center +} + +.nav-justified .nav-item, .nav-justified > .nav-link { + flex-basis: 0; + flex-grow: 1; + text-align: center +} + +.tab-content > .tab-pane { + display: none +} + +.tab-content > .active { + display: block +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: .875rem 1.375rem +} + +.navbar > .container, .navbar > .container-fluid, .navbar > .container-lg, .navbar > .container-md, .navbar > .container-sm, .navbar > .container-xl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between +} + +.navbar-brand { + padding-top: .875rem; + padding-bottom: .875rem; + margin-right: 1rem; + white-space: nowrap +} + +.navbar-brand:focus, .navbar-brand:hover { + text-decoration: none +} + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0 +} + +.navbar-nav .dropdown-menu { + position: static +} + +.navbar-text { + padding-top: .5rem; + padding-bottom: .5rem +} + +.navbar-collapse { + align-items: center; + width: 100% +} + +.navbar-toggler { + padding: .25rem .75rem; + font-size: .925rem; + line-height: 1; + background-color: initial; + border: 1px solid transparent; + border-radius: .2rem; + transition: box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none + } +} + +.navbar-toggler:hover { + text-decoration: none +} + +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 .2rem +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-sm .navbar-nav { + flex-direction: row + } + + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + + .navbar-expand-sm .navbar-collapse { + display: flex !important + } + + .navbar-expand-sm .navbar-toggler { + display: none + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-md .navbar-nav { + flex-direction: row + } + + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-md .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + + .navbar-expand-md .navbar-collapse { + display: flex !important + } + + .navbar-expand-md .navbar-toggler { + display: none + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-lg .navbar-nav { + flex-direction: row + } + + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + + .navbar-expand-lg .navbar-collapse { + display: flex !important + } + + .navbar-expand-lg .navbar-toggler { + display: none + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-xl .navbar-nav { + flex-direction: row + } + + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + + .navbar-expand-xl .navbar-collapse { + display: flex !important + } + + .navbar-expand-xl .navbar-toggler { + display: none + } +} + +@media (min-width: 1440px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-xxl .navbar-nav { + flex-direction: row + } + + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + + .navbar-expand-xxl .navbar-collapse { + display: flex !important + } + + .navbar-expand-xxl .navbar-toggler { + display: none + } +} + +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start +} + +.navbar-expand .navbar-nav { + flex-direction: row +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem +} + +.navbar-expand .navbar-collapse { + display: flex !important +} + +.navbar-expand .navbar-toggler { + display: none +} + +.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, .9) +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, .55) +} + +.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, .7) +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, .3) +} + +.navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .show > .nav-link { + color: rgba(0, 0, 0, .9) +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, .55); + border-color: rgba(0, 0, 0, .1) +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, .55) +} + +.navbar-light .navbar-text a, .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover { + color: rgba(0, 0, 0, .9) +} + +.navbar-dark .navbar-brand, .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link { + color: hsla(0, 0%, 100%, .55) +} + +.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { + color: hsla(0, 0%, 100%, .75) +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: hsla(0, 0%, 100%, .25) +} + +.navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .show > .nav-link { + color: #fff +} + +.navbar-dark .navbar-toggler { + color: hsla(0, 0%, 100%, .55); + border-color: hsla(0, 0%, 100%, .1) +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255,255,255,0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") +} + +.navbar-dark .navbar-text { + color: hsla(0, 0%, 100%, .55) +} + +.navbar-dark .navbar-text a, .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover { + color: #fff +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: initial; + border: 0 solid transparent; + border-radius: .25rem +} + +.card > hr { + margin-right: 0; + margin-left: 0 +} + +.card > .list-group { + border-top: inherit; + border-bottom: inherit +} + +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem +} + +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem +} + +.card > .card-header + .list-group, .card > .list-group + .card-footer { + border-top: 0 +} + +.card-body { + flex: 1 1 auto; + padding: 1.25rem +} + +.card-title { + margin-bottom: .5rem +} + +.card-subtitle { + margin-top: -.25rem +} + +.card-subtitle, .card-text:last-child { + margin-bottom: 0 +} + +.card-link:hover { + text-decoration: none +} + +.card-link + .card-link { + margin-left: 1.25rem +} + +.card-header { + padding: 1rem 1.25rem; + margin-bottom: 0; + background-color: #fff; + border-bottom: 0 solid transparent +} + +.card-header:first-child { + border-radius: .25rem .25rem 0 0 +} + +.card-footer { + padding: 1rem 1.25rem; + background-color: #fff; + border-top: 0 solid transparent +} + +.card-footer:last-child { + border-radius: 0 0 .25rem .25rem +} + +.card-header-tabs { + margin-right: -.625rem; + margin-bottom: -1rem; + margin-left: -.625rem; + border-bottom: 0 +} + +.card-header-tabs .nav-link.active { + background-color: #fff; + border-bottom-color: #fff +} + +.card-header-pills { + margin-right: -.625rem; + margin-left: -.625rem +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: .25rem +} + +.card-img, .card-img-bottom, .card-img-top { + width: 100% +} + +.card-img, .card-img-top { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem +} + +.card-img, .card-img-bottom { + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem +} + +.card-group > .card { + margin-bottom: 12px +} + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap + } + + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0 + } + + .card-group > .card + .card { + margin-left: 0; + border-left: 0 + } + + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } + + .card-group > .card:not(:last-child) .card-header, .card-group > .card:not(:last-child) .card-img-top { + border-top-right-radius: 0 + } + + .card-group > .card:not(:last-child) .card-footer, .card-group > .card:not(:last-child) .card-img-bottom { + border-bottom-right-radius: 0 + } + + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } + + .card-group > .card:not(:first-child) .card-header, .card-group > .card:not(:first-child) .card-img-top { + border-top-left-radius: 0 + } + + .card-group > .card:not(:first-child) .card-footer, .card-group > .card:not(:first-child) .card-img-bottom { + border-bottom-left-radius: 0 + } +} + +.accordion { + overflow-anchor: none +} + +.accordion > .card { + overflow: hidden +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: 0 +} + +.breadcrumb { + flex-wrap: wrap; + padding: .5rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: .2rem +} + +.breadcrumb, .breadcrumb-item { + display: flex +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: .5rem +} + +.breadcrumb-item + .breadcrumb-item:before { + display: inline-block; + padding-right: .5rem; + color: #6c757d; + content: "/" +} + +.breadcrumb-item.active { + color: #6c757d +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none +} + +.page-link { + position: relative; + display: block; + color: #6c757d; + background-color: #fff; + border: 1px solid #dee2e6; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none + } +} + +.page-link:hover { + z-index: 2; + color: #343a40; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6 +} + +.page-link:focus { + z-index: 3; + color: #1e58ad; + background-color: #e9ecef; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) +} + +.page-item:not(:first-child) .page-link { + margin-left: -1px +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6 +} + +.page-link { + padding: .3rem .75rem +} + +.page-item:first-child .page-link { + border-top-left-radius: .2rem; + border-bottom-left-radius: .2rem +} + +.page-item:last-child .page-link { + border-top-right-radius: .2rem; + border-bottom-right-radius: .2rem +} + +.pagination-lg .page-link { + padding: .35rem 1rem; + font-size: .925rem +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: .3rem; + border-bottom-left-radius: .3rem +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: .3rem; + border-bottom-right-radius: .3rem +} + +.pagination-sm .page-link { + padding: .15rem .5rem; + font-size: .75rem +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: .1rem; + border-bottom-left-radius: .1rem +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: .1rem; + border-bottom-right-radius: .1rem +} + +.badge { + display: inline-block; + padding: .3em .45em; + font-size: 80%; + font-weight: 600; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: initial; + border-radius: .2rem +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.alert { + position: relative; + padding: .95rem; + margin-bottom: 1rem; + border: 0 solid transparent; + border-radius: .2rem +} + +.alert-heading { + color: inherit +} + +.alert-link { + font-weight: 600 +} + +.alert-dismissible { + padding-right: 2.85rem +} + +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + padding: 1.1875rem .95rem +} + +.alert-primary { + color: #1f4173; + background-color: #d8e5f8; + border-color: #c8dbf5 +} + +.alert-primary .alert-link { + color: #142a4b +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db +} + +.alert-secondary .alert-link { + color: #202326 +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb +} + +.alert-success .alert-link { + color: #0b2e13 +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb +} + +.alert-info .alert-link { + color: #062c33 +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba +} + +.alert-warning .alert-link { + color: #533f03 +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb +} + +.alert-danger .alert-link { + color: #491217 +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe +} + +.alert-light .alert-link { + color: #686868 +} + +.alert-dark { + color: #111315; + background-color: #d3d3d4; + border-color: #c1c2c3 +} + +.alert-dark .alert-link { + color: #000 +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem + } +} + +.progress { + height: 1rem; + font-size: .65625rem; + background-color: #e9ecef; + border-radius: .2rem +} + +.progress, .progress-bar { + display: flex; + overflow: hidden +} + +.progress-bar { + flex-direction: column; + justify-content: center; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #3b7ddd; + transition: width .6s ease +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, hsla(0, 0%, 100%, .15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, .15) 0, hsla(0, 0%, 100%, .15) 75%, transparent 0, transparent); + background-size: 1rem 1rem +} + +.progress-bar-animated { + animation: progress-bar-stripes 1s linear infinite +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none + } +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: .2rem +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit +} + +.list-group-item-action:focus, .list-group-item-action:hover { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa +} + +.list-group-item-action:active { + color: #495057; + background-color: #e9ecef +} + +.list-group-item { + position: relative; + display: block; + padding: .75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, .125) +} + +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit +} + +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #3b7ddd; + border-color: #3b7ddd +} + +.list-group-item + .list-group-item { + border-top-width: 0 +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px +} + +.list-group-horizontal { + flex-direction: row +} + +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 +} + +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 +} + +.list-group-horizontal > .list-group-item.active { + margin-top: 0 +} + +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 +} + +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row + } + + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 + } + + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 + } + + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row + } + + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 + } + + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 + } + + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row + } + + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 + } + + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 + } + + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row + } + + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 + } + + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 + } + + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 1440px) { + .list-group-horizontal-xxl { + flex-direction: row + } + + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: .2rem; + border-top-right-radius: 0 + } + + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: .2rem; + border-bottom-left-radius: 0 + } + + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +.list-group-flush { + border-radius: 0 +} + +.list-group-flush > .list-group-item { + border-width: 0 0 1px +} + +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0 +} + +.list-group-item-primary { + color: #1f4173; + background-color: #c8dbf5 +} + +.list-group-item-primary.list-group-item-action:focus, .list-group-item-primary.list-group-item-action:hover { + color: #1f4173; + background-color: #b2cdf1 +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #1f4173; + border-color: #1f4173 +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db +} + +.list-group-item-secondary.list-group-item-action:focus, .list-group-item-secondary.list-group-item-action:hover { + color: #383d41; + background-color: #c8cbcf +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41 +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb +} + +.list-group-item-success.list-group-item-action:focus, .list-group-item-success.list-group-item-action:hover { + color: #155724; + background-color: #b1dfbb +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724 +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb +} + +.list-group-item-info.list-group-item-action:focus, .list-group-item-info.list-group-item-action:hover { + color: #0c5460; + background-color: #abdde5 +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460 +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba +} + +.list-group-item-warning.list-group-item-action:focus, .list-group-item-warning.list-group-item-action:hover { + color: #856404; + background-color: #ffe8a1 +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404 +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb +} + +.list-group-item-danger.list-group-item-action:focus, .list-group-item-danger.list-group-item-action:hover { + color: #721c24; + background-color: #f1b0b7 +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24 +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe +} + +.list-group-item-light.list-group-item-action:focus, .list-group-item-light.list-group-item-action:hover { + color: #818182; + background-color: #ececf6 +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182 +} + +.list-group-item-dark { + color: #111315; + background-color: #c1c2c3 +} + +.list-group-item-dark.list-group-item-action:focus, .list-group-item-dark.list-group-item-action:hover { + color: #111315; + background-color: #b4b5b6 +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #111315; + border-color: #111315 +} + +.btn-close { + box-sizing: initial; + width: 1em; + height: 1em; + padding: .25em; + color: #000; + background: transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3E%3C/svg%3E") no-repeat 50%/1em auto; + background-clip: content-box; + border: 0; + border-radius: .2rem; + opacity: .5 +} + +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: .75 +} + +.btn-close:focus { + outline: none; + box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25); + opacity: 1 +} + +.btn-close.disabled, .btn-close:disabled { + pointer-events: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + opacity: .25 +} + +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%) +} + +.toast { + max-width: 350px; + font-size: .875rem; + background-color: hsla(0, 0%, 100%, .85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05); + opacity: 0; + border-radius: .2rem +} + +.toast:not(:last-child) { + margin-bottom: .75rem +} + +.toast.showing { + opacity: 1 +} + +.toast.show { + display: block; + opacity: 1 +} + +.toast.hide { + display: none +} + +.toast-header { + display: flex; + align-items: center; + padding: .5rem .75rem; + color: #6c757d; + background-color: hsla(0, 0%, 100%, .85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, .05); + border-top-left-radius: calc(.2rem - 1px); + border-top-right-radius: calc(.2rem - 1px) +} + +.toast-header .btn-close { + margin-right: -.375rem; + margin-left: .75rem +} + +.toast-body { + padding: .75rem +} + +.modal-open { + overflow: hidden +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: .5rem; + pointer-events: none +} + +.modal.fade .modal-dialog { + transition: transform .25s ease-out; + transform: translateY(-50px) +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none + } +} + +.modal.show .modal-dialog { + transform: none +} + +.modal.modal-static .modal-dialog { + transform: scale(1.02) +} + +.modal-dialog-scrollable { + height: calc(100% - 1rem) +} + +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem) +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 0 solid rgba(0, 0, 0, .2); + border-radius: .3rem; + outline: 0 +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop.show { + opacity: .5 +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: .3rem; + border-top-right-radius: .3rem +} + +.modal-header .btn-close { + padding: .5rem; + margin: -.5rem -.5rem -.5rem auto +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5 +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: .75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: .3rem; + border-bottom-left-radius: .3rem +} + +.modal-footer > * { + margin: .25rem +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 600px; + margin: 1.75rem auto + } + + .modal-dialog-scrollable { + height: calc(100% - 3.5rem) + } + + .modal-dialog-centered { + min-height: calc(100% - 3.5rem) + } + + .modal-sm { + max-width: 400px + } +} + +@media (min-width: 992px) { + .modal-lg, .modal-xl { + max-width: 900px + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px + } +} + +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 +} + +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0 +} + +.modal-fullscreen .modal-header { + border-radius: 0 +} + +.modal-fullscreen .modal-body { + overflow-y: auto +} + +.modal-fullscreen .modal-footer { + border-radius: 0 +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-sm-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto + } + + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-md-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-md-down .modal-body { + overflow-y: auto + } + + .modal-fullscreen-md-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-lg-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto + } + + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-xl-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto + } + + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width: 1439.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto + } + + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0 + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: .75rem; + word-wrap: break-word; + opacity: 0 +} + +.tooltip.show { + opacity: .9 +} + +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: .8rem; + height: .4rem +} + +.tooltip .tooltip-arrow:before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-tooltip-auto[x-placement^=top], .bs-tooltip-top { + padding: .4rem 0 +} + +.bs-tooltip-auto[x-placement^=top] .tooltip-arrow, .bs-tooltip-top .tooltip-arrow { + bottom: 0 +} + +.bs-tooltip-auto[x-placement^=top] .tooltip-arrow:before, .bs-tooltip-top .tooltip-arrow:before { + top: 0; + border-width: .4rem .4rem 0; + border-top-color: #000 +} + +.bs-tooltip-auto[x-placement^=right], .bs-tooltip-right { + padding: 0 .4rem +} + +.bs-tooltip-auto[x-placement^=right] .tooltip-arrow, .bs-tooltip-right .tooltip-arrow { + left: 0; + width: .4rem; + height: .8rem +} + +.bs-tooltip-auto[x-placement^=right] .tooltip-arrow:before, .bs-tooltip-right .tooltip-arrow:before { + right: 0; + border-width: .4rem .4rem .4rem 0; + border-right-color: #000 +} + +.bs-tooltip-auto[x-placement^=bottom], .bs-tooltip-bottom { + padding: .4rem 0 +} + +.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow, .bs-tooltip-bottom .tooltip-arrow { + top: 0 +} + +.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow:before, .bs-tooltip-bottom .tooltip-arrow:before { + bottom: 0; + border-width: 0 .4rem .4rem; + border-bottom-color: #000 +} + +.bs-tooltip-auto[x-placement^=left], .bs-tooltip-left { + padding: 0 .4rem +} + +.bs-tooltip-auto[x-placement^=left] .tooltip-arrow, .bs-tooltip-left .tooltip-arrow { + right: 0; + width: .4rem; + height: .8rem +} + +.bs-tooltip-auto[x-placement^=left] .tooltip-arrow:before, .bs-tooltip-left .tooltip-arrow:before { + left: 0; + border-width: .4rem 0 .4rem .4rem; + border-left-color: #000 +} + +.tooltip-inner { + max-width: 200px; + padding: .25rem .5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: .2rem +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: .75rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem +} + +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: .5rem; + margin: 0 .3rem +} + +.popover .popover-arrow:after, .popover .popover-arrow:before { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-popover-auto[x-placement^=top], .bs-popover-top { + margin-bottom: .5rem +} + +.bs-popover-auto[x-placement^=top] > .popover-arrow, .bs-popover-top > .popover-arrow { + bottom: calc(-.5rem - 1px) +} + +.bs-popover-auto[x-placement^=top] > .popover-arrow:before, .bs-popover-top > .popover-arrow:before { + bottom: 0; + border-width: .5rem .5rem 0; + border-top-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=top] > .popover-arrow:after, .bs-popover-top > .popover-arrow:after { + bottom: 1px; + border-width: .5rem .5rem 0; + border-top-color: #fff +} + +.bs-popover-auto[x-placement^=right], .bs-popover-right { + margin-left: .5rem +} + +.bs-popover-auto[x-placement^=right] > .popover-arrow, .bs-popover-right > .popover-arrow { + left: calc(-.5rem - 1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 +} + +.bs-popover-auto[x-placement^=right] > .popover-arrow:before, .bs-popover-right > .popover-arrow:before { + left: 0; + border-width: .5rem .5rem .5rem 0; + border-right-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=right] > .popover-arrow:after, .bs-popover-right > .popover-arrow:after { + left: 1px; + border-width: .5rem .5rem .5rem 0; + border-right-color: #fff +} + +.bs-popover-auto[x-placement^=bottom], .bs-popover-bottom { + margin-top: .5rem +} + +.bs-popover-auto[x-placement^=bottom] > .popover-arrow, .bs-popover-bottom > .popover-arrow { + top: calc(-.5rem - 1px) +} + +.bs-popover-auto[x-placement^=bottom] > .popover-arrow:before, .bs-popover-bottom > .popover-arrow:before { + top: 0; + border-width: 0 .5rem .5rem; + border-bottom-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=bottom] > .popover-arrow:after, .bs-popover-bottom > .popover-arrow:after { + top: 1px; + border-width: 0 .5rem .5rem; + border-bottom-color: #fff +} + +.bs-popover-auto[x-placement^=bottom] .popover-header:before, .bs-popover-bottom .popover-header:before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7 +} + +.bs-popover-auto[x-placement^=left], .bs-popover-left { + margin-right: .5rem +} + +.bs-popover-auto[x-placement^=left] > .popover-arrow, .bs-popover-left > .popover-arrow { + right: calc(-.5rem - 1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 +} + +.bs-popover-auto[x-placement^=left] > .popover-arrow:before, .bs-popover-left > .popover-arrow:before { + right: 0; + border-width: .5rem 0 .5rem .5rem; + border-left-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=left] > .popover-arrow:after, .bs-popover-left > .popover-arrow:after { + right: 1px; + border-width: .5rem 0 .5rem .5rem; + border-left-color: #fff +} + +.popover-header { + padding: .5rem 1rem; + margin-bottom: 0; + font-size: .875rem; + color: #000; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(.3rem - 1px); + border-top-right-radius: calc(.3rem - 1px) +} + +.popover-header:empty { + display: none +} + +.popover-body { + padding: 1rem; + color: #495057 +} + +.carousel { + position: relative +} + +.carousel.pointer-event { + touch-action: pan-y +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner:after { + display: block; + clear: both; + content: "" +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform .6s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none + } +} + +.carousel-item-next, .carousel-item-prev, .carousel-item.active { + display: block +} + +.active.carousel-item-right, .carousel-item-next:not(.carousel-item-left) { + transform: translateX(100%) +} + +.active.carousel-item-left, .carousel-item-prev:not(.carousel-item-right) { + transform: translateX(-100%) +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none +} + +.carousel-fade .carousel-item-next.carousel-item-left, .carousel-fade .carousel-item-prev.carousel-item-right, .carousel-fade .carousel-item.active { + z-index: 1; + opacity: 1 +} + +.carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s .6s +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { + transition: none + } +} + +.carousel-control-next, .carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: .5; + transition: opacity .15s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-next, .carousel-control-prev { + transition: none + } +} + +.carousel-control-next:focus, .carousel-control-next:hover, .carousel-control-prev:focus, .carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9 +} + +.carousel-control-prev { + left: 0 +} + +.carousel-control-next { + right: 0 +} + +.carousel-control-next-icon, .carousel-control-prev-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100% +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.646a.5.5 0 010 .708L5.707 8l5.647 5.646a.5.5 0 01-.708.708l-6-6a.5.5 0 010-.708l6-6a.5.5 0 01.708 0z'/%3E%3C/svg%3E") +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 1.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708-.708L10.293 8 4.646 2.354a.5.5 0 010-.708z'/%3E%3C/svg%3E") +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none +} + +.carousel-indicators li { + box-sizing: initial; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity .6s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none + } +} + +.carousel-indicators .active { + opacity: 1 +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center +} + +.carousel-dark .carousel-control-next-icon, .carousel-dark .carousel-control-prev-icon { + filter: invert(1) grayscale(100) +} + +.carousel-dark .carousel-indicators li { + background-color: #000 +} + +.carousel-dark .carousel-caption { + color: #000 +} + +@keyframes spinner-border { + to { + transform: rotate(1turn) + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: .25em solid; + border-right: .25em solid transparent; + border-radius: 50%; + animation: spinner-border .75s linear infinite +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: .2em +} + +@keyframes spinner-grow { + 0% { + transform: scale(0) + } + 50% { + opacity: 1; + transform: none + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + animation: spinner-grow .75s linear infinite +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem +} + +.clearfix:after { + display: block; + clear: both; + content: "" +} + +.link-primary { + color: #3b7ddd +} + +.link-primary:focus, .link-primary:hover { + color: #7ca8e8 +} + +.link-secondary { + color: #6c757d +} + +.link-secondary:focus, .link-secondary:hover { + color: #494f54 +} + +.link-success { + color: #28a745 +} + +.link-success:focus, .link-success:hover { + color: #48d368 +} + +.link-info { + color: #17a2b8 +} + +.link-info:focus, .link-info:hover { + color: #36cee6 +} + +.link-warning { + color: #ffc107 +} + +.link-warning:focus, .link-warning:hover { + color: #ffd454 +} + +.link-danger { + color: #dc3545 +} + +.link-danger:focus, .link-danger:hover { + color: #a71d2a +} + +.link-light { + color: #f8f9fa +} + +.link-light:focus, .link-light:hover { + color: #fff +} + +.link-dark { + color: #212529 +} + +.link-dark:focus, .link-dark:hover { + color: #000 +} + +.ratio { + position: relative; + width: 100% +} + +.ratio:before { + display: block; + padding-top: var(--aspect-ratio); + content: "" +} + +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.ratio-1x1 { + --aspect-ratio: 100% +} + +.ratio-4x3 { + --aspect-ratio: 75% +} + +.ratio-16x9 { + --aspect-ratio: 56.25% +} + +.ratio-21x9 { + --aspect-ratio: 42.85714% +} + +.fixed-top { + top: 0 +} + +.fixed-bottom, .fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030 +} + +.fixed-bottom { + bottom: 0 +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width: 1440px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +.visually-hidden, .visually-hidden-focusable:not(:focus) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important +} + +.stretched-link:after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: "" +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.align-baseline { + vertical-align: initial !important +} + +.align-top { + vertical-align: top !important +} + +.align-middle { + vertical-align: middle !important +} + +.align-bottom { + vertical-align: bottom !important +} + +.align-text-bottom { + vertical-align: text-bottom !important +} + +.align-text-top { + vertical-align: text-top !important +} + +.float-left { + float: left !important +} + +.float-right { + float: right !important +} + +.float-none { + float: none !important +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.d-inline { + display: inline !important +} + +.d-inline-block { + display: inline-block !important +} + +.d-block { + display: block !important +} + +.d-table { + display: table !important +} + +.d-table-row { + display: table-row !important +} + +.d-table-cell { + display: table-cell !important +} + +.d-flex { + display: flex !important +} + +.d-inline-flex { + display: inline-flex !important +} + +.d-none { + display: none !important +} + +.shadow { + box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05) !important +} + +.shadow-sm { + box-shadow: 0 .05rem .2rem rgba(0, 0, 0, .05) !important +} + +.shadow-lg { + box-shadow: 0 .2rem .2rem rgba(0, 0, 0, .05) !important +} + +.shadow-none { + box-shadow: none !important +} + +.position-static { + position: static !important +} + +.position-relative { + position: relative !important +} + +.position-absolute { + position: absolute !important +} + +.position-fixed { + position: fixed !important +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important +} + +.top-0 { + top: 0 !important +} + +.top-50 { + top: 50% !important +} + +.top-100 { + top: 100% !important +} + +.bottom-0 { + bottom: 0 !important +} + +.bottom-50 { + bottom: 50% !important +} + +.bottom-100 { + bottom: 100% !important +} + +.left-0 { + left: 0 !important +} + +.left-50 { + left: 50% !important +} + +.left-100 { + left: 100% !important +} + +.right-0 { + right: 0 !important +} + +.right-50 { + right: 50% !important +} + +.right-100 { + right: 100% !important +} + +.translate-middle { + transform: translateX(-50%) translateY(-50%) !important +} + +.border { + border: 1px solid #dee2e6 !important +} + +.border-0 { + border: 0 !important +} + +.border-top { + border-top: 1px solid #dee2e6 !important +} + +.border-top-0 { + border-top: 0 !important +} + +.border-right { + border-right: 1px solid #dee2e6 !important +} + +.border-right-0 { + border-right: 0 !important +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important +} + +.border-bottom-0 { + border-bottom: 0 !important +} + +.border-left { + border-left: 1px solid #dee2e6 !important +} + +.border-left-0 { + border-left: 0 !important +} + +.border-primary { + border-color: #3b7ddd !important +} + +.border-secondary { + border-color: #6c757d !important +} + +.border-success { + border-color: #28a745 !important +} + +.border-info { + border-color: #17a2b8 !important +} + +.border-warning { + border-color: #ffc107 !important +} + +.border-danger { + border-color: #dc3545 !important +} + +.border-light { + border-color: #f8f9fa !important +} + +.border-dark { + border-color: #212529 !important +} + +.border-white { + border-color: #fff !important +} + +.border-0 { + border-width: 0 !important +} + +.border-1 { + border-width: 1px !important +} + +.border-2 { + border-width: 2px !important +} + +.border-3 { + border-width: 3px !important +} + +.border-4 { + border-width: 4px !important +} + +.border-5 { + border-width: 5px !important +} + +.w-25 { + width: 25% !important +} + +.w-50 { + width: 50% !important +} + +.w-75 { + width: 75% !important +} + +.w-100 { + width: 100% !important +} + +.w-auto { + width: auto !important +} + +.mw-100 { + max-width: 100% !important +} + +.vw-100 { + width: 100vw !important +} + +.min-vw-100 { + min-width: 100vw !important +} + +.h-25 { + height: 25% !important +} + +.h-50 { + height: 50% !important +} + +.h-75 { + height: 75% !important +} + +.h-100 { + height: 100% !important +} + +.h-auto { + height: auto !important +} + +.mh-100 { + max-height: 100% !important +} + +.vh-100 { + height: 100vh !important +} + +.min-vh-100 { + min-height: 100vh !important +} + +.flex-fill { + flex: 1 1 auto !important +} + +.flex-row { + flex-direction: row !important +} + +.flex-column { + flex-direction: column !important +} + +.flex-row-reverse { + flex-direction: row-reverse !important +} + +.flex-column-reverse { + flex-direction: column-reverse !important +} + +.flex-grow-0 { + flex-grow: 0 !important +} + +.flex-grow-1 { + flex-grow: 1 !important +} + +.flex-shrink-0 { + flex-shrink: 0 !important +} + +.flex-shrink-1 { + flex-shrink: 1 !important +} + +.flex-wrap { + flex-wrap: wrap !important +} + +.flex-nowrap { + flex-wrap: nowrap !important +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important +} + +.justify-content-start { + justify-content: flex-start !important +} + +.justify-content-end { + justify-content: flex-end !important +} + +.justify-content-center { + justify-content: center !important +} + +.justify-content-between { + justify-content: space-between !important +} + +.justify-content-around { + justify-content: space-around !important +} + +.justify-content-evenly { + justify-content: space-evenly !important +} + +.align-items-start { + align-items: flex-start !important +} + +.align-items-end { + align-items: flex-end !important +} + +.align-items-center { + align-items: center !important +} + +.align-items-baseline { + align-items: baseline !important +} + +.align-items-stretch { + align-items: stretch !important +} + +.align-content-start { + align-content: flex-start !important +} + +.align-content-end { + align-content: flex-end !important +} + +.align-content-center { + align-content: center !important +} + +.align-content-between { + align-content: space-between !important +} + +.align-content-around { + align-content: space-around !important +} + +.align-content-stretch { + align-content: stretch !important +} + +.align-self-auto { + align-self: auto !important +} + +.align-self-start { + align-self: flex-start !important +} + +.align-self-end { + align-self: flex-end !important +} + +.align-self-center { + align-self: center !important +} + +.align-self-baseline { + align-self: baseline !important +} + +.align-self-stretch { + align-self: stretch !important +} + +.order-first { + order: -1 !important +} + +.order-0 { + order: 0 !important +} + +.order-1 { + order: 1 !important +} + +.order-2 { + order: 2 !important +} + +.order-3 { + order: 3 !important +} + +.order-4 { + order: 4 !important +} + +.order-5 { + order: 5 !important +} + +.order-last { + order: 6 !important +} + +.m-0 { + margin: 0 !important +} + +.m-1 { + margin: .25rem !important +} + +.m-2 { + margin: .5rem !important +} + +.m-3 { + margin: 1rem !important +} + +.m-4 { + margin: 1.5rem !important +} + +.m-5 { + margin: 3rem !important +} + +.m-6 { + margin: 4.5rem !important +} + +.m-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important +} + +.mx-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important +} + +.my-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important +} + +.mt-7 { + margin-top: 6rem !important +} + +.mt-auto { + margin-top: auto !important +} + +.mr-0 { + margin-right: 0 !important +} + +.mr-1 { + margin-right: .25rem !important +} + +.mr-2 { + margin-right: .5rem !important +} + +.mr-3 { + margin-right: 1rem !important +} + +.mr-4 { + margin-right: 1.5rem !important +} + +.mr-5 { + margin-right: 3rem !important +} + +.mr-6 { + margin-right: 4.5rem !important +} + +.mr-7 { + margin-right: 6rem !important +} + +.mr-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-6 { + margin-bottom: 4.5rem !important +} + +.mb-7 { + margin-bottom: 6rem !important +} + +.mb-auto { + margin-bottom: auto !important +} + +.ml-0 { + margin-left: 0 !important +} + +.ml-1 { + margin-left: .25rem !important +} + +.ml-2 { + margin-left: .5rem !important +} + +.ml-3 { + margin-left: 1rem !important +} + +.ml-4 { + margin-left: 1.5rem !important +} + +.ml-5 { + margin-left: 3rem !important +} + +.ml-6 { + margin-left: 4.5rem !important +} + +.ml-7 { + margin-left: 6rem !important +} + +.ml-auto { + margin-left: auto !important +} + +.m-n1 { + margin: -.25rem !important +} + +.m-n2 { + margin: -.5rem !important +} + +.m-n3 { + margin: -1rem !important +} + +.m-n4 { + margin: -1.5rem !important +} + +.m-n5 { + margin: -3rem !important +} + +.m-n6 { + margin: -4.5rem !important +} + +.m-n7 { + margin: -6rem !important +} + +.mx-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important +} + +.mx-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important +} + +.mx-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important +} + +.mx-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important +} + +.mx-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important +} + +.mx-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important +} + +.mx-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important +} + +.my-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important +} + +.my-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important +} + +.my-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important +} + +.my-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important +} + +.my-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important +} + +.my-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important +} + +.my-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important +} + +.mt-n1 { + margin-top: -.25rem !important +} + +.mt-n2 { + margin-top: -.5rem !important +} + +.mt-n3 { + margin-top: -1rem !important +} + +.mt-n4 { + margin-top: -1.5rem !important +} + +.mt-n5 { + margin-top: -3rem !important +} + +.mt-n6 { + margin-top: -4.5rem !important +} + +.mt-n7 { + margin-top: -6rem !important +} + +.mr-n1 { + margin-right: -.25rem !important +} + +.mr-n2 { + margin-right: -.5rem !important +} + +.mr-n3 { + margin-right: -1rem !important +} + +.mr-n4 { + margin-right: -1.5rem !important +} + +.mr-n5 { + margin-right: -3rem !important +} + +.mr-n6 { + margin-right: -4.5rem !important +} + +.mr-n7 { + margin-right: -6rem !important +} + +.mb-n1 { + margin-bottom: -.25rem !important +} + +.mb-n2 { + margin-bottom: -.5rem !important +} + +.mb-n3 { + margin-bottom: -1rem !important +} + +.mb-n4 { + margin-bottom: -1.5rem !important +} + +.mb-n5 { + margin-bottom: -3rem !important +} + +.mb-n6 { + margin-bottom: -4.5rem !important +} + +.mb-n7 { + margin-bottom: -6rem !important +} + +.ml-n1 { + margin-left: -.25rem !important +} + +.ml-n2 { + margin-left: -.5rem !important +} + +.ml-n3 { + margin-left: -1rem !important +} + +.ml-n4 { + margin-left: -1.5rem !important +} + +.ml-n5 { + margin-left: -3rem !important +} + +.ml-n6 { + margin-left: -4.5rem !important +} + +.ml-n7 { + margin-left: -6rem !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 +} + +.p-6 { + padding: 4.5rem !important +} + +.p-7 { + padding: 6rem !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 +} + +.px-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important +} + +.px-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 +} + +.py-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important +} + +.py-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 +} + +.pt-6 { + padding-top: 4.5rem !important +} + +.pt-7 { + padding-top: 6rem !important +} + +.pr-0 { + padding-right: 0 !important +} + +.pr-1 { + padding-right: .25rem !important +} + +.pr-2 { + padding-right: .5rem !important +} + +.pr-3 { + padding-right: 1rem !important +} + +.pr-4 { + padding-right: 1.5rem !important +} + +.pr-5 { + padding-right: 3rem !important +} + +.pr-6 { + padding-right: 4.5rem !important +} + +.pr-7 { + padding-right: 6rem !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 +} + +.pb-6 { + padding-bottom: 4.5rem !important +} + +.pb-7 { + padding-bottom: 6rem !important +} + +.pl-0 { + padding-left: 0 !important +} + +.pl-1 { + padding-left: .25rem !important +} + +.pl-2 { + padding-left: .5rem !important +} + +.pl-3 { + padding-left: 1rem !important +} + +.pl-4 { + padding-left: 1.5rem !important +} + +.pl-5 { + padding-left: 3rem !important +} + +.pl-6 { + padding-left: 4.5rem !important +} + +.pl-7 { + padding-left: 6rem !important +} + +.font-weight-light { + font-weight: 300 !important +} + +.font-weight-lighter { + font-weight: lighter !important +} + +.font-weight-normal { + font-weight: 400 !important +} + +.font-weight-bold { + font-weight: 600 !important +} + +.font-weight-bolder { + font-weight: bolder !important +} + +.text-lowercase { + text-transform: lowercase !important +} + +.text-uppercase { + text-transform: uppercase !important +} + +.text-capitalize { + text-transform: capitalize !important +} + +.text-left { + text-align: left !important +} + +.text-right { + text-align: right !important +} + +.text-center { + text-align: center !important +} + +.text-primary { + color: #3b7ddd !important +} + +.text-secondary { + color: #6c757d !important +} + +.text-success { + color: #28a745 !important +} + +.text-info { + color: #17a2b8 !important +} + +.text-warning { + color: #ffc107 !important +} + +.text-danger { + color: #dc3545 !important +} + +.text-light { + color: #f8f9fa !important +} + +.text-dark { + color: #212529 !important +} + +.text-white { + color: #fff !important +} + +.text-body { + color: #495057 !important +} + +.text-muted { + color: #6c757d !important +} + +.text-black-50 { + color: rgba(0, 0, 0, .5) !important +} + +.text-white-50 { + color: hsla(0, 0%, 100%, .5) !important +} + +.text-reset { + color: inherit !important +} + +.lh-1 { + line-height: 1 !important +} + +.lh-base, .lh-lg, .lh-sm { + line-height: 1.5 !important +} + +.bg-primary { + background-color: #3b7ddd !important +} + +.bg-secondary { + background-color: #6c757d !important +} + +.bg-success { + background-color: #28a745 !important +} + +.bg-info { + background-color: #17a2b8 !important +} + +.bg-warning { + background-color: #ffc107 !important +} + +.bg-danger { + background-color: #dc3545 !important +} + +.bg-light { + background-color: #f8f9fa !important +} + +.bg-dark { + background-color: #212529 !important +} + +.bg-body { + background-color: #f7f7fc !important +} + +.bg-white { + background-color: #fff !important +} + +.bg-transparent { + background-color: transparent !important +} + +.bg-gradient { + background-image: var(--bs-gradient) !important +} + +.text-wrap { + white-space: normal !important +} + +.text-nowrap { + white-space: nowrap !important +} + +.text-decoration-none { + text-decoration: none !important +} + +.text-decoration-underline { + text-decoration: underline !important +} + +.text-decoration-line-through { + text-decoration: line-through !important +} + +.font-italic { + font-style: italic !important +} + +.font-normal { + font-style: normal !important +} + +.text-break { + word-wrap: break-word !important; + word-break: break-word !important +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important +} + +.user-select-all { + -webkit-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important +} + +.user-select-auto { + -webkit-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important +} + +.user-select-none { + -webkit-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important +} + +.pe-none { + pointer-events: none !important +} + +.pe-auto { + pointer-events: auto !important +} + +.rounded { + border-radius: .2rem !important +} + +.rounded-circle { + border-radius: 50% !important +} + +.rounded-pill { + border-radius: 50rem !important +} + +.rounded-0 { + border-radius: 0 !important +} + +.rounded-top { + border-top-left-radius: .2rem !important +} + +.rounded-right, .rounded-top { + border-top-right-radius: .2rem !important +} + +.rounded-bottom, .rounded-right { + border-bottom-right-radius: .2rem !important +} + +.rounded-bottom, .rounded-left { + border-bottom-left-radius: .2rem !important +} + +.rounded-left { + border-top-left-radius: .2rem !important +} + +.visible { + visibility: visible !important +} + +.invisible { + visibility: hidden !important +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important + } + + .float-sm-right { + float: right !important + } + + .float-sm-none { + float: none !important + } + + .d-sm-inline { + display: inline !important + } + + .d-sm-inline-block { + display: inline-block !important + } + + .d-sm-block { + display: block !important + } + + .d-sm-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-6 { + margin: 4.5rem !important + } + + .m-sm-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important + } + + .mx-sm-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important + } + + .my-sm-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important + } + + .mt-sm-7 { + margin-top: 6rem !important + } + + .mt-sm-auto { + margin-top: auto !important + } + + .mr-sm-0 { + margin-right: 0 !important + } + + .mr-sm-1 { + margin-right: .25rem !important + } + + .mr-sm-2 { + margin-right: .5rem !important + } + + .mr-sm-3 { + margin-right: 1rem !important + } + + .mr-sm-4 { + margin-right: 1.5rem !important + } + + .mr-sm-5 { + margin-right: 3rem !important + } + + .mr-sm-6 { + margin-right: 4.5rem !important + } + + .mr-sm-7 { + margin-right: 6rem !important + } + + .mr-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-6 { + margin-bottom: 4.5rem !important + } + + .mb-sm-7 { + margin-bottom: 6rem !important + } + + .mb-sm-auto { + margin-bottom: auto !important + } + + .ml-sm-0 { + margin-left: 0 !important + } + + .ml-sm-1 { + margin-left: .25rem !important + } + + .ml-sm-2 { + margin-left: .5rem !important + } + + .ml-sm-3 { + margin-left: 1rem !important + } + + .ml-sm-4 { + margin-left: 1.5rem !important + } + + .ml-sm-5 { + margin-left: 3rem !important + } + + .ml-sm-6 { + margin-left: 4.5rem !important + } + + .ml-sm-7 { + margin-left: 6rem !important + } + + .ml-sm-auto { + margin-left: auto !important + } + + .m-sm-n1 { + margin: -.25rem !important + } + + .m-sm-n2 { + margin: -.5rem !important + } + + .m-sm-n3 { + margin: -1rem !important + } + + .m-sm-n4 { + margin: -1.5rem !important + } + + .m-sm-n5 { + margin: -3rem !important + } + + .m-sm-n6 { + margin: -4.5rem !important + } + + .m-sm-n7 { + margin: -6rem !important + } + + .mx-sm-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important + } + + .mx-sm-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important + } + + .mx-sm-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important + } + + .mx-sm-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important + } + + .mx-sm-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important + } + + .mx-sm-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important + } + + .mx-sm-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important + } + + .my-sm-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important + } + + .my-sm-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important + } + + .my-sm-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important + } + + .my-sm-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important + } + + .my-sm-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important + } + + .my-sm-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important + } + + .my-sm-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important + } + + .mt-sm-n1 { + margin-top: -.25rem !important + } + + .mt-sm-n2 { + margin-top: -.5rem !important + } + + .mt-sm-n3 { + margin-top: -1rem !important + } + + .mt-sm-n4 { + margin-top: -1.5rem !important + } + + .mt-sm-n5 { + margin-top: -3rem !important + } + + .mt-sm-n6 { + margin-top: -4.5rem !important + } + + .mt-sm-n7 { + margin-top: -6rem !important + } + + .mr-sm-n1 { + margin-right: -.25rem !important + } + + .mr-sm-n2 { + margin-right: -.5rem !important + } + + .mr-sm-n3 { + margin-right: -1rem !important + } + + .mr-sm-n4 { + margin-right: -1.5rem !important + } + + .mr-sm-n5 { + margin-right: -3rem !important + } + + .mr-sm-n6 { + margin-right: -4.5rem !important + } + + .mr-sm-n7 { + margin-right: -6rem !important + } + + .mb-sm-n1 { + margin-bottom: -.25rem !important + } + + .mb-sm-n2 { + margin-bottom: -.5rem !important + } + + .mb-sm-n3 { + margin-bottom: -1rem !important + } + + .mb-sm-n4 { + margin-bottom: -1.5rem !important + } + + .mb-sm-n5 { + margin-bottom: -3rem !important + } + + .mb-sm-n6 { + margin-bottom: -4.5rem !important + } + + .mb-sm-n7 { + margin-bottom: -6rem !important + } + + .ml-sm-n1 { + margin-left: -.25rem !important + } + + .ml-sm-n2 { + margin-left: -.5rem !important + } + + .ml-sm-n3 { + margin-left: -1rem !important + } + + .ml-sm-n4 { + margin-left: -1.5rem !important + } + + .ml-sm-n5 { + margin-left: -3rem !important + } + + .ml-sm-n6 { + margin-left: -4.5rem !important + } + + .ml-sm-n7 { + margin-left: -6rem !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 + } + + .p-sm-6 { + padding: 4.5rem !important + } + + .p-sm-7 { + padding: 6rem !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 + } + + .px-sm-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important + } + + .px-sm-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 + } + + .py-sm-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important + } + + .py-sm-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 + } + + .pt-sm-6 { + padding-top: 4.5rem !important + } + + .pt-sm-7 { + padding-top: 6rem !important + } + + .pr-sm-0 { + padding-right: 0 !important + } + + .pr-sm-1 { + padding-right: .25rem !important + } + + .pr-sm-2 { + padding-right: .5rem !important + } + + .pr-sm-3 { + padding-right: 1rem !important + } + + .pr-sm-4 { + padding-right: 1.5rem !important + } + + .pr-sm-5 { + padding-right: 3rem !important + } + + .pr-sm-6 { + padding-right: 4.5rem !important + } + + .pr-sm-7 { + padding-right: 6rem !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 + } + + .pb-sm-6 { + padding-bottom: 4.5rem !important + } + + .pb-sm-7 { + padding-bottom: 6rem !important + } + + .pl-sm-0 { + padding-left: 0 !important + } + + .pl-sm-1 { + padding-left: .25rem !important + } + + .pl-sm-2 { + padding-left: .5rem !important + } + + .pl-sm-3 { + padding-left: 1rem !important + } + + .pl-sm-4 { + padding-left: 1.5rem !important + } + + .pl-sm-5 { + padding-left: 3rem !important + } + + .pl-sm-6 { + padding-left: 4.5rem !important + } + + .pl-sm-7 { + padding-left: 6rem !important + } + + .text-sm-left { + text-align: left !important + } + + .text-sm-right { + text-align: right !important + } + + .text-sm-center { + text-align: center !important + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important + } + + .float-md-right { + float: right !important + } + + .float-md-none { + float: none !important + } + + .d-md-inline { + display: inline !important + } + + .d-md-inline-block { + display: inline-block !important + } + + .d-md-block { + display: block !important + } + + .d-md-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-6 { + margin: 4.5rem !important + } + + .m-md-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important + } + + .mx-md-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important + } + + .my-md-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important + } + + .mt-md-7 { + margin-top: 6rem !important + } + + .mt-md-auto { + margin-top: auto !important + } + + .mr-md-0 { + margin-right: 0 !important + } + + .mr-md-1 { + margin-right: .25rem !important + } + + .mr-md-2 { + margin-right: .5rem !important + } + + .mr-md-3 { + margin-right: 1rem !important + } + + .mr-md-4 { + margin-right: 1.5rem !important + } + + .mr-md-5 { + margin-right: 3rem !important + } + + .mr-md-6 { + margin-right: 4.5rem !important + } + + .mr-md-7 { + margin-right: 6rem !important + } + + .mr-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-6 { + margin-bottom: 4.5rem !important + } + + .mb-md-7 { + margin-bottom: 6rem !important + } + + .mb-md-auto { + margin-bottom: auto !important + } + + .ml-md-0 { + margin-left: 0 !important + } + + .ml-md-1 { + margin-left: .25rem !important + } + + .ml-md-2 { + margin-left: .5rem !important + } + + .ml-md-3 { + margin-left: 1rem !important + } + + .ml-md-4 { + margin-left: 1.5rem !important + } + + .ml-md-5 { + margin-left: 3rem !important + } + + .ml-md-6 { + margin-left: 4.5rem !important + } + + .ml-md-7 { + margin-left: 6rem !important + } + + .ml-md-auto { + margin-left: auto !important + } + + .m-md-n1 { + margin: -.25rem !important + } + + .m-md-n2 { + margin: -.5rem !important + } + + .m-md-n3 { + margin: -1rem !important + } + + .m-md-n4 { + margin: -1.5rem !important + } + + .m-md-n5 { + margin: -3rem !important + } + + .m-md-n6 { + margin: -4.5rem !important + } + + .m-md-n7 { + margin: -6rem !important + } + + .mx-md-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important + } + + .mx-md-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important + } + + .mx-md-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important + } + + .mx-md-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important + } + + .mx-md-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important + } + + .mx-md-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important + } + + .mx-md-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important + } + + .my-md-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important + } + + .my-md-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important + } + + .my-md-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important + } + + .my-md-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important + } + + .my-md-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important + } + + .my-md-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important + } + + .my-md-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important + } + + .mt-md-n1 { + margin-top: -.25rem !important + } + + .mt-md-n2 { + margin-top: -.5rem !important + } + + .mt-md-n3 { + margin-top: -1rem !important + } + + .mt-md-n4 { + margin-top: -1.5rem !important + } + + .mt-md-n5 { + margin-top: -3rem !important + } + + .mt-md-n6 { + margin-top: -4.5rem !important + } + + .mt-md-n7 { + margin-top: -6rem !important + } + + .mr-md-n1 { + margin-right: -.25rem !important + } + + .mr-md-n2 { + margin-right: -.5rem !important + } + + .mr-md-n3 { + margin-right: -1rem !important + } + + .mr-md-n4 { + margin-right: -1.5rem !important + } + + .mr-md-n5 { + margin-right: -3rem !important + } + + .mr-md-n6 { + margin-right: -4.5rem !important + } + + .mr-md-n7 { + margin-right: -6rem !important + } + + .mb-md-n1 { + margin-bottom: -.25rem !important + } + + .mb-md-n2 { + margin-bottom: -.5rem !important + } + + .mb-md-n3 { + margin-bottom: -1rem !important + } + + .mb-md-n4 { + margin-bottom: -1.5rem !important + } + + .mb-md-n5 { + margin-bottom: -3rem !important + } + + .mb-md-n6 { + margin-bottom: -4.5rem !important + } + + .mb-md-n7 { + margin-bottom: -6rem !important + } + + .ml-md-n1 { + margin-left: -.25rem !important + } + + .ml-md-n2 { + margin-left: -.5rem !important + } + + .ml-md-n3 { + margin-left: -1rem !important + } + + .ml-md-n4 { + margin-left: -1.5rem !important + } + + .ml-md-n5 { + margin-left: -3rem !important + } + + .ml-md-n6 { + margin-left: -4.5rem !important + } + + .ml-md-n7 { + margin-left: -6rem !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 + } + + .p-md-6 { + padding: 4.5rem !important + } + + .p-md-7 { + padding: 6rem !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 + } + + .px-md-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important + } + + .px-md-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 + } + + .py-md-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important + } + + .py-md-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 + } + + .pt-md-6 { + padding-top: 4.5rem !important + } + + .pt-md-7 { + padding-top: 6rem !important + } + + .pr-md-0 { + padding-right: 0 !important + } + + .pr-md-1 { + padding-right: .25rem !important + } + + .pr-md-2 { + padding-right: .5rem !important + } + + .pr-md-3 { + padding-right: 1rem !important + } + + .pr-md-4 { + padding-right: 1.5rem !important + } + + .pr-md-5 { + padding-right: 3rem !important + } + + .pr-md-6 { + padding-right: 4.5rem !important + } + + .pr-md-7 { + padding-right: 6rem !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 + } + + .pb-md-6 { + padding-bottom: 4.5rem !important + } + + .pb-md-7 { + padding-bottom: 6rem !important + } + + .pl-md-0 { + padding-left: 0 !important + } + + .pl-md-1 { + padding-left: .25rem !important + } + + .pl-md-2 { + padding-left: .5rem !important + } + + .pl-md-3 { + padding-left: 1rem !important + } + + .pl-md-4 { + padding-left: 1.5rem !important + } + + .pl-md-5 { + padding-left: 3rem !important + } + + .pl-md-6 { + padding-left: 4.5rem !important + } + + .pl-md-7 { + padding-left: 6rem !important + } + + .text-md-left { + text-align: left !important + } + + .text-md-right { + text-align: right !important + } + + .text-md-center { + text-align: center !important + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important + } + + .float-lg-right { + float: right !important + } + + .float-lg-none { + float: none !important + } + + .d-lg-inline { + display: inline !important + } + + .d-lg-inline-block { + display: inline-block !important + } + + .d-lg-block { + display: block !important + } + + .d-lg-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-6 { + margin: 4.5rem !important + } + + .m-lg-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important + } + + .mx-lg-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important + } + + .my-lg-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important + } + + .mt-lg-7 { + margin-top: 6rem !important + } + + .mt-lg-auto { + margin-top: auto !important + } + + .mr-lg-0 { + margin-right: 0 !important + } + + .mr-lg-1 { + margin-right: .25rem !important + } + + .mr-lg-2 { + margin-right: .5rem !important + } + + .mr-lg-3 { + margin-right: 1rem !important + } + + .mr-lg-4 { + margin-right: 1.5rem !important + } + + .mr-lg-5 { + margin-right: 3rem !important + } + + .mr-lg-6 { + margin-right: 4.5rem !important + } + + .mr-lg-7 { + margin-right: 6rem !important + } + + .mr-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-6 { + margin-bottom: 4.5rem !important + } + + .mb-lg-7 { + margin-bottom: 6rem !important + } + + .mb-lg-auto { + margin-bottom: auto !important + } + + .ml-lg-0 { + margin-left: 0 !important + } + + .ml-lg-1 { + margin-left: .25rem !important + } + + .ml-lg-2 { + margin-left: .5rem !important + } + + .ml-lg-3 { + margin-left: 1rem !important + } + + .ml-lg-4 { + margin-left: 1.5rem !important + } + + .ml-lg-5 { + margin-left: 3rem !important + } + + .ml-lg-6 { + margin-left: 4.5rem !important + } + + .ml-lg-7 { + margin-left: 6rem !important + } + + .ml-lg-auto { + margin-left: auto !important + } + + .m-lg-n1 { + margin: -.25rem !important + } + + .m-lg-n2 { + margin: -.5rem !important + } + + .m-lg-n3 { + margin: -1rem !important + } + + .m-lg-n4 { + margin: -1.5rem !important + } + + .m-lg-n5 { + margin: -3rem !important + } + + .m-lg-n6 { + margin: -4.5rem !important + } + + .m-lg-n7 { + margin: -6rem !important + } + + .mx-lg-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important + } + + .mx-lg-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important + } + + .mx-lg-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important + } + + .mx-lg-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important + } + + .mx-lg-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important + } + + .mx-lg-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important + } + + .mx-lg-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important + } + + .my-lg-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important + } + + .my-lg-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important + } + + .my-lg-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important + } + + .my-lg-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important + } + + .my-lg-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important + } + + .my-lg-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important + } + + .my-lg-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important + } + + .mt-lg-n1 { + margin-top: -.25rem !important + } + + .mt-lg-n2 { + margin-top: -.5rem !important + } + + .mt-lg-n3 { + margin-top: -1rem !important + } + + .mt-lg-n4 { + margin-top: -1.5rem !important + } + + .mt-lg-n5 { + margin-top: -3rem !important + } + + .mt-lg-n6 { + margin-top: -4.5rem !important + } + + .mt-lg-n7 { + margin-top: -6rem !important + } + + .mr-lg-n1 { + margin-right: -.25rem !important + } + + .mr-lg-n2 { + margin-right: -.5rem !important + } + + .mr-lg-n3 { + margin-right: -1rem !important + } + + .mr-lg-n4 { + margin-right: -1.5rem !important + } + + .mr-lg-n5 { + margin-right: -3rem !important + } + + .mr-lg-n6 { + margin-right: -4.5rem !important + } + + .mr-lg-n7 { + margin-right: -6rem !important + } + + .mb-lg-n1 { + margin-bottom: -.25rem !important + } + + .mb-lg-n2 { + margin-bottom: -.5rem !important + } + + .mb-lg-n3 { + margin-bottom: -1rem !important + } + + .mb-lg-n4 { + margin-bottom: -1.5rem !important + } + + .mb-lg-n5 { + margin-bottom: -3rem !important + } + + .mb-lg-n6 { + margin-bottom: -4.5rem !important + } + + .mb-lg-n7 { + margin-bottom: -6rem !important + } + + .ml-lg-n1 { + margin-left: -.25rem !important + } + + .ml-lg-n2 { + margin-left: -.5rem !important + } + + .ml-lg-n3 { + margin-left: -1rem !important + } + + .ml-lg-n4 { + margin-left: -1.5rem !important + } + + .ml-lg-n5 { + margin-left: -3rem !important + } + + .ml-lg-n6 { + margin-left: -4.5rem !important + } + + .ml-lg-n7 { + margin-left: -6rem !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 + } + + .p-lg-6 { + padding: 4.5rem !important + } + + .p-lg-7 { + padding: 6rem !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 + } + + .px-lg-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important + } + + .px-lg-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 + } + + .py-lg-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important + } + + .py-lg-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 + } + + .pt-lg-6 { + padding-top: 4.5rem !important + } + + .pt-lg-7 { + padding-top: 6rem !important + } + + .pr-lg-0 { + padding-right: 0 !important + } + + .pr-lg-1 { + padding-right: .25rem !important + } + + .pr-lg-2 { + padding-right: .5rem !important + } + + .pr-lg-3 { + padding-right: 1rem !important + } + + .pr-lg-4 { + padding-right: 1.5rem !important + } + + .pr-lg-5 { + padding-right: 3rem !important + } + + .pr-lg-6 { + padding-right: 4.5rem !important + } + + .pr-lg-7 { + padding-right: 6rem !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 + } + + .pb-lg-6 { + padding-bottom: 4.5rem !important + } + + .pb-lg-7 { + padding-bottom: 6rem !important + } + + .pl-lg-0 { + padding-left: 0 !important + } + + .pl-lg-1 { + padding-left: .25rem !important + } + + .pl-lg-2 { + padding-left: .5rem !important + } + + .pl-lg-3 { + padding-left: 1rem !important + } + + .pl-lg-4 { + padding-left: 1.5rem !important + } + + .pl-lg-5 { + padding-left: 3rem !important + } + + .pl-lg-6 { + padding-left: 4.5rem !important + } + + .pl-lg-7 { + padding-left: 6rem !important + } + + .text-lg-left { + text-align: left !important + } + + .text-lg-right { + text-align: right !important + } + + .text-lg-center { + text-align: center !important + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important + } + + .float-xl-right { + float: right !important + } + + .float-xl-none { + float: none !important + } + + .d-xl-inline { + display: inline !important + } + + .d-xl-inline-block { + display: inline-block !important + } + + .d-xl-block { + display: block !important + } + + .d-xl-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-6 { + margin: 4.5rem !important + } + + .m-xl-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important + } + + .mx-xl-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important + } + + .my-xl-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important + } + + .mt-xl-7 { + margin-top: 6rem !important + } + + .mt-xl-auto { + margin-top: auto !important + } + + .mr-xl-0 { + margin-right: 0 !important + } + + .mr-xl-1 { + margin-right: .25rem !important + } + + .mr-xl-2 { + margin-right: .5rem !important + } + + .mr-xl-3 { + margin-right: 1rem !important + } + + .mr-xl-4 { + margin-right: 1.5rem !important + } + + .mr-xl-5 { + margin-right: 3rem !important + } + + .mr-xl-6 { + margin-right: 4.5rem !important + } + + .mr-xl-7 { + margin-right: 6rem !important + } + + .mr-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-6 { + margin-bottom: 4.5rem !important + } + + .mb-xl-7 { + margin-bottom: 6rem !important + } + + .mb-xl-auto { + margin-bottom: auto !important + } + + .ml-xl-0 { + margin-left: 0 !important + } + + .ml-xl-1 { + margin-left: .25rem !important + } + + .ml-xl-2 { + margin-left: .5rem !important + } + + .ml-xl-3 { + margin-left: 1rem !important + } + + .ml-xl-4 { + margin-left: 1.5rem !important + } + + .ml-xl-5 { + margin-left: 3rem !important + } + + .ml-xl-6 { + margin-left: 4.5rem !important + } + + .ml-xl-7 { + margin-left: 6rem !important + } + + .ml-xl-auto { + margin-left: auto !important + } + + .m-xl-n1 { + margin: -.25rem !important + } + + .m-xl-n2 { + margin: -.5rem !important + } + + .m-xl-n3 { + margin: -1rem !important + } + + .m-xl-n4 { + margin: -1.5rem !important + } + + .m-xl-n5 { + margin: -3rem !important + } + + .m-xl-n6 { + margin: -4.5rem !important + } + + .m-xl-n7 { + margin: -6rem !important + } + + .mx-xl-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important + } + + .mx-xl-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important + } + + .mx-xl-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important + } + + .mx-xl-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important + } + + .mx-xl-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important + } + + .mx-xl-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important + } + + .mx-xl-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important + } + + .my-xl-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important + } + + .my-xl-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important + } + + .my-xl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important + } + + .my-xl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important + } + + .my-xl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important + } + + .my-xl-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important + } + + .my-xl-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important + } + + .mt-xl-n1 { + margin-top: -.25rem !important + } + + .mt-xl-n2 { + margin-top: -.5rem !important + } + + .mt-xl-n3 { + margin-top: -1rem !important + } + + .mt-xl-n4 { + margin-top: -1.5rem !important + } + + .mt-xl-n5 { + margin-top: -3rem !important + } + + .mt-xl-n6 { + margin-top: -4.5rem !important + } + + .mt-xl-n7 { + margin-top: -6rem !important + } + + .mr-xl-n1 { + margin-right: -.25rem !important + } + + .mr-xl-n2 { + margin-right: -.5rem !important + } + + .mr-xl-n3 { + margin-right: -1rem !important + } + + .mr-xl-n4 { + margin-right: -1.5rem !important + } + + .mr-xl-n5 { + margin-right: -3rem !important + } + + .mr-xl-n6 { + margin-right: -4.5rem !important + } + + .mr-xl-n7 { + margin-right: -6rem !important + } + + .mb-xl-n1 { + margin-bottom: -.25rem !important + } + + .mb-xl-n2 { + margin-bottom: -.5rem !important + } + + .mb-xl-n3 { + margin-bottom: -1rem !important + } + + .mb-xl-n4 { + margin-bottom: -1.5rem !important + } + + .mb-xl-n5 { + margin-bottom: -3rem !important + } + + .mb-xl-n6 { + margin-bottom: -4.5rem !important + } + + .mb-xl-n7 { + margin-bottom: -6rem !important + } + + .ml-xl-n1 { + margin-left: -.25rem !important + } + + .ml-xl-n2 { + margin-left: -.5rem !important + } + + .ml-xl-n3 { + margin-left: -1rem !important + } + + .ml-xl-n4 { + margin-left: -1.5rem !important + } + + .ml-xl-n5 { + margin-left: -3rem !important + } + + .ml-xl-n6 { + margin-left: -4.5rem !important + } + + .ml-xl-n7 { + margin-left: -6rem !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 + } + + .p-xl-6 { + padding: 4.5rem !important + } + + .p-xl-7 { + padding: 6rem !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 + } + + .px-xl-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important + } + + .px-xl-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 + } + + .py-xl-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important + } + + .py-xl-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 + } + + .pt-xl-6 { + padding-top: 4.5rem !important + } + + .pt-xl-7 { + padding-top: 6rem !important + } + + .pr-xl-0 { + padding-right: 0 !important + } + + .pr-xl-1 { + padding-right: .25rem !important + } + + .pr-xl-2 { + padding-right: .5rem !important + } + + .pr-xl-3 { + padding-right: 1rem !important + } + + .pr-xl-4 { + padding-right: 1.5rem !important + } + + .pr-xl-5 { + padding-right: 3rem !important + } + + .pr-xl-6 { + padding-right: 4.5rem !important + } + + .pr-xl-7 { + padding-right: 6rem !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 + } + + .pb-xl-6 { + padding-bottom: 4.5rem !important + } + + .pb-xl-7 { + padding-bottom: 6rem !important + } + + .pl-xl-0 { + padding-left: 0 !important + } + + .pl-xl-1 { + padding-left: .25rem !important + } + + .pl-xl-2 { + padding-left: .5rem !important + } + + .pl-xl-3 { + padding-left: 1rem !important + } + + .pl-xl-4 { + padding-left: 1.5rem !important + } + + .pl-xl-5 { + padding-left: 3rem !important + } + + .pl-xl-6 { + padding-left: 4.5rem !important + } + + .pl-xl-7 { + padding-left: 6rem !important + } + + .text-xl-left { + text-align: left !important + } + + .text-xl-right { + text-align: right !important + } + + .text-xl-center { + text-align: center !important + } +} + +@media (min-width: 1440px) { + .float-xxl-left { + float: left !important + } + + .float-xxl-right { + float: right !important + } + + .float-xxl-none { + float: none !important + } + + .d-xxl-inline { + display: inline !important + } + + .d-xxl-inline-block { + display: inline-block !important + } + + .d-xxl-block { + display: block !important + } + + .d-xxl-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-6 { + margin: 4.5rem !important + } + + .m-xxl-7 { + margin: 6rem !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-6 { + margin-right: 4.5rem !important; + margin-left: 4.5rem !important + } + + .mx-xxl-7 { + margin-right: 6rem !important; + margin-left: 6rem !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-6 { + margin-top: 4.5rem !important; + margin-bottom: 4.5rem !important + } + + .my-xxl-7 { + margin-top: 6rem !important; + margin-bottom: 6rem !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-6 { + margin-top: 4.5rem !important + } + + .mt-xxl-7 { + margin-top: 6rem !important + } + + .mt-xxl-auto { + margin-top: auto !important + } + + .mr-xxl-0 { + margin-right: 0 !important + } + + .mr-xxl-1 { + margin-right: .25rem !important + } + + .mr-xxl-2 { + margin-right: .5rem !important + } + + .mr-xxl-3 { + margin-right: 1rem !important + } + + .mr-xxl-4 { + margin-right: 1.5rem !important + } + + .mr-xxl-5 { + margin-right: 3rem !important + } + + .mr-xxl-6 { + margin-right: 4.5rem !important + } + + .mr-xxl-7 { + margin-right: 6rem !important + } + + .mr-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-6 { + margin-bottom: 4.5rem !important + } + + .mb-xxl-7 { + margin-bottom: 6rem !important + } + + .mb-xxl-auto { + margin-bottom: auto !important + } + + .ml-xxl-0 { + margin-left: 0 !important + } + + .ml-xxl-1 { + margin-left: .25rem !important + } + + .ml-xxl-2 { + margin-left: .5rem !important + } + + .ml-xxl-3 { + margin-left: 1rem !important + } + + .ml-xxl-4 { + margin-left: 1.5rem !important + } + + .ml-xxl-5 { + margin-left: 3rem !important + } + + .ml-xxl-6 { + margin-left: 4.5rem !important + } + + .ml-xxl-7 { + margin-left: 6rem !important + } + + .ml-xxl-auto { + margin-left: auto !important + } + + .m-xxl-n1 { + margin: -.25rem !important + } + + .m-xxl-n2 { + margin: -.5rem !important + } + + .m-xxl-n3 { + margin: -1rem !important + } + + .m-xxl-n4 { + margin: -1.5rem !important + } + + .m-xxl-n5 { + margin: -3rem !important + } + + .m-xxl-n6 { + margin: -4.5rem !important + } + + .m-xxl-n7 { + margin: -6rem !important + } + + .mx-xxl-n1 { + margin-right: -.25rem !important; + margin-left: -.25rem !important + } + + .mx-xxl-n2 { + margin-right: -.5rem !important; + margin-left: -.5rem !important + } + + .mx-xxl-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important + } + + .mx-xxl-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important + } + + .mx-xxl-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important + } + + .mx-xxl-n6 { + margin-right: -4.5rem !important; + margin-left: -4.5rem !important + } + + .mx-xxl-n7 { + margin-right: -6rem !important; + margin-left: -6rem !important + } + + .my-xxl-n1 { + margin-top: -.25rem !important; + margin-bottom: -.25rem !important + } + + .my-xxl-n2 { + margin-top: -.5rem !important; + margin-bottom: -.5rem !important + } + + .my-xxl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important + } + + .my-xxl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important + } + + .my-xxl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important + } + + .my-xxl-n6 { + margin-top: -4.5rem !important; + margin-bottom: -4.5rem !important + } + + .my-xxl-n7 { + margin-top: -6rem !important; + margin-bottom: -6rem !important + } + + .mt-xxl-n1 { + margin-top: -.25rem !important + } + + .mt-xxl-n2 { + margin-top: -.5rem !important + } + + .mt-xxl-n3 { + margin-top: -1rem !important + } + + .mt-xxl-n4 { + margin-top: -1.5rem !important + } + + .mt-xxl-n5 { + margin-top: -3rem !important + } + + .mt-xxl-n6 { + margin-top: -4.5rem !important + } + + .mt-xxl-n7 { + margin-top: -6rem !important + } + + .mr-xxl-n1 { + margin-right: -.25rem !important + } + + .mr-xxl-n2 { + margin-right: -.5rem !important + } + + .mr-xxl-n3 { + margin-right: -1rem !important + } + + .mr-xxl-n4 { + margin-right: -1.5rem !important + } + + .mr-xxl-n5 { + margin-right: -3rem !important + } + + .mr-xxl-n6 { + margin-right: -4.5rem !important + } + + .mr-xxl-n7 { + margin-right: -6rem !important + } + + .mb-xxl-n1 { + margin-bottom: -.25rem !important + } + + .mb-xxl-n2 { + margin-bottom: -.5rem !important + } + + .mb-xxl-n3 { + margin-bottom: -1rem !important + } + + .mb-xxl-n4 { + margin-bottom: -1.5rem !important + } + + .mb-xxl-n5 { + margin-bottom: -3rem !important + } + + .mb-xxl-n6 { + margin-bottom: -4.5rem !important + } + + .mb-xxl-n7 { + margin-bottom: -6rem !important + } + + .ml-xxl-n1 { + margin-left: -.25rem !important + } + + .ml-xxl-n2 { + margin-left: -.5rem !important + } + + .ml-xxl-n3 { + margin-left: -1rem !important + } + + .ml-xxl-n4 { + margin-left: -1.5rem !important + } + + .ml-xxl-n5 { + margin-left: -3rem !important + } + + .ml-xxl-n6 { + margin-left: -4.5rem !important + } + + .ml-xxl-n7 { + margin-left: -6rem !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 + } + + .p-xxl-6 { + padding: 4.5rem !important + } + + .p-xxl-7 { + padding: 6rem !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 + } + + .px-xxl-6 { + padding-right: 4.5rem !important; + padding-left: 4.5rem !important + } + + .px-xxl-7 { + padding-right: 6rem !important; + padding-left: 6rem !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 + } + + .py-xxl-6 { + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important + } + + .py-xxl-7 { + padding-top: 6rem !important; + padding-bottom: 6rem !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 + } + + .pt-xxl-6 { + padding-top: 4.5rem !important + } + + .pt-xxl-7 { + padding-top: 6rem !important + } + + .pr-xxl-0 { + padding-right: 0 !important + } + + .pr-xxl-1 { + padding-right: .25rem !important + } + + .pr-xxl-2 { + padding-right: .5rem !important + } + + .pr-xxl-3 { + padding-right: 1rem !important + } + + .pr-xxl-4 { + padding-right: 1.5rem !important + } + + .pr-xxl-5 { + padding-right: 3rem !important + } + + .pr-xxl-6 { + padding-right: 4.5rem !important + } + + .pr-xxl-7 { + padding-right: 6rem !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 + } + + .pb-xxl-6 { + padding-bottom: 4.5rem !important + } + + .pb-xxl-7 { + padding-bottom: 6rem !important + } + + .pl-xxl-0 { + padding-left: 0 !important + } + + .pl-xxl-1 { + padding-left: .25rem !important + } + + .pl-xxl-2 { + padding-left: .5rem !important + } + + .pl-xxl-3 { + padding-left: 1rem !important + } + + .pl-xxl-4 { + padding-left: 1.5rem !important + } + + .pl-xxl-5 { + padding-left: 3rem !important + } + + .pl-xxl-6 { + padding-left: 4.5rem !important + } + + .pl-xxl-7 { + padding-left: 6rem !important + } + + .text-xxl-left { + text-align: left !important + } + + .text-xxl-right { + text-align: right !important + } + + .text-xxl-center { + text-align: center !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-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 + } +} + +.accordion .card:not(:last-child) { + margin-bottom: 0 +} + +.accordion .card-header { + border-bottom: 0 +} + +.accordion .card-body { + border-top: 1px solid transparent +} + +.accordion .card-title a { + color: #495057 +} + +.alert { + padding: 0; + display: flex +} + +.alert .close:focus, .alert .close:hover { + opacity: 1 +} + +.alert-outline, .alert-outline-coloured { + color: #495057; + background: #fff +} + +.alert-outline-coloured hr, .alert-outline hr { + border-top-color: #ced4da +} + +.alert-outline-coloured .close:focus, .alert-outline-coloured .close:hover, .alert-outline .close:focus, .alert-outline .close:hover { + color: #343a40 +} + +.alert-outline-coloured .alert-message, .alert-outline .alert-message { + border-top-right-radius: .2rem; + border-bottom-right-radius: .2rem; + border-top-left-radius: .2rem; + border-bottom-left-radius: .2rem; + border: 1px solid #ced4da +} + +.alert-outline-coloured .alert-message:not(:nth-child(2)), .alert-outline .alert-message:not(:nth-child(2)) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: 0 +} + +.alert-outline-coloured .alert-icon, .alert-outline .alert-icon { + border-top-left-radius: .2rem; + border-bottom-left-radius: .2rem; + color: #fff +} + +.alert-outline-coloured.alert-primary .alert-icon, .alert-outline.alert-primary .alert-icon { + background-color: #3b7ddd +} + +.alert-outline-coloured.alert-secondary .alert-icon, .alert-outline.alert-secondary .alert-icon { + background-color: #6c757d +} + +.alert-outline-coloured.alert-success .alert-icon, .alert-outline.alert-success .alert-icon { + background-color: #28a745 +} + +.alert-outline-coloured.alert-info .alert-icon, .alert-outline.alert-info .alert-icon { + background-color: #17a2b8 +} + +.alert-outline-coloured.alert-warning .alert-icon, .alert-outline.alert-warning .alert-icon { + background-color: #ffc107 +} + +.alert-outline-coloured.alert-danger .alert-icon, .alert-outline.alert-danger .alert-icon { + background-color: #dc3545 +} + +.alert-outline-coloured.alert-light .alert-icon, .alert-outline.alert-light .alert-icon { + background-color: #f8f9fa +} + +.alert-outline-coloured.alert-dark .alert-icon, .alert-outline.alert-dark .alert-icon { + background-color: #212529 +} + +.alert-outline-coloured.alert-primary .alert-message { + border-color: #3b7ddd +} + +.alert-outline-coloured.alert-secondary .alert-message { + border-color: #6c757d +} + +.alert-outline-coloured.alert-success .alert-message { + border-color: #28a745 +} + +.alert-outline-coloured.alert-info .alert-message { + border-color: #17a2b8 +} + +.alert-outline-coloured.alert-warning .alert-message { + border-color: #ffc107 +} + +.alert-outline-coloured.alert-danger .alert-message { + border-color: #dc3545 +} + +.alert-outline-coloured.alert-light .alert-message { + border-color: #f8f9fa +} + +.alert-outline-coloured.alert-dark .alert-message { + border-color: #212529 +} + +.alert-icon { + padding: .95rem; + background: rgba(0, 0, 0, .05) +} + +.alert-message { + padding: .95rem; + width: 100%; + box-sizing: border-box +} + +.avatar { + width: 40px; + height: 40px +} + +.avatar-title { + display: flex; + width: 100%; + height: 100%; + align-items: center; + justify-content: center; + color: #3b7ddd +} + +.btn-pill { + border-radius: 10rem +} + +.btn-square { + border-radius: 0 +} + +.btn .feather { + width: 14px; + height: 14px +} + +.btn-danger, .btn-danger.disabled, .btn-danger.focus, .btn-danger.hover:not(:disabled):not(.disabled), .btn-danger:disabled, .btn-danger:focus, .btn-danger:hover:not(:disabled):not(.disabled), .btn-dark, .btn-dark.disabled, .btn-dark.focus, .btn-dark.hover:not(:disabled):not(.disabled), .btn-dark:disabled, .btn-dark:focus, .btn-dark:hover:not(:disabled):not(.disabled), .btn-info, .btn-info.disabled, .btn-info.focus, .btn-info.hover:not(:disabled):not(.disabled), .btn-info:disabled, .btn-info:focus, .btn-info:hover:not(:disabled):not(.disabled), .btn-light, .btn-light.disabled, .btn-light.focus, .btn-light.hover:not(:disabled):not(.disabled), .btn-light:disabled, .btn-light:focus, .btn-light:hover:not(:disabled):not(.disabled), .btn-outline-danger.hover:not(:disabled):not(.disabled), .btn-outline-danger:hover:not(:disabled):not(.disabled), .btn-outline-danger:not(:disabled):not(.disabled).active, .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-dark.hover:not(:disabled):not(.disabled), .btn-outline-dark:hover:not(:disabled):not(.disabled), .btn-outline-dark:not(:disabled):not(.disabled).active, .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-info.hover:not(:disabled):not(.disabled), .btn-outline-info:hover:not(:disabled):not(.disabled), .btn-outline-info:not(:disabled):not(.disabled).active, .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-light.hover:not(:disabled):not(.disabled), .btn-outline-light:hover:not(:disabled):not(.disabled), .btn-outline-light:not(:disabled):not(.disabled).active, .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-primary.hover:not(:disabled):not(.disabled), .btn-outline-primary:hover:not(:disabled):not(.disabled), .btn-outline-primary:not(:disabled):not(.disabled).active, .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-secondary.hover:not(:disabled):not(.disabled), .btn-outline-secondary:hover:not(:disabled):not(.disabled), .btn-outline-secondary:not(:disabled):not(.disabled).active, .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-success.hover:not(:disabled):not(.disabled), .btn-outline-success:hover:not(:disabled):not(.disabled), .btn-outline-success:not(:disabled):not(.disabled).active, .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-warning.hover:not(:disabled):not(.disabled), .btn-outline-warning:hover:not(:disabled):not(.disabled), .btn-outline-warning:not(:disabled):not(.disabled).active, .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-primary, .btn-primary.disabled, .btn-primary.focus, .btn-primary.hover:not(:disabled):not(.disabled), .btn-primary:disabled, .btn-primary:focus, .btn-primary:hover:not(:disabled):not(.disabled), .btn-secondary, .btn-secondary.disabled, .btn-secondary.focus, .btn-secondary.hover:not(:disabled):not(.disabled), .btn-secondary:disabled, .btn-secondary:focus, .btn-secondary:hover:not(:disabled):not(.disabled), .btn-success, .btn-success.disabled, .btn-success.focus, .btn-success.hover:not(:disabled):not(.disabled), .btn-success:disabled, .btn-success:focus, .btn-success:hover:not(:disabled):not(.disabled), .btn-warning, .btn-warning.disabled, .btn-warning.focus, .btn-warning.hover:not(:disabled):not(.disabled), .btn-warning:disabled, .btn-warning:focus, .btn-warning:hover:not(:disabled):not(.disabled), .show > .btn-danger.dropdown-toggle, .show > .btn-dark.dropdown-toggle, .show > .btn-info.dropdown-toggle, .show > .btn-light.dropdown-toggle, .show > .btn-primary.dropdown-toggle, .show > .btn-secondary.dropdown-toggle, .show > .btn-success.dropdown-toggle, .show > .btn-warning.dropdown-toggle { + color: #fff +} + +.btn-facebook { + color: #fff; + background-color: #3b5998; + border-color: #3b5998 +} + +.btn-check:focus + .btn-facebook, .btn-facebook:focus, .btn-facebook:hover { + color: #fff; + background-color: #30497c; + border-color: #2d4373 +} + +.btn-check:focus + .btn-facebook, .btn-facebook:focus { + box-shadow: 0 0 0 .2rem rgba(88, 114, 167, .5) +} + +.btn-check:active + .btn-facebook, .btn-check:checked + .btn-facebook, .btn-facebook.active, .btn-facebook:active, .show > .btn-facebook.dropdown-toggle { + color: #fff; + background-color: #2d4373; + border-color: #293e6a +} + +.btn-check:active + .btn-facebook:focus, .btn-check:checked + .btn-facebook:focus, .btn-facebook.active:focus, .btn-facebook:active:focus, .show > .btn-facebook.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(88, 114, 167, .5) +} + +.btn-facebook.disabled, .btn-facebook:disabled { + color: #fff; + background-color: #3b5998; + border-color: #3b5998 +} + +.btn-facebook, .btn-facebook.disabled, .btn-facebook.focus, .btn-facebook.hover:not(:disabled):not(.disabled), .btn-facebook:disabled, .btn-facebook:focus, .btn-facebook:hover:not(:disabled):not(.disabled), .show > .btn-facebook.dropdown-toggle { + color: #fff +} + +.btn-twitter { + color: #000; + background-color: #1da1f2; + border-color: #1da1f2 +} + +.btn-check:focus + .btn-twitter, .btn-twitter:focus, .btn-twitter:hover { + color: #000; + background-color: #41b0f4; + border-color: #35abf3 +} + +.btn-check:focus + .btn-twitter, .btn-twitter:focus { + box-shadow: 0 0 0 .2rem rgba(25, 137, 206, .5) +} + +.btn-check:active + .btn-twitter, .btn-check:checked + .btn-twitter, .btn-twitter.active, .btn-twitter:active, .show > .btn-twitter.dropdown-toggle { + color: #000; + background-color: #4db5f5; + border-color: #35abf3 +} + +.btn-check:active + .btn-twitter:focus, .btn-check:checked + .btn-twitter:focus, .btn-twitter.active:focus, .btn-twitter:active:focus, .show > .btn-twitter.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(25, 137, 206, .5) +} + +.btn-twitter.disabled, .btn-twitter:disabled { + color: #000; + background-color: #1da1f2; + border-color: #1da1f2 +} + +.btn-twitter, .btn-twitter.disabled, .btn-twitter.focus, .btn-twitter.hover:not(:disabled):not(.disabled), .btn-twitter:disabled, .btn-twitter:focus, .btn-twitter:hover:not(:disabled):not(.disabled), .show > .btn-twitter.dropdown-toggle { + color: #fff +} + +.btn-google { + color: #000; + background-color: #dc4e41; + border-color: #dc4e41 +} + +.btn-check:focus + .btn-google, .btn-google:focus, .btn-google:hover { + color: #000; + background-color: #e26c61; + border-color: #e06257 +} + +.btn-check:focus + .btn-google, .btn-google:focus { + box-shadow: 0 0 0 .2rem rgba(187, 66, 55, .5) +} + +.btn-check:active + .btn-google, .btn-check:checked + .btn-google, .btn-google.active, .btn-google:active, .show > .btn-google.dropdown-toggle { + color: #000; + background-color: #e4766c; + border-color: #e06257 +} + +.btn-check:active + .btn-google:focus, .btn-check:checked + .btn-google:focus, .btn-google.active:focus, .btn-google:active:focus, .show > .btn-google.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(187, 66, 55, .5) +} + +.btn-google.disabled, .btn-google:disabled { + color: #000; + background-color: #dc4e41; + border-color: #dc4e41 +} + +.btn-google, .btn-google.disabled, .btn-google.focus, .btn-google.hover:not(:disabled):not(.disabled), .btn-google:disabled, .btn-google:focus, .btn-google:hover:not(:disabled):not(.disabled), .show > .btn-google.dropdown-toggle { + color: #fff +} + +.btn-youtube { + color: #000; + background-color: red; + border-color: red +} + +.btn-check:focus + .btn-youtube, .btn-youtube:focus, .btn-youtube:hover { + color: #000; + background-color: #ff2626; + border-color: #ff1a1a +} + +.btn-check:focus + .btn-youtube, .btn-youtube:focus { + box-shadow: 0 0 0 .2rem rgba(217, 0, 0, .5) +} + +.btn-check:active + .btn-youtube, .btn-check:checked + .btn-youtube, .btn-youtube.active, .btn-youtube:active, .show > .btn-youtube.dropdown-toggle { + color: #000; + background-color: #f33; + border-color: #ff1a1a +} + +.btn-check:active + .btn-youtube:focus, .btn-check:checked + .btn-youtube:focus, .btn-youtube.active:focus, .btn-youtube:active:focus, .show > .btn-youtube.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(217, 0, 0, .5) +} + +.btn-youtube.disabled, .btn-youtube:disabled { + color: #000; + background-color: red; + border-color: red +} + +.btn-youtube, .btn-youtube.disabled, .btn-youtube.focus, .btn-youtube.hover:not(:disabled):not(.disabled), .btn-youtube:disabled, .btn-youtube:focus, .btn-youtube:hover:not(:disabled):not(.disabled), .show > .btn-youtube.dropdown-toggle { + color: #fff +} + +.btn-vimeo { + color: #000; + background-color: #1ab7ea; + border-color: #1ab7ea +} + +.btn-check:focus + .btn-vimeo, .btn-vimeo:focus, .btn-vimeo:hover { + color: #000; + background-color: #3dc2ed; + border-color: #31beec +} + +.btn-check:focus + .btn-vimeo, .btn-vimeo:focus { + box-shadow: 0 0 0 .2rem rgba(22, 156, 199, .5) +} + +.btn-check:active + .btn-vimeo, .btn-check:checked + .btn-vimeo, .btn-vimeo.active, .btn-vimeo:active, .show > .btn-vimeo.dropdown-toggle { + color: #000; + background-color: #49c6ee; + border-color: #31beec +} + +.btn-check:active + .btn-vimeo:focus, .btn-check:checked + .btn-vimeo:focus, .btn-vimeo.active:focus, .btn-vimeo:active:focus, .show > .btn-vimeo.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(22, 156, 199, .5) +} + +.btn-vimeo.disabled, .btn-vimeo:disabled { + color: #000; + background-color: #1ab7ea; + border-color: #1ab7ea +} + +.btn-vimeo, .btn-vimeo.disabled, .btn-vimeo.focus, .btn-vimeo.hover:not(:disabled):not(.disabled), .btn-vimeo:disabled, .btn-vimeo:focus, .btn-vimeo:hover:not(:disabled):not(.disabled), .show > .btn-vimeo.dropdown-toggle { + color: #fff +} + +.btn-dribbble { + color: #000; + background-color: #ea4c89; + border-color: #ea4c89 +} + +.btn-check:focus + .btn-dribbble, .btn-dribbble:focus, .btn-dribbble:hover { + color: #000; + background-color: #ee6ea0; + border-color: #ed6398 +} + +.btn-check:focus + .btn-dribbble, .btn-dribbble:focus { + box-shadow: 0 0 0 .2rem rgba(199, 65, 116, .5) +} + +.btn-check:active + .btn-dribbble, .btn-check:checked + .btn-dribbble, .btn-dribbble.active, .btn-dribbble:active, .show > .btn-dribbble.dropdown-toggle { + color: #000; + background-color: #ef7aa7; + border-color: #ed6398 +} + +.btn-check:active + .btn-dribbble:focus, .btn-check:checked + .btn-dribbble:focus, .btn-dribbble.active:focus, .btn-dribbble:active:focus, .show > .btn-dribbble.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(199, 65, 116, .5) +} + +.btn-dribbble.disabled, .btn-dribbble:disabled { + color: #000; + background-color: #ea4c89; + border-color: #ea4c89 +} + +.btn-dribbble, .btn-dribbble.disabled, .btn-dribbble.focus, .btn-dribbble.hover:not(:disabled):not(.disabled), .btn-dribbble:disabled, .btn-dribbble:focus, .btn-dribbble:hover:not(:disabled):not(.disabled), .show > .btn-dribbble.dropdown-toggle { + color: #fff +} + +.btn-github { + color: #fff; + background-color: #181717; + border-color: #181717 +} + +.btn-check:focus + .btn-github, .btn-github:focus, .btn-github:hover { + color: #fff; + background-color: #040404; + border-color: #000 +} + +.btn-check:focus + .btn-github, .btn-github:focus { + box-shadow: 0 0 0 .2rem rgba(59, 58, 58, .5) +} + +.btn-check:active + .btn-github, .btn-check:checked + .btn-github, .btn-github.active, .btn-github:active, .show > .btn-github.dropdown-toggle { + color: #fff; + background-color: #000; + border-color: #000 +} + +.btn-check:active + .btn-github:focus, .btn-check:checked + .btn-github:focus, .btn-github.active:focus, .btn-github:active:focus, .show > .btn-github.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(59, 58, 58, .5) +} + +.btn-github.disabled, .btn-github:disabled { + color: #fff; + background-color: #181717; + border-color: #181717 +} + +.btn-github, .btn-github.disabled, .btn-github.focus, .btn-github.hover:not(:disabled):not(.disabled), .btn-github:disabled, .btn-github:focus, .btn-github:hover:not(:disabled):not(.disabled), .show > .btn-github.dropdown-toggle { + color: #fff +} + +.btn-instagram { + color: #000; + background-color: #e4405f; + border-color: #e4405f +} + +.btn-check:focus + .btn-instagram, .btn-instagram:focus, .btn-instagram:hover { + color: #000; + background-color: #e9627b; + border-color: #e75672 +} + +.btn-check:focus + .btn-instagram, .btn-instagram:focus { + box-shadow: 0 0 0 .2rem rgba(194, 54, 81, .5) +} + +.btn-check:active + .btn-instagram, .btn-check:checked + .btn-instagram, .btn-instagram.active, .btn-instagram:active, .show > .btn-instagram.dropdown-toggle { + color: #000; + background-color: #ea6d84; + border-color: #e75672 +} + +.btn-check:active + .btn-instagram:focus, .btn-check:checked + .btn-instagram:focus, .btn-instagram.active:focus, .btn-instagram:active:focus, .show > .btn-instagram.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(194, 54, 81, .5) +} + +.btn-instagram.disabled, .btn-instagram:disabled { + color: #000; + background-color: #e4405f; + border-color: #e4405f +} + +.btn-instagram, .btn-instagram.disabled, .btn-instagram.focus, .btn-instagram.hover:not(:disabled):not(.disabled), .btn-instagram:disabled, .btn-instagram:focus, .btn-instagram:hover:not(:disabled):not(.disabled), .show > .btn-instagram.dropdown-toggle { + color: #fff +} + +.btn-pinterest { + color: #fff; + background-color: #bd081c; + border-color: #bd081c +} + +.btn-check:focus + .btn-pinterest, .btn-pinterest:focus, .btn-pinterest:hover { + color: #fff; + background-color: #980617; + border-color: #8c0615 +} + +.btn-check:focus + .btn-pinterest, .btn-pinterest:focus { + box-shadow: 0 0 0 .2rem rgba(199, 45, 62, .5) +} + +.btn-check:active + .btn-pinterest, .btn-check:checked + .btn-pinterest, .btn-pinterest.active, .btn-pinterest:active, .show > .btn-pinterest.dropdown-toggle { + color: #fff; + background-color: #8c0615; + border-color: #800513 +} + +.btn-check:active + .btn-pinterest:focus, .btn-check:checked + .btn-pinterest:focus, .btn-pinterest.active:focus, .btn-pinterest:active:focus, .show > .btn-pinterest.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(199, 45, 62, .5) +} + +.btn-pinterest.disabled, .btn-pinterest:disabled { + color: #fff; + background-color: #bd081c; + border-color: #bd081c +} + +.btn-pinterest, .btn-pinterest.disabled, .btn-pinterest.focus, .btn-pinterest.hover:not(:disabled):not(.disabled), .btn-pinterest:disabled, .btn-pinterest:focus, .btn-pinterest:hover:not(:disabled):not(.disabled), .show > .btn-pinterest.dropdown-toggle { + color: #fff +} + +.btn-flickr { + color: #fff; + background-color: #0063dc; + border-color: #0063dc +} + +.btn-check:focus + .btn-flickr, .btn-flickr:focus, .btn-flickr:hover { + color: #fff; + background-color: #0052b6; + border-color: #004ca9 +} + +.btn-check:focus + .btn-flickr, .btn-flickr:focus { + box-shadow: 0 0 0 .2rem rgba(38, 122, 225, .5) +} + +.btn-check:active + .btn-flickr, .btn-check:checked + .btn-flickr, .btn-flickr.active, .btn-flickr:active, .show > .btn-flickr.dropdown-toggle { + color: #fff; + background-color: #004ca9; + border-color: #00469c +} + +.btn-check:active + .btn-flickr:focus, .btn-check:checked + .btn-flickr:focus, .btn-flickr.active:focus, .btn-flickr:active:focus, .show > .btn-flickr.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(38, 122, 225, .5) +} + +.btn-flickr.disabled, .btn-flickr:disabled { + color: #fff; + background-color: #0063dc; + border-color: #0063dc +} + +.btn-flickr, .btn-flickr.disabled, .btn-flickr.focus, .btn-flickr.hover:not(:disabled):not(.disabled), .btn-flickr:disabled, .btn-flickr:focus, .btn-flickr:hover:not(:disabled):not(.disabled), .show > .btn-flickr.dropdown-toggle { + color: #fff +} + +.btn-bitbucket { + color: #fff; + background-color: #0052cc; + border-color: #0052cc +} + +.btn-bitbucket:focus, .btn-bitbucket:hover, .btn-check:focus + .btn-bitbucket { + color: #fff; + background-color: #0043a6; + border-color: #003e99 +} + +.btn-bitbucket:focus, .btn-check:focus + .btn-bitbucket { + box-shadow: 0 0 0 .2rem rgba(38, 108, 212, .5) +} + +.btn-bitbucket.active, .btn-bitbucket:active, .btn-check:active + .btn-bitbucket, .btn-check:checked + .btn-bitbucket, .show > .btn-bitbucket.dropdown-toggle { + color: #fff; + background-color: #003e99; + border-color: #00388c +} + +.btn-bitbucket.active:focus, .btn-bitbucket:active:focus, .btn-check:active + .btn-bitbucket:focus, .btn-check:checked + .btn-bitbucket:focus, .show > .btn-bitbucket.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(38, 108, 212, .5) +} + +.btn-bitbucket.disabled, .btn-bitbucket:disabled { + color: #fff; + background-color: #0052cc; + border-color: #0052cc +} + +.btn-bitbucket, .btn-bitbucket.disabled, .btn-bitbucket.focus, .btn-bitbucket.hover:not(:disabled):not(.disabled), .btn-bitbucket:disabled, .btn-bitbucket:focus, .btn-bitbucket:hover:not(:disabled):not(.disabled), .show > .btn-bitbucket.dropdown-toggle { + color: #fff +} + +.btn-light, .btn-light.disabled, .btn-light.focus, .btn-light.hover:not(:disabled):not(.disabled), .btn-light:disabled, .btn-light:focus, .btn-light:hover:not(:disabled):not(.disabled), .btn-outline-light.hover:not(:disabled):not(.disabled), .btn-outline-light:hover:not(:disabled):not(.disabled), .btn-outline-light:not(:disabled):not(.disabled).active, .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-white.hover:not(:disabled):not(.disabled), .btn-outline-white:hover:not(:disabled):not(.disabled), .btn-outline-white:not(:disabled):not(.disabled).active, .btn-outline-white:not(:disabled):not(.disabled):active, .btn-white, .btn-white.disabled, .btn-white.focus, .btn-white.hover:not(:disabled):not(.disabled), .btn-white:disabled, .btn-white:focus, .btn-white:hover:not(:disabled):not(.disabled), .show > .btn-light.dropdown-toggle, .show > .btn-white.dropdown-toggle { + color: #343a40 +} + +.card { + margin-bottom: 24px; + box-shadow: 0 0 .875rem 0 rgba(33, 37, 41, .05) +} + +.card-header { + border-bottom-width: 1px +} + +.card-actions a { + color: #495057; + text-decoration: none +} + +.card-actions svg { + width: 16px; + height: 16px +} + +.card-actions .dropdown { + line-height: 1.4 +} + +.card-title { + font-size: .875rem; + color: #495057 +} + +.card-subtitle, .card-title { + font-weight: 400 +} + +.card-table { + margin-bottom: 0 +} + +.card-table tr td:first-child, .card-table tr th:first-child { + padding-left: 1.25rem +} + +.card-table tr td:last-child, .card-table tr th:last-child { + padding-right: 1.25rem +} + +.card-img, .card-img-bottom, .card-img-top { + max-width: 100%; + height: auto +} + +@media (-ms-high-contrast: none) { + .card-img, .card-img-bottom, .card-img-top { + height: 100% + } +} + +.chart { + margin: auto; + position: relative; + width: 100%; + min-height: 300px +} + +.chart-xs { + min-height: 200px +} + +.chart-sm { + min-height: 252px +} + +.chart-lg { + min-height: 350px +} + +.chart-xl { + min-height: 500px +} + +.chart canvas { + max-width: 100% +} + +.content { + padding: 1.5rem 1.5rem .75rem; + flex: 1; + width: 100vw; + max-width: 100vw; + direction: ltr +} + +@media (min-width: 768px) { + .content { + width: auto; + max-width: auto + } +} + +@media (min-width: 992px) { + .content { + padding: 2.5rem 2.5rem 1rem + } +} + +.navbar-nav .dropdown-menu { + box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05) +} + +.dropdown .dropdown-menu.show { + animation-name: dropdownAnimation; + animation-duration: .25s; + animation-iteration-count: 1; + animation-timing-function: ease; + animation-fill-mode: forwards +} + +@keyframes dropdownAnimation { + 0% { + opacity: 0; + transform: translateY(-8px) + } + to { + opacity: 1; + transform: translate(0) + } +} + +.dropdown-toggle:after { + border: solid; + border-width: 0 2px 2px 0; + display: inline-block; + padding: 2px; + transform: rotate(45deg) +} + +.dropdown-item { + transition: background .1s ease-in-out, color .1s ease-in-out +} + +.dropdown-menu { + top: auto +} + +.dropdown-menu-lg { + min-width: 20rem +} + +.dropdown .list-group .list-group-item { + border-width: 0 0 1px; + margin-bottom: 0 +} + +.dropdown .list-group .list-group-item:first-child, .dropdown .list-group .list-group-item:last-child { + border-radius: 0 +} + +.dropdown .list-group .list-group-item:hover { + background: #f8f9fa +} + +.dropdown-menu-header { + padding: .75rem; + text-align: center; + font-weight: 600; + border-bottom: 1px solid #dee2e6 +} + +.dropdown-menu-footer { + padding: .5rem; + text-align: center; + display: block; + font-size: .75rem +} + +.feather { + width: 18px; + height: 18px; + stroke-width: 1.5 +} + +.feather-sm { + width: 14px; + height: 14px +} + +.feather-lg { + width: 36px; + height: 36px +} + +footer.footer { + padding: 1rem .875rem; + direction: ltr; + background: #fff +} + +footer.footer ul { + margin-bottom: 0 +} + +@media (max-width: 767.98px) { + footer.footer { + width: 100vw + } +} + +.input-group-navbar .btn, .input-group-navbar .form-control { + height: calc(2.0875rem + 2px); + background: #f7f7fc; + box-shadow: none; + border: 0; + padding: .35rem .75rem +} + +.input-group-navbar .btn:focus, .input-group-navbar .form-control:focus { + background: #f7f7fc; + box-shadow: none; + outline: 0 +} + +.input-group-navbar .btn { + color: #6c757d +} + +.input-group-navbar .btn .feather { + width: 20px; + height: 20px +} + +.hamburger, .hamburger:after, .hamburger:before { + cursor: pointer; + border-radius: 1px; + height: 3px; + width: 24px; + background: #495057; + display: block; + content: ""; + transition: background .1s ease-in-out, color .1s ease-in-out +} + +.hamburger { + position: relative +} + +.hamburger:before { + top: -7.5px; + width: 24px; + position: absolute +} + +.hamburger:after { + bottom: -7.5px; + width: 16px; + position: absolute +} + +.sidebar-toggle:hover .hamburger, .sidebar-toggle:hover .hamburger:after, .sidebar-toggle:hover .hamburger:before { + background: #3b7ddd +} + +.hamburger-right, .hamburger-right:after, .hamburger-right:before { + right: 0 +} + +a.list-group-item { + text-decoration: none +} + +.main { + display: flex; + width: 100%; + min-width: 0; + min-height: 100vh; + transition: margin-left .35s ease-in-out, left .35s ease-in-out, margin-right .35s ease-in-out, right .35s ease-in-out; + /*background: #f7f7fc;*/ + background-color: #ddd; + flex-direction: column; + overflow: hidden; + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +@media (min-width: 992px) { + .main { + box-shadow: inset .75rem 0 1.5rem 0 rgba(0, 0, 0, .075) + } +} + +.modal-colored .modal-footer, .modal-colored .modal-header { + border-color: hsla(0, 0%, 100%, .33) +} + +.navbar { + border-bottom: 0; + box-shadow: 0 0 2rem 0 rgba(33, 37, 41, .1) +} + +@media (max-width: 767.98px) { + .navbar { + width: 100vw + } +} + +.navbar .avatar { + margin-top: -15px; + margin-bottom: -15px +} + +.navbar-nav { + direction: ltr +} + +.navbar-align { + margin-left: auto +} + +.navbar-bg { + background: #fff +} + +.navbar-brand { + font-weight: 400; + font-size: 1.15rem; + padding: .875rem 0; + color: #f8f9fa; + display: block +} + +.navbar-brand .feather, .navbar-brand svg { + color: #3b7ddd; + height: 24px; + width: 24px; + margin-left: -.15rem; + margin-right: .375rem; + margin-top: -.375rem +} + +.nav-flag, .nav-icon { + padding: .1rem .8rem; + display: block; + font-size: 1.5rem; + color: #6c757d; + transition: background .1s ease-in-out, color .1s ease-in-out; + line-height: 1.4 +} + +.nav-flag:after, .nav-icon:after { + display: none !important +} + +.nav-flag.active, .nav-flag:hover, .nav-icon.active, .nav-icon:hover { + color: #3b7ddd +} + +.nav-flag .feather, .nav-flag svg, .nav-icon .feather, .nav-icon svg { + width: 20px; + height: 20px +} + +.nav-item .indicator { + background: #3b7ddd; + box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05); + border-radius: 50%; + display: block; + height: 18px; + width: 18px; + padding: 1px; + position: absolute; + top: 0; + right: -8px; + text-align: center; + transition: top .1s ease-out; + font-size: .675rem; + color: #fff +} + +.nav-item:hover .indicator { + top: -4px +} + +.nav-item a:focus { + outline: 0 +} + +@media (-ms-high-contrast: none), screen and (-ms-high-contrast: active) { + .navbar .avatar { + max-height: 47px + } +} + +@media (max-width: 575.98px) { + .navbar { + padding: .75rem + } + + .nav-icon { + padding: .1rem .75rem + } + + .dropdown, .dropleft, .dropright, .dropup { + position: inherit + } + + .navbar-expand .navbar-nav .dropdown-menu-lg { + min-width: 100% + } + + .nav-item .nav-link:after { + display: none + } +} + +.nav-flag img { + border-radius: 50%; + width: 20px; + height: 20px; + object-fit: cover +} + +.navbar input { + direction: ltr +} + +.progress-sm { + height: .5rem +} + +.progress-lg { + height: 1.5rem +} + +#root, body, html { + height: 100% +} + +body { + overflow-y: scroll; + opacity: 1 !important +} + +@media (-ms-high-contrast: none), screen and (-ms-high-contrast: active) { + html { + overflow-x: hidden + } +} + +.sidebar { + min-width: 260px; + max-width: 260px; + direction: ltr +} + +.sidebar, .sidebar-content { + transition: margin-left .35s ease-in-out, left .35s ease-in-out, margin-right .35s ease-in-out, right .35s ease-in-out; + background: #222e3c +} + +.sidebar-content { + display: flex; + height: 100vh; + flex-direction: column +} + +.sidebar-nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; + flex-grow: 1 +} + +.sidebar-link, a.sidebar-link { + display: block; + padding: .625rem 1.625rem; + font-weight: 400; + transition: background .1s ease-in-out; + position: relative; + text-decoration: none; + cursor: pointer; + color: rgba(233, 236, 239, .5); + background: #222e3c; + border-left: 3px solid transparent +} + +.sidebar-link i, .sidebar-link svg, a.sidebar-link i, a.sidebar-link svg { + margin-right: .75rem; + color: rgba(233, 236, 239, .5) +} + +.sidebar-link:focus { + outline: 0 +} + +.sidebar-link:hover { + background: #222e3c; + border-left-color: transparent +} + +.sidebar-link:hover, .sidebar-link:hover i, .sidebar-link:hover svg { + color: rgba(233, 236, 239, .75) +} + +.sidebar-item.active .sidebar-link:hover, .sidebar-item.active > .sidebar-link { + color: #e9ecef; + background: linear-gradient(90deg, rgba(59, 125, 221, .1), rgba(59, 125, 221, .0875) 50%, transparent); + border-left-color: #3b7ddd +} + +.sidebar-item.active .sidebar-link:hover i, .sidebar-item.active .sidebar-link:hover svg, .sidebar-item.active > .sidebar-link i, .sidebar-item.active > .sidebar-link svg { + color: #e9ecef +} + +.sidebar-dropdown .sidebar-link { + padding: .625rem 1.5rem .625rem 3.25rem; + font-weight: 400; + font-size: 90%; + border-left: 0; + color: #adb5bd; + background: transparent +} + +.sidebar-dropdown .sidebar-link:before { + content: "→"; + display: inline-block; + position: relative; + left: -14px; + transition: all .1s ease; + transform: translateX(0) +} + +.sidebar-dropdown .sidebar-item .sidebar-link:hover { + font-weight: 400; + border-left: 0; + color: #e9ecef; + background: transparent +} + +.sidebar-dropdown .sidebar-item .sidebar-link:hover:hover:before { + transform: translateX(4px) +} + +.sidebar-dropdown .sidebar-item.active .sidebar-link { + font-weight: 400; + border-left: 0; + color: #518be1; + background: transparent +} + +.sidebar [data-toggle=collapse] { + position: relative +} + +.sidebar [data-toggle=collapse]:after { + content: " "; + border: solid; + border-width: 0 .075rem .075rem 0; + display: inline-block; + padding: 2px; + transform: rotate(45deg); + position: absolute; + top: 1.2rem; + right: 1.5rem; + transition: all .2s ease-out +} + +.sidebar [aria-expanded=true]:after, .sidebar [data-toggle=collapse]:not(.collapsed):after { + transform: rotate(-135deg); + top: 1.4rem +} + +.sidebar-brand { + font-weight: 600; + font-size: 1.15rem; + padding: 1.15rem 1.5rem; + display: block; + color: #f8f9fa +} + +.sidebar-brand:hover { + text-decoration: none; + color: #f8f9fa +} + +.sidebar-brand:focus { + outline: 0 +} + +.sidebar-toggle { + cursor: pointer; + width: 26px; + height: 26px +} + +.sidebar.collapsed { + margin-left: -260px +} + +@media (min-width: 1px) and (max-width: 991.98px) { + .sidebar { + margin-left: -260px + } + + .sidebar.collapsed { + margin-left: 0 + } +} + +.sidebar-toggle { + margin-right: 1rem +} + +.sidebar-header { + background: transparent; + padding: 1.5rem 1.5rem .375rem; + font-size: .75rem; + color: #ced4da +} + +.sidebar-badge { + position: absolute; + right: 15px; + top: 14px; + z-index: 1 +} + +.sidebar-cta-content { + padding: 1.5rem; + margin: 1.75rem; + border-radius: .3rem; + background: #2b3947; + color: #e9ecef +} + +.min-vw-50 { + min-width: 50vw !important +} + +.min-vh-50 { + min-height: 50vh !important +} + +.vw-50 { + width: 50vw !important +} + +.vh-50 { + height: 50vh !important +} + +.table > :not(:last-child) > :last-child > *, .table tbody, .table td, .table tfoot, .table th, .table thead, .table tr { + border-color: #dee2e6 +} + +.card > .dataTables_wrapper .table.dataTable, .card > .table, .card > .table-responsive-lg .table, .card > .table-responsive-md .table, .card > .table-responsive-sm .table, .card > .table-responsive-xl .table, .card > .table-responsive .table { + border-right: 0; + border-bottom: 0; + border-left: 0; + margin-bottom: 0 +} + +.card > .dataTables_wrapper .table.dataTable td:first-child, .card > .dataTables_wrapper .table.dataTable th:first-child, .card > .table-responsive-lg .table td:first-child, .card > .table-responsive-lg .table th:first-child, .card > .table-responsive-md .table td:first-child, .card > .table-responsive-md .table th:first-child, .card > .table-responsive-sm .table td:first-child, .card > .table-responsive-sm .table th:first-child, .card > .table-responsive-xl .table td:first-child, .card > .table-responsive-xl .table th:first-child, .card > .table-responsive .table td:first-child, .card > .table-responsive .table th:first-child, .card > .table td:first-child, .card > .table th:first-child { + border-left: 0; + padding-left: 1.25rem +} + +.card > .dataTables_wrapper .table.dataTable td:last-child, .card > .dataTables_wrapper .table.dataTable th:last-child, .card > .table-responsive-lg .table td:last-child, .card > .table-responsive-lg .table th:last-child, .card > .table-responsive-md .table td:last-child, .card > .table-responsive-md .table th:last-child, .card > .table-responsive-sm .table td:last-child, .card > .table-responsive-sm .table th:last-child, .card > .table-responsive-xl .table td:last-child, .card > .table-responsive-xl .table th:last-child, .card > .table-responsive .table td:last-child, .card > .table-responsive .table th:last-child, .card > .table td:last-child, .card > .table th:last-child { + border-right: 0; + padding-right: 1.25rem +} + +.card > .dataTables_wrapper .table.dataTable tr:first-child td, .card > .dataTables_wrapper .table.dataTable tr:first-child th, .card > .table-responsive-lg .table tr:first-child td, .card > .table-responsive-lg .table tr:first-child th, .card > .table-responsive-md .table tr:first-child td, .card > .table-responsive-md .table tr:first-child th, .card > .table-responsive-sm .table tr:first-child td, .card > .table-responsive-sm .table tr:first-child th, .card > .table-responsive-xl .table tr:first-child td, .card > .table-responsive-xl .table tr:first-child th, .card > .table-responsive .table tr:first-child td, .card > .table-responsive .table tr:first-child th, .card > .table tr:first-child td, .card > .table tr:first-child th { + border-top: 0 +} + +.card > .dataTables_wrapper .table.dataTable tr:last-child td, .card > .table-responsive-lg .table tr:last-child td, .card > .table-responsive-md .table tr:last-child td, .card > .table-responsive-sm .table tr:last-child td, .card > .table-responsive-xl .table tr:last-child td, .card > .table-responsive .table tr:last-child td, .card > .table tr:last-child td { + border-bottom: 0 +} + +.card .card-header + .table { + border-top: 0 +} + +.table-action a { + color: #6c757d +} + +.table-action a:hover { + color: #212529 +} + +.table-action .feather { + width: 18px; + height: 18px +} + +.table > tbody > tr > td { + vertical-align: middle +} + +.card > .dataTables_wrapper .table.dataTable { + margin-top: 0 !important; + margin-bottom: 0 !important +} + +.card > .dataTables_wrapper .dataTables_info { + padding: 1rem 1.25rem +} + +.card > .dataTables_wrapper .dataTables_paginate { + padding: .6rem 1.25rem +} + +.dt-bootstrap4 { + width: calc(100% - 2px) +} + +.text-sm { + font-size: .75rem +} + +.text-lg { + font-size: .925rem +} + +b, strong { + font-weight: 600 +} + +pre.snippet { + white-space: pre-wrap; + word-wrap: break-word; + text-align: justify +} + +a { + cursor: pointer +} + +.wrapper { + align-items: stretch; + display: flex; + width: 100%; + background: #222e3c +} + +.bg-primary-light { + background: #d3e2f7 +} + +.bg-secondary-light { + background: #caced1 +} + +.bg-success-light { + background: #9be7ac +} + +.bg-info-light { + background: #90e4f1 +} + +.bg-warning-light { + background: #ffeeba +} + +.bg-danger-light { + background: #f6cdd1 +} + +.bg-light-light { + background: #fff +} + +.bg-dark-light { + background: #717e8c +} + +.bg-primary-dark { + background: #0f2c56 +} + +.bg-secondary-dark { + background: #191b1d +} + +.bg-success-dark { + background: #06170a +} + +.bg-info-dark { + background: #031619 +} + +.bg-warning-dark { + background: #543f00 +} + +.bg-danger-dark { + background: #510e14 +} + +.bg-light-dark { + background: #90a0b0 +} + +.bg-dark-dark { + background: #000 +} + +.rounded-lg { + border-radius: .3rem !important +} + +.rounded-top-lg { + border-top-left-radius: .3rem !important +} + +.rounded-right-lg, .rounded-top-lg { + border-top-right-radius: .3rem !important +} + +.rounded-bottom-lg, .rounded-right-lg { + border-bottom-right-radius: .3rem !important +} + +.rounded-bottom-lg, .rounded-left-lg { + border-bottom-left-radius: .3rem !important +} + +.rounded-left-lg { + border-top-left-radius: .3rem !important +} + +.rounded-sm { + border-radius: .1rem !important +} + +.rounded-top-sm { + border-top-left-radius: .1rem !important +} + +.rounded-right-sm, .rounded-top-sm { + border-top-right-radius: .1rem !important +} + +.rounded-bottom-sm, .rounded-right-sm { + border-bottom-right-radius: .1rem !important +} + +.rounded-bottom-sm, .rounded-left-sm { + border-bottom-left-radius: .1rem !important +} + +.rounded-left-sm { + border-top-left-radius: .1rem !important +} + +.cursor-grab { + cursor: move; + cursor: grab; + cursor: -webkit-grab +} + +.cursor-pointer { + cursor: pointer +} + +.overflow-scroll { + overflow: scroll +} + +.overflow-hidden { + overflow: hidden +} + +.overflow-auto { + overflow: auto +} + +.overflow-visible { + overflow: visible +} + +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa, .fab, .fad, .fal, .far, .fas { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1 +} + +.fa-lg { + font-size: 1.33333em; + line-height: .75em; + vertical-align: -.0667em +} + +.fa-xs { + font-size: .75em +} + +.fa-sm { + font-size: .875em +} + +.fa-1x { + font-size: 1em +} + +.fa-2x { + font-size: 2em +} + +.fa-3x { + font-size: 3em +} + +.fa-4x { + font-size: 4em +} + +.fa-5x { + font-size: 5em +} + +.fa-6x { + font-size: 6em +} + +.fa-7x { + font-size: 7em +} + +.fa-8x { + font-size: 8em +} + +.fa-9x { + font-size: 9em +} + +.fa-10x { + font-size: 10em +} + +.fa-fw { + text-align: center; + width: 1.25em +} + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0 +} + +.fa-ul > li { + position: relative +} + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit +} + +.fa-border { + border: .08em solid #eee; + border-radius: .1em; + padding: .2em .25em .15em +} + +.fa-pull-left { + float: left +} + +.fa-pull-right { + float: right +} + +.fa.fa-pull-left, .fab.fa-pull-left, .fal.fa-pull-left, .far.fa-pull-left, .fas.fa-pull-left { + margin-right: .3em +} + +.fa.fa-pull-right, .fab.fa-pull-right, .fal.fa-pull-right, .far.fa-pull-right, .fas.fa-pull-right { + margin-left: .3em +} + +.fa-spin { + animation: fa-spin 2s linear infinite +} + +.fa-pulse { + animation: fa-spin 1s steps(8) infinite +} + +@keyframes fa-spin { + 0% { + transform: rotate(0deg) + } + to { + transform: rotate(1turn) + } +} + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + transform: rotate(90deg) +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + transform: rotate(180deg) +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + transform: rotate(270deg) +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + transform: scaleX(-1) +} + +.fa-flip-vertical { + transform: scaleY(-1) +} + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical, .fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)" +} + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1) +} + +:root .fa-flip-both, :root .fa-flip-horizontal, :root .fa-flip-vertical, :root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270 { + filter: none +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em +} + +.fa-stack-1x, .fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100% +} + +.fa-stack-1x { + line-height: inherit +} + +.fa-stack-2x { + font-size: 2em +} + +.fa-inverse { + color: #fff +} + +.fa-500px:before { + content: "\f26e" +} + +.fa-accessible-icon:before { + content: "\f368" +} + +.fa-accusoft:before { + content: "\f369" +} + +.fa-acquisitions-incorporated:before { + content: "\f6af" +} + +.fa-ad:before { + content: "\f641" +} + +.fa-address-book:before { + content: "\f2b9" +} + +.fa-address-card:before { + content: "\f2bb" +} + +.fa-adjust:before { + content: "\f042" +} + +.fa-adn:before { + content: "\f170" +} + +.fa-adversal:before { + content: "\f36a" +} + +.fa-affiliatetheme:before { + content: "\f36b" +} + +.fa-air-freshener:before { + content: "\f5d0" +} + +.fa-airbnb:before { + content: "\f834" +} + +.fa-algolia:before { + content: "\f36c" +} + +.fa-align-center:before { + content: "\f037" +} + +.fa-align-justify:before { + content: "\f039" +} + +.fa-align-left:before { + content: "\f036" +} + +.fa-align-right:before { + content: "\f038" +} + +.fa-alipay:before { + content: "\f642" +} + +.fa-allergies:before { + content: "\f461" +} + +.fa-amazon:before { + content: "\f270" +} + +.fa-amazon-pay:before { + content: "\f42c" +} + +.fa-ambulance:before { + content: "\f0f9" +} + +.fa-american-sign-language-interpreting:before { + content: "\f2a3" +} + +.fa-amilia:before { + content: "\f36d" +} + +.fa-anchor:before { + content: "\f13d" +} + +.fa-android:before { + content: "\f17b" +} + +.fa-angellist:before { + content: "\f209" +} + +.fa-angle-double-down:before { + content: "\f103" +} + +.fa-angle-double-left:before { + content: "\f100" +} + +.fa-angle-double-right:before { + content: "\f101" +} + +.fa-angle-double-up:before { + content: "\f102" +} + +.fa-angle-down:before { + content: "\f107" +} + +.fa-angle-left:before { + content: "\f104" +} + +.fa-angle-right:before { + content: "\f105" +} + +.fa-angle-up:before { + content: "\f106" +} + +.fa-angry:before { + content: "\f556" +} + +.fa-angrycreative:before { + content: "\f36e" +} + +.fa-angular:before { + content: "\f420" +} + +.fa-ankh:before { + content: "\f644" +} + +.fa-app-store:before { + content: "\f36f" +} + +.fa-app-store-ios:before { + content: "\f370" +} + +.fa-apper:before { + content: "\f371" +} + +.fa-apple:before { + content: "\f179" +} + +.fa-apple-alt:before { + content: "\f5d1" +} + +.fa-apple-pay:before { + content: "\f415" +} + +.fa-archive:before { + content: "\f187" +} + +.fa-archway:before { + content: "\f557" +} + +.fa-arrow-alt-circle-down:before { + content: "\f358" +} + +.fa-arrow-alt-circle-left:before { + content: "\f359" +} + +.fa-arrow-alt-circle-right:before { + content: "\f35a" +} + +.fa-arrow-alt-circle-up:before { + content: "\f35b" +} + +.fa-arrow-circle-down:before { + content: "\f0ab" +} + +.fa-arrow-circle-left:before { + content: "\f0a8" +} + +.fa-arrow-circle-right:before { + content: "\f0a9" +} + +.fa-arrow-circle-up:before { + content: "\f0aa" +} + +.fa-arrow-down:before { + content: "\f063" +} + +.fa-arrow-left:before { + content: "\f060" +} + +.fa-arrow-right:before { + content: "\f061" +} + +.fa-arrow-up:before { + content: "\f062" +} + +.fa-arrows-alt:before { + content: "\f0b2" +} + +.fa-arrows-alt-h:before { + content: "\f337" +} + +.fa-arrows-alt-v:before { + content: "\f338" +} + +.fa-artstation:before { + content: "\f77a" +} + +.fa-assistive-listening-systems:before { + content: "\f2a2" +} + +.fa-asterisk:before { + content: "\f069" +} + +.fa-asymmetrik:before { + content: "\f372" +} + +.fa-at:before { + content: "\f1fa" +} + +.fa-atlas:before { + content: "\f558" +} + +.fa-atlassian:before { + content: "\f77b" +} + +.fa-atom:before { + content: "\f5d2" +} + +.fa-audible:before { + content: "\f373" +} + +.fa-audio-description:before { + content: "\f29e" +} + +.fa-autoprefixer:before { + content: "\f41c" +} + +.fa-avianex:before { + content: "\f374" +} + +.fa-aviato:before { + content: "\f421" +} + +.fa-award:before { + content: "\f559" +} + +.fa-aws:before { + content: "\f375" +} + +.fa-baby:before { + content: "\f77c" +} + +.fa-baby-carriage:before { + content: "\f77d" +} + +.fa-backspace:before { + content: "\f55a" +} + +.fa-backward:before { + content: "\f04a" +} + +.fa-bacon:before { + content: "\f7e5" +} + +.fa-bacteria:before { + content: "\e059" +} + +.fa-bacterium:before { + content: "\e05a" +} + +.fa-bahai:before { + content: "\f666" +} + +.fa-balance-scale:before { + content: "\f24e" +} + +.fa-balance-scale-left:before { + content: "\f515" +} + +.fa-balance-scale-right:before { + content: "\f516" +} + +.fa-ban:before { + content: "\f05e" +} + +.fa-band-aid:before { + content: "\f462" +} + +.fa-bandcamp:before { + content: "\f2d5" +} + +.fa-barcode:before { + content: "\f02a" +} + +.fa-bars:before { + content: "\f0c9" +} + +.fa-baseball-ball:before { + content: "\f433" +} + +.fa-basketball-ball:before { + content: "\f434" +} + +.fa-bath:before { + content: "\f2cd" +} + +.fa-battery-empty:before { + content: "\f244" +} + +.fa-battery-full:before { + content: "\f240" +} + +.fa-battery-half:before { + content: "\f242" +} + +.fa-battery-quarter:before { + content: "\f243" +} + +.fa-battery-three-quarters:before { + content: "\f241" +} + +.fa-battle-net:before { + content: "\f835" +} + +.fa-bed:before { + content: "\f236" +} + +.fa-beer:before { + content: "\f0fc" +} + +.fa-behance:before { + content: "\f1b4" +} + +.fa-behance-square:before { + content: "\f1b5" +} + +.fa-bell:before { + content: "\f0f3" +} + +.fa-bell-slash:before { + content: "\f1f6" +} + +.fa-bezier-curve:before { + content: "\f55b" +} + +.fa-bible:before { + content: "\f647" +} + +.fa-bicycle:before { + content: "\f206" +} + +.fa-biking:before { + content: "\f84a" +} + +.fa-bimobject:before { + content: "\f378" +} + +.fa-binoculars:before { + content: "\f1e5" +} + +.fa-biohazard:before { + content: "\f780" +} + +.fa-birthday-cake:before { + content: "\f1fd" +} + +.fa-bitbucket:before { + content: "\f171" +} + +.fa-bitcoin:before { + content: "\f379" +} + +.fa-bity:before { + content: "\f37a" +} + +.fa-black-tie:before { + content: "\f27e" +} + +.fa-blackberry:before { + content: "\f37b" +} + +.fa-blender:before { + content: "\f517" +} + +.fa-blender-phone:before { + content: "\f6b6" +} + +.fa-blind:before { + content: "\f29d" +} + +.fa-blog:before { + content: "\f781" +} + +.fa-blogger:before { + content: "\f37c" +} + +.fa-blogger-b:before { + content: "\f37d" +} + +.fa-bluetooth:before { + content: "\f293" +} + +.fa-bluetooth-b:before { + content: "\f294" +} + +.fa-bold:before { + content: "\f032" +} + +.fa-bolt:before { + content: "\f0e7" +} + +.fa-bomb:before { + content: "\f1e2" +} + +.fa-bone:before { + content: "\f5d7" +} + +.fa-bong:before { + content: "\f55c" +} + +.fa-book:before { + content: "\f02d" +} + +.fa-book-dead:before { + content: "\f6b7" +} + +.fa-book-medical:before { + content: "\f7e6" +} + +.fa-book-open:before { + content: "\f518" +} + +.fa-book-reader:before { + content: "\f5da" +} + +.fa-bookmark:before { + content: "\f02e" +} + +.fa-bootstrap:before { + content: "\f836" +} + +.fa-border-all:before { + content: "\f84c" +} + +.fa-border-none:before { + content: "\f850" +} + +.fa-border-style:before { + content: "\f853" +} + +.fa-bowling-ball:before { + content: "\f436" +} + +.fa-box:before { + content: "\f466" +} + +.fa-box-open:before { + content: "\f49e" +} + +.fa-box-tissue:before { + content: "\e05b" +} + +.fa-boxes:before { + content: "\f468" +} + +.fa-braille:before { + content: "\f2a1" +} + +.fa-brain:before { + content: "\f5dc" +} + +.fa-bread-slice:before { + content: "\f7ec" +} + +.fa-briefcase:before { + content: "\f0b1" +} + +.fa-briefcase-medical:before { + content: "\f469" +} + +.fa-broadcast-tower:before { + content: "\f519" +} + +.fa-broom:before { + content: "\f51a" +} + +.fa-brush:before { + content: "\f55d" +} + +.fa-btc:before { + content: "\f15a" +} + +.fa-buffer:before { + content: "\f837" +} + +.fa-bug:before { + content: "\f188" +} + +.fa-building:before { + content: "\f1ad" +} + +.fa-bullhorn:before { + content: "\f0a1" +} + +.fa-bullseye:before { + content: "\f140" +} + +.fa-burn:before { + content: "\f46a" +} + +.fa-buromobelexperte:before { + content: "\f37f" +} + +.fa-bus:before { + content: "\f207" +} + +.fa-bus-alt:before { + content: "\f55e" +} + +.fa-business-time:before { + content: "\f64a" +} + +.fa-buy-n-large:before { + content: "\f8a6" +} + +.fa-buysellads:before { + content: "\f20d" +} + +.fa-calculator:before { + content: "\f1ec" +} + +.fa-calendar:before { + content: "\f133" +} + +.fa-calendar-alt:before { + content: "\f073" +} + +.fa-calendar-check:before { + content: "\f274" +} + +.fa-calendar-day:before { + content: "\f783" +} + +.fa-calendar-minus:before { + content: "\f272" +} + +.fa-calendar-plus:before { + content: "\f271" +} + +.fa-calendar-times:before { + content: "\f273" +} + +.fa-calendar-week:before { + content: "\f784" +} + +.fa-camera:before { + content: "\f030" +} + +.fa-camera-retro:before { + content: "\f083" +} + +.fa-campground:before { + content: "\f6bb" +} + +.fa-canadian-maple-leaf:before { + content: "\f785" +} + +.fa-candy-cane:before { + content: "\f786" +} + +.fa-cannabis:before { + content: "\f55f" +} + +.fa-capsules:before { + content: "\f46b" +} + +.fa-car:before { + content: "\f1b9" +} + +.fa-car-alt:before { + content: "\f5de" +} + +.fa-car-battery:before { + content: "\f5df" +} + +.fa-car-crash:before { + content: "\f5e1" +} + +.fa-car-side:before { + content: "\f5e4" +} + +.fa-caravan:before { + content: "\f8ff" +} + +.fa-caret-down:before { + content: "\f0d7" +} + +.fa-caret-left:before { + content: "\f0d9" +} + +.fa-caret-right:before { + content: "\f0da" +} + +.fa-caret-square-down:before { + content: "\f150" +} + +.fa-caret-square-left:before { + content: "\f191" +} + +.fa-caret-square-right:before { + content: "\f152" +} + +.fa-caret-square-up:before { + content: "\f151" +} + +.fa-caret-up:before { + content: "\f0d8" +} + +.fa-carrot:before { + content: "\f787" +} + +.fa-cart-arrow-down:before { + content: "\f218" +} + +.fa-cart-plus:before { + content: "\f217" +} + +.fa-cash-register:before { + content: "\f788" +} + +.fa-cat:before { + content: "\f6be" +} + +.fa-cc-amazon-pay:before { + content: "\f42d" +} + +.fa-cc-amex:before { + content: "\f1f3" +} + +.fa-cc-apple-pay:before { + content: "\f416" +} + +.fa-cc-diners-club:before { + content: "\f24c" +} + +.fa-cc-discover:before { + content: "\f1f2" +} + +.fa-cc-jcb:before { + content: "\f24b" +} + +.fa-cc-mastercard:before { + content: "\f1f1" +} + +.fa-cc-paypal:before { + content: "\f1f4" +} + +.fa-cc-stripe:before { + content: "\f1f5" +} + +.fa-cc-visa:before { + content: "\f1f0" +} + +.fa-centercode:before { + content: "\f380" +} + +.fa-centos:before { + content: "\f789" +} + +.fa-certificate:before { + content: "\f0a3" +} + +.fa-chair:before { + content: "\f6c0" +} + +.fa-chalkboard:before { + content: "\f51b" +} + +.fa-chalkboard-teacher:before { + content: "\f51c" +} + +.fa-charging-station:before { + content: "\f5e7" +} + +.fa-chart-area:before { + content: "\f1fe" +} + +.fa-chart-bar:before { + content: "\f080" +} + +.fa-chart-line:before { + content: "\f201" +} + +.fa-chart-pie:before { + content: "\f200" +} + +.fa-check:before { + content: "\f00c" +} + +.fa-check-circle:before { + content: "\f058" +} + +.fa-check-double:before { + content: "\f560" +} + +.fa-check-square:before { + content: "\f14a" +} + +.fa-cheese:before { + content: "\f7ef" +} + +.fa-chess:before { + content: "\f439" +} + +.fa-chess-bishop:before { + content: "\f43a" +} + +.fa-chess-board:before { + content: "\f43c" +} + +.fa-chess-king:before { + content: "\f43f" +} + +.fa-chess-knight:before { + content: "\f441" +} + +.fa-chess-pawn:before { + content: "\f443" +} + +.fa-chess-queen:before { + content: "\f445" +} + +.fa-chess-rook:before { + content: "\f447" +} + +.fa-chevron-circle-down:before { + content: "\f13a" +} + +.fa-chevron-circle-left:before { + content: "\f137" +} + +.fa-chevron-circle-right:before { + content: "\f138" +} + +.fa-chevron-circle-up:before { + content: "\f139" +} + +.fa-chevron-down:before { + content: "\f078" +} + +.fa-chevron-left:before { + content: "\f053" +} + +.fa-chevron-right:before { + content: "\f054" +} + +.fa-chevron-up:before { + content: "\f077" +} + +.fa-child:before { + content: "\f1ae" +} + +.fa-chrome:before { + content: "\f268" +} + +.fa-chromecast:before { + content: "\f838" +} + +.fa-church:before { + content: "\f51d" +} + +.fa-circle:before { + content: "\f111" +} + +.fa-circle-notch:before { + content: "\f1ce" +} + +.fa-city:before { + content: "\f64f" +} + +.fa-clinic-medical:before { + content: "\f7f2" +} + +.fa-clipboard:before { + content: "\f328" +} + +.fa-clipboard-check:before { + content: "\f46c" +} + +.fa-clipboard-list:before { + content: "\f46d" +} + +.fa-clock:before { + content: "\f017" +} + +.fa-clone:before { + content: "\f24d" +} + +.fa-closed-captioning:before { + content: "\f20a" +} + +.fa-cloud:before { + content: "\f0c2" +} + +.fa-cloud-download-alt:before { + content: "\f381" +} + +.fa-cloud-meatball:before { + content: "\f73b" +} + +.fa-cloud-moon:before { + content: "\f6c3" +} + +.fa-cloud-moon-rain:before { + content: "\f73c" +} + +.fa-cloud-rain:before { + content: "\f73d" +} + +.fa-cloud-showers-heavy:before { + content: "\f740" +} + +.fa-cloud-sun:before { + content: "\f6c4" +} + +.fa-cloud-sun-rain:before { + content: "\f743" +} + +.fa-cloud-upload-alt:before { + content: "\f382" +} + +.fa-cloudflare:before { + content: "\e07d" +} + +.fa-cloudscale:before { + content: "\f383" +} + +.fa-cloudsmith:before { + content: "\f384" +} + +.fa-cloudversify:before { + content: "\f385" +} + +.fa-cocktail:before { + content: "\f561" +} + +.fa-code:before { + content: "\f121" +} + +.fa-code-branch:before { + content: "\f126" +} + +.fa-codepen:before { + content: "\f1cb" +} + +.fa-codiepie:before { + content: "\f284" +} + +.fa-coffee:before { + content: "\f0f4" +} + +.fa-cog:before { + content: "\f013" +} + +.fa-cogs:before { + content: "\f085" +} + +.fa-coins:before { + content: "\f51e" +} + +.fa-columns:before { + content: "\f0db" +} + +.fa-comment:before { + content: "\f075" +} + +.fa-comment-alt:before { + content: "\f27a" +} + +.fa-comment-dollar:before { + content: "\f651" +} + +.fa-comment-dots:before { + content: "\f4ad" +} + +.fa-comment-medical:before { + content: "\f7f5" +} + +.fa-comment-slash:before { + content: "\f4b3" +} + +.fa-comments:before { + content: "\f086" +} + +.fa-comments-dollar:before { + content: "\f653" +} + +.fa-compact-disc:before { + content: "\f51f" +} + +.fa-compass:before { + content: "\f14e" +} + +.fa-compress:before { + content: "\f066" +} + +.fa-compress-alt:before { + content: "\f422" +} + +.fa-compress-arrows-alt:before { + content: "\f78c" +} + +.fa-concierge-bell:before { + content: "\f562" +} + +.fa-confluence:before { + content: "\f78d" +} + +.fa-connectdevelop:before { + content: "\f20e" +} + +.fa-contao:before { + content: "\f26d" +} + +.fa-cookie:before { + content: "\f563" +} + +.fa-cookie-bite:before { + content: "\f564" +} + +.fa-copy:before { + content: "\f0c5" +} + +.fa-copyright:before { + content: "\f1f9" +} + +.fa-cotton-bureau:before { + content: "\f89e" +} + +.fa-couch:before { + content: "\f4b8" +} + +.fa-cpanel:before { + content: "\f388" +} + +.fa-creative-commons:before { + content: "\f25e" +} + +.fa-creative-commons-by:before { + content: "\f4e7" +} + +.fa-creative-commons-nc:before { + content: "\f4e8" +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9" +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea" +} + +.fa-creative-commons-nd:before { + content: "\f4eb" +} + +.fa-creative-commons-pd:before { + content: "\f4ec" +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed" +} + +.fa-creative-commons-remix:before { + content: "\f4ee" +} + +.fa-creative-commons-sa:before { + content: "\f4ef" +} + +.fa-creative-commons-sampling:before { + content: "\f4f0" +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1" +} + +.fa-creative-commons-share:before { + content: "\f4f2" +} + +.fa-creative-commons-zero:before { + content: "\f4f3" +} + +.fa-credit-card:before { + content: "\f09d" +} + +.fa-critical-role:before { + content: "\f6c9" +} + +.fa-crop:before { + content: "\f125" +} + +.fa-crop-alt:before { + content: "\f565" +} + +.fa-cross:before { + content: "\f654" +} + +.fa-crosshairs:before { + content: "\f05b" +} + +.fa-crow:before { + content: "\f520" +} + +.fa-crown:before { + content: "\f521" +} + +.fa-crutch:before { + content: "\f7f7" +} + +.fa-css3:before { + content: "\f13c" +} + +.fa-css3-alt:before { + content: "\f38b" +} + +.fa-cube:before { + content: "\f1b2" +} + +.fa-cubes:before { + content: "\f1b3" +} + +.fa-cut:before { + content: "\f0c4" +} + +.fa-cuttlefish:before { + content: "\f38c" +} + +.fa-d-and-d:before { + content: "\f38d" +} + +.fa-d-and-d-beyond:before { + content: "\f6ca" +} + +.fa-dailymotion:before { + content: "\e052" +} + +.fa-dashcube:before { + content: "\f210" +} + +.fa-database:before { + content: "\f1c0" +} + +.fa-deaf:before { + content: "\f2a4" +} + +.fa-deezer:before { + content: "\e077" +} + +.fa-delicious:before { + content: "\f1a5" +} + +.fa-democrat:before { + content: "\f747" +} + +.fa-deploydog:before { + content: "\f38e" +} + +.fa-deskpro:before { + content: "\f38f" +} + +.fa-desktop:before { + content: "\f108" +} + +.fa-dev:before { + content: "\f6cc" +} + +.fa-deviantart:before { + content: "\f1bd" +} + +.fa-dharmachakra:before { + content: "\f655" +} + +.fa-dhl:before { + content: "\f790" +} + +.fa-diagnoses:before { + content: "\f470" +} + +.fa-diaspora:before { + content: "\f791" +} + +.fa-dice:before { + content: "\f522" +} + +.fa-dice-d20:before { + content: "\f6cf" +} + +.fa-dice-d6:before { + content: "\f6d1" +} + +.fa-dice-five:before { + content: "\f523" +} + +.fa-dice-four:before { + content: "\f524" +} + +.fa-dice-one:before { + content: "\f525" +} + +.fa-dice-six:before { + content: "\f526" +} + +.fa-dice-three:before { + content: "\f527" +} + +.fa-dice-two:before { + content: "\f528" +} + +.fa-digg:before { + content: "\f1a6" +} + +.fa-digital-ocean:before { + content: "\f391" +} + +.fa-digital-tachograph:before { + content: "\f566" +} + +.fa-directions:before { + content: "\f5eb" +} + +.fa-discord:before { + content: "\f392" +} + +.fa-discourse:before { + content: "\f393" +} + +.fa-disease:before { + content: "\f7fa" +} + +.fa-divide:before { + content: "\f529" +} + +.fa-dizzy:before { + content: "\f567" +} + +.fa-dna:before { + content: "\f471" +} + +.fa-dochub:before { + content: "\f394" +} + +.fa-docker:before { + content: "\f395" +} + +.fa-dog:before { + content: "\f6d3" +} + +.fa-dollar-sign:before { + content: "\f155" +} + +.fa-dolly:before { + content: "\f472" +} + +.fa-dolly-flatbed:before { + content: "\f474" +} + +.fa-donate:before { + content: "\f4b9" +} + +.fa-door-closed:before { + content: "\f52a" +} + +.fa-door-open:before { + content: "\f52b" +} + +.fa-dot-circle:before { + content: "\f192" +} + +.fa-dove:before { + content: "\f4ba" +} + +.fa-download:before { + content: "\f019" +} + +.fa-draft2digital:before { + content: "\f396" +} + +.fa-drafting-compass:before { + content: "\f568" +} + +.fa-dragon:before { + content: "\f6d5" +} + +.fa-draw-polygon:before { + content: "\f5ee" +} + +.fa-dribbble:before { + content: "\f17d" +} + +.fa-dribbble-square:before { + content: "\f397" +} + +.fa-dropbox:before { + content: "\f16b" +} + +.fa-drum:before { + content: "\f569" +} + +.fa-drum-steelpan:before { + content: "\f56a" +} + +.fa-drumstick-bite:before { + content: "\f6d7" +} + +.fa-drupal:before { + content: "\f1a9" +} + +.fa-dumbbell:before { + content: "\f44b" +} + +.fa-dumpster:before { + content: "\f793" +} + +.fa-dumpster-fire:before { + content: "\f794" +} + +.fa-dungeon:before { + content: "\f6d9" +} + +.fa-dyalog:before { + content: "\f399" +} + +.fa-earlybirds:before { + content: "\f39a" +} + +.fa-ebay:before { + content: "\f4f4" +} + +.fa-edge:before { + content: "\f282" +} + +.fa-edge-legacy:before { + content: "\e078" +} + +.fa-edit:before { + content: "\f044" +} + +.fa-egg:before { + content: "\f7fb" +} + +.fa-eject:before { + content: "\f052" +} + +.fa-elementor:before { + content: "\f430" +} + +.fa-ellipsis-h:before { + content: "\f141" +} + +.fa-ellipsis-v:before { + content: "\f142" +} + +.fa-ello:before { + content: "\f5f1" +} + +.fa-ember:before { + content: "\f423" +} + +.fa-empire:before { + content: "\f1d1" +} + +.fa-envelope:before { + content: "\f0e0" +} + +.fa-envelope-open:before { + content: "\f2b6" +} + +.fa-envelope-open-text:before { + content: "\f658" +} + +.fa-envelope-square:before { + content: "\f199" +} + +.fa-envira:before { + content: "\f299" +} + +.fa-equals:before { + content: "\f52c" +} + +.fa-eraser:before { + content: "\f12d" +} + +.fa-erlang:before { + content: "\f39d" +} + +.fa-ethereum:before { + content: "\f42e" +} + +.fa-ethernet:before { + content: "\f796" +} + +.fa-etsy:before { + content: "\f2d7" +} + +.fa-euro-sign:before { + content: "\f153" +} + +.fa-evernote:before { + content: "\f839" +} + +.fa-exchange-alt:before { + content: "\f362" +} + +.fa-exclamation:before { + content: "\f12a" +} + +.fa-exclamation-circle:before { + content: "\f06a" +} + +.fa-exclamation-triangle:before { + content: "\f071" +} + +.fa-expand:before { + content: "\f065" +} + +.fa-expand-alt:before { + content: "\f424" +} + +.fa-expand-arrows-alt:before { + content: "\f31e" +} + +.fa-expeditedssl:before { + content: "\f23e" +} + +.fa-external-link-alt:before { + content: "\f35d" +} + +.fa-external-link-square-alt:before { + content: "\f360" +} + +.fa-eye:before { + content: "\f06e" +} + +.fa-eye-dropper:before { + content: "\f1fb" +} + +.fa-eye-slash:before { + content: "\f070" +} + +.fa-facebook:before { + content: "\f09a" +} + +.fa-facebook-f:before { + content: "\f39e" +} + +.fa-facebook-messenger:before { + content: "\f39f" +} + +.fa-facebook-square:before { + content: "\f082" +} + +.fa-fan:before { + content: "\f863" +} + +.fa-fantasy-flight-games:before { + content: "\f6dc" +} + +.fa-fast-backward:before { + content: "\f049" +} + +.fa-fast-forward:before { + content: "\f050" +} + +.fa-faucet:before { + content: "\e005" +} + +.fa-fax:before { + content: "\f1ac" +} + +.fa-feather:before { + content: "\f52d" +} + +.fa-feather-alt:before { + content: "\f56b" +} + +.fa-fedex:before { + content: "\f797" +} + +.fa-fedora:before { + content: "\f798" +} + +.fa-female:before { + content: "\f182" +} + +.fa-fighter-jet:before { + content: "\f0fb" +} + +.fa-figma:before { + content: "\f799" +} + +.fa-file:before { + content: "\f15b" +} + +.fa-file-alt:before { + content: "\f15c" +} + +.fa-file-archive:before { + content: "\f1c6" +} + +.fa-file-audio:before { + content: "\f1c7" +} + +.fa-file-code:before { + content: "\f1c9" +} + +.fa-file-contract:before { + content: "\f56c" +} + +.fa-file-csv:before { + content: "\f6dd" +} + +.fa-file-download:before { + content: "\f56d" +} + +.fa-file-excel:before { + content: "\f1c3" +} + +.fa-file-export:before { + content: "\f56e" +} + +.fa-file-image:before { + content: "\f1c5" +} + +.fa-file-import:before { + content: "\f56f" +} + +.fa-file-invoice:before { + content: "\f570" +} + +.fa-file-invoice-dollar:before { + content: "\f571" +} + +.fa-file-medical:before { + content: "\f477" +} + +.fa-file-medical-alt:before { + content: "\f478" +} + +.fa-file-pdf:before { + content: "\f1c1" +} + +.fa-file-powerpoint:before { + content: "\f1c4" +} + +.fa-file-prescription:before { + content: "\f572" +} + +.fa-file-signature:before { + content: "\f573" +} + +.fa-file-upload:before { + content: "\f574" +} + +.fa-file-video:before { + content: "\f1c8" +} + +.fa-file-word:before { + content: "\f1c2" +} + +.fa-fill:before { + content: "\f575" +} + +.fa-fill-drip:before { + content: "\f576" +} + +.fa-film:before { + content: "\f008" +} + +.fa-filter:before { + content: "\f0b0" +} + +.fa-fingerprint:before { + content: "\f577" +} + +.fa-fire:before { + content: "\f06d" +} + +.fa-fire-alt:before { + content: "\f7e4" +} + +.fa-fire-extinguisher:before { + content: "\f134" +} + +.fa-firefox:before { + content: "\f269" +} + +.fa-firefox-browser:before { + content: "\e007" +} + +.fa-first-aid:before { + content: "\f479" +} + +.fa-first-order:before { + content: "\f2b0" +} + +.fa-first-order-alt:before { + content: "\f50a" +} + +.fa-firstdraft:before { + content: "\f3a1" +} + +.fa-fish:before { + content: "\f578" +} + +.fa-fist-raised:before { + content: "\f6de" +} + +.fa-flag:before { + content: "\f024" +} + +.fa-flag-checkered:before { + content: "\f11e" +} + +.fa-flag-usa:before { + content: "\f74d" +} + +.fa-flask:before { + content: "\f0c3" +} + +.fa-flickr:before { + content: "\f16e" +} + +.fa-flipboard:before { + content: "\f44d" +} + +.fa-flushed:before { + content: "\f579" +} + +.fa-fly:before { + content: "\f417" +} + +.fa-folder:before { + content: "\f07b" +} + +.fa-folder-minus:before { + content: "\f65d" +} + +.fa-folder-open:before { + content: "\f07c" +} + +.fa-folder-plus:before { + content: "\f65e" +} + +.fa-font:before { + content: "\f031" +} + +.fa-font-awesome:before { + content: "\f2b4" +} + +.fa-font-awesome-alt:before { + content: "\f35c" +} + +.fa-font-awesome-flag:before { + content: "\f425" +} + +.fa-font-awesome-logo-full:before { + content: "\f4e6" +} + +.fa-fonticons:before { + content: "\f280" +} + +.fa-fonticons-fi:before { + content: "\f3a2" +} + +.fa-football-ball:before { + content: "\f44e" +} + +.fa-fort-awesome:before { + content: "\f286" +} + +.fa-fort-awesome-alt:before { + content: "\f3a3" +} + +.fa-forumbee:before { + content: "\f211" +} + +.fa-forward:before { + content: "\f04e" +} + +.fa-foursquare:before { + content: "\f180" +} + +.fa-free-code-camp:before { + content: "\f2c5" +} + +.fa-freebsd:before { + content: "\f3a4" +} + +.fa-frog:before { + content: "\f52e" +} + +.fa-frown:before { + content: "\f119" +} + +.fa-frown-open:before { + content: "\f57a" +} + +.fa-fulcrum:before { + content: "\f50b" +} + +.fa-funnel-dollar:before { + content: "\f662" +} + +.fa-futbol:before { + content: "\f1e3" +} + +.fa-galactic-republic:before { + content: "\f50c" +} + +.fa-galactic-senate:before { + content: "\f50d" +} + +.fa-gamepad:before { + content: "\f11b" +} + +.fa-gas-pump:before { + content: "\f52f" +} + +.fa-gavel:before { + content: "\f0e3" +} + +.fa-gem:before { + content: "\f3a5" +} + +.fa-genderless:before { + content: "\f22d" +} + +.fa-get-pocket:before { + content: "\f265" +} + +.fa-gg:before { + content: "\f260" +} + +.fa-gg-circle:before { + content: "\f261" +} + +.fa-ghost:before { + content: "\f6e2" +} + +.fa-gift:before { + content: "\f06b" +} + +.fa-gifts:before { + content: "\f79c" +} + +.fa-git:before { + content: "\f1d3" +} + +.fa-git-alt:before { + content: "\f841" +} + +.fa-git-square:before { + content: "\f1d2" +} + +.fa-github:before { + content: "\f09b" +} + +.fa-github-alt:before { + content: "\f113" +} + +.fa-github-square:before { + content: "\f092" +} + +.fa-gitkraken:before { + content: "\f3a6" +} + +.fa-gitlab:before { + content: "\f296" +} + +.fa-gitter:before { + content: "\f426" +} + +.fa-glass-cheers:before { + content: "\f79f" +} + +.fa-glass-martini:before { + content: "\f000" +} + +.fa-glass-martini-alt:before { + content: "\f57b" +} + +.fa-glass-whiskey:before { + content: "\f7a0" +} + +.fa-glasses:before { + content: "\f530" +} + +.fa-glide:before { + content: "\f2a5" +} + +.fa-glide-g:before { + content: "\f2a6" +} + +.fa-globe:before { + content: "\f0ac" +} + +.fa-globe-africa:before { + content: "\f57c" +} + +.fa-globe-americas:before { + content: "\f57d" +} + +.fa-globe-asia:before { + content: "\f57e" +} + +.fa-globe-europe:before { + content: "\f7a2" +} + +.fa-gofore:before { + content: "\f3a7" +} + +.fa-golf-ball:before { + content: "\f450" +} + +.fa-goodreads:before { + content: "\f3a8" +} + +.fa-goodreads-g:before { + content: "\f3a9" +} + +.fa-google:before { + content: "\f1a0" +} + +.fa-google-drive:before { + content: "\f3aa" +} + +.fa-google-pay:before { + content: "\e079" +} + +.fa-google-play:before { + content: "\f3ab" +} + +.fa-google-plus:before { + content: "\f2b3" +} + +.fa-google-plus-g:before { + content: "\f0d5" +} + +.fa-google-plus-square:before { + content: "\f0d4" +} + +.fa-google-wallet:before { + content: "\f1ee" +} + +.fa-gopuram:before { + content: "\f664" +} + +.fa-graduation-cap:before { + content: "\f19d" +} + +.fa-gratipay:before { + content: "\f184" +} + +.fa-grav:before { + content: "\f2d6" +} + +.fa-greater-than:before { + content: "\f531" +} + +.fa-greater-than-equal:before { + content: "\f532" +} + +.fa-grimace:before { + content: "\f57f" +} + +.fa-grin:before { + content: "\f580" +} + +.fa-grin-alt:before { + content: "\f581" +} + +.fa-grin-beam:before { + content: "\f582" +} + +.fa-grin-beam-sweat:before { + content: "\f583" +} + +.fa-grin-hearts:before { + content: "\f584" +} + +.fa-grin-squint:before { + content: "\f585" +} + +.fa-grin-squint-tears:before { + content: "\f586" +} + +.fa-grin-stars:before { + content: "\f587" +} + +.fa-grin-tears:before { + content: "\f588" +} + +.fa-grin-tongue:before { + content: "\f589" +} + +.fa-grin-tongue-squint:before { + content: "\f58a" +} + +.fa-grin-tongue-wink:before { + content: "\f58b" +} + +.fa-grin-wink:before { + content: "\f58c" +} + +.fa-grip-horizontal:before { + content: "\f58d" +} + +.fa-grip-lines:before { + content: "\f7a4" +} + +.fa-grip-lines-vertical:before { + content: "\f7a5" +} + +.fa-grip-vertical:before { + content: "\f58e" +} + +.fa-gripfire:before { + content: "\f3ac" +} + +.fa-grunt:before { + content: "\f3ad" +} + +.fa-guilded:before { + content: "\e07e" +} + +.fa-guitar:before { + content: "\f7a6" +} + +.fa-gulp:before { + content: "\f3ae" +} + +.fa-h-square:before { + content: "\f0fd" +} + +.fa-hacker-news:before { + content: "\f1d4" +} + +.fa-hacker-news-square:before { + content: "\f3af" +} + +.fa-hackerrank:before { + content: "\f5f7" +} + +.fa-hamburger:before { + content: "\f805" +} + +.fa-hammer:before { + content: "\f6e3" +} + +.fa-hamsa:before { + content: "\f665" +} + +.fa-hand-holding:before { + content: "\f4bd" +} + +.fa-hand-holding-heart:before { + content: "\f4be" +} + +.fa-hand-holding-medical:before { + content: "\e05c" +} + +.fa-hand-holding-usd:before { + content: "\f4c0" +} + +.fa-hand-holding-water:before { + content: "\f4c1" +} + +.fa-hand-lizard:before { + content: "\f258" +} + +.fa-hand-middle-finger:before { + content: "\f806" +} + +.fa-hand-paper:before { + content: "\f256" +} + +.fa-hand-peace:before { + content: "\f25b" +} + +.fa-hand-point-down:before { + content: "\f0a7" +} + +.fa-hand-point-left:before { + content: "\f0a5" +} + +.fa-hand-point-right:before { + content: "\f0a4" +} + +.fa-hand-point-up:before { + content: "\f0a6" +} + +.fa-hand-pointer:before { + content: "\f25a" +} + +.fa-hand-rock:before { + content: "\f255" +} + +.fa-hand-scissors:before { + content: "\f257" +} + +.fa-hand-sparkles:before { + content: "\e05d" +} + +.fa-hand-spock:before { + content: "\f259" +} + +.fa-hands:before { + content: "\f4c2" +} + +.fa-hands-helping:before { + content: "\f4c4" +} + +.fa-hands-wash:before { + content: "\e05e" +} + +.fa-handshake:before { + content: "\f2b5" +} + +.fa-handshake-alt-slash:before { + content: "\e05f" +} + +.fa-handshake-slash:before { + content: "\e060" +} + +.fa-hanukiah:before { + content: "\f6e6" +} + +.fa-hard-hat:before { + content: "\f807" +} + +.fa-hashtag:before { + content: "\f292" +} + +.fa-hat-cowboy:before { + content: "\f8c0" +} + +.fa-hat-cowboy-side:before { + content: "\f8c1" +} + +.fa-hat-wizard:before { + content: "\f6e8" +} + +.fa-hdd:before { + content: "\f0a0" +} + +.fa-head-side-cough:before { + content: "\e061" +} + +.fa-head-side-cough-slash:before { + content: "\e062" +} + +.fa-head-side-mask:before { + content: "\e063" +} + +.fa-head-side-virus:before { + content: "\e064" +} + +.fa-heading:before { + content: "\f1dc" +} + +.fa-headphones:before { + content: "\f025" +} + +.fa-headphones-alt:before { + content: "\f58f" +} + +.fa-headset:before { + content: "\f590" +} + +.fa-heart:before { + content: "\f004" +} + +.fa-heart-broken:before { + content: "\f7a9" +} + +.fa-heartbeat:before { + content: "\f21e" +} + +.fa-helicopter:before { + content: "\f533" +} + +.fa-highlighter:before { + content: "\f591" +} + +.fa-hiking:before { + content: "\f6ec" +} + +.fa-hippo:before { + content: "\f6ed" +} + +.fa-hips:before { + content: "\f452" +} + +.fa-hire-a-helper:before { + content: "\f3b0" +} + +.fa-history:before { + content: "\f1da" +} + +.fa-hive:before { + content: "\e07f" +} + +.fa-hockey-puck:before { + content: "\f453" +} + +.fa-holly-berry:before { + content: "\f7aa" +} + +.fa-home:before { + content: "\f015" +} + +.fa-hooli:before { + content: "\f427" +} + +.fa-hornbill:before { + content: "\f592" +} + +.fa-horse:before { + content: "\f6f0" +} + +.fa-horse-head:before { + content: "\f7ab" +} + +.fa-hospital:before { + content: "\f0f8" +} + +.fa-hospital-alt:before { + content: "\f47d" +} + +.fa-hospital-symbol:before { + content: "\f47e" +} + +.fa-hospital-user:before { + content: "\f80d" +} + +.fa-hot-tub:before { + content: "\f593" +} + +.fa-hotdog:before { + content: "\f80f" +} + +.fa-hotel:before { + content: "\f594" +} + +.fa-hotjar:before { + content: "\f3b1" +} + +.fa-hourglass:before { + content: "\f254" +} + +.fa-hourglass-end:before { + content: "\f253" +} + +.fa-hourglass-half:before { + content: "\f252" +} + +.fa-hourglass-start:before { + content: "\f251" +} + +.fa-house-damage:before { + content: "\f6f1" +} + +.fa-house-user:before { + content: "\e065" +} + +.fa-houzz:before { + content: "\f27c" +} + +.fa-hryvnia:before { + content: "\f6f2" +} + +.fa-html5:before { + content: "\f13b" +} + +.fa-hubspot:before { + content: "\f3b2" +} + +.fa-i-cursor:before { + content: "\f246" +} + +.fa-ice-cream:before { + content: "\f810" +} + +.fa-icicles:before { + content: "\f7ad" +} + +.fa-icons:before { + content: "\f86d" +} + +.fa-id-badge:before { + content: "\f2c1" +} + +.fa-id-card:before { + content: "\f2c2" +} + +.fa-id-card-alt:before { + content: "\f47f" +} + +.fa-ideal:before { + content: "\e013" +} + +.fa-igloo:before { + content: "\f7ae" +} + +.fa-image:before { + content: "\f03e" +} + +.fa-images:before { + content: "\f302" +} + +.fa-imdb:before { + content: "\f2d8" +} + +.fa-inbox:before { + content: "\f01c" +} + +.fa-indent:before { + content: "\f03c" +} + +.fa-industry:before { + content: "\f275" +} + +.fa-infinity:before { + content: "\f534" +} + +.fa-info:before { + content: "\f129" +} + +.fa-info-circle:before { + content: "\f05a" +} + +.fa-innosoft:before { + content: "\e080" +} + +.fa-instagram:before { + content: "\f16d" +} + +.fa-instagram-square:before { + content: "\e055" +} + +.fa-instalod:before { + content: "\e081" +} + +.fa-intercom:before { + content: "\f7af" +} + +.fa-internet-explorer:before { + content: "\f26b" +} + +.fa-invision:before { + content: "\f7b0" +} + +.fa-ioxhost:before { + content: "\f208" +} + +.fa-italic:before { + content: "\f033" +} + +.fa-itch-io:before { + content: "\f83a" +} + +.fa-itunes:before { + content: "\f3b4" +} + +.fa-itunes-note:before { + content: "\f3b5" +} + +.fa-java:before { + content: "\f4e4" +} + +.fa-jedi:before { + content: "\f669" +} + +.fa-jedi-order:before { + content: "\f50e" +} + +.fa-jenkins:before { + content: "\f3b6" +} + +.fa-jira:before { + content: "\f7b1" +} + +.fa-joget:before { + content: "\f3b7" +} + +.fa-joint:before { + content: "\f595" +} + +.fa-joomla:before { + content: "\f1aa" +} + +.fa-journal-whills:before { + content: "\f66a" +} + +.fa-js:before { + content: "\f3b8" +} + +.fa-js-square:before { + content: "\f3b9" +} + +.fa-jsfiddle:before { + content: "\f1cc" +} + +.fa-kaaba:before { + content: "\f66b" +} + +.fa-kaggle:before { + content: "\f5fa" +} + +.fa-key:before { + content: "\f084" +} + +.fa-keybase:before { + content: "\f4f5" +} + +.fa-keyboard:before { + content: "\f11c" +} + +.fa-keycdn:before { + content: "\f3ba" +} + +.fa-khanda:before { + content: "\f66d" +} + +.fa-kickstarter:before { + content: "\f3bb" +} + +.fa-kickstarter-k:before { + content: "\f3bc" +} + +.fa-kiss:before { + content: "\f596" +} + +.fa-kiss-beam:before { + content: "\f597" +} + +.fa-kiss-wink-heart:before { + content: "\f598" +} + +.fa-kiwi-bird:before { + content: "\f535" +} + +.fa-korvue:before { + content: "\f42f" +} + +.fa-landmark:before { + content: "\f66f" +} + +.fa-language:before { + content: "\f1ab" +} + +.fa-laptop:before { + content: "\f109" +} + +.fa-laptop-code:before { + content: "\f5fc" +} + +.fa-laptop-house:before { + content: "\e066" +} + +.fa-laptop-medical:before { + content: "\f812" +} + +.fa-laravel:before { + content: "\f3bd" +} + +.fa-lastfm:before { + content: "\f202" +} + +.fa-lastfm-square:before { + content: "\f203" +} + +.fa-laugh:before { + content: "\f599" +} + +.fa-laugh-beam:before { + content: "\f59a" +} + +.fa-laugh-squint:before { + content: "\f59b" +} + +.fa-laugh-wink:before { + content: "\f59c" +} + +.fa-layer-group:before { + content: "\f5fd" +} + +.fa-leaf:before { + content: "\f06c" +} + +.fa-leanpub:before { + content: "\f212" +} + +.fa-lemon:before { + content: "\f094" +} + +.fa-less:before { + content: "\f41d" +} + +.fa-less-than:before { + content: "\f536" +} + +.fa-less-than-equal:before { + content: "\f537" +} + +.fa-level-down-alt:before { + content: "\f3be" +} + +.fa-level-up-alt:before { + content: "\f3bf" +} + +.fa-life-ring:before { + content: "\f1cd" +} + +.fa-lightbulb:before { + content: "\f0eb" +} + +.fa-line:before { + content: "\f3c0" +} + +.fa-link:before { + content: "\f0c1" +} + +.fa-linkedin:before { + content: "\f08c" +} + +.fa-linkedin-in:before { + content: "\f0e1" +} + +.fa-linode:before { + content: "\f2b8" +} + +.fa-linux:before { + content: "\f17c" +} + +.fa-lira-sign:before { + content: "\f195" +} + +.fa-list:before { + content: "\f03a" +} + +.fa-list-alt:before { + content: "\f022" +} + +.fa-list-ol:before { + content: "\f0cb" +} + +.fa-list-ul:before { + content: "\f0ca" +} + +.fa-location-arrow:before { + content: "\f124" +} + +.fa-lock:before { + content: "\f023" +} + +.fa-lock-open:before { + content: "\f3c1" +} + +.fa-long-arrow-alt-down:before { + content: "\f309" +} + +.fa-long-arrow-alt-left:before { + content: "\f30a" +} + +.fa-long-arrow-alt-right:before { + content: "\f30b" +} + +.fa-long-arrow-alt-up:before { + content: "\f30c" +} + +.fa-low-vision:before { + content: "\f2a8" +} + +.fa-luggage-cart:before { + content: "\f59d" +} + +.fa-lungs:before { + content: "\f604" +} + +.fa-lungs-virus:before { + content: "\e067" +} + +.fa-lyft:before { + content: "\f3c3" +} + +.fa-magento:before { + content: "\f3c4" +} + +.fa-magic:before { + content: "\f0d0" +} + +.fa-magnet:before { + content: "\f076" +} + +.fa-mail-bulk:before { + content: "\f674" +} + +.fa-mailchimp:before { + content: "\f59e" +} + +.fa-male:before { + content: "\f183" +} + +.fa-mandalorian:before { + content: "\f50f" +} + +.fa-map:before { + content: "\f279" +} + +.fa-map-marked:before { + content: "\f59f" +} + +.fa-map-marked-alt:before { + content: "\f5a0" +} + +.fa-map-marker:before { + content: "\f041" +} + +.fa-map-marker-alt:before { + content: "\f3c5" +} + +.fa-map-pin:before { + content: "\f276" +} + +.fa-map-signs:before { + content: "\f277" +} + +.fa-markdown:before { + content: "\f60f" +} + +.fa-marker:before { + content: "\f5a1" +} + +.fa-mars:before { + content: "\f222" +} + +.fa-mars-double:before { + content: "\f227" +} + +.fa-mars-stroke:before { + content: "\f229" +} + +.fa-mars-stroke-h:before { + content: "\f22b" +} + +.fa-mars-stroke-v:before { + content: "\f22a" +} + +.fa-mask:before { + content: "\f6fa" +} + +.fa-mastodon:before { + content: "\f4f6" +} + +.fa-maxcdn:before { + content: "\f136" +} + +.fa-mdb:before { + content: "\f8ca" +} + +.fa-medal:before { + content: "\f5a2" +} + +.fa-medapps:before { + content: "\f3c6" +} + +.fa-medium:before { + content: "\f23a" +} + +.fa-medium-m:before { + content: "\f3c7" +} + +.fa-medkit:before { + content: "\f0fa" +} + +.fa-medrt:before { + content: "\f3c8" +} + +.fa-meetup:before { + content: "\f2e0" +} + +.fa-megaport:before { + content: "\f5a3" +} + +.fa-meh:before { + content: "\f11a" +} + +.fa-meh-blank:before { + content: "\f5a4" +} + +.fa-meh-rolling-eyes:before { + content: "\f5a5" +} + +.fa-memory:before { + content: "\f538" +} + +.fa-mendeley:before { + content: "\f7b3" +} + +.fa-menorah:before { + content: "\f676" +} + +.fa-mercury:before { + content: "\f223" +} + +.fa-meteor:before { + content: "\f753" +} + +.fa-microblog:before { + content: "\e01a" +} + +.fa-microchip:before { + content: "\f2db" +} + +.fa-microphone:before { + content: "\f130" +} + +.fa-microphone-alt:before { + content: "\f3c9" +} + +.fa-microphone-alt-slash:before { + content: "\f539" +} + +.fa-microphone-slash:before { + content: "\f131" +} + +.fa-microscope:before { + content: "\f610" +} + +.fa-microsoft:before { + content: "\f3ca" +} + +.fa-minus:before { + content: "\f068" +} + +.fa-minus-circle:before { + content: "\f056" +} + +.fa-minus-square:before { + content: "\f146" +} + +.fa-mitten:before { + content: "\f7b5" +} + +.fa-mix:before { + content: "\f3cb" +} + +.fa-mixcloud:before { + content: "\f289" +} + +.fa-mixer:before { + content: "\e056" +} + +.fa-mizuni:before { + content: "\f3cc" +} + +.fa-mobile:before { + content: "\f10b" +} + +.fa-mobile-alt:before { + content: "\f3cd" +} + +.fa-modx:before { + content: "\f285" +} + +.fa-monero:before { + content: "\f3d0" +} + +.fa-money-bill:before { + content: "\f0d6" +} + +.fa-money-bill-alt:before { + content: "\f3d1" +} + +.fa-money-bill-wave:before { + content: "\f53a" +} + +.fa-money-bill-wave-alt:before { + content: "\f53b" +} + +.fa-money-check:before { + content: "\f53c" +} + +.fa-money-check-alt:before { + content: "\f53d" +} + +.fa-monument:before { + content: "\f5a6" +} + +.fa-moon:before { + content: "\f186" +} + +.fa-mortar-pestle:before { + content: "\f5a7" +} + +.fa-mosque:before { + content: "\f678" +} + +.fa-motorcycle:before { + content: "\f21c" +} + +.fa-mountain:before { + content: "\f6fc" +} + +.fa-mouse:before { + content: "\f8cc" +} + +.fa-mouse-pointer:before { + content: "\f245" +} + +.fa-mug-hot:before { + content: "\f7b6" +} + +.fa-music:before { + content: "\f001" +} + +.fa-napster:before { + content: "\f3d2" +} + +.fa-neos:before { + content: "\f612" +} + +.fa-network-wired:before { + content: "\f6ff" +} + +.fa-neuter:before { + content: "\f22c" +} + +.fa-newspaper:before { + content: "\f1ea" +} + +.fa-nimblr:before { + content: "\f5a8" +} + +.fa-node:before { + content: "\f419" +} + +.fa-node-js:before { + content: "\f3d3" +} + +.fa-not-equal:before { + content: "\f53e" +} + +.fa-notes-medical:before { + content: "\f481" +} + +.fa-npm:before { + content: "\f3d4" +} + +.fa-ns8:before { + content: "\f3d5" +} + +.fa-nutritionix:before { + content: "\f3d6" +} + +.fa-object-group:before { + content: "\f247" +} + +.fa-object-ungroup:before { + content: "\f248" +} + +.fa-octopus-deploy:before { + content: "\e082" +} + +.fa-odnoklassniki:before { + content: "\f263" +} + +.fa-odnoklassniki-square:before { + content: "\f264" +} + +.fa-oil-can:before { + content: "\f613" +} + +.fa-old-republic:before { + content: "\f510" +} + +.fa-om:before { + content: "\f679" +} + +.fa-opencart:before { + content: "\f23d" +} + +.fa-openid:before { + content: "\f19b" +} + +.fa-opera:before { + content: "\f26a" +} + +.fa-optin-monster:before { + content: "\f23c" +} + +.fa-orcid:before { + content: "\f8d2" +} + +.fa-osi:before { + content: "\f41a" +} + +.fa-otter:before { + content: "\f700" +} + +.fa-outdent:before { + content: "\f03b" +} + +.fa-page4:before { + content: "\f3d7" +} + +.fa-pagelines:before { + content: "\f18c" +} + +.fa-pager:before { + content: "\f815" +} + +.fa-paint-brush:before { + content: "\f1fc" +} + +.fa-paint-roller:before { + content: "\f5aa" +} + +.fa-palette:before { + content: "\f53f" +} + +.fa-palfed:before { + content: "\f3d8" +} + +.fa-pallet:before { + content: "\f482" +} + +.fa-paper-plane:before { + content: "\f1d8" +} + +.fa-paperclip:before { + content: "\f0c6" +} + +.fa-parachute-box:before { + content: "\f4cd" +} + +.fa-paragraph:before { + content: "\f1dd" +} + +.fa-parking:before { + content: "\f540" +} + +.fa-passport:before { + content: "\f5ab" +} + +.fa-pastafarianism:before { + content: "\f67b" +} + +.fa-paste:before { + content: "\f0ea" +} + +.fa-patreon:before { + content: "\f3d9" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-pause-circle:before { + content: "\f28b" +} + +.fa-paw:before { + content: "\f1b0" +} + +.fa-paypal:before { + content: "\f1ed" +} + +.fa-peace:before { + content: "\f67c" +} + +.fa-pen:before { + content: "\f304" +} + +.fa-pen-alt:before { + content: "\f305" +} + +.fa-pen-fancy:before { + content: "\f5ac" +} + +.fa-pen-nib:before { + content: "\f5ad" +} + +.fa-pen-square:before { + content: "\f14b" +} + +.fa-pencil-alt:before { + content: "\f303" +} + +.fa-pencil-ruler:before { + content: "\f5ae" +} + +.fa-penny-arcade:before { + content: "\f704" +} + +.fa-people-arrows:before { + content: "\e068" +} + +.fa-people-carry:before { + content: "\f4ce" +} + +.fa-pepper-hot:before { + content: "\f816" +} + +.fa-perbyte:before { + content: "\e083" +} + +.fa-percent:before { + content: "\f295" +} + +.fa-percentage:before { + content: "\f541" +} + +.fa-periscope:before { + content: "\f3da" +} + +.fa-person-booth:before { + content: "\f756" +} + +.fa-phabricator:before { + content: "\f3db" +} + +.fa-phoenix-framework:before { + content: "\f3dc" +} + +.fa-phoenix-squadron:before { + content: "\f511" +} + +.fa-phone:before { + content: "\f095" +} + +.fa-phone-alt:before { + content: "\f879" +} + +.fa-phone-slash:before { + content: "\f3dd" +} + +.fa-phone-square:before { + content: "\f098" +} + +.fa-phone-square-alt:before { + content: "\f87b" +} + +.fa-phone-volume:before { + content: "\f2a0" +} + +.fa-photo-video:before { + content: "\f87c" +} + +.fa-php:before { + content: "\f457" +} + +.fa-pied-piper:before { + content: "\f2ae" +} + +.fa-pied-piper-alt:before { + content: "\f1a8" +} + +.fa-pied-piper-hat:before { + content: "\f4e5" +} + +.fa-pied-piper-pp:before { + content: "\f1a7" +} + +.fa-pied-piper-square:before { + content: "\e01e" +} + +.fa-piggy-bank:before { + content: "\f4d3" +} + +.fa-pills:before { + content: "\f484" +} + +.fa-pinterest:before { + content: "\f0d2" +} + +.fa-pinterest-p:before { + content: "\f231" +} + +.fa-pinterest-square:before { + content: "\f0d3" +} + +.fa-pizza-slice:before { + content: "\f818" +} + +.fa-place-of-worship:before { + content: "\f67f" +} + +.fa-plane:before { + content: "\f072" +} + +.fa-plane-arrival:before { + content: "\f5af" +} + +.fa-plane-departure:before { + content: "\f5b0" +} + +.fa-plane-slash:before { + content: "\e069" +} + +.fa-play:before { + content: "\f04b" +} + +.fa-play-circle:before { + content: "\f144" +} + +.fa-playstation:before { + content: "\f3df" +} + +.fa-plug:before { + content: "\f1e6" +} + +.fa-plus:before { + content: "\f067" +} + +.fa-plus-circle:before { + content: "\f055" +} + +.fa-plus-square:before { + content: "\f0fe" +} + +.fa-podcast:before { + content: "\f2ce" +} + +.fa-poll:before { + content: "\f681" +} + +.fa-poll-h:before { + content: "\f682" +} + +.fa-poo:before { + content: "\f2fe" +} + +.fa-poo-storm:before { + content: "\f75a" +} + +.fa-poop:before { + content: "\f619" +} + +.fa-portrait:before { + content: "\f3e0" +} + +.fa-pound-sign:before { + content: "\f154" +} + +.fa-power-off:before { + content: "\f011" +} + +.fa-pray:before { + content: "\f683" +} + +.fa-praying-hands:before { + content: "\f684" +} + +.fa-prescription:before { + content: "\f5b1" +} + +.fa-prescription-bottle:before { + content: "\f485" +} + +.fa-prescription-bottle-alt:before { + content: "\f486" +} + +.fa-print:before { + content: "\f02f" +} + +.fa-procedures:before { + content: "\f487" +} + +.fa-product-hunt:before { + content: "\f288" +} + +.fa-project-diagram:before { + content: "\f542" +} + +.fa-pump-medical:before { + content: "\e06a" +} + +.fa-pump-soap:before { + content: "\e06b" +} + +.fa-pushed:before { + content: "\f3e1" +} + +.fa-puzzle-piece:before { + content: "\f12e" +} + +.fa-python:before { + content: "\f3e2" +} + +.fa-qq:before { + content: "\f1d6" +} + +.fa-qrcode:before { + content: "\f029" +} + +.fa-question:before { + content: "\f128" +} + +.fa-question-circle:before { + content: "\f059" +} + +.fa-quidditch:before { + content: "\f458" +} + +.fa-quinscape:before { + content: "\f459" +} + +.fa-quora:before { + content: "\f2c4" +} + +.fa-quote-left:before { + content: "\f10d" +} + +.fa-quote-right:before { + content: "\f10e" +} + +.fa-quran:before { + content: "\f687" +} + +.fa-r-project:before { + content: "\f4f7" +} + +.fa-radiation:before { + content: "\f7b9" +} + +.fa-radiation-alt:before { + content: "\f7ba" +} + +.fa-rainbow:before { + content: "\f75b" +} + +.fa-random:before { + content: "\f074" +} + +.fa-raspberry-pi:before { + content: "\f7bb" +} + +.fa-ravelry:before { + content: "\f2d9" +} + +.fa-react:before { + content: "\f41b" +} + +.fa-reacteurope:before { + content: "\f75d" +} + +.fa-readme:before { + content: "\f4d5" +} + +.fa-rebel:before { + content: "\f1d0" +} + +.fa-receipt:before { + content: "\f543" +} + +.fa-record-vinyl:before { + content: "\f8d9" +} + +.fa-recycle:before { + content: "\f1b8" +} + +.fa-red-river:before { + content: "\f3e3" +} + +.fa-reddit:before { + content: "\f1a1" +} + +.fa-reddit-alien:before { + content: "\f281" +} + +.fa-reddit-square:before { + content: "\f1a2" +} + +.fa-redhat:before { + content: "\f7bc" +} + +.fa-redo:before { + content: "\f01e" +} + +.fa-redo-alt:before { + content: "\f2f9" +} + +.fa-registered:before { + content: "\f25d" +} + +.fa-remove-format:before { + content: "\f87d" +} + +.fa-renren:before { + content: "\f18b" +} + +.fa-reply:before { + content: "\f3e5" +} + +.fa-reply-all:before { + content: "\f122" +} + +.fa-replyd:before { + content: "\f3e6" +} + +.fa-republican:before { + content: "\f75e" +} + +.fa-researchgate:before { + content: "\f4f8" +} + +.fa-resolving:before { + content: "\f3e7" +} + +.fa-restroom:before { + content: "\f7bd" +} + +.fa-retweet:before { + content: "\f079" +} + +.fa-rev:before { + content: "\f5b2" +} + +.fa-ribbon:before { + content: "\f4d6" +} + +.fa-ring:before { + content: "\f70b" +} + +.fa-road:before { + content: "\f018" +} + +.fa-robot:before { + content: "\f544" +} + +.fa-rocket:before { + content: "\f135" +} + +.fa-rocketchat:before { + content: "\f3e8" +} + +.fa-rockrms:before { + content: "\f3e9" +} + +.fa-route:before { + content: "\f4d7" +} + +.fa-rss:before { + content: "\f09e" +} + +.fa-rss-square:before { + content: "\f143" +} + +.fa-ruble-sign:before { + content: "\f158" +} + +.fa-ruler:before { + content: "\f545" +} + +.fa-ruler-combined:before { + content: "\f546" +} + +.fa-ruler-horizontal:before { + content: "\f547" +} + +.fa-ruler-vertical:before { + content: "\f548" +} + +.fa-running:before { + content: "\f70c" +} + +.fa-rupee-sign:before { + content: "\f156" +} + +.fa-rust:before { + content: "\e07a" +} + +.fa-sad-cry:before { + content: "\f5b3" +} + +.fa-sad-tear:before { + content: "\f5b4" +} + +.fa-safari:before { + content: "\f267" +} + +.fa-salesforce:before { + content: "\f83b" +} + +.fa-sass:before { + content: "\f41e" +} + +.fa-satellite:before { + content: "\f7bf" +} + +.fa-satellite-dish:before { + content: "\f7c0" +} + +.fa-save:before { + content: "\f0c7" +} + +.fa-schlix:before { + content: "\f3ea" +} + +.fa-school:before { + content: "\f549" +} + +.fa-screwdriver:before { + content: "\f54a" +} + +.fa-scribd:before { + content: "\f28a" +} + +.fa-scroll:before { + content: "\f70e" +} + +.fa-sd-card:before { + content: "\f7c2" +} + +.fa-search:before { + content: "\f002" +} + +.fa-search-dollar:before { + content: "\f688" +} + +.fa-search-location:before { + content: "\f689" +} + +.fa-search-minus:before { + content: "\f010" +} + +.fa-search-plus:before { + content: "\f00e" +} + +.fa-searchengin:before { + content: "\f3eb" +} + +.fa-seedling:before { + content: "\f4d8" +} + +.fa-sellcast:before { + content: "\f2da" +} + +.fa-sellsy:before { + content: "\f213" +} + +.fa-server:before { + content: "\f233" +} + +.fa-servicestack:before { + content: "\f3ec" +} + +.fa-shapes:before { + content: "\f61f" +} + +.fa-share:before { + content: "\f064" +} + +.fa-share-alt:before { + content: "\f1e0" +} + +.fa-share-alt-square:before { + content: "\f1e1" +} + +.fa-share-square:before { + content: "\f14d" +} + +.fa-shekel-sign:before { + content: "\f20b" +} + +.fa-shield-alt:before { + content: "\f3ed" +} + +.fa-shield-virus:before { + content: "\e06c" +} + +.fa-ship:before { + content: "\f21a" +} + +.fa-shipping-fast:before { + content: "\f48b" +} + +.fa-shirtsinbulk:before { + content: "\f214" +} + +.fa-shoe-prints:before { + content: "\f54b" +} + +.fa-shopify:before { + content: "\e057" +} + +.fa-shopping-bag:before { + content: "\f290" +} + +.fa-shopping-basket:before { + content: "\f291" +} + +.fa-shopping-cart:before { + content: "\f07a" +} + +.fa-shopware:before { + content: "\f5b5" +} + +.fa-shower:before { + content: "\f2cc" +} + +.fa-shuttle-van:before { + content: "\f5b6" +} + +.fa-sign:before { + content: "\f4d9" +} + +.fa-sign-in-alt:before { + content: "\f2f6" +} + +.fa-sign-language:before { + content: "\f2a7" +} + +.fa-sign-out-alt:before { + content: "\f2f5" +} + +.fa-signal:before { + content: "\f012" +} + +.fa-signature:before { + content: "\f5b7" +} + +.fa-sim-card:before { + content: "\f7c4" +} + +.fa-simplybuilt:before { + content: "\f215" +} + +.fa-sink:before { + content: "\e06d" +} + +.fa-sistrix:before { + content: "\f3ee" +} + +.fa-sitemap:before { + content: "\f0e8" +} + +.fa-sith:before { + content: "\f512" +} + +.fa-skating:before { + content: "\f7c5" +} + +.fa-sketch:before { + content: "\f7c6" +} + +.fa-skiing:before { + content: "\f7c9" +} + +.fa-skiing-nordic:before { + content: "\f7ca" +} + +.fa-skull:before { + content: "\f54c" +} + +.fa-skull-crossbones:before { + content: "\f714" +} + +.fa-skyatlas:before { + content: "\f216" +} + +.fa-skype:before { + content: "\f17e" +} + +.fa-slack:before { + content: "\f198" +} + +.fa-slack-hash:before { + content: "\f3ef" +} + +.fa-slash:before { + content: "\f715" +} + +.fa-sleigh:before { + content: "\f7cc" +} + +.fa-sliders-h:before { + content: "\f1de" +} + +.fa-slideshare:before { + content: "\f1e7" +} + +.fa-smile:before { + content: "\f118" +} + +.fa-smile-beam:before { + content: "\f5b8" +} + +.fa-smile-wink:before { + content: "\f4da" +} + +.fa-smog:before { + content: "\f75f" +} + +.fa-smoking:before { + content: "\f48d" +} + +.fa-smoking-ban:before { + content: "\f54d" +} + +.fa-sms:before { + content: "\f7cd" +} + +.fa-snapchat:before { + content: "\f2ab" +} + +.fa-snapchat-ghost:before { + content: "\f2ac" +} + +.fa-snapchat-square:before { + content: "\f2ad" +} + +.fa-snowboarding:before { + content: "\f7ce" +} + +.fa-snowflake:before { + content: "\f2dc" +} + +.fa-snowman:before { + content: "\f7d0" +} + +.fa-snowplow:before { + content: "\f7d2" +} + +.fa-soap:before { + content: "\e06e" +} + +.fa-socks:before { + content: "\f696" +} + +.fa-solar-panel:before { + content: "\f5ba" +} + +.fa-sort:before { + content: "\f0dc" +} + +.fa-sort-alpha-down:before { + content: "\f15d" +} + +.fa-sort-alpha-down-alt:before { + content: "\f881" +} + +.fa-sort-alpha-up:before { + content: "\f15e" +} + +.fa-sort-alpha-up-alt:before { + content: "\f882" +} + +.fa-sort-amount-down:before { + content: "\f160" +} + +.fa-sort-amount-down-alt:before { + content: "\f884" +} + +.fa-sort-amount-up:before { + content: "\f161" +} + +.fa-sort-amount-up-alt:before { + content: "\f885" +} + +.fa-sort-down:before { + content: "\f0dd" +} + +.fa-sort-numeric-down:before { + content: "\f162" +} + +.fa-sort-numeric-down-alt:before { + content: "\f886" +} + +.fa-sort-numeric-up:before { + content: "\f163" +} + +.fa-sort-numeric-up-alt:before { + content: "\f887" +} + +.fa-sort-up:before { + content: "\f0de" +} + +.fa-soundcloud:before { + content: "\f1be" +} + +.fa-sourcetree:before { + content: "\f7d3" +} + +.fa-spa:before { + content: "\f5bb" +} + +.fa-space-shuttle:before { + content: "\f197" +} + +.fa-speakap:before { + content: "\f3f3" +} + +.fa-speaker-deck:before { + content: "\f83c" +} + +.fa-spell-check:before { + content: "\f891" +} + +.fa-spider:before { + content: "\f717" +} + +.fa-spinner:before { + content: "\f110" +} + +.fa-splotch:before { + content: "\f5bc" +} + +.fa-spotify:before { + content: "\f1bc" +} + +.fa-spray-can:before { + content: "\f5bd" +} + +.fa-square:before { + content: "\f0c8" +} + +.fa-square-full:before { + content: "\f45c" +} + +.fa-square-root-alt:before { + content: "\f698" +} + +.fa-squarespace:before { + content: "\f5be" +} + +.fa-stack-exchange:before { + content: "\f18d" +} + +.fa-stack-overflow:before { + content: "\f16c" +} + +.fa-stackpath:before { + content: "\f842" +} + +.fa-stamp:before { + content: "\f5bf" +} + +.fa-star:before { + content: "\f005" +} + +.fa-star-and-crescent:before { + content: "\f699" +} + +.fa-star-half:before { + content: "\f089" +} + +.fa-star-half-alt:before { + content: "\f5c0" +} + +.fa-star-of-david:before { + content: "\f69a" +} + +.fa-star-of-life:before { + content: "\f621" +} + +.fa-staylinked:before { + content: "\f3f5" +} + +.fa-steam:before { + content: "\f1b6" +} + +.fa-steam-square:before { + content: "\f1b7" +} + +.fa-steam-symbol:before { + content: "\f3f6" +} + +.fa-step-backward:before { + content: "\f048" +} + +.fa-step-forward:before { + content: "\f051" +} + +.fa-stethoscope:before { + content: "\f0f1" +} + +.fa-sticker-mule:before { + content: "\f3f7" +} + +.fa-sticky-note:before { + content: "\f249" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa-stop-circle:before { + content: "\f28d" +} + +.fa-stopwatch:before { + content: "\f2f2" +} + +.fa-stopwatch-20:before { + content: "\e06f" +} + +.fa-store:before { + content: "\f54e" +} + +.fa-store-alt:before { + content: "\f54f" +} + +.fa-store-alt-slash:before { + content: "\e070" +} + +.fa-store-slash:before { + content: "\e071" +} + +.fa-strava:before { + content: "\f428" +} + +.fa-stream:before { + content: "\f550" +} + +.fa-street-view:before { + content: "\f21d" +} + +.fa-strikethrough:before { + content: "\f0cc" +} + +.fa-stripe:before { + content: "\f429" +} + +.fa-stripe-s:before { + content: "\f42a" +} + +.fa-stroopwafel:before { + content: "\f551" +} + +.fa-studiovinari:before { + content: "\f3f8" +} + +.fa-stumbleupon:before { + content: "\f1a4" +} + +.fa-stumbleupon-circle:before { + content: "\f1a3" +} + +.fa-subscript:before { + content: "\f12c" +} + +.fa-subway:before { + content: "\f239" +} + +.fa-suitcase:before { + content: "\f0f2" +} + +.fa-suitcase-rolling:before { + content: "\f5c1" +} + +.fa-sun:before { + content: "\f185" +} + +.fa-superpowers:before { + content: "\f2dd" +} + +.fa-superscript:before { + content: "\f12b" +} + +.fa-supple:before { + content: "\f3f9" +} + +.fa-surprise:before { + content: "\f5c2" +} + +.fa-suse:before { + content: "\f7d6" +} + +.fa-swatchbook:before { + content: "\f5c3" +} + +.fa-swift:before { + content: "\f8e1" +} + +.fa-swimmer:before { + content: "\f5c4" +} + +.fa-swimming-pool:before { + content: "\f5c5" +} + +.fa-symfony:before { + content: "\f83d" +} + +.fa-synagogue:before { + content: "\f69b" +} + +.fa-sync:before { + content: "\f021" +} + +.fa-sync-alt:before { + content: "\f2f1" +} + +.fa-syringe:before { + content: "\f48e" +} + +.fa-table:before { + content: "\f0ce" +} + +.fa-table-tennis:before { + content: "\f45d" +} + +.fa-tablet:before { + content: "\f10a" +} + +.fa-tablet-alt:before { + content: "\f3fa" +} + +.fa-tablets:before { + content: "\f490" +} + +.fa-tachometer-alt:before { + content: "\f3fd" +} + +.fa-tag:before { + content: "\f02b" +} + +.fa-tags:before { + content: "\f02c" +} + +.fa-tape:before { + content: "\f4db" +} + +.fa-tasks:before { + content: "\f0ae" +} + +.fa-taxi:before { + content: "\f1ba" +} + +.fa-teamspeak:before { + content: "\f4f9" +} + +.fa-teeth:before { + content: "\f62e" +} + +.fa-teeth-open:before { + content: "\f62f" +} + +.fa-telegram:before { + content: "\f2c6" +} + +.fa-telegram-plane:before { + content: "\f3fe" +} + +.fa-temperature-high:before { + content: "\f769" +} + +.fa-temperature-low:before { + content: "\f76b" +} + +.fa-tencent-weibo:before { + content: "\f1d5" +} + +.fa-tenge:before { + content: "\f7d7" +} + +.fa-terminal:before { + content: "\f120" +} + +.fa-text-height:before { + content: "\f034" +} + +.fa-text-width:before { + content: "\f035" +} + +.fa-th:before { + content: "\f00a" +} + +.fa-th-large:before { + content: "\f009" +} + +.fa-th-list:before { + content: "\f00b" +} + +.fa-the-red-yeti:before { + content: "\f69d" +} + +.fa-theater-masks:before { + content: "\f630" +} + +.fa-themeco:before { + content: "\f5c6" +} + +.fa-themeisle:before { + content: "\f2b2" +} + +.fa-thermometer:before { + content: "\f491" +} + +.fa-thermometer-empty:before { + content: "\f2cb" +} + +.fa-thermometer-full:before { + content: "\f2c7" +} + +.fa-thermometer-half:before { + content: "\f2c9" +} + +.fa-thermometer-quarter:before { + content: "\f2ca" +} + +.fa-thermometer-three-quarters:before { + content: "\f2c8" +} + +.fa-think-peaks:before { + content: "\f731" +} + +.fa-thumbs-down:before { + content: "\f165" +} + +.fa-thumbs-up:before { + content: "\f164" +} + +.fa-thumbtack:before { + content: "\f08d" +} + +.fa-ticket-alt:before { + content: "\f3ff" +} + +.fa-tiktok:before { + content: "\e07b" +} + +.fa-times:before { + content: "\f00d" +} + +.fa-times-circle:before { + content: "\f057" +} + +.fa-tint:before { + content: "\f043" +} + +.fa-tint-slash:before { + content: "\f5c7" +} + +.fa-tired:before { + content: "\f5c8" +} + +.fa-toggle-off:before { + content: "\f204" +} + +.fa-toggle-on:before { + content: "\f205" +} + +.fa-toilet:before { + content: "\f7d8" +} + +.fa-toilet-paper:before { + content: "\f71e" +} + +.fa-toilet-paper-slash:before { + content: "\e072" +} + +.fa-toolbox:before { + content: "\f552" +} + +.fa-tools:before { + content: "\f7d9" +} + +.fa-tooth:before { + content: "\f5c9" +} + +.fa-torah:before { + content: "\f6a0" +} + +.fa-torii-gate:before { + content: "\f6a1" +} + +.fa-tractor:before { + content: "\f722" +} + +.fa-trade-federation:before { + content: "\f513" +} + +.fa-trademark:before { + content: "\f25c" +} + +.fa-traffic-light:before { + content: "\f637" +} + +.fa-trailer:before { + content: "\e041" +} + +.fa-train:before { + content: "\f238" +} + +.fa-tram:before { + content: "\f7da" +} + +.fa-transgender:before { + content: "\f224" +} + +.fa-transgender-alt:before { + content: "\f225" +} + +.fa-trash:before { + content: "\f1f8" +} + +.fa-trash-alt:before { + content: "\f2ed" +} + +.fa-trash-restore:before { + content: "\f829" +} + +.fa-trash-restore-alt:before { + content: "\f82a" +} + +.fa-tree:before { + content: "\f1bb" +} + +.fa-trello:before { + content: "\f181" +} + +.fa-tripadvisor:before { + content: "\f262" +} + +.fa-trophy:before { + content: "\f091" +} + +.fa-truck:before { + content: "\f0d1" +} + +.fa-truck-loading:before { + content: "\f4de" +} + +.fa-truck-monster:before { + content: "\f63b" +} + +.fa-truck-moving:before { + content: "\f4df" +} + +.fa-truck-pickup:before { + content: "\f63c" +} + +.fa-tshirt:before { + content: "\f553" +} + +.fa-tty:before { + content: "\f1e4" +} + +.fa-tumblr:before { + content: "\f173" +} + +.fa-tumblr-square:before { + content: "\f174" +} + +.fa-tv:before { + content: "\f26c" +} + +.fa-twitch:before { + content: "\f1e8" +} + +.fa-twitter:before { + content: "\f099" +} + +.fa-twitter-square:before { + content: "\f081" +} + +.fa-typo3:before { + content: "\f42b" +} + +.fa-uber:before { + content: "\f402" +} + +.fa-ubuntu:before { + content: "\f7df" +} + +.fa-uikit:before { + content: "\f403" +} + +.fa-umbraco:before { + content: "\f8e8" +} + +.fa-umbrella:before { + content: "\f0e9" +} + +.fa-umbrella-beach:before { + content: "\f5ca" +} + +.fa-uncharted:before { + content: "\e084" +} + +.fa-underline:before { + content: "\f0cd" +} + +.fa-undo:before { + content: "\f0e2" +} + +.fa-undo-alt:before { + content: "\f2ea" +} + +.fa-uniregistry:before { + content: "\f404" +} + +.fa-unity:before { + content: "\e049" +} + +.fa-universal-access:before { + content: "\f29a" +} + +.fa-university:before { + content: "\f19c" +} + +.fa-unlink:before { + content: "\f127" +} + +.fa-unlock:before { + content: "\f09c" +} + +.fa-unlock-alt:before { + content: "\f13e" +} + +.fa-unsplash:before { + content: "\e07c" +} + +.fa-untappd:before { + content: "\f405" +} + +.fa-upload:before { + content: "\f093" +} + +.fa-ups:before { + content: "\f7e0" +} + +.fa-usb:before { + content: "\f287" +} + +.fa-user:before { + content: "\f007" +} + +.fa-user-alt:before { + content: "\f406" +} + +.fa-user-alt-slash:before { + content: "\f4fa" +} + +.fa-user-astronaut:before { + content: "\f4fb" +} + +.fa-user-check:before { + content: "\f4fc" +} + +.fa-user-circle:before { + content: "\f2bd" +} + +.fa-user-clock:before { + content: "\f4fd" +} + +.fa-user-cog:before { + content: "\f4fe" +} + +.fa-user-edit:before { + content: "\f4ff" +} + +.fa-user-friends:before { + content: "\f500" +} + +.fa-user-graduate:before { + content: "\f501" +} + +.fa-user-injured:before { + content: "\f728" +} + +.fa-user-lock:before { + content: "\f502" +} + +.fa-user-md:before { + content: "\f0f0" +} + +.fa-user-minus:before { + content: "\f503" +} + +.fa-user-ninja:before { + content: "\f504" +} + +.fa-user-nurse:before { + content: "\f82f" +} + +.fa-user-plus:before { + content: "\f234" +} + +.fa-user-secret:before { + content: "\f21b" +} + +.fa-user-shield:before { + content: "\f505" +} + +.fa-user-slash:before { + content: "\f506" +} + +.fa-user-tag:before { + content: "\f507" +} + +.fa-user-tie:before { + content: "\f508" +} + +.fa-user-times:before { + content: "\f235" +} + +.fa-users:before { + content: "\f0c0" +} + +.fa-users-cog:before { + content: "\f509" +} + +.fa-users-slash:before { + content: "\e073" +} + +.fa-usps:before { + content: "\f7e1" +} + +.fa-ussunnah:before { + content: "\f407" +} + +.fa-utensil-spoon:before { + content: "\f2e5" +} + +.fa-utensils:before { + content: "\f2e7" +} + +.fa-vaadin:before { + content: "\f408" +} + +.fa-vector-square:before { + content: "\f5cb" +} + +.fa-venus:before { + content: "\f221" +} + +.fa-venus-double:before { + content: "\f226" +} + +.fa-venus-mars:before { + content: "\f228" +} + +.fa-vest:before { + content: "\e085" +} + +.fa-vest-patches:before { + content: "\e086" +} + +.fa-viacoin:before { + content: "\f237" +} + +.fa-viadeo:before { + content: "\f2a9" +} + +.fa-viadeo-square:before { + content: "\f2aa" +} + +.fa-vial:before { + content: "\f492" +} + +.fa-vials:before { + content: "\f493" +} + +.fa-viber:before { + content: "\f409" +} + +.fa-video:before { + content: "\f03d" +} + +.fa-video-slash:before { + content: "\f4e2" +} + +.fa-vihara:before { + content: "\f6a7" +} + +.fa-vimeo:before { + content: "\f40a" +} + +.fa-vimeo-square:before { + content: "\f194" +} + +.fa-vimeo-v:before { + content: "\f27d" +} + +.fa-vine:before { + content: "\f1ca" +} + +.fa-virus:before { + content: "\e074" +} + +.fa-virus-slash:before { + content: "\e075" +} + +.fa-viruses:before { + content: "\e076" +} + +.fa-vk:before { + content: "\f189" +} + +.fa-vnv:before { + content: "\f40b" +} + +.fa-voicemail:before { + content: "\f897" +} + +.fa-volleyball-ball:before { + content: "\f45f" +} + +.fa-volume-down:before { + content: "\f027" +} + +.fa-volume-mute:before { + content: "\f6a9" +} + +.fa-volume-off:before { + content: "\f026" +} + +.fa-volume-up:before { + content: "\f028" +} + +.fa-vote-yea:before { + content: "\f772" +} + +.fa-vr-cardboard:before { + content: "\f729" +} + +.fa-vuejs:before { + content: "\f41f" +} + +.fa-walking:before { + content: "\f554" +} + +.fa-wallet:before { + content: "\f555" +} + +.fa-warehouse:before { + content: "\f494" +} + +.fa-watchman-monitoring:before { + content: "\e087" +} + +.fa-water:before { + content: "\f773" +} + +.fa-wave-square:before { + content: "\f83e" +} + +.fa-waze:before { + content: "\f83f" +} + +.fa-weebly:before { + content: "\f5cc" +} + +.fa-weibo:before { + content: "\f18a" +} + +.fa-weight:before { + content: "\f496" +} + +.fa-weight-hanging:before { + content: "\f5cd" +} + +.fa-weixin:before { + content: "\f1d7" +} + +.fa-whatsapp:before { + content: "\f232" +} + +.fa-whatsapp-square:before { + content: "\f40c" +} + +.fa-wheelchair:before { + content: "\f193" +} + +.fa-whmcs:before { + content: "\f40d" +} + +.fa-wifi:before { + content: "\f1eb" +} + +.fa-wikipedia-w:before { + content: "\f266" +} + +.fa-wind:before { + content: "\f72e" +} + +.fa-window-close:before { + content: "\f410" +} + +.fa-window-maximize:before { + content: "\f2d0" +} + +.fa-window-minimize:before { + content: "\f2d1" +} + +.fa-window-restore:before { + content: "\f2d2" +} + +.fa-windows:before { + content: "\f17a" +} + +.fa-wine-bottle:before { + content: "\f72f" +} + +.fa-wine-glass:before { + content: "\f4e3" +} + +.fa-wine-glass-alt:before { + content: "\f5ce" +} + +.fa-wix:before { + content: "\f5cf" +} + +.fa-wizards-of-the-coast:before { + content: "\f730" +} + +.fa-wodu:before { + content: "\e088" +} + +.fa-wolf-pack-battalion:before { + content: "\f514" +} + +.fa-won-sign:before { + content: "\f159" +} + +.fa-wordpress:before { + content: "\f19a" +} + +.fa-wordpress-simple:before { + content: "\f411" +} + +.fa-wpbeginner:before { + content: "\f297" +} + +.fa-wpexplorer:before { + content: "\f2de" +} + +.fa-wpforms:before { + content: "\f298" +} + +.fa-wpressr:before { + content: "\f3e4" +} + +.fa-wrench:before { + content: "\f0ad" +} + +.fa-x-ray:before { + content: "\f497" +} + +.fa-xbox:before { + content: "\f412" +} + +.fa-xing:before { + content: "\f168" +} + +.fa-xing-square:before { + content: "\f169" +} + +.fa-y-combinator:before { + content: "\f23b" +} + +.fa-yahoo:before { + content: "\f19e" +} + +.fa-yammer:before { + content: "\f840" +} + +.fa-yandex:before { + content: "\f413" +} + +.fa-yandex-international:before { + content: "\f414" +} + +.fa-yarn:before { + content: "\f7e3" +} + +.fa-yelp:before { + content: "\f1e9" +} + +.fa-yen-sign:before { + content: "\f157" +} + +.fa-yin-yang:before { + content: "\f6ad" +} + +.fa-yoast:before { + content: "\f2b1" +} + +.fa-youtube:before { + content: "\f167" +} + +.fa-youtube-square:before { + content: "\f431" +} + +.fa-zhihu:before { + content: "\f63f" +} + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto +} + +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: Font Awesome\ 5 Free; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(../fonts/fa-regular-400.eot); + src: url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"), url(../fonts/fa-regular-400.woff2) format("woff2"), url(../fonts/fa-regular-400.woff) format("woff"), url(../fonts/fa-regular-400.ttf) format("truetype"), url(../fonts/fa-regular-400.svg#fontawesome) format("svg") +} + +.far { + font-weight: 400 +} + +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: Font Awesome\ 5 Free; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(../fonts/fa-solid-900.eot); + src: url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"), url(../fonts/fa-solid-900.woff2) format("woff2"), url(../fonts/fa-solid-900.woff) format("woff"), url(../fonts/fa-solid-900.ttf) format("truetype"), url(../fonts/fa-solid-900.svg#fontawesome) format("svg") +} + +.fa, .far, .fas { + font-family: Font Awesome\ 5 Free +} + +.fa, .fas { + font-weight: 900 +} + +svg { + touch-action: none +} + +.jsvmap-zoomin, .jsvmap-zoomout, image, text { + -ms-user-select: none; + -webkit-user-select: none; + user-select: none +} + +.jsvmap-container { + touch-action: none; + position: relative; + overflow: hidden; + height: 100%; + width: 100% +} + +.jsvmap-tooltip { + background-color: #5c5cff; + font-family: sans-serif, Verdana; + font-size: smaller; + box-shadow: 1px 2px 12px rgba(0, 0, 0, .2); + padding: 3px 5px; + display: none +} + +.jsvmap-tooltip, .jsvmap-zoom-btn { + border-radius: 3px; + position: absolute; + color: #fff +} + +.jsvmap-zoom-btn { + background-color: #292929; + padding: 3px; + box-sizing: border-box; + line-height: 10px; + cursor: pointer; + height: 15px; + width: 15px; + left: 10px +} + +.jsvmap-zoom-btn.jsvmap-zoomout { + top: 30px +} + +.jsvmap-zoom-btn.jsvmap-zoomin { + top: 10px +} + +.jsvmap-series-container { + right: 15px; + position: absolute +} + +.jsvmap-series-container.jsvmap-series-h { + bottom: 15px +} + +.jsvmap-series-container.jsvmap-series-v { + top: 15px +} + +.jsvmap-series-container .jsvmap-legend { + background-color: #fff; + border: 1px solid #e6e6e6; + margin-left: 15px; + border-radius: 3px; + padding: .5rem; + float: left +} + +.jsvmap-series-container .jsvmap-legend .jsvmap-legend-title { + border-bottom: 1px solid #e6e6e6; + padding-bottom: 3px; + margin-bottom: 7px; + text-align: left +} + +.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner { + overflow: hidden +} + +.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick { + margin-top: 10px; + min-width: 40px +} + +.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick .jsvmap-legend-tick-sample { + border-radius: 4px; + margin: 4px auto; + height: 20px; + width: 20px +} + +.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick .jsvmap-legend-tick-text { + margin-top: 3px; + font-size: 12px; + text-align: center +} + +[data-simplebar] { + position: relative; + flex-direction: column; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start +} + +.simplebar-wrapper { + overflow: hidden; + width: inherit; + height: inherit; + max-width: inherit; + max-height: inherit +} + +.simplebar-mask { + direction: inherit; + overflow: hidden; + width: auto !important; + height: auto !important; + z-index: 0 +} + +.simplebar-mask, .simplebar-offset { + position: absolute; + padding: 0; + margin: 0; + left: 0; + top: 0; + bottom: 0; + right: 0 +} + +.simplebar-offset { + direction: inherit !important; + box-sizing: inherit !important; + resize: none !important; + -webkit-overflow-scrolling: touch +} + +.simplebar-content-wrapper { + direction: inherit; + box-sizing: border-box !important; + position: relative; + display: block; + height: 100%; + width: auto; + max-width: 100%; + max-height: 100%; + scrollbar-width: none; + -ms-overflow-style: none +} + +.simplebar-content-wrapper::-webkit-scrollbar, .simplebar-hide-scrollbar::-webkit-scrollbar { + width: 0; + height: 0 +} + +.simplebar-content:after, .simplebar-content:before { + content: " "; + display: table +} + +.simplebar-placeholder { + max-height: 100%; + max-width: 100%; + width: 100%; + pointer-events: none +} + +.simplebar-height-auto-observer-wrapper { + box-sizing: inherit !important; + height: 100%; + width: 100%; + max-width: 1px; + position: relative; + float: left; + max-height: 1px; + overflow: hidden; + z-index: -1; + padding: 0; + margin: 0; + pointer-events: none; + flex-grow: inherit; + flex-shrink: 0; + flex-basis: 0 +} + +.simplebar-height-auto-observer { + box-sizing: inherit; + display: block; + opacity: 0; + top: 0; + left: 0; + height: 1000%; + width: 1000%; + min-height: 1px; + min-width: 1px; + z-index: -1 +} + +.simplebar-height-auto-observer, .simplebar-track { + position: absolute; + overflow: hidden; + pointer-events: none +} + +.simplebar-track { + z-index: 1; + right: 0; + bottom: 0 +} + +[data-simplebar].simplebar-dragging .simplebar-content { + pointer-events: none; + -ms-user-select: none; + user-select: none; + -webkit-user-select: none +} + +[data-simplebar].simplebar-dragging .simplebar-track { + pointer-events: all +} + +.simplebar-scrollbar { + position: absolute; + left: 0; + right: 0; + min-height: 10px +} + +.simplebar-scrollbar:before { + position: absolute; + content: ""; + background: #000; + border-radius: 7px; + left: 2px; + right: 2px; + opacity: 0; + transition: opacity .2s linear +} + +.simplebar-scrollbar.simplebar-visible:before { + opacity: .5; + transition: opacity 0s linear +} + +.simplebar-track.simplebar-vertical { + top: 0; + width: 11px +} + +.simplebar-track.simplebar-vertical .simplebar-scrollbar:before { + top: 2px; + bottom: 2px +} + +.simplebar-track.simplebar-horizontal { + left: 0; + height: 11px +} + +.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before { + height: 100%; + left: 2px; + right: 2px +} + +.simplebar-track.simplebar-horizontal .simplebar-scrollbar { + right: auto; + left: 0; + top: 2px; + height: 7px; + min-height: 0; + min-width: 10px; + width: auto +} + +[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical { + right: auto; + left: 0 +} + +.hs-dummy-scrollbar-size { + direction: rtl; + position: fixed; + opacity: 0; + visibility: hidden; + height: 500px; + width: 500px; + overflow-y: hidden; + overflow-x: scroll +} + +.simplebar-hide-scrollbar { + position: fixed; + left: 0; + visibility: hidden; + overflow-y: scroll; + scrollbar-width: none; + -ms-overflow-style: none +} + +.flatpickr-calendar { + background: transparent; + opacity: 0; + display: none; + text-align: center; + visibility: hidden; + padding: 0; + animation: none; + direction: ltr; + border: 0; + font-size: 14px; + line-height: 24px; + border-radius: 5px; + position: absolute; + width: 307.875px; + box-sizing: border-box; + touch-action: manipulation; + background: #fff; + box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, .08) +} + +.flatpickr-calendar.inline, .flatpickr-calendar.open { + opacity: 1; + max-height: 640px; + visibility: visible +} + +.flatpickr-calendar.open { + display: inline-block; + z-index: 99999 +} + +.flatpickr-calendar.animate.open { + animation: fpFadeInDown .3s cubic-bezier(.23, 1, .32, 1) +} + +.flatpickr-calendar.inline { + display: block; + position: relative; + top: 2px +} + +.flatpickr-calendar.static { + position: absolute; + top: calc(100% + 2px) +} + +.flatpickr-calendar.static.open { + z-index: 999; + display: block +} + +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { + box-shadow: none !important +} + +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { + box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6 +} + +.flatpickr-calendar .hasTime .dayContainer, .flatpickr-calendar .hasWeeks .dayContainer { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.flatpickr-calendar .hasWeeks .dayContainer { + border-left: 0 +} + +.flatpickr-calendar.hasTime .flatpickr-time { + height: 40px; + border-top: 1px solid #e6e6e6 +} + +.flatpickr-calendar.noCalendar.hasTime .flatpickr-time { + height: auto +} + +.flatpickr-calendar:after, .flatpickr-calendar:before { + position: absolute; + display: block; + pointer-events: none; + border: solid transparent; + content: ""; + height: 0; + width: 0; + left: 22px +} + +.flatpickr-calendar.arrowRight:after, .flatpickr-calendar.arrowRight:before, .flatpickr-calendar.rightMost:after, .flatpickr-calendar.rightMost:before { + left: auto; + right: 22px +} + +.flatpickr-calendar.arrowCenter:after, .flatpickr-calendar.arrowCenter:before { + left: 50%; + right: 50% +} + +.flatpickr-calendar:before { + border-width: 5px; + margin: 0 -5px +} + +.flatpickr-calendar:after { + border-width: 4px; + margin: 0 -4px +} + +.flatpickr-calendar.arrowTop:after, .flatpickr-calendar.arrowTop:before { + bottom: 100% +} + +.flatpickr-calendar.arrowTop:before { + border-bottom-color: #e6e6e6 +} + +.flatpickr-calendar.arrowTop:after { + border-bottom-color: #fff +} + +.flatpickr-calendar.arrowBottom:after, .flatpickr-calendar.arrowBottom:before { + top: 100% +} + +.flatpickr-calendar.arrowBottom:before { + border-top-color: #e6e6e6 +} + +.flatpickr-calendar.arrowBottom:after { + border-top-color: #fff +} + +.flatpickr-calendar:focus { + outline: 0 +} + +.flatpickr-wrapper { + position: relative; + display: inline-block +} + +.flatpickr-months { + display: flex +} + +.flatpickr-months .flatpickr-month { + background: transparent; + color: rgba(0, 0, 0, .9); + fill: rgba(0, 0, 0, .9); + height: 34px; + line-height: 1; + text-align: center; + position: relative; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; + flex: 1 +} + +.flatpickr-months .flatpickr-next-month, .flatpickr-months .flatpickr-prev-month { + text-decoration: none; + cursor: pointer; + position: absolute; + top: 0; + height: 34px; + padding: 10px; + z-index: 3; + color: rgba(0, 0, 0, .9); + fill: rgba(0, 0, 0, .9) +} + +.flatpickr-months .flatpickr-next-month.flatpickr-disabled, .flatpickr-months .flatpickr-prev-month.flatpickr-disabled { + display: none +} + +.flatpickr-months .flatpickr-next-month i, .flatpickr-months .flatpickr-prev-month i { + position: relative +} + +.flatpickr-months .flatpickr-next-month.flatpickr-prev-month, .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month { + left: 0 +} + +.flatpickr-months .flatpickr-next-month.flatpickr-next-month, .flatpickr-months .flatpickr-prev-month.flatpickr-next-month { + right: 0 +} + +.flatpickr-months .flatpickr-next-month:hover, .flatpickr-months .flatpickr-prev-month:hover { + color: #959ea9 +} + +.flatpickr-months .flatpickr-next-month:hover svg, .flatpickr-months .flatpickr-prev-month:hover svg { + fill: #f64747 +} + +.flatpickr-months .flatpickr-next-month svg, .flatpickr-months .flatpickr-prev-month svg { + width: 14px; + height: 14px +} + +.flatpickr-months .flatpickr-next-month svg path, .flatpickr-months .flatpickr-prev-month svg path { + transition: fill .1s; + fill: inherit +} + +.numInputWrapper { + position: relative; + height: auto +} + +.numInputWrapper input, .numInputWrapper span { + display: inline-block +} + +.numInputWrapper input { + width: 100% +} + +.numInputWrapper input::-ms-clear { + display: none +} + +.numInputWrapper input::-webkit-inner-spin-button, .numInputWrapper input::-webkit-outer-spin-button { + margin: 0; + -webkit-appearance: none +} + +.numInputWrapper span { + position: absolute; + right: 0; + width: 14px; + padding: 0 4px 0 2px; + height: 50%; + line-height: 50%; + opacity: 0; + cursor: pointer; + border: 1px solid rgba(57, 57, 57, .15); + box-sizing: border-box +} + +.numInputWrapper span:hover { + background: rgba(0, 0, 0, .1) +} + +.numInputWrapper span:active { + background: rgba(0, 0, 0, .2) +} + +.numInputWrapper span:after { + display: block; + content: ""; + position: absolute +} + +.numInputWrapper span.arrowUp { + top: 0; + border-bottom: 0 +} + +.numInputWrapper span.arrowUp:after { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid rgba(57, 57, 57, .6); + top: 26% +} + +.numInputWrapper span.arrowDown { + top: 50% +} + +.numInputWrapper span.arrowDown:after { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid rgba(57, 57, 57, .6); + top: 40% +} + +.numInputWrapper span svg { + width: inherit; + height: auto +} + +.numInputWrapper span svg path { + fill: rgba(0, 0, 0, .5) +} + +.numInputWrapper:hover { + background: rgba(0, 0, 0, .05) +} + +.numInputWrapper:hover span { + opacity: 1 +} diff --git a/frontend/src/assets/css/toolshed.scss b/frontend/src/assets/css/toolshed.scss new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/assets/fonts/Inter-Black.woff b/frontend/src/assets/fonts/Inter-Black.woff new file mode 100644 index 0000000..1b7a081 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Black.woff differ diff --git a/frontend/src/assets/fonts/Inter-Black.woff2 b/frontend/src/assets/fonts/Inter-Black.woff2 new file mode 100644 index 0000000..1db877f Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Black.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-BlackItalic.woff b/frontend/src/assets/fonts/Inter-BlackItalic.woff new file mode 100644 index 0000000..98f5391 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-BlackItalic.woff differ diff --git a/frontend/src/assets/fonts/Inter-BlackItalic.woff2 b/frontend/src/assets/fonts/Inter-BlackItalic.woff2 new file mode 100644 index 0000000..831279a Binary files /dev/null and b/frontend/src/assets/fonts/Inter-BlackItalic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Bold.woff b/frontend/src/assets/fonts/Inter-Bold.woff new file mode 100644 index 0000000..4b05629 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Bold.woff differ diff --git a/frontend/src/assets/fonts/Inter-Bold.woff2 b/frontend/src/assets/fonts/Inter-Bold.woff2 new file mode 100644 index 0000000..e372976 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Bold.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-BoldItalic.woff b/frontend/src/assets/fonts/Inter-BoldItalic.woff new file mode 100644 index 0000000..6792723 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-BoldItalic.woff differ diff --git a/frontend/src/assets/fonts/Inter-BoldItalic.woff2 b/frontend/src/assets/fonts/Inter-BoldItalic.woff2 new file mode 100644 index 0000000..c2e8502 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-BoldItalic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBold.woff b/frontend/src/assets/fonts/Inter-ExtraBold.woff new file mode 100644 index 0000000..c2c1355 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraBold.woff differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBold.woff2 b/frontend/src/assets/fonts/Inter-ExtraBold.woff2 new file mode 100644 index 0000000..125d981 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraBold.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff new file mode 100644 index 0000000..0cde9dc Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 new file mode 100644 index 0000000..b8c0987 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff new file mode 100644 index 0000000..7d5eb03 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 new file mode 100644 index 0000000..9a40440 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff new file mode 100644 index 0000000..3e039a7 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 new file mode 100644 index 0000000..0ac33f9 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Italic.woff b/frontend/src/assets/fonts/Inter-Italic.woff new file mode 100644 index 0000000..0444e7f Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Italic.woff differ diff --git a/frontend/src/assets/fonts/Inter-Italic.woff2 b/frontend/src/assets/fonts/Inter-Italic.woff2 new file mode 100644 index 0000000..9f134e4 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Italic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Light-BETA.woff b/frontend/src/assets/fonts/Inter-Light-BETA.woff new file mode 100644 index 0000000..8c0556c Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Light-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-Light-BETA.woff2 b/frontend/src/assets/fonts/Inter-Light-BETA.woff2 new file mode 100644 index 0000000..e5a1561 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Light-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff new file mode 100644 index 0000000..56f9a3f Binary files /dev/null and b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 new file mode 100644 index 0000000..2fe1b5f Binary files /dev/null and b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Medium.woff b/frontend/src/assets/fonts/Inter-Medium.woff new file mode 100644 index 0000000..b7561d0 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Medium.woff differ diff --git a/frontend/src/assets/fonts/Inter-Medium.woff2 b/frontend/src/assets/fonts/Inter-Medium.woff2 new file mode 100644 index 0000000..66528cd Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Medium.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-MediumItalic.woff b/frontend/src/assets/fonts/Inter-MediumItalic.woff new file mode 100644 index 0000000..e0ac074 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-MediumItalic.woff differ diff --git a/frontend/src/assets/fonts/Inter-MediumItalic.woff2 b/frontend/src/assets/fonts/Inter-MediumItalic.woff2 new file mode 100644 index 0000000..f39af2e Binary files /dev/null and b/frontend/src/assets/fonts/Inter-MediumItalic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Regular.woff b/frontend/src/assets/fonts/Inter-Regular.woff new file mode 100644 index 0000000..ea75a90 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Regular.woff differ diff --git a/frontend/src/assets/fonts/Inter-Regular.woff2 b/frontend/src/assets/fonts/Inter-Regular.woff2 new file mode 100644 index 0000000..d015841 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Regular.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-SemiBold.woff b/frontend/src/assets/fonts/Inter-SemiBold.woff new file mode 100644 index 0000000..26b1713 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-SemiBold.woff differ diff --git a/frontend/src/assets/fonts/Inter-SemiBold.woff2 b/frontend/src/assets/fonts/Inter-SemiBold.woff2 new file mode 100644 index 0000000..c092053 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-SemiBold.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff new file mode 100644 index 0000000..1bd17a1 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff differ diff --git a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 new file mode 100644 index 0000000..3c67c54 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-Thin-BETA.woff b/frontend/src/assets/fonts/Inter-Thin-BETA.woff new file mode 100644 index 0000000..42be3bc Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Thin-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 b/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 new file mode 100644 index 0000000..3b35a12 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff new file mode 100644 index 0000000..9addfb6 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff differ diff --git a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 new file mode 100644 index 0000000..c8ecf3a Binary files /dev/null and b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-italic.var.woff2 b/frontend/src/assets/fonts/Inter-italic.var.woff2 new file mode 100644 index 0000000..2300488 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-italic.var.woff2 differ diff --git a/frontend/src/assets/fonts/Inter-upright.var.woff2 b/frontend/src/assets/fonts/Inter-upright.var.woff2 new file mode 100644 index 0000000..37d9900 Binary files /dev/null and b/frontend/src/assets/fonts/Inter-upright.var.woff2 differ diff --git a/frontend/src/assets/fonts/Inter.var.woff2 b/frontend/src/assets/fonts/Inter.var.woff2 new file mode 100644 index 0000000..1c91452 Binary files /dev/null and b/frontend/src/assets/fonts/Inter.var.woff2 differ diff --git a/frontend/src/assets/fonts/fa-brands-400.eot b/frontend/src/assets/fonts/fa-brands-400.eot new file mode 100644 index 0000000..e4ccce2 Binary files /dev/null and b/frontend/src/assets/fonts/fa-brands-400.eot differ diff --git a/frontend/src/assets/fonts/fa-brands-400.svg b/frontend/src/assets/fonts/fa-brands-400.svg new file mode 100644 index 0000000..eb0f26f --- /dev/null +++ b/frontend/src/assets/fonts/fa-brands-400.svg @@ -0,0 +1,3570 @@ + + + + + +Created by FontForge 20190801 at Tue Feb 4 18:05:39 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/fonts/fa-brands-400.ttf b/frontend/src/assets/fonts/fa-brands-400.ttf new file mode 100644 index 0000000..08622a3 Binary files /dev/null and b/frontend/src/assets/fonts/fa-brands-400.ttf differ diff --git a/frontend/src/assets/fonts/fa-brands-400.woff b/frontend/src/assets/fonts/fa-brands-400.woff new file mode 100644 index 0000000..a43870c Binary files /dev/null and b/frontend/src/assets/fonts/fa-brands-400.woff differ diff --git a/frontend/src/assets/fonts/fa-brands-400.woff2 b/frontend/src/assets/fonts/fa-brands-400.woff2 new file mode 100644 index 0000000..3c5189d Binary files /dev/null and b/frontend/src/assets/fonts/fa-brands-400.woff2 differ diff --git a/frontend/src/assets/fonts/fa-regular-400.eot b/frontend/src/assets/fonts/fa-regular-400.eot new file mode 100644 index 0000000..bef9f72 Binary files /dev/null and b/frontend/src/assets/fonts/fa-regular-400.eot differ diff --git a/frontend/src/assets/fonts/fa-regular-400.svg b/frontend/src/assets/fonts/fa-regular-400.svg new file mode 100644 index 0000000..bccc256 --- /dev/null +++ b/frontend/src/assets/fonts/fa-regular-400.svg @@ -0,0 +1,801 @@ + + + + +Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/fonts/fa-regular-400.ttf b/frontend/src/assets/fonts/fa-regular-400.ttf new file mode 100644 index 0000000..659527a Binary files /dev/null and b/frontend/src/assets/fonts/fa-regular-400.ttf differ diff --git a/frontend/src/assets/fonts/fa-regular-400.woff b/frontend/src/assets/fonts/fa-regular-400.woff new file mode 100644 index 0000000..31f44b2 Binary files /dev/null and b/frontend/src/assets/fonts/fa-regular-400.woff differ diff --git a/frontend/src/assets/fonts/fa-regular-400.woff2 b/frontend/src/assets/fonts/fa-regular-400.woff2 new file mode 100644 index 0000000..0332a9b Binary files /dev/null and b/frontend/src/assets/fonts/fa-regular-400.woff2 differ diff --git a/frontend/src/assets/fonts/fa-solid-900.eot b/frontend/src/assets/fonts/fa-solid-900.eot new file mode 100644 index 0000000..5da4fa0 Binary files /dev/null and b/frontend/src/assets/fonts/fa-solid-900.eot differ diff --git a/frontend/src/assets/fonts/fa-solid-900.svg b/frontend/src/assets/fonts/fa-solid-900.svg new file mode 100644 index 0000000..313b311 --- /dev/null +++ b/frontend/src/assets/fonts/fa-solid-900.svg @@ -0,0 +1,5028 @@ + + + + +Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/fonts/fa-solid-900.ttf b/frontend/src/assets/fonts/fa-solid-900.ttf new file mode 100644 index 0000000..e074608 Binary files /dev/null and b/frontend/src/assets/fonts/fa-solid-900.ttf differ diff --git a/frontend/src/assets/fonts/fa-solid-900.woff b/frontend/src/assets/fonts/fa-solid-900.woff new file mode 100644 index 0000000..ef6b447 Binary files /dev/null and b/frontend/src/assets/fonts/fa-solid-900.woff differ diff --git a/frontend/src/assets/fonts/fa-solid-900.woff2 b/frontend/src/assets/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000..120b300 Binary files /dev/null and b/frontend/src/assets/fonts/fa-solid-900.woff2 differ diff --git a/frontend/src/assets/icons/toolshed-48x48.png b/frontend/src/assets/icons/toolshed-48x48.png new file mode 100644 index 0000000..6abc959 Binary files /dev/null and b/frontend/src/assets/icons/toolshed-48x48.png differ diff --git a/frontend/src/assets/js/app.js b/frontend/src/assets/js/app.js new file mode 100644 index 0000000..e32287b --- /dev/null +++ b/frontend/src/assets/js/app.js @@ -0,0 +1,25141 @@ +/*! For license information please see app.js.LICENSE.txt */ +!function (e) { + var t = {}; + + function n(i) { + if (t[i]) return t[i].exports; + var a = t[i] = {i: i, l: !1, exports: {}}; + return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports + } + + n.m = e, n.c = t, n.d = function (e, t, i) { + n.o(e, t) || Object.defineProperty(e, t, {enumerable: !0, get: i}) + }, n.r = function (e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0}) + }, n.t = function (e, t) { + if (1 & t && (e = n(e)), 8 & t) return e; + if (4 & t && "object" == typeof e && e && e.__esModule) return e; + var i = Object.create(null); + if (n.r(i), Object.defineProperty(i, "default", { + enumerable: !0, + value: e + }), 2 & t && "string" != typeof e) for (var a in e) n.d(i, a, function (t) { + return e[t] + }.bind(null, a)); + return i + }, n.n = function (e) { + var t = e && e.__esModule ? function () { + return e.default + } : function () { + return e + }; + return n.d(t, "a", t), t + }, n.o = function (e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, n.p = "", n(n.s = 304) +}([function (e, t, n) { + (function (e) { + e.exports = function () { + "use strict"; + var t, i; + + function a() { + return t.apply(null, arguments) + } + + function r(e) { + t = e + } + + function l(e) { + return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) + } + + function o(e) { + return null != e && "[object Object]" === Object.prototype.toString.call(e) + } + + function s(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + } + + function d(e) { + if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; + var t; + for (t in e) if (s(e, t)) return !1; + return !0 + } + + function u(e) { + return void 0 === e + } + + function c(e) { + return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) + } + + function h(e) { + return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) + } + + function m(e, t) { + var n, i = []; + for (n = 0; n < e.length; ++n) i.push(t(e[n], n)); + return i + } + + function f(e, t) { + for (var n in t) s(t, n) && (e[n] = t[n]); + return s(t, "toString") && (e.toString = t.toString), s(t, "valueOf") && (e.valueOf = t.valueOf), e + } + + function _(e, t, n, i) { + return Gn(e, t, n, i, !0).utc() + } + + function p() { + return { + empty: !1, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: !1, + invalidEra: null, + invalidMonth: null, + invalidFormat: !1, + userInvalidated: !1, + iso: !1, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: !1, + weekdayMismatch: !1 + } + } + + function g(e) { + return null == e._pf && (e._pf = p()), e._pf + } + + function y(e) { + if (null == e._isValid) { + var t = g(e), n = i.call(t.parsedDateParts, (function (e) { + return null != e + })), + a = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && n); + if (e._strict && (a = a && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return a; + e._isValid = a + } + return e._isValid + } + + function v(e) { + var t = _(NaN); + return null != e ? f(g(t), e) : g(t).userInvalidated = !0, t + } + + i = Array.prototype.some ? Array.prototype.some : function (e) { + var t, n = Object(this), i = n.length >>> 0; + for (t = 0; t < i; t++) if (t in n && e.call(this, n[t], t, n)) return !0; + return !1 + }; + var M = a.momentProperties = [], b = !1; + + function x(e, t) { + var n, i, a; + if (u(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), u(t._i) || (e._i = t._i), u(t._f) || (e._f = t._f), u(t._l) || (e._l = t._l), u(t._strict) || (e._strict = t._strict), u(t._tzm) || (e._tzm = t._tzm), u(t._isUTC) || (e._isUTC = t._isUTC), u(t._offset) || (e._offset = t._offset), u(t._pf) || (e._pf = g(t)), u(t._locale) || (e._locale = t._locale), M.length > 0) for (n = 0; n < M.length; n++) u(a = t[i = M[n]]) || (e[i] = a); + return e + } + + function L(e) { + x(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === b && (b = !0, a.updateOffset(this), b = !1) + } + + function w(e) { + return e instanceof L || null != e && null != e._isAMomentObject + } + + function k(e) { + !1 === a.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e) + } + + function Y(e, t) { + var n = !0; + return f((function () { + if (null != a.deprecationHandler && a.deprecationHandler(null, e), n) { + var i, r, l, o = []; + for (r = 0; r < arguments.length; r++) { + if (i = "", "object" == typeof arguments[r]) { + for (l in i += "\n[" + r + "] ", arguments[0]) s(arguments[0], l) && (i += l + ": " + arguments[0][l] + ", "); + i = i.slice(0, -2) + } else i = arguments[r]; + o.push(i) + } + k(e + "\nArguments: " + Array.prototype.slice.call(o).join("") + "\n" + (new Error).stack), n = !1 + } + return t.apply(this, arguments) + }), t) + } + + var D, T = {}; + + function S(e, t) { + null != a.deprecationHandler && a.deprecationHandler(e, t), T[e] || (k(t), T[e] = !0) + } + + function j(e) { + return "undefined" != typeof Function && e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) + } + + function E(e) { + var t, n; + for (n in e) s(e, n) && (j(t = e[n]) ? this[n] = t : this["_" + n] = t); + this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) + } + + function H(e, t) { + var n, i = f({}, e); + for (n in t) s(t, n) && (o(e[n]) && o(t[n]) ? (i[n] = {}, f(i[n], e[n]), f(i[n], t[n])) : null != t[n] ? i[n] = t[n] : delete i[n]); + for (n in e) s(e, n) && !s(t, n) && o(e[n]) && (i[n] = f({}, i[n])); + return i + } + + function O(e) { + null != e && this.set(e) + } + + a.suppressDeprecationWarnings = !1, a.deprecationHandler = null, D = Object.keys ? Object.keys : function (e) { + var t, n = []; + for (t in e) s(e, t) && n.push(t); + return n + }; + var A = { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L" + }; + + function P(e, t, n) { + var i = this._calendar[e] || this._calendar.sameElse; + return j(i) ? i.call(t, n) : i + } + + function C(e, t, n) { + var i = "" + Math.abs(e), a = t - i.length; + return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, a)).toString().substr(1) + i + } + + var F = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + I = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, W = {}, N = {}; + + function z(e, t, n, i) { + var a = i; + "string" == typeof i && (a = function () { + return this[i]() + }), e && (N[e] = a), t && (N[t[0]] = function () { + return C(a.apply(this, arguments), t[1], t[2]) + }), n && (N[n] = function () { + return this.localeData().ordinal(a.apply(this, arguments), e) + }) + } + + function R(e) { + return e.match(/\[[\s\S]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, "") + } + + function V(e) { + var t, n, i = e.match(F); + for (t = 0, n = i.length; t < n; t++) N[i[t]] ? i[t] = N[i[t]] : i[t] = R(i[t]); + return function (t) { + var a, r = ""; + for (a = 0; a < n; a++) r += j(i[a]) ? i[a].call(t, e) : i[a]; + return r + } + } + + function B(e, t) { + return e.isValid() ? (t = Z(t, e.localeData()), W[t] = W[t] || V(t), W[t](e)) : e.localeData().invalidDate() + } + + function Z(e, t) { + var n = 5; + + function i(e) { + return t.longDateFormat(e) || e + } + + for (I.lastIndex = 0; n >= 0 && I.test(e);) e = e.replace(I, i), I.lastIndex = 0, n -= 1; + return e + } + + var U = { + LTS: "h:mm:ss A", + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A" + }; + + function J(e) { + var t = this._longDateFormat[e], n = this._longDateFormat[e.toUpperCase()]; + return t || !n ? t : (this._longDateFormat[e] = n.match(F).map((function (e) { + return "MMMM" === e || "MM" === e || "DD" === e || "dddd" === e ? e.slice(1) : e + })).join(""), this._longDateFormat[e]) + } + + var G = "Invalid date"; + + function q() { + return this._invalidDate + } + + var K = "%d", X = /\d{1,2}/; + + function $(e) { + return this._ordinal.replace("%d", e) + } + + var Q = { + future: "in %s", + past: "%s ago", + s: "a few seconds", + ss: "%d seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + w: "a week", + ww: "%d weeks", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }; + + function ee(e, t, n, i) { + var a = this._relativeTime[n]; + return j(a) ? a(e, t, n, i) : a.replace(/%d/i, e) + } + + function te(e, t) { + var n = this._relativeTime[e > 0 ? "future" : "past"]; + return j(n) ? n(t) : n.replace(/%s/i, t) + } + + var ne = {}; + + function ie(e, t) { + var n = e.toLowerCase(); + ne[n] = ne[n + "s"] = ne[t] = e + } + + function ae(e) { + return "string" == typeof e ? ne[e] || ne[e.toLowerCase()] : void 0 + } + + function re(e) { + var t, n, i = {}; + for (n in e) s(e, n) && (t = ae(n)) && (i[t] = e[n]); + return i + } + + var le = {}; + + function oe(e, t) { + le[e] = t + } + + function se(e) { + var t, n = []; + for (t in e) s(e, t) && n.push({unit: t, priority: le[t]}); + return n.sort((function (e, t) { + return e.priority - t.priority + })), n + } + + function de(e) { + return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 + } + + function ue(e) { + return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) + } + + function ce(e) { + var t = +e, n = 0; + return 0 !== t && isFinite(t) && (n = ue(t)), n + } + + function he(e, t) { + return function (n) { + return null != n ? (fe(this, e, n), a.updateOffset(this, t), this) : me(this, e) + } + } + + function me(e, t) { + return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN + } + + function fe(e, t, n) { + e.isValid() && !isNaN(n) && ("FullYear" === t && de(e.year()) && 1 === e.month() && 29 === e.date() ? (n = ce(n), e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), et(n, e.month()))) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) + } + + function _e(e) { + return j(this[e = ae(e)]) ? this[e]() : this + } + + function pe(e, t) { + if ("object" == typeof e) { + var n, i = se(e = re(e)); + for (n = 0; n < i.length; n++) this[i[n].unit](e[i[n].unit]) + } else if (j(this[e = ae(e)])) return this[e](t); + return this + } + + var ge, ye = /\d/, ve = /\d\d/, Me = /\d{3}/, be = /\d{4}/, xe = /[+-]?\d{6}/, Le = /\d\d?/, + we = /\d\d\d\d?/, ke = /\d\d\d\d\d\d?/, Ye = /\d{1,3}/, De = /\d{1,4}/, Te = /[+-]?\d{1,6}/, Se = /\d+/, + je = /[+-]?\d+/, Ee = /Z|[+-]\d\d:?\d\d/gi, He = /Z|[+-]\d\d(?::?\d\d)?/gi, Oe = /[+-]?\d+(\.\d{1,3})?/, + Ae = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + + function Pe(e, t, n) { + ge[e] = j(t) ? t : function (e, i) { + return e && n ? n : t + } + } + + function Ce(e, t) { + return s(ge, e) ? ge[e](t._strict, t._locale) : new RegExp(Fe(e)) + } + + function Fe(e) { + return Ie(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function (e, t, n, i, a) { + return t || n || i || a + }))) + } + + function Ie(e) { + return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + } + + ge = {}; + var We = {}; + + function Ne(e, t) { + var n, i = t; + for ("string" == typeof e && (e = [e]), c(t) && (i = function (e, n) { + n[t] = ce(e) + }), n = 0; n < e.length; n++) We[e[n]] = i + } + + function ze(e, t) { + Ne(e, (function (e, n, i, a) { + i._w = i._w || {}, t(e, i._w, i, a) + })) + } + + function Re(e, t, n) { + null != t && s(We, e) && We[e](t, n._a, n, e) + } + + var Ve, Be = 0, Ze = 1, Ue = 2, Je = 3, Ge = 4, qe = 5, Ke = 6, Xe = 7, $e = 8; + + function Qe(e, t) { + return (e % t + t) % t + } + + function et(e, t) { + if (isNaN(e) || isNaN(t)) return NaN; + var n = Qe(t, 12); + return e += (t - n) / 12, 1 === n ? de(e) ? 29 : 28 : 31 - n % 7 % 2 + } + + Ve = Array.prototype.indexOf ? Array.prototype.indexOf : function (e) { + var t; + for (t = 0; t < this.length; ++t) if (this[t] === e) return t; + return -1 + }, z("M", ["MM", 2], "Mo", (function () { + return this.month() + 1 + })), z("MMM", 0, 0, (function (e) { + return this.localeData().monthsShort(this, e) + })), z("MMMM", 0, 0, (function (e) { + return this.localeData().months(this, e) + })), ie("month", "M"), oe("month", 8), Pe("M", Le), Pe("MM", Le, ve), Pe("MMM", (function (e, t) { + return t.monthsShortRegex(e) + })), Pe("MMMM", (function (e, t) { + return t.monthsRegex(e) + })), Ne(["M", "MM"], (function (e, t) { + t[Ze] = ce(e) - 1 + })), Ne(["MMM", "MMMM"], (function (e, t, n, i) { + var a = n._locale.monthsParse(e, i, n._strict); + null != a ? t[Ze] = a : g(n).invalidMonth = e + })); + var tt = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + nt = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), it = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + at = Ae, rt = Ae; + + function lt(e, t) { + return e ? l(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || it).test(t) ? "format" : "standalone"][e.month()] : l(this._months) ? this._months : this._months.standalone + } + + function ot(e, t) { + return e ? l(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[it.test(t) ? "format" : "standalone"][e.month()] : l(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone + } + + function st(e, t, n) { + var i, a, r, l = e.toLocaleLowerCase(); + if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], i = 0; i < 12; ++i) r = _([2e3, i]), this._shortMonthsParse[i] = this.monthsShort(r, "").toLocaleLowerCase(), this._longMonthsParse[i] = this.months(r, "").toLocaleLowerCase(); + return n ? "MMM" === t ? -1 !== (a = Ve.call(this._shortMonthsParse, l)) ? a : null : -1 !== (a = Ve.call(this._longMonthsParse, l)) ? a : null : "MMM" === t ? -1 !== (a = Ve.call(this._shortMonthsParse, l)) || -1 !== (a = Ve.call(this._longMonthsParse, l)) ? a : null : -1 !== (a = Ve.call(this._longMonthsParse, l)) || -1 !== (a = Ve.call(this._shortMonthsParse, l)) ? a : null + } + + function dt(e, t, n) { + var i, a, r; + if (this._monthsParseExact) return st.call(this, e, t, n); + for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), i = 0; i < 12; i++) { + if (a = _([2e3, i]), n && !this._longMonthsParse[i] && (this._longMonthsParse[i] = new RegExp("^" + this.months(a, "").replace(".", "") + "$", "i"), this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(a, "").replace(".", "") + "$", "i")), n || this._monthsParse[i] || (r = "^" + this.months(a, "") + "|^" + this.monthsShort(a, ""), this._monthsParse[i] = new RegExp(r.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[i].test(e)) return i; + if (n && "MMM" === t && this._shortMonthsParse[i].test(e)) return i; + if (!n && this._monthsParse[i].test(e)) return i + } + } + + function ut(e, t) { + var n; + if (!e.isValid()) return e; + if ("string" == typeof t) if (/^\d+$/.test(t)) t = ce(t); else if (!c(t = e.localeData().monthsParse(t))) return e; + return n = Math.min(e.date(), et(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e + } + + function ct(e) { + return null != e ? (ut(this, e), a.updateOffset(this, !0), this) : me(this, "Month") + } + + function ht() { + return et(this.year(), this.month()) + } + + function mt(e) { + return this._monthsParseExact ? (s(this, "_monthsRegex") || _t.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (s(this, "_monthsShortRegex") || (this._monthsShortRegex = at), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) + } + + function ft(e) { + return this._monthsParseExact ? (s(this, "_monthsRegex") || _t.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (s(this, "_monthsRegex") || (this._monthsRegex = rt), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) + } + + function _t() { + function e(e, t) { + return t.length - e.length + } + + var t, n, i = [], a = [], r = []; + for (t = 0; t < 12; t++) n = _([2e3, t]), i.push(this.monthsShort(n, "")), a.push(this.months(n, "")), r.push(this.months(n, "")), r.push(this.monthsShort(n, "")); + for (i.sort(e), a.sort(e), r.sort(e), t = 0; t < 12; t++) i[t] = Ie(i[t]), a[t] = Ie(a[t]); + for (t = 0; t < 24; t++) r[t] = Ie(r[t]); + this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + i.join("|") + ")", "i") + } + + function pt(e) { + return de(e) ? 366 : 365 + } + + z("Y", 0, 0, (function () { + var e = this.year(); + return e <= 9999 ? C(e, 4) : "+" + e + })), z(0, ["YY", 2], 0, (function () { + return this.year() % 100 + })), z(0, ["YYYY", 4], 0, "year"), z(0, ["YYYYY", 5], 0, "year"), z(0, ["YYYYYY", 6, !0], 0, "year"), ie("year", "y"), oe("year", 1), Pe("Y", je), Pe("YY", Le, ve), Pe("YYYY", De, be), Pe("YYYYY", Te, xe), Pe("YYYYYY", Te, xe), Ne(["YYYYY", "YYYYYY"], Be), Ne("YYYY", (function (e, t) { + t[Be] = 2 === e.length ? a.parseTwoDigitYear(e) : ce(e) + })), Ne("YY", (function (e, t) { + t[Be] = a.parseTwoDigitYear(e) + })), Ne("Y", (function (e, t) { + t[Be] = parseInt(e, 10) + })), a.parseTwoDigitYear = function (e) { + return ce(e) + (ce(e) > 68 ? 1900 : 2e3) + }; + var gt = he("FullYear", !0); + + function yt() { + return de(this.year()) + } + + function vt(e, t, n, i, a, r, l) { + var o; + return e < 100 && e >= 0 ? (o = new Date(e + 400, t, n, i, a, r, l), isFinite(o.getFullYear()) && o.setFullYear(e)) : o = new Date(e, t, n, i, a, r, l), o + } + + function Mt(e) { + var t, n; + return e < 100 && e >= 0 ? ((n = Array.prototype.slice.call(arguments))[0] = e + 400, t = new Date(Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t + } + + function bt(e, t, n) { + var i = 7 + t - n; + return -(7 + Mt(e, 0, i).getUTCDay() - t) % 7 + i - 1 + } + + function xt(e, t, n, i, a) { + var r, l, o = 1 + 7 * (t - 1) + (7 + n - i) % 7 + bt(e, i, a); + return o <= 0 ? l = pt(r = e - 1) + o : o > pt(e) ? (r = e + 1, l = o - pt(e)) : (r = e, l = o), { + year: r, + dayOfYear: l + } + } + + function Lt(e, t, n) { + var i, a, r = bt(e.year(), t, n), l = Math.floor((e.dayOfYear() - r - 1) / 7) + 1; + return l < 1 ? i = l + wt(a = e.year() - 1, t, n) : l > wt(e.year(), t, n) ? (i = l - wt(e.year(), t, n), a = e.year() + 1) : (a = e.year(), i = l), { + week: i, + year: a + } + } + + function wt(e, t, n) { + var i = bt(e, t, n), a = bt(e + 1, t, n); + return (pt(e) - i + a) / 7 + } + + function kt(e) { + return Lt(e, this._week.dow, this._week.doy).week + } + + z("w", ["ww", 2], "wo", "week"), z("W", ["WW", 2], "Wo", "isoWeek"), ie("week", "w"), ie("isoWeek", "W"), oe("week", 5), oe("isoWeek", 5), Pe("w", Le), Pe("ww", Le, ve), Pe("W", Le), Pe("WW", Le, ve), ze(["w", "ww", "W", "WW"], (function (e, t, n, i) { + t[i.substr(0, 1)] = ce(e) + })); + var Yt = {dow: 0, doy: 6}; + + function Dt() { + return this._week.dow + } + + function Tt() { + return this._week.doy + } + + function St(e) { + var t = this.localeData().week(this); + return null == e ? t : this.add(7 * (e - t), "d") + } + + function jt(e) { + var t = Lt(this, 1, 4).week; + return null == e ? t : this.add(7 * (e - t), "d") + } + + function Et(e, t) { + return "string" != typeof e ? e : isNaN(e) ? "number" == typeof (e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10) + } + + function Ht(e, t) { + return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e + } + + function Ot(e, t) { + return e.slice(t, 7).concat(e.slice(0, t)) + } + + z("d", 0, "do", "day"), z("dd", 0, 0, (function (e) { + return this.localeData().weekdaysMin(this, e) + })), z("ddd", 0, 0, (function (e) { + return this.localeData().weekdaysShort(this, e) + })), z("dddd", 0, 0, (function (e) { + return this.localeData().weekdays(this, e) + })), z("e", 0, 0, "weekday"), z("E", 0, 0, "isoWeekday"), ie("day", "d"), ie("weekday", "e"), ie("isoWeekday", "E"), oe("day", 11), oe("weekday", 11), oe("isoWeekday", 11), Pe("d", Le), Pe("e", Le), Pe("E", Le), Pe("dd", (function (e, t) { + return t.weekdaysMinRegex(e) + })), Pe("ddd", (function (e, t) { + return t.weekdaysShortRegex(e) + })), Pe("dddd", (function (e, t) { + return t.weekdaysRegex(e) + })), ze(["dd", "ddd", "dddd"], (function (e, t, n, i) { + var a = n._locale.weekdaysParse(e, i, n._strict); + null != a ? t.d = a : g(n).invalidWeekday = e + })), ze(["d", "e", "E"], (function (e, t, n, i) { + t[i] = ce(e) + })); + var At = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + Pt = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), Ct = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), Ft = Ae, It = Ae, + Wt = Ae; + + function Nt(e, t) { + var n = l(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !== e && this._weekdays.isFormat.test(t) ? "format" : "standalone"]; + return !0 === e ? Ot(n, this._week.dow) : e ? n[e.day()] : n + } + + function zt(e) { + return !0 === e ? Ot(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort + } + + function Rt(e) { + return !0 === e ? Ot(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin + } + + function Vt(e, t, n) { + var i, a, r, l = e.toLocaleLowerCase(); + if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], i = 0; i < 7; ++i) r = _([2e3, 1]).day(i), this._minWeekdaysParse[i] = this.weekdaysMin(r, "").toLocaleLowerCase(), this._shortWeekdaysParse[i] = this.weekdaysShort(r, "").toLocaleLowerCase(), this._weekdaysParse[i] = this.weekdays(r, "").toLocaleLowerCase(); + return n ? "dddd" === t ? -1 !== (a = Ve.call(this._weekdaysParse, l)) ? a : null : "ddd" === t ? -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) ? a : null : -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : "dddd" === t ? -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) || -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : "ddd" === t ? -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) || -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : -1 !== (a = Ve.call(this._minWeekdaysParse, l)) || -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) ? a : null + } + + function Bt(e, t, n) { + var i, a, r; + if (this._weekdaysParseExact) return Vt.call(this, e, t, n); + for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), i = 0; i < 7; i++) { + if (a = _([2e3, 1]).day(i), n && !this._fullWeekdaysParse[i] && (this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(a, "").replace(".", "\\.?") + "$", "i"), this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(a, "").replace(".", "\\.?") + "$", "i"), this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(a, "").replace(".", "\\.?") + "$", "i")), this._weekdaysParse[i] || (r = "^" + this.weekdays(a, "") + "|^" + this.weekdaysShort(a, "") + "|^" + this.weekdaysMin(a, ""), this._weekdaysParse[i] = new RegExp(r.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[i].test(e)) return i; + if (n && "ddd" === t && this._shortWeekdaysParse[i].test(e)) return i; + if (n && "dd" === t && this._minWeekdaysParse[i].test(e)) return i; + if (!n && this._weekdaysParse[i].test(e)) return i + } + } + + function Zt(e) { + if (!this.isValid()) return null != e ? this : NaN; + var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + return null != e ? (e = Et(e, this.localeData()), this.add(e - t, "d")) : t + } + + function Ut(e) { + if (!this.isValid()) return null != e ? this : NaN; + var t = (this.day() + 7 - this.localeData()._week.dow) % 7; + return null == e ? t : this.add(e - t, "d") + } + + function Jt(e) { + if (!this.isValid()) return null != e ? this : NaN; + if (null != e) { + var t = Ht(e, this.localeData()); + return this.day(this.day() % 7 ? t : t - 7) + } + return this.day() || 7 + } + + function Gt(e) { + return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (s(this, "_weekdaysRegex") || (this._weekdaysRegex = Ft), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) + } + + function qt(e) { + return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (s(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = It), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) + } + + function Kt(e) { + return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (s(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Wt), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) + } + + function Xt() { + function e(e, t) { + return t.length - e.length + } + + var t, n, i, a, r, l = [], o = [], s = [], d = []; + for (t = 0; t < 7; t++) n = _([2e3, 1]).day(t), i = Ie(this.weekdaysMin(n, "")), a = Ie(this.weekdaysShort(n, "")), r = Ie(this.weekdays(n, "")), l.push(i), o.push(a), s.push(r), d.push(i), d.push(a), d.push(r); + l.sort(e), o.sort(e), s.sort(e), d.sort(e), this._weekdaysRegex = new RegExp("^(" + d.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + l.join("|") + ")", "i") + } + + function $t() { + return this.hours() % 12 || 12 + } + + function Qt() { + return this.hours() || 24 + } + + function en(e, t) { + z(e, 0, 0, (function () { + return this.localeData().meridiem(this.hours(), this.minutes(), t) + })) + } + + function tn(e, t) { + return t._meridiemParse + } + + function nn(e) { + return "p" === (e + "").toLowerCase().charAt(0) + } + + z("H", ["HH", 2], 0, "hour"), z("h", ["hh", 2], 0, $t), z("k", ["kk", 2], 0, Qt), z("hmm", 0, 0, (function () { + return "" + $t.apply(this) + C(this.minutes(), 2) + })), z("hmmss", 0, 0, (function () { + return "" + $t.apply(this) + C(this.minutes(), 2) + C(this.seconds(), 2) + })), z("Hmm", 0, 0, (function () { + return "" + this.hours() + C(this.minutes(), 2) + })), z("Hmmss", 0, 0, (function () { + return "" + this.hours() + C(this.minutes(), 2) + C(this.seconds(), 2) + })), en("a", !0), en("A", !1), ie("hour", "h"), oe("hour", 13), Pe("a", tn), Pe("A", tn), Pe("H", Le), Pe("h", Le), Pe("k", Le), Pe("HH", Le, ve), Pe("hh", Le, ve), Pe("kk", Le, ve), Pe("hmm", we), Pe("hmmss", ke), Pe("Hmm", we), Pe("Hmmss", ke), Ne(["H", "HH"], Je), Ne(["k", "kk"], (function (e, t, n) { + var i = ce(e); + t[Je] = 24 === i ? 0 : i + })), Ne(["a", "A"], (function (e, t, n) { + n._isPm = n._locale.isPM(e), n._meridiem = e + })), Ne(["h", "hh"], (function (e, t, n) { + t[Je] = ce(e), g(n).bigHour = !0 + })), Ne("hmm", (function (e, t, n) { + var i = e.length - 2; + t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i)), g(n).bigHour = !0 + })), Ne("hmmss", (function (e, t, n) { + var i = e.length - 4, a = e.length - 2; + t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i, 2)), t[qe] = ce(e.substr(a)), g(n).bigHour = !0 + })), Ne("Hmm", (function (e, t, n) { + var i = e.length - 2; + t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i)) + })), Ne("Hmmss", (function (e, t, n) { + var i = e.length - 4, a = e.length - 2; + t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i, 2)), t[qe] = ce(e.substr(a)) + })); + var an = /[ap]\.?m?\.?/i, rn = he("Hours", !0); + + function ln(e, t, n) { + return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" + } + + var on, sn = { + calendar: A, + longDateFormat: U, + invalidDate: G, + ordinal: K, + dayOfMonthOrdinalParse: X, + relativeTime: Q, + months: tt, + monthsShort: nt, + week: Yt, + weekdays: At, + weekdaysMin: Ct, + weekdaysShort: Pt, + meridiemParse: an + }, dn = {}, un = {}; + + function cn(e, t) { + var n, i = Math.min(e.length, t.length); + for (n = 0; n < i; n += 1) if (e[n] !== t[n]) return n; + return i + } + + function hn(e) { + return e ? e.toLowerCase().replace("_", "-") : e + } + + function mn(e) { + for (var t, n, i, a, r = 0; r < e.length;) { + for (t = (a = hn(e[r]).split("-")).length, n = (n = hn(e[r + 1])) ? n.split("-") : null; t > 0;) { + if (i = fn(a.slice(0, t).join("-"))) return i; + if (n && n.length >= t && cn(a, n) >= t - 1) break; + t-- + } + r++ + } + return on + } + + function fn(t) { + var i = null; + if (void 0 === dn[t] && void 0 !== e && e && e.exports) try { + i = on._abbr, n(255)("./" + t), _n(i) + } catch (e) { + dn[t] = null + } + return dn[t] + } + + function _n(e, t) { + var n; + return e && ((n = u(t) ? yn(e) : pn(e, t)) ? on = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), on._abbr + } + + function pn(e, t) { + if (null !== t) { + var n, i = sn; + if (t.abbr = e, null != dn[e]) S("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), i = dn[e]._config; else if (null != t.parentLocale) if (null != dn[t.parentLocale]) i = dn[t.parentLocale]._config; else { + if (null == (n = fn(t.parentLocale))) return un[t.parentLocale] || (un[t.parentLocale] = []), un[t.parentLocale].push({ + name: e, + config: t + }), null; + i = n._config + } + return dn[e] = new O(H(i, t)), un[e] && un[e].forEach((function (e) { + pn(e.name, e.config) + })), _n(e), dn[e] + } + return delete dn[e], null + } + + function gn(e, t) { + if (null != t) { + var n, i, a = sn; + null != dn[e] && null != dn[e].parentLocale ? dn[e].set(H(dn[e]._config, t)) : (null != (i = fn(e)) && (a = i._config), t = H(a, t), null == i && (t.abbr = e), (n = new O(t)).parentLocale = dn[e], dn[e] = n), _n(e) + } else null != dn[e] && (null != dn[e].parentLocale ? (dn[e] = dn[e].parentLocale, e === _n() && _n(e)) : null != dn[e] && delete dn[e]); + return dn[e] + } + + function yn(e) { + var t; + if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return on; + if (!l(e)) { + if (t = fn(e)) return t; + e = [e] + } + return mn(e) + } + + function vn() { + return D(dn) + } + + function Mn(e) { + var t, n = e._a; + return n && -2 === g(e).overflow && (t = n[Ze] < 0 || n[Ze] > 11 ? Ze : n[Ue] < 1 || n[Ue] > et(n[Be], n[Ze]) ? Ue : n[Je] < 0 || n[Je] > 24 || 24 === n[Je] && (0 !== n[Ge] || 0 !== n[qe] || 0 !== n[Ke]) ? Je : n[Ge] < 0 || n[Ge] > 59 ? Ge : n[qe] < 0 || n[qe] > 59 ? qe : n[Ke] < 0 || n[Ke] > 999 ? Ke : -1, g(e)._overflowDayOfYear && (t < Be || t > Ue) && (t = Ue), g(e)._overflowWeeks && -1 === t && (t = Xe), g(e)._overflowWeekday && -1 === t && (t = $e), g(e).overflow = t), e + } + + var bn = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + xn = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + Ln = /Z|[+-]\d\d(?::?\d\d)?/, + wn = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/], ["YYYYMM", /\d{6}/, !1], ["YYYY", /\d{4}/, !1]], + kn = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], + Yn = /^\/?Date\((-?\d+)/i, + Dn = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + Tn = { + UT: 0, + GMT: 0, + EDT: -240, + EST: -300, + CDT: -300, + CST: -360, + MDT: -360, + MST: -420, + PDT: -420, + PST: -480 + }; + + function Sn(e) { + var t, n, i, a, r, l, o = e._i, s = bn.exec(o) || xn.exec(o); + if (s) { + for (g(e).iso = !0, t = 0, n = wn.length; t < n; t++) if (wn[t][1].exec(s[1])) { + a = wn[t][0], i = !1 !== wn[t][2]; + break + } + if (null == a) return void (e._isValid = !1); + if (s[3]) { + for (t = 0, n = kn.length; t < n; t++) if (kn[t][1].exec(s[3])) { + r = (s[2] || " ") + kn[t][0]; + break + } + if (null == r) return void (e._isValid = !1) + } + if (!i && null != r) return void (e._isValid = !1); + if (s[4]) { + if (!Ln.exec(s[4])) return void (e._isValid = !1); + l = "Z" + } + e._f = a + (r || "") + (l || ""), zn(e) + } else e._isValid = !1 + } + + function jn(e, t, n, i, a, r) { + var l = [En(e), nt.indexOf(t), parseInt(n, 10), parseInt(i, 10), parseInt(a, 10)]; + return r && l.push(parseInt(r, 10)), l + } + + function En(e) { + var t = parseInt(e, 10); + return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t + } + + function Hn(e) { + return e.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "") + } + + function On(e, t, n) { + return !e || Pt.indexOf(e) === new Date(t[0], t[1], t[2]).getDay() || (g(n).weekdayMismatch = !0, n._isValid = !1, !1) + } + + function An(e, t, n) { + if (e) return Tn[e]; + if (t) return 0; + var i = parseInt(n, 10), a = i % 100; + return (i - a) / 100 * 60 + a + } + + function Pn(e) { + var t, n = Dn.exec(Hn(e._i)); + if (n) { + if (t = jn(n[4], n[3], n[2], n[5], n[6], n[7]), !On(n[1], t, e)) return; + e._a = t, e._tzm = An(n[8], n[9], n[10]), e._d = Mt.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), g(e).rfc2822 = !0 + } else e._isValid = !1 + } + + function Cn(e) { + var t = Yn.exec(e._i); + null === t ? (Sn(e), !1 === e._isValid && (delete e._isValid, Pn(e), !1 === e._isValid && (delete e._isValid, e._strict ? e._isValid = !1 : a.createFromInputFallback(e)))) : e._d = new Date(+t[1]) + } + + function Fn(e, t, n) { + return null != e ? e : null != t ? t : n + } + + function In(e) { + var t = new Date(a.now()); + return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()] + } + + function Wn(e) { + var t, n, i, a, r, l = []; + if (!e._d) { + for (i = In(e), e._w && null == e._a[Ue] && null == e._a[Ze] && Nn(e), null != e._dayOfYear && (r = Fn(e._a[Be], i[Be]), (e._dayOfYear > pt(r) || 0 === e._dayOfYear) && (g(e)._overflowDayOfYear = !0), n = Mt(r, 0, e._dayOfYear), e._a[Ze] = n.getUTCMonth(), e._a[Ue] = n.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t) e._a[t] = l[t] = i[t]; + for (; t < 7; t++) e._a[t] = l[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; + 24 === e._a[Je] && 0 === e._a[Ge] && 0 === e._a[qe] && 0 === e._a[Ke] && (e._nextDay = !0, e._a[Je] = 0), e._d = (e._useUTC ? Mt : vt).apply(null, l), a = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[Je] = 24), e._w && void 0 !== e._w.d && e._w.d !== a && (g(e).weekdayMismatch = !0) + } + } + + function Nn(e) { + var t, n, i, a, r, l, o, s, d; + null != (t = e._w).GG || null != t.W || null != t.E ? (r = 1, l = 4, n = Fn(t.GG, e._a[Be], Lt(qn(), 1, 4).year), i = Fn(t.W, 1), ((a = Fn(t.E, 1)) < 1 || a > 7) && (s = !0)) : (r = e._locale._week.dow, l = e._locale._week.doy, d = Lt(qn(), r, l), n = Fn(t.gg, e._a[Be], d.year), i = Fn(t.w, d.week), null != t.d ? ((a = t.d) < 0 || a > 6) && (s = !0) : null != t.e ? (a = t.e + r, (t.e < 0 || t.e > 6) && (s = !0)) : a = r), i < 1 || i > wt(n, r, l) ? g(e)._overflowWeeks = !0 : null != s ? g(e)._overflowWeekday = !0 : (o = xt(n, i, a, r, l), e._a[Be] = o.year, e._dayOfYear = o.dayOfYear) + } + + function zn(e) { + if (e._f !== a.ISO_8601) if (e._f !== a.RFC_2822) { + e._a = [], g(e).empty = !0; + var t, n, i, r, l, o, s = "" + e._i, d = s.length, u = 0; + for (i = Z(e._f, e._locale).match(F) || [], t = 0; t < i.length; t++) r = i[t], (n = (s.match(Ce(r, e)) || [])[0]) && ((l = s.substr(0, s.indexOf(n))).length > 0 && g(e).unusedInput.push(l), s = s.slice(s.indexOf(n) + n.length), u += n.length), N[r] ? (n ? g(e).empty = !1 : g(e).unusedTokens.push(r), Re(r, n, e)) : e._strict && !n && g(e).unusedTokens.push(r); + g(e).charsLeftOver = d - u, s.length > 0 && g(e).unusedInput.push(s), e._a[Je] <= 12 && !0 === g(e).bigHour && e._a[Je] > 0 && (g(e).bigHour = void 0), g(e).parsedDateParts = e._a.slice(0), g(e).meridiem = e._meridiem, e._a[Je] = Rn(e._locale, e._a[Je], e._meridiem), null !== (o = g(e).era) && (e._a[Be] = e._locale.erasConvertYear(o, e._a[Be])), Wn(e), Mn(e) + } else Pn(e); else Sn(e) + } + + function Rn(e, t, n) { + var i; + return null == n ? t : null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((i = e.isPM(n)) && t < 12 && (t += 12), i || 12 !== t || (t = 0), t) : t + } + + function Vn(e) { + var t, n, i, a, r, l, o = !1; + if (0 === e._f.length) return g(e).invalidFormat = !0, void (e._d = new Date(NaN)); + for (a = 0; a < e._f.length; a++) r = 0, l = !1, t = x({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[a], zn(t), y(t) && (l = !0), r += g(t).charsLeftOver, r += 10 * g(t).unusedTokens.length, g(t).score = r, o ? r < i && (i = r, n = t) : (null == i || r < i || l) && (i = r, n = t, l && (o = !0)); + f(e, n || t) + } + + function Bn(e) { + if (!e._d) { + var t = re(e._i), n = void 0 === t.day ? t.date : t.day; + e._a = m([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], (function (e) { + return e && parseInt(e, 10) + })), Wn(e) + } + } + + function Zn(e) { + var t = new L(Mn(Un(e))); + return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t + } + + function Un(e) { + var t = e._i, n = e._f; + return e._locale = e._locale || yn(e._l), null === t || void 0 === n && "" === t ? v({nullInput: !0}) : ("string" == typeof t && (e._i = t = e._locale.preparse(t)), w(t) ? new L(Mn(t)) : (h(t) ? e._d = t : l(n) ? Vn(e) : n ? zn(e) : Jn(e), y(e) || (e._d = null), e)) + } + + function Jn(e) { + var t = e._i; + u(t) ? e._d = new Date(a.now()) : h(t) ? e._d = new Date(t.valueOf()) : "string" == typeof t ? Cn(e) : l(t) ? (e._a = m(t.slice(0), (function (e) { + return parseInt(e, 10) + })), Wn(e)) : o(t) ? Bn(e) : c(t) ? e._d = new Date(t) : a.createFromInputFallback(e) + } + + function Gn(e, t, n, i, a) { + var r = {}; + return !0 !== t && !1 !== t || (i = t, t = void 0), !0 !== n && !1 !== n || (i = n, n = void 0), (o(e) && d(e) || l(e) && 0 === e.length) && (e = void 0), r._isAMomentObject = !0, r._useUTC = r._isUTC = a, r._l = n, r._i = e, r._f = t, r._strict = i, Zn(r) + } + + function qn(e, t, n, i) { + return Gn(e, t, n, i, !1) + } + + a.createFromInputFallback = Y("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function (e) { + e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) + })), a.ISO_8601 = function () { + }, a.RFC_2822 = function () { + }; + var Kn = Y("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function () { + var e = qn.apply(null, arguments); + return this.isValid() && e.isValid() ? e < this ? this : e : v() + })), + Xn = Y("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function () { + var e = qn.apply(null, arguments); + return this.isValid() && e.isValid() ? e > this ? this : e : v() + })); + + function $n(e, t) { + var n, i; + if (1 === t.length && l(t[0]) && (t = t[0]), !t.length) return qn(); + for (n = t[0], i = 1; i < t.length; ++i) t[i].isValid() && !t[i][e](n) || (n = t[i]); + return n + } + + function Qn() { + return $n("isBefore", [].slice.call(arguments, 0)) + } + + function ei() { + return $n("isAfter", [].slice.call(arguments, 0)) + } + + var ti = function () { + return Date.now ? Date.now() : +new Date + }, ni = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; + + function ii(e) { + var t, n, i = !1; + for (t in e) if (s(e, t) && (-1 === Ve.call(ni, t) || null != e[t] && isNaN(e[t]))) return !1; + for (n = 0; n < ni.length; ++n) if (e[ni[n]]) { + if (i) return !1; + parseFloat(e[ni[n]]) !== ce(e[ni[n]]) && (i = !0) + } + return !0 + } + + function ai() { + return this._isValid + } + + function ri() { + return Ti(NaN) + } + + function li(e) { + var t = re(e), n = t.year || 0, i = t.quarter || 0, a = t.month || 0, r = t.week || t.isoWeek || 0, + l = t.day || 0, o = t.hour || 0, s = t.minute || 0, d = t.second || 0, u = t.millisecond || 0; + this._isValid = ii(t), this._milliseconds = +u + 1e3 * d + 6e4 * s + 1e3 * o * 60 * 60, this._days = +l + 7 * r, this._months = +a + 3 * i + 12 * n, this._data = {}, this._locale = yn(), this._bubble() + } + + function oi(e) { + return e instanceof li + } + + function si(e) { + return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) + } + + function di(e, t, n) { + var i, a = Math.min(e.length, t.length), r = Math.abs(e.length - t.length), l = 0; + for (i = 0; i < a; i++) (n && e[i] !== t[i] || !n && ce(e[i]) !== ce(t[i])) && l++; + return l + r + } + + function ui(e, t) { + z(e, 0, 0, (function () { + var e = this.utcOffset(), n = "+"; + return e < 0 && (e = -e, n = "-"), n + C(~~(e / 60), 2) + t + C(~~e % 60, 2) + })) + } + + ui("Z", ":"), ui("ZZ", ""), Pe("Z", He), Pe("ZZ", He), Ne(["Z", "ZZ"], (function (e, t, n) { + n._useUTC = !0, n._tzm = hi(He, e) + })); + var ci = /([\+\-]|\d\d)/gi; + + function hi(e, t) { + var n, i, a = (t || "").match(e); + return null === a ? null : 0 === (i = 60 * (n = ((a[a.length - 1] || []) + "").match(ci) || ["-", 0, 0])[1] + ce(n[2])) ? 0 : "+" === n[0] ? i : -i + } + + function mi(e, t) { + var n, i; + return t._isUTC ? (n = t.clone(), i = (w(e) || h(e) ? e.valueOf() : qn(e).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + i), a.updateOffset(n, !1), n) : qn(e).local() + } + + function fi(e) { + return -Math.round(e._d.getTimezoneOffset()) + } + + function _i(e, t, n) { + var i, r = this._offset || 0; + if (!this.isValid()) return null != e ? this : NaN; + if (null != e) { + if ("string" == typeof e) { + if (null === (e = hi(He, e))) return this + } else Math.abs(e) < 16 && !n && (e *= 60); + return !this._isUTC && t && (i = fi(this)), this._offset = e, this._isUTC = !0, null != i && this.add(i, "m"), r !== e && (!t || this._changeInProgress ? Oi(this, Ti(e - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this + } + return this._isUTC ? r : fi(this) + } + + function pi(e, t) { + return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() + } + + function gi(e) { + return this.utcOffset(0, e) + } + + function yi(e) { + return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(fi(this), "m")), this + } + + function vi() { + if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); else if ("string" == typeof this._i) { + var e = hi(Ee, this._i); + null != e ? this.utcOffset(e) : this.utcOffset(0, !0) + } + return this + } + + function Mi(e) { + return !!this.isValid() && (e = e ? qn(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) + } + + function bi() { + return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() + } + + function xi() { + if (!u(this._isDSTShifted)) return this._isDSTShifted; + var e, t = {}; + return x(t, this), (t = Un(t))._a ? (e = t._isUTC ? _(t._a) : qn(t._a), this._isDSTShifted = this.isValid() && di(t._a, e.toArray()) > 0) : this._isDSTShifted = !1, this._isDSTShifted + } + + function Li() { + return !!this.isValid() && !this._isUTC + } + + function wi() { + return !!this.isValid() && this._isUTC + } + + function ki() { + return !!this.isValid() && this._isUTC && 0 === this._offset + } + + a.updateOffset = function () { + }; + var Yi = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + Di = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function Ti(e, t) { + var n, i, a, r = e, l = null; + return oi(e) ? r = { + ms: e._milliseconds, + d: e._days, + M: e._months + } : c(e) || !isNaN(+e) ? (r = {}, t ? r[t] = +e : r.milliseconds = +e) : (l = Yi.exec(e)) ? (n = "-" === l[1] ? -1 : 1, r = { + y: 0, + d: ce(l[Ue]) * n, + h: ce(l[Je]) * n, + m: ce(l[Ge]) * n, + s: ce(l[qe]) * n, + ms: ce(si(1e3 * l[Ke])) * n + }) : (l = Di.exec(e)) ? (n = "-" === l[1] ? -1 : 1, r = { + y: Si(l[2], n), + M: Si(l[3], n), + w: Si(l[4], n), + d: Si(l[5], n), + h: Si(l[6], n), + m: Si(l[7], n), + s: Si(l[8], n) + }) : null == r ? r = {} : "object" == typeof r && ("from" in r || "to" in r) && (a = Ei(qn(r.from), qn(r.to)), (r = {}).ms = a.milliseconds, r.M = a.months), i = new li(r), oi(e) && s(e, "_locale") && (i._locale = e._locale), oi(e) && s(e, "_isValid") && (i._isValid = e._isValid), i + } + + function Si(e, t) { + var n = e && parseFloat(e.replace(",", ".")); + return (isNaN(n) ? 0 : n) * t + } + + function ji(e, t) { + var n = {}; + return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n + } + + function Ei(e, t) { + var n; + return e.isValid() && t.isValid() ? (t = mi(t, e), e.isBefore(t) ? n = ji(e, t) : ((n = ji(t, e)).milliseconds = -n.milliseconds, n.months = -n.months), n) : { + milliseconds: 0, + months: 0 + } + } + + function Hi(e, t) { + return function (n, i) { + var a; + return null === i || isNaN(+i) || (S(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), a = n, n = i, i = a), Oi(this, Ti(n, i), e), this + } + } + + function Oi(e, t, n, i) { + var r = t._milliseconds, l = si(t._days), o = si(t._months); + e.isValid() && (i = null == i || i, o && ut(e, me(e, "Month") + o * n), l && fe(e, "Date", me(e, "Date") + l * n), r && e._d.setTime(e._d.valueOf() + r * n), i && a.updateOffset(e, l || o)) + } + + Ti.fn = li.prototype, Ti.invalid = ri; + var Ai = Hi(1, "add"), Pi = Hi(-1, "subtract"); + + function Ci(e) { + return "string" == typeof e || e instanceof String + } + + function Fi(e) { + return w(e) || h(e) || Ci(e) || c(e) || Wi(e) || Ii(e) || null == e + } + + function Ii(e) { + var t, n, i = o(e) && !d(e), a = !1, + r = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"]; + for (t = 0; t < r.length; t += 1) n = r[t], a = a || s(e, n); + return i && a + } + + function Wi(e) { + var t = l(e), n = !1; + return t && (n = 0 === e.filter((function (t) { + return !c(t) && Ci(e) + })).length), t && n + } + + function Ni(e) { + var t, n, i = o(e) && !d(e), a = !1, + r = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"]; + for (t = 0; t < r.length; t += 1) n = r[t], a = a || s(e, n); + return i && a + } + + function zi(e, t) { + var n = e.diff(t, "days", !0); + return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" + } + + function Ri(e, t) { + 1 === arguments.length && (arguments[0] ? Fi(arguments[0]) ? (e = arguments[0], t = void 0) : Ni(arguments[0]) && (t = arguments[0], e = void 0) : (e = void 0, t = void 0)); + var n = e || qn(), i = mi(n, this).startOf("day"), r = a.calendarFormat(this, i) || "sameElse", + l = t && (j(t[r]) ? t[r].call(this, n) : t[r]); + return this.format(l || this.localeData().calendar(r, this, qn(n))) + } + + function Vi() { + return new L(this) + } + + function Bi(e, t) { + var n = w(e) ? e : qn(e); + return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) + } + + function Zi(e, t) { + var n = w(e) ? e : qn(e); + return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) + } + + function Ui(e, t, n, i) { + var a = w(e) ? e : qn(e), r = w(t) ? t : qn(t); + return !!(this.isValid() && a.isValid() && r.isValid()) && ("(" === (i = i || "()")[0] ? this.isAfter(a, n) : !this.isBefore(a, n)) && (")" === i[1] ? this.isBefore(r, n) : !this.isAfter(r, n)) + } + + function Ji(e, t) { + var n, i = w(e) ? e : qn(e); + return !(!this.isValid() || !i.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() === i.valueOf() : (n = i.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) + } + + function Gi(e, t) { + return this.isSame(e, t) || this.isAfter(e, t) + } + + function qi(e, t) { + return this.isSame(e, t) || this.isBefore(e, t) + } + + function Ki(e, t, n) { + var i, a, r; + if (!this.isValid()) return NaN; + if (!(i = mi(e, this)).isValid()) return NaN; + switch (a = 6e4 * (i.utcOffset() - this.utcOffset()), t = ae(t)) { + case"year": + r = Xi(this, i) / 12; + break; + case"month": + r = Xi(this, i); + break; + case"quarter": + r = Xi(this, i) / 3; + break; + case"second": + r = (this - i) / 1e3; + break; + case"minute": + r = (this - i) / 6e4; + break; + case"hour": + r = (this - i) / 36e5; + break; + case"day": + r = (this - i - a) / 864e5; + break; + case"week": + r = (this - i - a) / 6048e5; + break; + default: + r = this - i + } + return n ? r : ue(r) + } + + function Xi(e, t) { + if (e.date() < t.date()) return -Xi(t, e); + var n = 12 * (t.year() - e.year()) + (t.month() - e.month()), i = e.clone().add(n, "months"); + return -(n + (t - i < 0 ? (t - i) / (i - e.clone().add(n - 1, "months")) : (t - i) / (e.clone().add(n + 1, "months") - i))) || 0 + } + + function $i() { + return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") + } + + function Qi(e) { + if (!this.isValid()) return null; + var t = !0 !== e, n = t ? this.clone().utc() : this; + return n.year() < 0 || n.year() > 9999 ? B(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : j(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", B(n, "Z")) : B(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") + } + + function ea() { + if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; + var e, t, n, i, a = "moment", r = ""; + return this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", r = "Z"), e = "[" + a + '("]', t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", n = "-MM-DD[T]HH:mm:ss.SSS", i = r + '[")]', this.format(e + t + n + i) + } + + function ta(e) { + e || (e = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); + var t = B(this, e); + return this.localeData().postformat(t) + } + + function na(e, t) { + return this.isValid() && (w(e) && e.isValid() || qn(e).isValid()) ? Ti({ + to: this, + from: e + }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() + } + + function ia(e) { + return this.from(qn(), e) + } + + function aa(e, t) { + return this.isValid() && (w(e) && e.isValid() || qn(e).isValid()) ? Ti({ + from: this, + to: e + }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() + } + + function ra(e) { + return this.to(qn(), e) + } + + function la(e) { + var t; + return void 0 === e ? this._locale._abbr : (null != (t = yn(e)) && (this._locale = t), this) + } + + a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; + var oa = Y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function (e) { + return void 0 === e ? this.localeData() : this.locale(e) + })); + + function sa() { + return this._locale + } + + var da = 1e3, ua = 60 * da, ca = 60 * ua, ha = 3506328 * ca; + + function ma(e, t) { + return (e % t + t) % t + } + + function fa(e, t, n) { + return e < 100 && e >= 0 ? new Date(e + 400, t, n) - ha : new Date(e, t, n).valueOf() + } + + function _a(e, t, n) { + return e < 100 && e >= 0 ? Date.UTC(e + 400, t, n) - ha : Date.UTC(e, t, n) + } + + function pa(e) { + var t, n; + if (void 0 === (e = ae(e)) || "millisecond" === e || !this.isValid()) return this; + switch (n = this._isUTC ? _a : fa, e) { + case"year": + t = n(this.year(), 0, 1); + break; + case"quarter": + t = n(this.year(), this.month() - this.month() % 3, 1); + break; + case"month": + t = n(this.year(), this.month(), 1); + break; + case"week": + t = n(this.year(), this.month(), this.date() - this.weekday()); + break; + case"isoWeek": + t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case"day": + case"date": + t = n(this.year(), this.month(), this.date()); + break; + case"hour": + t = this._d.valueOf(), t -= ma(t + (this._isUTC ? 0 : this.utcOffset() * ua), ca); + break; + case"minute": + t = this._d.valueOf(), t -= ma(t, ua); + break; + case"second": + t = this._d.valueOf(), t -= ma(t, da) + } + return this._d.setTime(t), a.updateOffset(this, !0), this + } + + function ga(e) { + var t, n; + if (void 0 === (e = ae(e)) || "millisecond" === e || !this.isValid()) return this; + switch (n = this._isUTC ? _a : fa, e) { + case"year": + t = n(this.year() + 1, 0, 1) - 1; + break; + case"quarter": + t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case"month": + t = n(this.year(), this.month() + 1, 1) - 1; + break; + case"week": + t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case"isoWeek": + t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case"day": + case"date": + t = n(this.year(), this.month(), this.date() + 1) - 1; + break; + case"hour": + t = this._d.valueOf(), t += ca - ma(t + (this._isUTC ? 0 : this.utcOffset() * ua), ca) - 1; + break; + case"minute": + t = this._d.valueOf(), t += ua - ma(t, ua) - 1; + break; + case"second": + t = this._d.valueOf(), t += da - ma(t, da) - 1 + } + return this._d.setTime(t), a.updateOffset(this, !0), this + } + + function ya() { + return this._d.valueOf() - 6e4 * (this._offset || 0) + } + + function va() { + return Math.floor(this.valueOf() / 1e3) + } + + function Ma() { + return new Date(this.valueOf()) + } + + function ba() { + var e = this; + return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] + } + + function xa() { + var e = this; + return { + years: e.year(), + months: e.month(), + date: e.date(), + hours: e.hours(), + minutes: e.minutes(), + seconds: e.seconds(), + milliseconds: e.milliseconds() + } + } + + function La() { + return this.isValid() ? this.toISOString() : null + } + + function wa() { + return y(this) + } + + function ka() { + return f({}, g(this)) + } + + function Ya() { + return g(this).overflow + } + + function Da() { + return {input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict} + } + + function Ta(e, t) { + var n, i, r, l = this._eras || yn("en")._eras; + for (n = 0, i = l.length; n < i; ++n) { + switch (typeof l[n].since) { + case"string": + r = a(l[n].since).startOf("day"), l[n].since = r.valueOf() + } + switch (typeof l[n].until) { + case"undefined": + l[n].until = 1 / 0; + break; + case"string": + r = a(l[n].until).startOf("day").valueOf(), l[n].until = r.valueOf() + } + } + return l + } + + function Sa(e, t, n) { + var i, a, r, l, o, s = this.eras(); + for (e = e.toUpperCase(), i = 0, a = s.length; i < a; ++i) if (r = s[i].name.toUpperCase(), l = s[i].abbr.toUpperCase(), o = s[i].narrow.toUpperCase(), n) switch (t) { + case"N": + case"NN": + case"NNN": + if (l === e) return s[i]; + break; + case"NNNN": + if (r === e) return s[i]; + break; + case"NNNNN": + if (o === e) return s[i] + } else if ([r, l, o].indexOf(e) >= 0) return s[i] + } + + function ja(e, t) { + var n = e.since <= e.until ? 1 : -1; + return void 0 === t ? a(e.since).year() : a(e.since).year() + (t - e.offset) * n + } + + function Ea() { + var e, t, n, i = this.localeData().eras(); + for (e = 0, t = i.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].name; + if (i[e].until <= n && n <= i[e].since) return i[e].name + } + return "" + } + + function Ha() { + var e, t, n, i = this.localeData().eras(); + for (e = 0, t = i.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].narrow; + if (i[e].until <= n && n <= i[e].since) return i[e].narrow + } + return "" + } + + function Oa() { + var e, t, n, i = this.localeData().eras(); + for (e = 0, t = i.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].abbr; + if (i[e].until <= n && n <= i[e].since) return i[e].abbr + } + return "" + } + + function Aa() { + var e, t, n, i, r = this.localeData().eras(); + for (e = 0, t = r.length; e < t; ++e) if (n = r[e].since <= r[e].until ? 1 : -1, i = this.clone().startOf("day").valueOf(), r[e].since <= i && i <= r[e].until || r[e].until <= i && i <= r[e].since) return (this.year() - a(r[e].since).year()) * n + r[e].offset; + return this.year() + } + + function Pa(e) { + return s(this, "_erasNameRegex") || Ra.call(this), e ? this._erasNameRegex : this._erasRegex + } + + function Ca(e) { + return s(this, "_erasAbbrRegex") || Ra.call(this), e ? this._erasAbbrRegex : this._erasRegex + } + + function Fa(e) { + return s(this, "_erasNarrowRegex") || Ra.call(this), e ? this._erasNarrowRegex : this._erasRegex + } + + function Ia(e, t) { + return t.erasAbbrRegex(e) + } + + function Wa(e, t) { + return t.erasNameRegex(e) + } + + function Na(e, t) { + return t.erasNarrowRegex(e) + } + + function za(e, t) { + return t._eraYearOrdinalRegex || Se + } + + function Ra() { + var e, t, n = [], i = [], a = [], r = [], l = this.eras(); + for (e = 0, t = l.length; e < t; ++e) i.push(Ie(l[e].name)), n.push(Ie(l[e].abbr)), a.push(Ie(l[e].narrow)), r.push(Ie(l[e].name)), r.push(Ie(l[e].abbr)), r.push(Ie(l[e].narrow)); + this._erasRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._erasNameRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._erasAbbrRegex = new RegExp("^(" + n.join("|") + ")", "i"), this._erasNarrowRegex = new RegExp("^(" + a.join("|") + ")", "i") + } + + function Va(e, t) { + z(0, [e, e.length], 0, t) + } + + function Ba(e) { + return Ka.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) + } + + function Za(e) { + return Ka.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) + } + + function Ua() { + return wt(this.year(), 1, 4) + } + + function Ja() { + return wt(this.isoWeekYear(), 1, 4) + } + + function Ga() { + var e = this.localeData()._week; + return wt(this.year(), e.dow, e.doy) + } + + function qa() { + var e = this.localeData()._week; + return wt(this.weekYear(), e.dow, e.doy) + } + + function Ka(e, t, n, i, a) { + var r; + return null == e ? Lt(this, i, a).year : (t > (r = wt(e, i, a)) && (t = r), Xa.call(this, e, t, n, i, a)) + } + + function Xa(e, t, n, i, a) { + var r = xt(e, t, n, i, a), l = Mt(r.year, 0, r.dayOfYear); + return this.year(l.getUTCFullYear()), this.month(l.getUTCMonth()), this.date(l.getUTCDate()), this + } + + function $a(e) { + return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) + } + + z("N", 0, 0, "eraAbbr"), z("NN", 0, 0, "eraAbbr"), z("NNN", 0, 0, "eraAbbr"), z("NNNN", 0, 0, "eraName"), z("NNNNN", 0, 0, "eraNarrow"), z("y", ["y", 1], "yo", "eraYear"), z("y", ["yy", 2], 0, "eraYear"), z("y", ["yyy", 3], 0, "eraYear"), z("y", ["yyyy", 4], 0, "eraYear"), Pe("N", Ia), Pe("NN", Ia), Pe("NNN", Ia), Pe("NNNN", Wa), Pe("NNNNN", Na), Ne(["N", "NN", "NNN", "NNNN", "NNNNN"], (function (e, t, n, i) { + var a = n._locale.erasParse(e, i, n._strict); + a ? g(n).era = a : g(n).invalidEra = e + })), Pe("y", Se), Pe("yy", Se), Pe("yyy", Se), Pe("yyyy", Se), Pe("yo", za), Ne(["y", "yy", "yyy", "yyyy"], Be), Ne(["yo"], (function (e, t, n, i) { + var a; + n._locale._eraYearOrdinalRegex && (a = e.match(n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse ? t[Be] = n._locale.eraYearOrdinalParse(e, a) : t[Be] = parseInt(e, 10) + })), z(0, ["gg", 2], 0, (function () { + return this.weekYear() % 100 + })), z(0, ["GG", 2], 0, (function () { + return this.isoWeekYear() % 100 + })), Va("gggg", "weekYear"), Va("ggggg", "weekYear"), Va("GGGG", "isoWeekYear"), Va("GGGGG", "isoWeekYear"), ie("weekYear", "gg"), ie("isoWeekYear", "GG"), oe("weekYear", 1), oe("isoWeekYear", 1), Pe("G", je), Pe("g", je), Pe("GG", Le, ve), Pe("gg", Le, ve), Pe("GGGG", De, be), Pe("gggg", De, be), Pe("GGGGG", Te, xe), Pe("ggggg", Te, xe), ze(["gggg", "ggggg", "GGGG", "GGGGG"], (function (e, t, n, i) { + t[i.substr(0, 2)] = ce(e) + })), ze(["gg", "GG"], (function (e, t, n, i) { + t[i] = a.parseTwoDigitYear(e) + })), z("Q", 0, "Qo", "quarter"), ie("quarter", "Q"), oe("quarter", 7), Pe("Q", ye), Ne("Q", (function (e, t) { + t[Ze] = 3 * (ce(e) - 1) + })), z("D", ["DD", 2], "Do", "date"), ie("date", "D"), oe("date", 9), Pe("D", Le), Pe("DD", Le, ve), Pe("Do", (function (e, t) { + return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient + })), Ne(["D", "DD"], Ue), Ne("Do", (function (e, t) { + t[Ue] = ce(e.match(Le)[0]) + })); + var Qa = he("Date", !0); + + function er(e) { + var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; + return null == e ? t : this.add(e - t, "d") + } + + z("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), ie("dayOfYear", "DDD"), oe("dayOfYear", 4), Pe("DDD", Ye), Pe("DDDD", Me), Ne(["DDD", "DDDD"], (function (e, t, n) { + n._dayOfYear = ce(e) + })), z("m", ["mm", 2], 0, "minute"), ie("minute", "m"), oe("minute", 14), Pe("m", Le), Pe("mm", Le, ve), Ne(["m", "mm"], Ge); + var tr = he("Minutes", !1); + z("s", ["ss", 2], 0, "second"), ie("second", "s"), oe("second", 15), Pe("s", Le), Pe("ss", Le, ve), Ne(["s", "ss"], qe); + var nr, ir, ar = he("Seconds", !1); + for (z("S", 0, 0, (function () { + return ~~(this.millisecond() / 100) + })), z(0, ["SS", 2], 0, (function () { + return ~~(this.millisecond() / 10) + })), z(0, ["SSS", 3], 0, "millisecond"), z(0, ["SSSS", 4], 0, (function () { + return 10 * this.millisecond() + })), z(0, ["SSSSS", 5], 0, (function () { + return 100 * this.millisecond() + })), z(0, ["SSSSSS", 6], 0, (function () { + return 1e3 * this.millisecond() + })), z(0, ["SSSSSSS", 7], 0, (function () { + return 1e4 * this.millisecond() + })), z(0, ["SSSSSSSS", 8], 0, (function () { + return 1e5 * this.millisecond() + })), z(0, ["SSSSSSSSS", 9], 0, (function () { + return 1e6 * this.millisecond() + })), ie("millisecond", "ms"), oe("millisecond", 16), Pe("S", Ye, ye), Pe("SS", Ye, ve), Pe("SSS", Ye, Me), nr = "SSSS"; nr.length <= 9; nr += "S") Pe(nr, Se); + + function rr(e, t) { + t[Ke] = ce(1e3 * ("0." + e)) + } + + for (nr = "S"; nr.length <= 9; nr += "S") Ne(nr, rr); + + function lr() { + return this._isUTC ? "UTC" : "" + } + + function or() { + return this._isUTC ? "Coordinated Universal Time" : "" + } + + ir = he("Milliseconds", !1), z("z", 0, 0, "zoneAbbr"), z("zz", 0, 0, "zoneName"); + var sr = L.prototype; + + function dr(e) { + return qn(1e3 * e) + } + + function ur() { + return qn.apply(null, arguments).parseZone() + } + + function cr(e) { + return e + } + + sr.add = Ai, sr.calendar = Ri, sr.clone = Vi, sr.diff = Ki, sr.endOf = ga, sr.format = ta, sr.from = na, sr.fromNow = ia, sr.to = aa, sr.toNow = ra, sr.get = _e, sr.invalidAt = Ya, sr.isAfter = Bi, sr.isBefore = Zi, sr.isBetween = Ui, sr.isSame = Ji, sr.isSameOrAfter = Gi, sr.isSameOrBefore = qi, sr.isValid = wa, sr.lang = oa, sr.locale = la, sr.localeData = sa, sr.max = Xn, sr.min = Kn, sr.parsingFlags = ka, sr.set = pe, sr.startOf = pa, sr.subtract = Pi, sr.toArray = ba, sr.toObject = xa, sr.toDate = Ma, sr.toISOString = Qi, sr.inspect = ea, "undefined" != typeof Symbol && null != Symbol.for && (sr[Symbol.for("nodejs.util.inspect.custom")] = function () { + return "Moment<" + this.format() + ">" + }), sr.toJSON = La, sr.toString = $i, sr.unix = va, sr.valueOf = ya, sr.creationData = Da, sr.eraName = Ea, sr.eraNarrow = Ha, sr.eraAbbr = Oa, sr.eraYear = Aa, sr.year = gt, sr.isLeapYear = yt, sr.weekYear = Ba, sr.isoWeekYear = Za, sr.quarter = sr.quarters = $a, sr.month = ct, sr.daysInMonth = ht, sr.week = sr.weeks = St, sr.isoWeek = sr.isoWeeks = jt, sr.weeksInYear = Ga, sr.weeksInWeekYear = qa, sr.isoWeeksInYear = Ua, sr.isoWeeksInISOWeekYear = Ja, sr.date = Qa, sr.day = sr.days = Zt, sr.weekday = Ut, sr.isoWeekday = Jt, sr.dayOfYear = er, sr.hour = sr.hours = rn, sr.minute = sr.minutes = tr, sr.second = sr.seconds = ar, sr.millisecond = sr.milliseconds = ir, sr.utcOffset = _i, sr.utc = gi, sr.local = yi, sr.parseZone = vi, sr.hasAlignedHourOffset = Mi, sr.isDST = bi, sr.isLocal = Li, sr.isUtcOffset = wi, sr.isUtc = ki, sr.isUTC = ki, sr.zoneAbbr = lr, sr.zoneName = or, sr.dates = Y("dates accessor is deprecated. Use date instead.", Qa), sr.months = Y("months accessor is deprecated. Use month instead", ct), sr.years = Y("years accessor is deprecated. Use year instead", gt), sr.zone = Y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", pi), sr.isDSTShifted = Y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", xi); + var hr = O.prototype; + + function mr(e, t, n, i) { + var a = yn(), r = _().set(i, t); + return a[n](r, e) + } + + function fr(e, t, n) { + if (c(e) && (t = e, e = void 0), e = e || "", null != t) return mr(e, t, n, "month"); + var i, a = []; + for (i = 0; i < 12; i++) a[i] = mr(e, i, n, "month"); + return a + } + + function _r(e, t, n, i) { + "boolean" == typeof e ? (c(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, c(t) && (n = t, t = void 0), t = t || ""); + var a, r = yn(), l = e ? r._week.dow : 0, o = []; + if (null != n) return mr(t, (n + l) % 7, i, "day"); + for (a = 0; a < 7; a++) o[a] = mr(t, (a + l) % 7, i, "day"); + return o + } + + function pr(e, t) { + return fr(e, t, "months") + } + + function gr(e, t) { + return fr(e, t, "monthsShort") + } + + function yr(e, t, n) { + return _r(e, t, n, "weekdays") + } + + function vr(e, t, n) { + return _r(e, t, n, "weekdaysShort") + } + + function Mr(e, t, n) { + return _r(e, t, n, "weekdaysMin") + } + + hr.calendar = P, hr.longDateFormat = J, hr.invalidDate = q, hr.ordinal = $, hr.preparse = cr, hr.postformat = cr, hr.relativeTime = ee, hr.pastFuture = te, hr.set = E, hr.eras = Ta, hr.erasParse = Sa, hr.erasConvertYear = ja, hr.erasAbbrRegex = Ca, hr.erasNameRegex = Pa, hr.erasNarrowRegex = Fa, hr.months = lt, hr.monthsShort = ot, hr.monthsParse = dt, hr.monthsRegex = ft, hr.monthsShortRegex = mt, hr.week = kt, hr.firstDayOfYear = Tt, hr.firstDayOfWeek = Dt, hr.weekdays = Nt, hr.weekdaysMin = Rt, hr.weekdaysShort = zt, hr.weekdaysParse = Bt, hr.weekdaysRegex = Gt, hr.weekdaysShortRegex = qt, hr.weekdaysMinRegex = Kt, hr.isPM = nn, hr.meridiem = ln, _n("en", { + eras: [{ + since: "0001-01-01", + until: 1 / 0, + offset: 1, + name: "Anno Domini", + narrow: "AD", + abbr: "AD" + }, {since: "0000-12-31", until: -1 / 0, offset: 1, name: "Before Christ", narrow: "BC", abbr: "BC"}], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (e) { + var t = e % 10; + return e + (1 === ce(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") + } + }), a.lang = Y("moment.lang is deprecated. Use moment.locale instead.", _n), a.langData = Y("moment.langData is deprecated. Use moment.localeData instead.", yn); + var br = Math.abs; + + function xr() { + var e = this._data; + return this._milliseconds = br(this._milliseconds), this._days = br(this._days), this._months = br(this._months), e.milliseconds = br(e.milliseconds), e.seconds = br(e.seconds), e.minutes = br(e.minutes), e.hours = br(e.hours), e.months = br(e.months), e.years = br(e.years), this + } + + function Lr(e, t, n, i) { + var a = Ti(t, n); + return e._milliseconds += i * a._milliseconds, e._days += i * a._days, e._months += i * a._months, e._bubble() + } + + function wr(e, t) { + return Lr(this, e, t, 1) + } + + function kr(e, t) { + return Lr(this, e, t, -1) + } + + function Yr(e) { + return e < 0 ? Math.floor(e) : Math.ceil(e) + } + + function Dr() { + var e, t, n, i, a, r = this._milliseconds, l = this._days, o = this._months, s = this._data; + return r >= 0 && l >= 0 && o >= 0 || r <= 0 && l <= 0 && o <= 0 || (r += 864e5 * Yr(Sr(o) + l), l = 0, o = 0), s.milliseconds = r % 1e3, e = ue(r / 1e3), s.seconds = e % 60, t = ue(e / 60), s.minutes = t % 60, n = ue(t / 60), s.hours = n % 24, l += ue(n / 24), o += a = ue(Tr(l)), l -= Yr(Sr(a)), i = ue(o / 12), o %= 12, s.days = l, s.months = o, s.years = i, this + } + + function Tr(e) { + return 4800 * e / 146097 + } + + function Sr(e) { + return 146097 * e / 4800 + } + + function jr(e) { + if (!this.isValid()) return NaN; + var t, n, i = this._milliseconds; + if ("month" === (e = ae(e)) || "quarter" === e || "year" === e) switch (t = this._days + i / 864e5, n = this._months + Tr(t), e) { + case"month": + return n; + case"quarter": + return n / 3; + case"year": + return n / 12 + } else switch (t = this._days + Math.round(Sr(this._months)), e) { + case"week": + return t / 7 + i / 6048e5; + case"day": + return t + i / 864e5; + case"hour": + return 24 * t + i / 36e5; + case"minute": + return 1440 * t + i / 6e4; + case"second": + return 86400 * t + i / 1e3; + case"millisecond": + return Math.floor(864e5 * t) + i; + default: + throw new Error("Unknown unit " + e) + } + } + + function Er() { + return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * ce(this._months / 12) : NaN + } + + function Hr(e) { + return function () { + return this.as(e) + } + } + + var Or = Hr("ms"), Ar = Hr("s"), Pr = Hr("m"), Cr = Hr("h"), Fr = Hr("d"), Ir = Hr("w"), Wr = Hr("M"), + Nr = Hr("Q"), zr = Hr("y"); + + function Rr() { + return Ti(this) + } + + function Vr(e) { + return e = ae(e), this.isValid() ? this[e + "s"]() : NaN + } + + function Br(e) { + return function () { + return this.isValid() ? this._data[e] : NaN + } + } + + var Zr = Br("milliseconds"), Ur = Br("seconds"), Jr = Br("minutes"), Gr = Br("hours"), qr = Br("days"), + Kr = Br("months"), Xr = Br("years"); + + function $r() { + return ue(this.days() / 7) + } + + var Qr = Math.round, el = {ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11}; + + function tl(e, t, n, i, a) { + return a.relativeTime(t || 1, !!n, e, i) + } + + function nl(e, t, n, i) { + var a = Ti(e).abs(), r = Qr(a.as("s")), l = Qr(a.as("m")), o = Qr(a.as("h")), s = Qr(a.as("d")), + d = Qr(a.as("M")), u = Qr(a.as("w")), c = Qr(a.as("y")), + h = r <= n.ss && ["s", r] || r < n.s && ["ss", r] || l <= 1 && ["m"] || l < n.m && ["mm", l] || o <= 1 && ["h"] || o < n.h && ["hh", o] || s <= 1 && ["d"] || s < n.d && ["dd", s]; + return null != n.w && (h = h || u <= 1 && ["w"] || u < n.w && ["ww", u]), (h = h || d <= 1 && ["M"] || d < n.M && ["MM", d] || c <= 1 && ["y"] || ["yy", c])[2] = t, h[3] = +e > 0, h[4] = i, tl.apply(null, h) + } + + function il(e) { + return void 0 === e ? Qr : "function" == typeof e && (Qr = e, !0) + } + + function al(e, t) { + return void 0 !== el[e] && (void 0 === t ? el[e] : (el[e] = t, "s" === e && (el.ss = t - 1), !0)) + } + + function rl(e, t) { + if (!this.isValid()) return this.localeData().invalidDate(); + var n, i, a = !1, r = el; + return "object" == typeof e && (t = e, e = !1), "boolean" == typeof e && (a = e), "object" == typeof t && (r = Object.assign({}, el, t), null != t.s && null == t.ss && (r.ss = t.s - 1)), i = nl(this, !a, r, n = this.localeData()), a && (i = n.pastFuture(+this, i)), n.postformat(i) + } + + var ll = Math.abs; + + function ol(e) { + return (e > 0) - (e < 0) || +e + } + + function sl() { + if (!this.isValid()) return this.localeData().invalidDate(); + var e, t, n, i, a, r, l, o, s = ll(this._milliseconds) / 1e3, d = ll(this._days), u = ll(this._months), + c = this.asSeconds(); + return c ? (e = ue(s / 60), t = ue(e / 60), s %= 60, e %= 60, n = ue(u / 12), u %= 12, i = s ? s.toFixed(3).replace(/\.?0+$/, "") : "", a = c < 0 ? "-" : "", r = ol(this._months) !== ol(c) ? "-" : "", l = ol(this._days) !== ol(c) ? "-" : "", o = ol(this._milliseconds) !== ol(c) ? "-" : "", a + "P" + (n ? r + n + "Y" : "") + (u ? r + u + "M" : "") + (d ? l + d + "D" : "") + (t || e || s ? "T" : "") + (t ? o + t + "H" : "") + (e ? o + e + "M" : "") + (s ? o + i + "S" : "")) : "P0D" + } + + var dl = li.prototype; + return dl.isValid = ai, dl.abs = xr, dl.add = wr, dl.subtract = kr, dl.as = jr, dl.asMilliseconds = Or, dl.asSeconds = Ar, dl.asMinutes = Pr, dl.asHours = Cr, dl.asDays = Fr, dl.asWeeks = Ir, dl.asMonths = Wr, dl.asQuarters = Nr, dl.asYears = zr, dl.valueOf = Er, dl._bubble = Dr, dl.clone = Rr, dl.get = Vr, dl.milliseconds = Zr, dl.seconds = Ur, dl.minutes = Jr, dl.hours = Gr, dl.days = qr, dl.weeks = $r, dl.months = Kr, dl.years = Xr, dl.humanize = rl, dl.toISOString = sl, dl.toString = sl, dl.toJSON = sl, dl.locale = la, dl.localeData = sa, dl.toIsoString = Y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", sl), dl.lang = oa, z("X", 0, 0, "unix"), z("x", 0, 0, "valueOf"), Pe("x", je), Pe("X", Oe), Ne("X", (function (e, t, n) { + n._d = new Date(1e3 * parseFloat(e)) + })), Ne("x", (function (e, t, n) { + n._d = new Date(ce(e)) + })), a.version = "2.29.1", r(qn), a.fn = sr, a.min = Qn, a.max = ei, a.now = ti, a.utc = _, a.unix = dr, a.months = pr, a.isDate = h, a.locale = _n, a.invalid = v, a.duration = Ti, a.isMoment = w, a.weekdays = yr, a.parseZone = ur, a.localeData = yn, a.isDuration = oi, a.monthsShort = gr, a.weekdaysMin = Mr, a.defineLocale = pn, a.updateLocale = gn, a.locales = vn, a.weekdaysShort = vr, a.normalizeUnits = ae, a.relativeTimeRounding = il, a.relativeTimeThreshold = al, a.calendarFormat = zi, a.prototype = sr, a.HTML5_FMT = { + DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", + DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", + DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", + DATE: "YYYY-MM-DD", + TIME: "HH:mm", + TIME_SECONDS: "HH:mm:ss", + TIME_MS: "HH:mm:ss.SSS", + WEEK: "GGGG-[W]WW", + MONTH: "YYYY-MM" + }, a + }() + }).call(this, n(254)(e)) +}, function (e, t, n) { + (function (t) { + var n = function (e) { + return e && e.Math == Math && e + }; + e.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof t && t) || function () { + return this + }() || Function("return this")() + }).call(this, n(11)) +}, function (e, t) { + e.exports = function (e) { + try { + return !!e() + } catch (e) { + return !0 + } + } +}, function (e, t, n) { + var i = n(1), a = n(198), r = n(4), l = n(39), o = n(205), s = n(265), d = a("wks"), u = i.Symbol, + c = s ? u : u && u.withoutSetter || l; + e.exports = function (e) { + return r(d, e) || (o && r(u, e) ? d[e] = u[e] : d[e] = c("Symbol." + e)), d[e] + } +}, function (e, t) { + var n = {}.hasOwnProperty; + e.exports = function (e, t) { + return n.call(e, t) + } +}, function (e, t) { + e.exports = function (e) { + return "object" == typeof e ? null !== e : "function" == typeof e + } +}, function (e, t, n) { + var i = n(5); + e.exports = function (e) { + if (!i(e)) throw TypeError(String(e) + " is not an object"); + return e + } +}, function (e, t, n) { + var i = n(9), a = n(10), r = n(34); + e.exports = i ? function (e, t, n) { + return a.f(e, t, r(1, n)) + } : function (e, t, n) { + return e[t] = n, e + } +}, function (e, t, n) { + var i = n(1), a = n(191).f, r = n(7), l = n(13), o = n(35), s = n(257), d = n(201); + e.exports = function (e, t) { + var n, u, c, h, m, f = e.target, _ = e.global, p = e.stat; + if (n = _ ? i : p ? i[f] || o(f, {}) : (i[f] || {}).prototype) for (u in t) { + if (h = t[u], c = e.noTargetGet ? (m = a(n, u)) && m.value : n[u], !d(_ ? u : f + (p ? "." : "#") + u, e.forced) && void 0 !== c) { + if (typeof h == typeof c) continue; + s(h, c) + } + (e.sham || c && c.sham) && r(h, "sham", !0), l(n, u, h, e) + } + } +}, function (e, t, n) { + var i = n(2); + e.exports = !i((function () { + return 7 != Object.defineProperty({}, 1, { + get: function () { + return 7 + } + })[1] + })) +}, function (e, t, n) { + var i = n(9), a = n(194), r = n(6), l = n(193), o = Object.defineProperty; + t.f = i ? o : function (e, t, n) { + if (r(e), t = l(t, !0), r(n), a) try { + return o(e, t, n) + } catch (e) { + } + if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); + return "value" in n && (e[t] = n.value), e + } +}, function (e, t) { + var n; + n = function () { + return this + }(); + try { + n = n || new Function("return this")() + } catch (e) { + "object" == typeof window && (n = window) + } + e.exports = n +}, function (e, t) { + e.exports = function (e) { + if (null == e) throw TypeError("Can't call method on " + e); + return e + } +}, function (e, t, n) { + var i = n(1), a = n(7), r = n(4), l = n(35), o = n(196), s = n(17), d = s.get, u = s.enforce, + c = String(String).split("String"); + (e.exports = function (e, t, n, o) { + var s, d = !!o && !!o.unsafe, h = !!o && !!o.enumerable, m = !!o && !!o.noTargetGet; + "function" == typeof n && ("string" != typeof t || r(n, "name") || a(n, "name", t), (s = u(n)).source || (s.source = c.join("string" == typeof t ? t : ""))), e !== i ? (d ? !m && e[t] && (h = !0) : delete e[t], h ? e[t] = n : a(e, t, n)) : h ? e[t] = n : l(t, n) + })(Function.prototype, "toString", (function () { + return "function" == typeof this && d(this).source || o(this) + })) +}, function (e, t, n) { + var i = n(24), a = Math.min; + e.exports = function (e) { + return e > 0 ? a(i(e), 9007199254740991) : 0 + } +}, function (e, t) { + var n = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); + "number" == typeof __g && (__g = n) +}, function (e, t) { + var n = {}.toString; + e.exports = function (e) { + return n.call(e).slice(8, -1) + } +}, function (e, t, n) { + var i, a, r, l = n(197), o = n(1), s = n(5), d = n(7), u = n(4), c = n(36), h = n(37), m = n(23), f = o.WeakMap; + if (l) { + var _ = c.state || (c.state = new f), p = _.get, g = _.has, y = _.set; + i = function (e, t) { + return t.facade = e, y.call(_, e, t), t + }, a = function (e) { + return p.call(_, e) || {} + }, r = function (e) { + return g.call(_, e) + } + } else { + var v = h("state"); + m[v] = !0, i = function (e, t) { + return t.facade = e, d(e, v, t), t + }, a = function (e) { + return u(e, v) ? e[v] : {} + }, r = function (e) { + return u(e, v) + } + } + e.exports = { + set: i, get: a, has: r, enforce: function (e) { + return r(e) ? a(e) : i(e, {}) + }, getterFor: function (e) { + return function (t) { + var n; + if (!s(t) || (n = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); + return n + } + } + } +}, function (e, t, n) { + var i = n(12); + e.exports = function (e) { + return Object(i(e)) + } +}, function (e, t) { + e.exports = {} +}, function (e, t, n) { + "use strict"; + (function (e) { + var n = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator, + i = function () { + for (var e = ["Edge", "Trident", "Firefox"], t = 0; t < e.length; t += 1) if (n && navigator.userAgent.indexOf(e[t]) >= 0) return 1; + return 0 + }(); + var a = n && window.Promise ? function (e) { + var t = !1; + return function () { + t || (t = !0, window.Promise.resolve().then((function () { + t = !1, e() + }))) + } + } : function (e) { + var t = !1; + return function () { + t || (t = !0, setTimeout((function () { + t = !1, e() + }), i)) + } + }; + + function r(e) { + return e && "[object Function]" === {}.toString.call(e) + } + + function l(e, t) { + if (1 !== e.nodeType) return []; + var n = e.ownerDocument.defaultView.getComputedStyle(e, null); + return t ? n[t] : n + } + + function o(e) { + return "HTML" === e.nodeName ? e : e.parentNode || e.host + } + + function s(e) { + if (!e) return document.body; + switch (e.nodeName) { + case"HTML": + case"BODY": + return e.ownerDocument.body; + case"#document": + return e.body + } + var t = l(e), n = t.overflow, i = t.overflowX, a = t.overflowY; + return /(auto|scroll|overlay)/.test(n + a + i) ? e : s(o(e)) + } + + function d(e) { + return e && e.referenceNode ? e.referenceNode : e + } + + var u = n && !(!window.MSInputMethodContext || !document.documentMode), + c = n && /MSIE 10/.test(navigator.userAgent); + + function h(e) { + return 11 === e ? u : 10 === e ? c : u || c + } + + function m(e) { + if (!e) return document.documentElement; + for (var t = h(10) ? document.body : null, n = e.offsetParent || null; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent; + var i = n && n.nodeName; + return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === l(n, "position") ? m(n) : n : e ? e.ownerDocument.documentElement : document.documentElement + } + + function f(e) { + return null !== e.parentNode ? f(e.parentNode) : e + } + + function _(e, t) { + if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement; + var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, i = n ? e : t, a = n ? t : e, + r = document.createRange(); + r.setStart(i, 0), r.setEnd(a, 0); + var l, o, s = r.commonAncestorContainer; + if (e !== s && t !== s || i.contains(a)) return "BODY" === (o = (l = s).nodeName) || "HTML" !== o && m(l.firstElementChild) !== l ? m(s) : s; + var d = f(e); + return d.host ? _(d.host, t) : _(e, f(t).host) + } + + function p(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "top", + n = "top" === t ? "scrollTop" : "scrollLeft", i = e.nodeName; + if ("BODY" === i || "HTML" === i) { + var a = e.ownerDocument.documentElement, r = e.ownerDocument.scrollingElement || a; + return r[n] + } + return e[n] + } + + function g(e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i = p(t, "top"), a = p(t, "left"), + r = n ? -1 : 1; + return e.top += i * r, e.bottom += i * r, e.left += a * r, e.right += a * r, e + } + + function y(e, t) { + var n = "x" === t ? "Left" : "Top", i = "Left" === n ? "Right" : "Bottom"; + return parseFloat(e["border" + n + "Width"]) + parseFloat(e["border" + i + "Width"]) + } + + function v(e, t, n, i) { + return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], h(10) ? parseInt(n["offset" + e]) + parseInt(i["margin" + ("Height" === e ? "Top" : "Left")]) + parseInt(i["margin" + ("Height" === e ? "Bottom" : "Right")]) : 0) + } + + function M(e) { + var t = e.body, n = e.documentElement, i = h(10) && getComputedStyle(n); + return {height: v("Height", t, n, i), width: v("Width", t, n, i)} + } + + var b = function (e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }, x = function () { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var i = t[n]; + i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) + } + } + + return function (t, n, i) { + return n && e(t.prototype, n), i && e(t, i), t + } + }(), L = function (e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + }, w = Object.assign || function (e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]) + } + return e + }; + + function k(e) { + return w({}, e, {right: e.left + e.width, bottom: e.top + e.height}) + } + + function Y(e) { + var t = {}; + try { + if (h(10)) { + t = e.getBoundingClientRect(); + var n = p(e, "top"), i = p(e, "left"); + t.top += n, t.left += i, t.bottom += n, t.right += i + } else t = e.getBoundingClientRect() + } catch (e) { + } + var a = {left: t.left, top: t.top, width: t.right - t.left, height: t.bottom - t.top}, + r = "HTML" === e.nodeName ? M(e.ownerDocument) : {}, o = r.width || e.clientWidth || a.width, + s = r.height || e.clientHeight || a.height, d = e.offsetWidth - o, u = e.offsetHeight - s; + if (d || u) { + var c = l(e); + d -= y(c, "x"), u -= y(c, "y"), a.width -= d, a.height -= u + } + return k(a) + } + + function D(e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i = h(10), + a = "HTML" === t.nodeName, r = Y(e), o = Y(t), d = s(e), u = l(t), c = parseFloat(u.borderTopWidth), + m = parseFloat(u.borderLeftWidth); + n && a && (o.top = Math.max(o.top, 0), o.left = Math.max(o.left, 0)); + var f = k({top: r.top - o.top - c, left: r.left - o.left - m, width: r.width, height: r.height}); + if (f.marginTop = 0, f.marginLeft = 0, !i && a) { + var _ = parseFloat(u.marginTop), p = parseFloat(u.marginLeft); + f.top -= c - _, f.bottom -= c - _, f.left -= m - p, f.right -= m - p, f.marginTop = _, f.marginLeft = p + } + return (i && !n ? t.contains(d) : t === d && "BODY" !== d.nodeName) && (f = g(f, t)), f + } + + function T(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + n = e.ownerDocument.documentElement, i = D(e, n), a = Math.max(n.clientWidth, window.innerWidth || 0), + r = Math.max(n.clientHeight, window.innerHeight || 0), l = t ? 0 : p(n), o = t ? 0 : p(n, "left"), + s = {top: l - i.top + i.marginTop, left: o - i.left + i.marginLeft, width: a, height: r}; + return k(s) + } + + function S(e) { + var t = e.nodeName; + if ("BODY" === t || "HTML" === t) return !1; + if ("fixed" === l(e, "position")) return !0; + var n = o(e); + return !!n && S(n) + } + + function j(e) { + if (!e || !e.parentElement || h()) return document.documentElement; + for (var t = e.parentElement; t && "none" === l(t, "transform");) t = t.parentElement; + return t || document.documentElement + } + + function E(e, t, n, i) { + var a = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], r = {top: 0, left: 0}, + l = a ? j(e) : _(e, d(t)); + if ("viewport" === i) r = T(l, a); else { + var u = void 0; + "scrollParent" === i ? "BODY" === (u = s(o(t))).nodeName && (u = e.ownerDocument.documentElement) : u = "window" === i ? e.ownerDocument.documentElement : i; + var c = D(u, l, a); + if ("HTML" !== u.nodeName || S(l)) r = c; else { + var h = M(e.ownerDocument), m = h.height, f = h.width; + r.top += c.top - c.marginTop, r.bottom = m + c.top, r.left += c.left - c.marginLeft, r.right = f + c.left + } + } + var p = "number" == typeof (n = n || 0); + return r.left += p ? n : n.left || 0, r.top += p ? n : n.top || 0, r.right -= p ? n : n.right || 0, r.bottom -= p ? n : n.bottom || 0, r + } + + function H(e) { + return e.width * e.height + } + + function O(e, t, n, i, a) { + var r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0; + if (-1 === e.indexOf("auto")) return e; + var l = E(n, i, r, a), o = { + top: {width: l.width, height: t.top - l.top}, + right: {width: l.right - t.right, height: l.height}, + bottom: {width: l.width, height: l.bottom - t.bottom}, + left: {width: t.left - l.left, height: l.height} + }, s = Object.keys(o).map((function (e) { + return w({key: e}, o[e], {area: H(o[e])}) + })).sort((function (e, t) { + return t.area - e.area + })), d = s.filter((function (e) { + var t = e.width, i = e.height; + return t >= n.clientWidth && i >= n.clientHeight + })), u = d.length > 0 ? d[0].key : s[0].key, c = e.split("-")[1]; + return u + (c ? "-" + c : "") + } + + function A(e, t, n) { + var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, a = i ? j(t) : _(t, d(n)); + return D(n, a, i) + } + + function P(e) { + var t = e.ownerDocument.defaultView.getComputedStyle(e), + n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0), + i = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0); + return {width: e.offsetWidth + i, height: e.offsetHeight + n} + } + + function C(e) { + var t = {left: "right", right: "left", bottom: "top", top: "bottom"}; + return e.replace(/left|right|bottom|top/g, (function (e) { + return t[e] + })) + } + + function F(e, t, n) { + n = n.split("-")[0]; + var i = P(e), a = {width: i.width, height: i.height}, r = -1 !== ["right", "left"].indexOf(n), + l = r ? "top" : "left", o = r ? "left" : "top", s = r ? "height" : "width", d = r ? "width" : "height"; + return a[l] = t[l] + t[s] / 2 - i[s] / 2, a[o] = n === o ? t[o] - i[d] : t[C(o)], a + } + + function I(e, t) { + return Array.prototype.find ? e.find(t) : e.filter(t)[0] + } + + function W(e, t, n) { + return (void 0 === n ? e : e.slice(0, function (e, t, n) { + if (Array.prototype.findIndex) return e.findIndex((function (e) { + return e[t] === n + })); + var i = I(e, (function (e) { + return e[t] === n + })); + return e.indexOf(i) + }(e, "name", n))).forEach((function (e) { + e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); + var n = e.function || e.fn; + e.enabled && r(n) && (t.offsets.popper = k(t.offsets.popper), t.offsets.reference = k(t.offsets.reference), t = n(t, e)) + })), t + } + + function N() { + if (!this.state.isDestroyed) { + var e = {instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {}}; + e.offsets.reference = A(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = F(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = W(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) + } + } + + function z(e, t) { + return e.some((function (e) { + var n = e.name; + return e.enabled && n === t + })) + } + + function R(e) { + for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < t.length; i++) { + var a = t[i], r = a ? "" + a + n : e; + if (void 0 !== document.body.style[r]) return r + } + return null + } + + function V() { + return this.state.isDestroyed = !0, z(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[R("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this + } + + function B(e) { + var t = e.ownerDocument; + return t ? t.defaultView : window + } + + function Z(e, t, n, i) { + var a = "BODY" === e.nodeName, r = a ? e.ownerDocument.defaultView : e; + r.addEventListener(t, n, {passive: !0}), a || Z(s(r.parentNode), t, n, i), i.push(r) + } + + function U(e, t, n, i) { + n.updateBound = i, B(e).addEventListener("resize", n.updateBound, {passive: !0}); + var a = s(e); + return Z(a, "scroll", n.updateBound, n.scrollParents), n.scrollElement = a, n.eventsEnabled = !0, n + } + + function J() { + this.state.eventsEnabled || (this.state = U(this.reference, this.options, this.state, this.scheduleUpdate)) + } + + function G() { + var e, t; + this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, B(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach((function (e) { + e.removeEventListener("scroll", t.updateBound) + })), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t)) + } + + function q(e) { + return "" !== e && !isNaN(parseFloat(e)) && isFinite(e) + } + + function K(e, t) { + Object.keys(t).forEach((function (n) { + var i = ""; + -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && q(t[n]) && (i = "px"), e.style[n] = t[n] + i + })) + } + + var X = n && /Firefox/i.test(navigator.userAgent); + + function $(e, t, n) { + var i = I(e, (function (e) { + return e.name === t + })), a = !!i && e.some((function (e) { + return e.name === n && e.enabled && e.order < i.order + })); + if (!a) { + var r = "`" + t + "`", l = "`" + n + "`"; + console.warn(l + " modifier is required by " + r + " modifier in order to work, be sure to include it before " + r + "!") + } + return a + } + + var Q = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], + ee = Q.slice(3); + + function te(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = ee.indexOf(e), + i = ee.slice(n + 1).concat(ee.slice(0, n)); + return t ? i.reverse() : i + } + + var ne = "flip", ie = "clockwise", ae = "counterclockwise"; + + function re(e, t, n, i) { + var a = [0, 0], r = -1 !== ["right", "left"].indexOf(i), l = e.split(/(\+|\-)/).map((function (e) { + return e.trim() + })), o = l.indexOf(I(l, (function (e) { + return -1 !== e.search(/,|\s/) + }))); + l[o] && -1 === l[o].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); + var s = /\s*,\s*|\s+/, + d = -1 !== o ? [l.slice(0, o).concat([l[o].split(s)[0]]), [l[o].split(s)[1]].concat(l.slice(o + 1))] : [l]; + return (d = d.map((function (e, i) { + var a = (1 === i ? !r : r) ? "height" : "width", l = !1; + return e.reduce((function (e, t) { + return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, l = !0, e) : l ? (e[e.length - 1] += t, l = !1, e) : e.concat(t) + }), []).map((function (e) { + return function (e, t, n, i) { + var a = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +a[1], l = a[2]; + if (!r) return e; + if (0 === l.indexOf("%")) { + var o = void 0; + switch (l) { + case"%p": + o = n; + break; + case"%": + case"%r": + default: + o = i + } + return k(o)[t] / 100 * r + } + if ("vh" === l || "vw" === l) return ("vh" === l ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r; + return r + }(e, a, t, n) + })) + }))).forEach((function (e, t) { + e.forEach((function (n, i) { + q(n) && (a[t] += n * ("-" === e[i - 1] ? -1 : 1)) + })) + })), a + } + + var le = { + placement: "bottom", positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { + }, onUpdate: function () { + }, modifiers: { + shift: { + order: 100, enabled: !0, fn: function (e) { + var t = e.placement, n = t.split("-")[0], i = t.split("-")[1]; + if (i) { + var a = e.offsets, r = a.reference, l = a.popper, o = -1 !== ["bottom", "top"].indexOf(n), + s = o ? "left" : "top", d = o ? "width" : "height", + u = {start: L({}, s, r[s]), end: L({}, s, r[s] + r[d] - l[d])}; + e.offsets.popper = w({}, l, u[i]) + } + return e + } + }, offset: { + order: 200, enabled: !0, fn: function (e, t) { + var n = t.offset, i = e.placement, a = e.offsets, r = a.popper, l = a.reference, + o = i.split("-")[0], s = void 0; + return s = q(+n) ? [+n, 0] : re(n, r, l, o), "left" === o ? (r.top += s[0], r.left -= s[1]) : "right" === o ? (r.top += s[0], r.left += s[1]) : "top" === o ? (r.left += s[0], r.top -= s[1]) : "bottom" === o && (r.left += s[0], r.top += s[1]), e.popper = r, e + }, offset: 0 + }, preventOverflow: { + order: 300, enabled: !0, fn: function (e, t) { + var n = t.boundariesElement || m(e.instance.popper); + e.instance.reference === n && (n = m(n)); + var i = R("transform"), a = e.instance.popper.style, r = a.top, l = a.left, o = a[i]; + a.top = "", a.left = "", a[i] = ""; + var s = E(e.instance.popper, e.instance.reference, t.padding, n, e.positionFixed); + a.top = r, a.left = l, a[i] = o, t.boundaries = s; + var d = t.priority, u = e.offsets.popper, c = { + primary: function (e) { + var n = u[e]; + return u[e] < s[e] && !t.escapeWithReference && (n = Math.max(u[e], s[e])), L({}, e, n) + }, secondary: function (e) { + var n = "right" === e ? "left" : "top", i = u[n]; + return u[e] > s[e] && !t.escapeWithReference && (i = Math.min(u[n], s[e] - ("right" === e ? u.width : u.height))), L({}, n, i) + } + }; + return d.forEach((function (e) { + var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary"; + u = w({}, u, c[t](e)) + })), e.offsets.popper = u, e + }, priority: ["left", "right", "top", "bottom"], padding: 5, boundariesElement: "scrollParent" + }, keepTogether: { + order: 400, enabled: !0, fn: function (e) { + var t = e.offsets, n = t.popper, i = t.reference, a = e.placement.split("-")[0], r = Math.floor, + l = -1 !== ["top", "bottom"].indexOf(a), o = l ? "right" : "bottom", s = l ? "left" : "top", + d = l ? "width" : "height"; + return n[o] < r(i[s]) && (e.offsets.popper[s] = r(i[s]) - n[d]), n[s] > r(i[o]) && (e.offsets.popper[s] = r(i[o])), e + } + }, arrow: { + order: 500, enabled: !0, fn: function (e, t) { + var n; + if (!$(e.instance.modifiers, "arrow", "keepTogether")) return e; + var i = t.element; + if ("string" == typeof i) { + if (!(i = e.instance.popper.querySelector(i))) return e + } else if (!e.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e; + var a = e.placement.split("-")[0], r = e.offsets, o = r.popper, s = r.reference, + d = -1 !== ["left", "right"].indexOf(a), u = d ? "height" : "width", c = d ? "Top" : "Left", + h = c.toLowerCase(), m = d ? "left" : "top", f = d ? "bottom" : "right", _ = P(i)[u]; + s[f] - _ < o[h] && (e.offsets.popper[h] -= o[h] - (s[f] - _)), s[h] + _ > o[f] && (e.offsets.popper[h] += s[h] + _ - o[f]), e.offsets.popper = k(e.offsets.popper); + var p = s[h] + s[u] / 2 - _ / 2, g = l(e.instance.popper), y = parseFloat(g["margin" + c]), + v = parseFloat(g["border" + c + "Width"]), M = p - e.offsets.popper[h] - y - v; + return M = Math.max(Math.min(o[u] - _, M), 0), e.arrowElement = i, e.offsets.arrow = (L(n = {}, h, Math.round(M)), L(n, m, ""), n), e + }, element: "[x-arrow]" + }, flip: { + order: 600, + enabled: !0, + fn: function (e, t) { + if (z(e.instance.modifiers, "inner")) return e; + if (e.flipped && e.placement === e.originalPlacement) return e; + var n = E(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), + i = e.placement.split("-")[0], a = C(i), r = e.placement.split("-")[1] || "", l = []; + switch (t.behavior) { + case ne: + l = [i, a]; + break; + case ie: + l = te(i); + break; + case ae: + l = te(i, !0); + break; + default: + l = t.behavior + } + return l.forEach((function (o, s) { + if (i !== o || l.length === s + 1) return e; + i = e.placement.split("-")[0], a = C(i); + var d = e.offsets.popper, u = e.offsets.reference, c = Math.floor, + h = "left" === i && c(d.right) > c(u.left) || "right" === i && c(d.left) < c(u.right) || "top" === i && c(d.bottom) > c(u.top) || "bottom" === i && c(d.top) < c(u.bottom), + m = c(d.left) < c(n.left), f = c(d.right) > c(n.right), _ = c(d.top) < c(n.top), + p = c(d.bottom) > c(n.bottom), + g = "left" === i && m || "right" === i && f || "top" === i && _ || "bottom" === i && p, + y = -1 !== ["top", "bottom"].indexOf(i), + v = !!t.flipVariations && (y && "start" === r && m || y && "end" === r && f || !y && "start" === r && _ || !y && "end" === r && p), + M = !!t.flipVariationsByContent && (y && "start" === r && f || y && "end" === r && m || !y && "start" === r && p || !y && "end" === r && _), + b = v || M; + (h || g || b) && (e.flipped = !0, (h || g) && (i = l[s + 1]), b && (r = function (e) { + return "end" === e ? "start" : "start" === e ? "end" : e + }(r)), e.placement = i + (r ? "-" + r : ""), e.offsets.popper = w({}, e.offsets.popper, F(e.instance.popper, e.offsets.reference, e.placement)), e = W(e.instance.modifiers, e, "flip")) + })), e + }, + behavior: "flip", + padding: 5, + boundariesElement: "viewport", + flipVariations: !1, + flipVariationsByContent: !1 + }, inner: { + order: 700, enabled: !1, fn: function (e) { + var t = e.placement, n = t.split("-")[0], i = e.offsets, a = i.popper, r = i.reference, + l = -1 !== ["left", "right"].indexOf(n), o = -1 === ["top", "left"].indexOf(n); + return a[l ? "left" : "top"] = r[n] - (o ? a[l ? "width" : "height"] : 0), e.placement = C(t), e.offsets.popper = k(a), e + } + }, hide: { + order: 800, enabled: !0, fn: function (e) { + if (!$(e.instance.modifiers, "hide", "preventOverflow")) return e; + var t = e.offsets.reference, n = I(e.instance.modifiers, (function (e) { + return "preventOverflow" === e.name + })).boundaries; + if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) { + if (!0 === e.hide) return e; + e.hide = !0, e.attributes["x-out-of-boundaries"] = "" + } else { + if (!1 === e.hide) return e; + e.hide = !1, e.attributes["x-out-of-boundaries"] = !1 + } + return e + } + }, computeStyle: { + order: 850, enabled: !0, fn: function (e, t) { + var n = t.x, i = t.y, a = e.offsets.popper, r = I(e.instance.modifiers, (function (e) { + return "applyStyle" === e.name + })).gpuAcceleration; + void 0 !== r && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); + var l = void 0 !== r ? r : t.gpuAcceleration, o = m(e.instance.popper), s = Y(o), + d = {position: a.position}, u = function (e, t) { + var n = e.offsets, i = n.popper, a = n.reference, r = Math.round, l = Math.floor, + o = function (e) { + return e + }, s = r(a.width), d = r(i.width), u = -1 !== ["left", "right"].indexOf(e.placement), + c = -1 !== e.placement.indexOf("-"), h = t ? u || c || s % 2 == d % 2 ? r : l : o, + m = t ? r : o; + return { + left: h(s % 2 == 1 && d % 2 == 1 && !c && t ? i.left - 1 : i.left), + top: m(i.top), + bottom: m(i.bottom), + right: h(i.right) + } + }(e, window.devicePixelRatio < 2 || !X), c = "bottom" === n ? "top" : "bottom", + h = "right" === i ? "left" : "right", f = R("transform"), _ = void 0, p = void 0; + if (p = "bottom" === c ? "HTML" === o.nodeName ? -o.clientHeight + u.bottom : -s.height + u.bottom : u.top, _ = "right" === h ? "HTML" === o.nodeName ? -o.clientWidth + u.right : -s.width + u.right : u.left, l && f) d[f] = "translate3d(" + _ + "px, " + p + "px, 0)", d[c] = 0, d[h] = 0, d.willChange = "transform"; else { + var g = "bottom" === c ? -1 : 1, y = "right" === h ? -1 : 1; + d[c] = p * g, d[h] = _ * y, d.willChange = c + ", " + h + } + var v = {"x-placement": e.placement}; + return e.attributes = w({}, v, e.attributes), e.styles = w({}, d, e.styles), e.arrowStyles = w({}, e.offsets.arrow, e.arrowStyles), e + }, gpuAcceleration: !0, x: "bottom", y: "right" + }, applyStyle: { + order: 900, enabled: !0, fn: function (e) { + var t, n; + return K(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach((function (e) { + !1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e) + })), e.arrowElement && Object.keys(e.arrowStyles).length && K(e.arrowElement, e.arrowStyles), e + }, onLoad: function (e, t, n, i, a) { + var r = A(a, t, e, n.positionFixed), + l = O(n.placement, r, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding); + return t.setAttribute("x-placement", l), K(t, {position: n.positionFixed ? "fixed" : "absolute"}), n + }, gpuAcceleration: void 0 + } + } + }, oe = function () { + function e(t, n) { + var i = this, l = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + b(this, e), this.scheduleUpdate = function () { + return requestAnimationFrame(i.update) + }, this.update = a(this.update.bind(this)), this.options = w({}, e.Defaults, l), this.state = { + isDestroyed: !1, + isCreated: !1, + scrollParents: [] + }, this.reference = t && t.jquery ? t[0] : t, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(w({}, e.Defaults.modifiers, l.modifiers)).forEach((function (t) { + i.options.modifiers[t] = w({}, e.Defaults.modifiers[t] || {}, l.modifiers ? l.modifiers[t] : {}) + })), this.modifiers = Object.keys(this.options.modifiers).map((function (e) { + return w({name: e}, i.options.modifiers[e]) + })).sort((function (e, t) { + return e.order - t.order + })), this.modifiers.forEach((function (e) { + e.enabled && r(e.onLoad) && e.onLoad(i.reference, i.popper, i.options, e, i.state) + })), this.update(); + var o = this.options.eventsEnabled; + o && this.enableEventListeners(), this.state.eventsEnabled = o + } + + return x(e, [{ + key: "update", value: function () { + return N.call(this) + } + }, { + key: "destroy", value: function () { + return V.call(this) + } + }, { + key: "enableEventListeners", value: function () { + return J.call(this) + } + }, { + key: "disableEventListeners", value: function () { + return G.call(this) + } + }]), e + }(); + oe.Utils = ("undefined" != typeof window ? window : e).PopperUtils, oe.placements = Q, oe.Defaults = le, t.a = oe + }).call(this, n(11)) +}, function (e, t, n) { + var i = n(22), a = n(12); + e.exports = function (e) { + return i(a(e)) + } +}, function (e, t, n) { + var i = n(2), a = n(16), r = "".split; + e.exports = i((function () { + return !Object("z").propertyIsEnumerable(0) + })) ? function (e) { + return "String" == a(e) ? r.call(e, "") : Object(e) + } : Object +}, function (e, t) { + e.exports = {} +}, function (e, t) { + var n = Math.ceil, i = Math.floor; + e.exports = function (e) { + return isNaN(e = +e) ? 0 : (e > 0 ? i : n)(e) + } +}, function (e, t) { + var n = !("undefined" == typeof window || !window.document || !window.document.createElement); + e.exports = n +}, function (e, t, n) { + var i = n(27); + e.exports = function (e) { + if (!i(e)) throw TypeError(e + " is not an object!"); + return e + } +}, function (e, t) { + e.exports = function (e) { + return "object" == typeof e ? null !== e : "function" == typeof e + } +}, function (e, t) { + e.exports = function (e) { + if (null == e) throw TypeError("Can't call method on " + e); + return e + } +}, function (e, t) { + var n = Math.ceil, i = Math.floor; + e.exports = function (e) { + return isNaN(e = +e) ? 0 : (e > 0 ? i : n)(e) + } +}, function (e, t) { + var n = e.exports = {version: "2.6.12"}; + "number" == typeof __e && (__e = n) +}, function (e, t, n) { + var i = n(245), a = n(249); + e.exports = n(32) ? function (e, t, n) { + return i.f(e, t, a(1, n)) + } : function (e, t, n) { + return e[t] = n, e + } +}, function (e, t, n) { + e.exports = !n(33)((function () { + return 7 != Object.defineProperty({}, "a", { + get: function () { + return 7 + } + }).a + })) +}, function (e, t) { + e.exports = function (e) { + try { + return !!e() + } catch (e) { + return !0 + } + } +}, function (e, t) { + e.exports = function (e, t) { + return {enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t} + } +}, function (e, t, n) { + var i = n(1), a = n(7); + e.exports = function (e, t) { + try { + a(i, e, t) + } catch (n) { + i[e] = t + } + return t + } +}, function (e, t, n) { + var i = n(1), a = n(35), r = "__core-js_shared__", l = i[r] || a(r, {}); + e.exports = l +}, function (e, t, n) { + var i = n(198), a = n(39), r = i("keys"); + e.exports = function (e) { + return r[e] || (r[e] = a(e)) + } +}, function (e, t) { + e.exports = !1 +}, function (e, t) { + var n = 0, i = Math.random(); + e.exports = function (e) { + return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++n + i).toString(36) + } +}, function (e, t, n) { + var i = n(259), a = n(1), r = function (e) { + return "function" == typeof e ? e : void 0 + }; + e.exports = function (e, t) { + return arguments.length < 2 ? r(i[e]) || r(a[e]) : i[e] && i[e][t] || a[e] && a[e][t] + } +}, function (e, t) { + e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] +}, function (e, t, n) { + var i = n(203), a = n(22), r = n(18), l = n(14), o = n(263), s = [].push, d = function (e) { + var t = 1 == e, n = 2 == e, d = 3 == e, u = 4 == e, c = 6 == e, h = 7 == e, m = 5 == e || c; + return function (f, _, p, g) { + for (var y, v, M = r(f), b = a(M), x = i(_, p, 3), L = l(b.length), w = 0, k = g || o, Y = t ? k(f, L) : n || h ? k(f, 0) : void 0; L > w; w++) if ((m || w in b) && (v = x(y = b[w], w, M), e)) if (t) Y[w] = v; else if (v) switch (e) { + case 3: + return !0; + case 5: + return y; + case 6: + return w; + case 2: + s.call(Y, y) + } else switch (e) { + case 4: + return !1; + case 7: + s.call(Y, y) + } + return c ? -1 : d || u ? u : Y + } + }; + e.exports = { + forEach: d(0), + map: d(1), + filter: d(2), + some: d(3), + every: d(4), + find: d(5), + findIndex: d(6), + filterOut: d(7) + } +}, function (e, t, n) { + var i = n(9), a = n(2), r = n(4), l = Object.defineProperty, o = {}, s = function (e) { + throw e + }; + e.exports = function (e, t) { + if (r(o, e)) return o[e]; + t || (t = {}); + var n = [][e], d = !!r(t, "ACCESSORS") && t.ACCESSORS, u = r(t, 0) ? t[0] : s, c = r(t, 1) ? t[1] : void 0; + return o[e] = !!n && !a((function () { + if (d && !i) return !0; + var e = {length: -1}; + d ? l(e, 1, {enumerable: !0, get: s}) : e[1] = 1, n.call(e, u, c) + })) + } +}, function (e, t, n) { + var i = n(10).f, a = n(4), r = n(3)("toStringTag"); + e.exports = function (e, t, n) { + e && !a(e = n ? e : e.prototype, r) && i(e, r, {configurable: !0, value: t}) + } +}, function (e, t, n) { + var i = {}; + i[n(3)("toStringTag")] = "z", e.exports = "[object z]" === String(i) +}, function (e, t, n) { + var i = n(23), a = n(5), r = n(4), l = n(10).f, o = n(39), s = n(285), d = o("meta"), u = 0, + c = Object.isExtensible || function () { + return !0 + }, h = function (e) { + l(e, d, {value: {objectID: "O" + ++u, weakData: {}}}) + }, m = e.exports = { + REQUIRED: !1, fastKey: function (e, t) { + if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; + if (!r(e, d)) { + if (!c(e)) return "F"; + if (!t) return "E"; + h(e) + } + return e[d].objectID + }, getWeakData: function (e, t) { + if (!r(e, d)) { + if (!c(e)) return !0; + if (!t) return !1; + h(e) + } + return e[d].weakData + }, onFreeze: function (e) { + return s && m.REQUIRED && c(e) && !r(e, d) && h(e), e + } + }; + i[d] = !0 +}, function (e, t, n) { + "use strict"; + var i, a, r = n(298), l = n(299), o = RegExp.prototype.exec, s = String.prototype.replace, d = o, + u = (i = /a/, a = /b*/g, o.call(i, "a"), o.call(a, "a"), 0 !== i.lastIndex || 0 !== a.lastIndex), + c = l.UNSUPPORTED_Y || l.BROKEN_CARET, h = void 0 !== /()??/.exec("")[1]; + (u || h || c) && (d = function (e) { + var t, n, i, a, l = this, d = c && l.sticky, m = r.call(l), f = l.source, _ = 0, p = e; + return d && (-1 === (m = m.replace("y", "")).indexOf("g") && (m += "g"), p = String(e).slice(l.lastIndex), l.lastIndex > 0 && (!l.multiline || l.multiline && "\n" !== e[l.lastIndex - 1]) && (f = "(?: " + f + ")", p = " " + p, _++), n = new RegExp("^(?:" + f + ")", m)), h && (n = new RegExp("^" + f + "$(?!\\s)", m)), u && (t = l.lastIndex), i = o.call(d ? n : l, p), d ? i ? (i.input = i.input.slice(_), i[0] = i[0].slice(_), i.index = l.lastIndex, l.lastIndex += i[0].length) : l.lastIndex = 0 : u && i && (l.lastIndex = l.global ? i.index + i[0].length : t), h && i && i.length > 1 && s.call(i[0], n, (function () { + for (a = 1; a < arguments.length - 2; a++) void 0 === arguments[a] && (i[a] = void 0) + })), i + }), e.exports = d +}, function (e, t, n) { + var i; + "undefined" != typeof self && self, i = function () { + return function (e) { + var t = {}; + + function n(i) { + if (t[i]) return t[i].exports; + var a = t[i] = {i: i, l: !1, exports: {}}; + return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports + } + + return n.m = e, n.c = t, n.d = function (e, t, i) { + n.o(e, t) || Object.defineProperty(e, t, {configurable: !1, enumerable: !0, get: i}) + }, n.r = function (e) { + Object.defineProperty(e, "__esModule", {value: !0}) + }, n.n = function (e) { + var t = e && e.__esModule ? function () { + return e.default + } : function () { + return e + }; + return n.d(t, "a", t), t + }, n.o = function (e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, n.p = "", n(n.s = 0) + }({ + "./dist/icons.json": function (e) { + e.exports = { + activity: '', + airplay: '', + "alert-circle": '', + "alert-octagon": '', + "alert-triangle": '', + "align-center": '', + "align-justify": '', + "align-left": '', + "align-right": '', + anchor: '', + aperture: '', + archive: '', + "arrow-down-circle": '', + "arrow-down-left": '', + "arrow-down-right": '', + "arrow-down": '', + "arrow-left-circle": '', + "arrow-left": '', + "arrow-right-circle": '', + "arrow-right": '', + "arrow-up-circle": '', + "arrow-up-left": '', + "arrow-up-right": '', + "arrow-up": '', + "at-sign": '', + award: '', + "bar-chart-2": '', + "bar-chart": '', + "battery-charging": '', + battery: '', + "bell-off": '', + bell: '', + bluetooth: '', + bold: '', + "book-open": '', + book: '', + bookmark: '', + box: '', + briefcase: '', + calendar: '', + "camera-off": '', + camera: '', + cast: '', + "check-circle": '', + "check-square": '', + check: '', + "chevron-down": '', + "chevron-left": '', + "chevron-right": '', + "chevron-up": '', + "chevrons-down": '', + "chevrons-left": '', + "chevrons-right": '', + "chevrons-up": '', + chrome: '', + circle: '', + clipboard: '', + clock: '', + "cloud-drizzle": '', + "cloud-lightning": '', + "cloud-off": '', + "cloud-rain": '', + "cloud-snow": '', + cloud: '', + code: '', + codepen: '', + codesandbox: '', + coffee: '', + columns: '', + command: '', + compass: '', + copy: '', + "corner-down-left": '', + "corner-down-right": '', + "corner-left-down": '', + "corner-left-up": '', + "corner-right-down": '', + "corner-right-up": '', + "corner-up-left": '', + "corner-up-right": '', + cpu: '', + "credit-card": '', + crop: '', + crosshair: '', + database: '', + delete: '', + disc: '', + "divide-circle": '', + "divide-square": '', + divide: '', + "dollar-sign": '', + "download-cloud": '', + download: '', + dribbble: '', + droplet: '', + "edit-2": '', + "edit-3": '', + edit: '', + "external-link": '', + "eye-off": '', + eye: '', + facebook: '', + "fast-forward": '', + feather: '', + figma: '', + "file-minus": '', + "file-plus": '', + "file-text": '', + file: '', + film: '', + filter: '', + flag: '', + "folder-minus": '', + "folder-plus": '', + folder: '', + framer: '', + frown: '', + gift: '', + "git-branch": '', + "git-commit": '', + "git-merge": '', + "git-pull-request": '', + github: '', + gitlab: '', + globe: '', + grid: '', + "hard-drive": '', + hash: '', + headphones: '', + heart: '', + "help-circle": '', + hexagon: '', + home: '', + image: '', + inbox: '', + info: '', + instagram: '', + italic: '', + key: '', + layers: '', + layout: '', + "life-buoy": '', + "link-2": '', + link: '', + linkedin: '', + list: '', + loader: '', + lock: '', + "log-in": '', + "log-out": '', + mail: '', + "map-pin": '', + map: '', + "maximize-2": '', + maximize: '', + meh: '', + menu: '', + "message-circle": '', + "message-square": '', + "mic-off": '', + mic: '', + "minimize-2": '', + minimize: '', + "minus-circle": '', + "minus-square": '', + minus: '', + monitor: '', + moon: '', + "more-horizontal": '', + "more-vertical": '', + "mouse-pointer": '', + move: '', + music: '', + "navigation-2": '', + navigation: '', + octagon: '', + package: '', + paperclip: '', + "pause-circle": '', + pause: '', + "pen-tool": '', + percent: '', + "phone-call": '', + "phone-forwarded": '', + "phone-incoming": '', + "phone-missed": '', + "phone-off": '', + "phone-outgoing": '', + phone: '', + "pie-chart": '', + "play-circle": '', + play: '', + "plus-circle": '', + "plus-square": '', + plus: '', + pocket: '', + power: '', + printer: '', + radio: '', + "refresh-ccw": '', + "refresh-cw": '', + repeat: '', + rewind: '', + "rotate-ccw": '', + "rotate-cw": '', + rss: '', + save: '', + scissors: '', + search: '', + send: '', + server: '', + settings: '', + "share-2": '', + share: '', + "shield-off": '', + shield: '', + "shopping-bag": '', + "shopping-cart": '', + shuffle: '', + sidebar: '', + "skip-back": '', + "skip-forward": '', + slack: '', + slash: '', + sliders: '', + smartphone: '', + smile: '', + speaker: '', + square: '', + star: '', + "stop-circle": '', + sun: '', + sunrise: '', + sunset: '', + tablet: '', + tag: '', + target: '', + terminal: '', + thermometer: '', + "thumbs-down": '', + "thumbs-up": '', + "toggle-left": '', + "toggle-right": '', + tool: '', + "trash-2": '', + trash: '', + trello: '', + "trending-down": '', + "trending-up": '', + triangle: '', + truck: '', + tv: '', + twitch: '', + twitter: '', + type: '', + umbrella: '', + underline: '', + unlock: '', + "upload-cloud": '', + upload: '', + "user-check": '', + "user-minus": '', + "user-plus": '', + "user-x": '', + user: '', + users: '', + "video-off": '', + video: '', + voicemail: '', + "volume-1": '', + "volume-2": '', + "volume-x": '', + volume: '', + watch: '', + "wifi-off": '', + wifi: '', + wind: '', + "x-circle": '', + "x-octagon": '', + "x-square": '', + x: '', + youtube: '', + "zap-off": '', + zap: '', + "zoom-in": '', + "zoom-out": '' + } + }, "./node_modules/classnames/dedupe.js": function (e, t, n) { + var i; + !function () { + "use strict"; + var n = function () { + function e() { + } + + function t(e, t) { + for (var n = t.length, i = 0; i < n; ++i) a(e, t[i]) + } + + e.prototype = Object.create(null); + var n = {}.hasOwnProperty, i = /\s+/; + + function a(e, a) { + if (a) { + var r = typeof a; + "string" === r ? function (e, t) { + for (var n = t.split(i), a = n.length, r = 0; r < a; ++r) e[n[r]] = !0 + }(e, a) : Array.isArray(a) ? t(e, a) : "object" === r ? function (e, t) { + for (var i in t) n.call(t, i) && (e[i] = !!t[i]) + }(e, a) : "number" === r && function (e, t) { + e[t] = !0 + }(e, a) + } + } + + return function () { + for (var n = arguments.length, i = Array(n), a = 0; a < n; a++) i[a] = arguments[a]; + var r = new e; + t(r, i); + var l = []; + for (var o in r) r[o] && l.push(o); + return l.join(" ") + } + }(); + void 0 !== e && e.exports ? e.exports = n : void 0 === (i = function () { + return n + }.apply(t, [])) || (e.exports = i) + }() + }, "./node_modules/core-js/es/array/from.js": function (e, t, n) { + n("./node_modules/core-js/modules/es.string.iterator.js"), n("./node_modules/core-js/modules/es.array.from.js"); + var i = n("./node_modules/core-js/internals/path.js"); + e.exports = i.Array.from + }, "./node_modules/core-js/internals/a-function.js": function (e, t) { + e.exports = function (e) { + if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); + return e + } + }, "./node_modules/core-js/internals/an-object.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/is-object.js"); + e.exports = function (e) { + if (!i(e)) throw TypeError(String(e) + " is not an object"); + return e + } + }, "./node_modules/core-js/internals/array-from.js": function (e, t, n) { + "use strict"; + var i = n("./node_modules/core-js/internals/bind-context.js"), + a = n("./node_modules/core-js/internals/to-object.js"), + r = n("./node_modules/core-js/internals/call-with-safe-iteration-closing.js"), + l = n("./node_modules/core-js/internals/is-array-iterator-method.js"), + o = n("./node_modules/core-js/internals/to-length.js"), + s = n("./node_modules/core-js/internals/create-property.js"), + d = n("./node_modules/core-js/internals/get-iterator-method.js"); + e.exports = function (e) { + var t, n, u, c, h = a(e), m = "function" == typeof this ? this : Array, f = arguments.length, + _ = f > 1 ? arguments[1] : void 0, p = void 0 !== _, g = 0, y = d(h); + if (p && (_ = i(_, f > 2 ? arguments[2] : void 0, 2)), null == y || m == Array && l(y)) for (n = new m(t = o(h.length)); t > g; g++) s(n, g, p ? _(h[g], g) : h[g]); else for (c = y.call(h), n = new m; !(u = c.next()).done; g++) s(n, g, p ? r(c, _, [u.value, g], !0) : u.value); + return n.length = g, n + } + }, "./node_modules/core-js/internals/array-includes.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/to-indexed-object.js"), + a = n("./node_modules/core-js/internals/to-length.js"), + r = n("./node_modules/core-js/internals/to-absolute-index.js"); + e.exports = function (e) { + return function (t, n, l) { + var o, s = i(t), d = a(s.length), u = r(l, d); + if (e && n != n) { + for (; d > u;) if ((o = s[u++]) != o) return !0 + } else for (; d > u; u++) if ((e || u in s) && s[u] === n) return e || u || 0; + return !e && -1 + } + } + }, "./node_modules/core-js/internals/bind-context.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/a-function.js"); + e.exports = function (e, t, n) { + if (i(e), void 0 === t) return e; + switch (n) { + case 0: + return function () { + return e.call(t) + }; + case 1: + return function (n) { + return e.call(t, n) + }; + case 2: + return function (n, i) { + return e.call(t, n, i) + }; + case 3: + return function (n, i, a) { + return e.call(t, n, i, a) + } + } + return function () { + return e.apply(t, arguments) + } + } + }, "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/an-object.js"); + e.exports = function (e, t, n, a) { + try { + return a ? t(i(n)[0], n[1]) : t(n) + } catch (t) { + var r = e.return; + throw void 0 !== r && i(r.call(e)), t + } + } + }, "./node_modules/core-js/internals/check-correctness-of-iteration.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/well-known-symbol.js")("iterator"), a = !1; + try { + var r = 0, l = { + next: function () { + return {done: !!r++} + }, return: function () { + a = !0 + } + }; + l[i] = function () { + return this + }, Array.from(l, (function () { + throw 2 + })) + } catch (e) { + } + e.exports = function (e, t) { + if (!t && !a) return !1; + var n = !1; + try { + var r = {}; + r[i] = function () { + return { + next: function () { + return {done: n = !0} + } + } + }, e(r) + } catch (e) { + } + return n + } + }, "./node_modules/core-js/internals/classof-raw.js": function (e, t) { + var n = {}.toString; + e.exports = function (e) { + return n.call(e).slice(8, -1) + } + }, "./node_modules/core-js/internals/classof.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/classof-raw.js"), + a = n("./node_modules/core-js/internals/well-known-symbol.js")("toStringTag"), + r = "Arguments" == i(function () { + return arguments + }()); + e.exports = function (e) { + var t, n, l; + return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (n = function (e, t) { + try { + return e[t] + } catch (e) { + } + }(t = Object(e), a)) ? n : r ? i(t) : "Object" == (l = i(t)) && "function" == typeof t.callee ? "Arguments" : l + } + }, "./node_modules/core-js/internals/copy-constructor-properties.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/has.js"), + a = n("./node_modules/core-js/internals/own-keys.js"), + r = n("./node_modules/core-js/internals/object-get-own-property-descriptor.js"), + l = n("./node_modules/core-js/internals/object-define-property.js"); + e.exports = function (e, t) { + for (var n = a(t), o = l.f, s = r.f, d = 0; d < n.length; d++) { + var u = n[d]; + i(e, u) || o(e, u, s(t, u)) + } + } + }, "./node_modules/core-js/internals/correct-prototype-getter.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/fails.js"); + e.exports = !i((function () { + function e() { + } + + return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype + })) + }, "./node_modules/core-js/internals/create-iterator-constructor.js": function (e, t, n) { + "use strict"; + var i = n("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype, + a = n("./node_modules/core-js/internals/object-create.js"), + r = n("./node_modules/core-js/internals/create-property-descriptor.js"), + l = n("./node_modules/core-js/internals/set-to-string-tag.js"), + o = n("./node_modules/core-js/internals/iterators.js"), s = function () { + return this + }; + e.exports = function (e, t, n) { + var d = t + " Iterator"; + return e.prototype = a(i, {next: r(1, n)}), l(e, d, !1, !0), o[d] = s, e + } + }, "./node_modules/core-js/internals/create-property-descriptor.js": function (e, t) { + e.exports = function (e, t) { + return {enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t} + } + }, "./node_modules/core-js/internals/create-property.js": function (e, t, n) { + "use strict"; + var i = n("./node_modules/core-js/internals/to-primitive.js"), + a = n("./node_modules/core-js/internals/object-define-property.js"), + r = n("./node_modules/core-js/internals/create-property-descriptor.js"); + e.exports = function (e, t, n) { + var l = i(t); + l in e ? a.f(e, l, r(0, n)) : e[l] = n + } + }, "./node_modules/core-js/internals/define-iterator.js": function (e, t, n) { + "use strict"; + var i = n("./node_modules/core-js/internals/export.js"), + a = n("./node_modules/core-js/internals/create-iterator-constructor.js"), + r = n("./node_modules/core-js/internals/object-get-prototype-of.js"), + l = n("./node_modules/core-js/internals/object-set-prototype-of.js"), + o = n("./node_modules/core-js/internals/set-to-string-tag.js"), + s = n("./node_modules/core-js/internals/hide.js"), + d = n("./node_modules/core-js/internals/redefine.js"), + u = n("./node_modules/core-js/internals/well-known-symbol.js"), + c = n("./node_modules/core-js/internals/is-pure.js"), + h = n("./node_modules/core-js/internals/iterators.js"), + m = n("./node_modules/core-js/internals/iterators-core.js"), f = m.IteratorPrototype, + _ = m.BUGGY_SAFARI_ITERATORS, p = u("iterator"), g = "keys", y = "values", v = "entries", + M = function () { + return this + }; + e.exports = function (e, t, n, u, m, b, x) { + a(n, t, u); + var L, w, k, Y = function (e) { + if (e === m && E) return E; + if (!_ && e in S) return S[e]; + switch (e) { + case g: + case y: + case v: + return function () { + return new n(this, e) + } + } + return function () { + return new n(this) + } + }, D = t + " Iterator", T = !1, S = e.prototype, j = S[p] || S["@@iterator"] || m && S[m], + E = !_ && j || Y(m), H = "Array" == t && S.entries || j; + if (H && (L = r(H.call(new e)), f !== Object.prototype && L.next && (c || r(L) === f || (l ? l(L, f) : "function" != typeof L[p] && s(L, p, M)), o(L, D, !0, !0), c && (h[D] = M))), m == y && j && j.name !== y && (T = !0, E = function () { + return j.call(this) + }), c && !x || S[p] === E || s(S, p, E), h[t] = E, m) if (w = { + values: Y(y), + keys: b ? E : Y(g), + entries: Y(v) + }, x) for (k in w) (_ || T || !(k in S)) && d(S, k, w[k]); else i({ + target: t, + proto: !0, + forced: _ || T + }, w); + return w + } + }, "./node_modules/core-js/internals/descriptors.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/fails.js"); + e.exports = !i((function () { + return 7 != Object.defineProperty({}, "a", { + get: function () { + return 7 + } + }).a + })) + }, "./node_modules/core-js/internals/document-create-element.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/global.js"), + a = n("./node_modules/core-js/internals/is-object.js"), r = i.document, + l = a(r) && a(r.createElement); + e.exports = function (e) { + return l ? r.createElement(e) : {} + } + }, "./node_modules/core-js/internals/enum-bug-keys.js": function (e, t) { + e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] + }, "./node_modules/core-js/internals/export.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/global.js"), + a = n("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f, + r = n("./node_modules/core-js/internals/hide.js"), + l = n("./node_modules/core-js/internals/redefine.js"), + o = n("./node_modules/core-js/internals/set-global.js"), + s = n("./node_modules/core-js/internals/copy-constructor-properties.js"), + d = n("./node_modules/core-js/internals/is-forced.js"); + e.exports = function (e, t) { + var n, u, c, h, m, f = e.target, _ = e.global, p = e.stat; + if (n = _ ? i : p ? i[f] || o(f, {}) : (i[f] || {}).prototype) for (u in t) { + if (h = t[u], c = e.noTargetGet ? (m = a(n, u)) && m.value : n[u], !d(_ ? u : f + (p ? "." : "#") + u, e.forced) && void 0 !== c) { + if (typeof h == typeof c) continue; + s(h, c) + } + (e.sham || c && c.sham) && r(h, "sham", !0), l(n, u, h, e) + } + } + }, "./node_modules/core-js/internals/fails.js": function (e, t) { + e.exports = function (e) { + try { + return !!e() + } catch (e) { + return !0 + } + } + }, "./node_modules/core-js/internals/function-to-string.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/shared.js"); + e.exports = i("native-function-to-string", Function.toString) + }, "./node_modules/core-js/internals/get-iterator-method.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/classof.js"), + a = n("./node_modules/core-js/internals/iterators.js"), + r = n("./node_modules/core-js/internals/well-known-symbol.js")("iterator"); + e.exports = function (e) { + if (null != e) return e[r] || e["@@iterator"] || a[i(e)] + } + }, "./node_modules/core-js/internals/global.js": function (e, t, n) { + (function (t) { + var n = "object", i = function (e) { + return e && e.Math == Math && e + }; + e.exports = i(typeof globalThis == n && globalThis) || i(typeof window == n && window) || i(typeof self == n && self) || i(typeof t == n && t) || Function("return this")() + }).call(this, n("./node_modules/webpack/buildin/global.js")) + }, "./node_modules/core-js/internals/has.js": function (e, t) { + var n = {}.hasOwnProperty; + e.exports = function (e, t) { + return n.call(e, t) + } + }, "./node_modules/core-js/internals/hidden-keys.js": function (e, t) { + e.exports = {} + }, "./node_modules/core-js/internals/hide.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/descriptors.js"), + a = n("./node_modules/core-js/internals/object-define-property.js"), + r = n("./node_modules/core-js/internals/create-property-descriptor.js"); + e.exports = i ? function (e, t, n) { + return a.f(e, t, r(1, n)) + } : function (e, t, n) { + return e[t] = n, e + } + }, "./node_modules/core-js/internals/html.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/global.js").document; + e.exports = i && i.documentElement + }, "./node_modules/core-js/internals/ie8-dom-define.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/descriptors.js"), + a = n("./node_modules/core-js/internals/fails.js"), + r = n("./node_modules/core-js/internals/document-create-element.js"); + e.exports = !i && !a((function () { + return 7 != Object.defineProperty(r("div"), "a", { + get: function () { + return 7 + } + }).a + })) + }, "./node_modules/core-js/internals/indexed-object.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/fails.js"), + a = n("./node_modules/core-js/internals/classof-raw.js"), r = "".split; + e.exports = i((function () { + return !Object("z").propertyIsEnumerable(0) + })) ? function (e) { + return "String" == a(e) ? r.call(e, "") : Object(e) + } : Object + }, "./node_modules/core-js/internals/internal-state.js": function (e, t, n) { + var i, a, r, l = n("./node_modules/core-js/internals/native-weak-map.js"), + o = n("./node_modules/core-js/internals/global.js"), + s = n("./node_modules/core-js/internals/is-object.js"), + d = n("./node_modules/core-js/internals/hide.js"), u = n("./node_modules/core-js/internals/has.js"), + c = n("./node_modules/core-js/internals/shared-key.js"), + h = n("./node_modules/core-js/internals/hidden-keys.js"), m = o.WeakMap; + if (l) { + var f = new m, _ = f.get, p = f.has, g = f.set; + i = function (e, t) { + return g.call(f, e, t), t + }, a = function (e) { + return _.call(f, e) || {} + }, r = function (e) { + return p.call(f, e) + } + } else { + var y = c("state"); + h[y] = !0, i = function (e, t) { + return d(e, y, t), t + }, a = function (e) { + return u(e, y) ? e[y] : {} + }, r = function (e) { + return u(e, y) + } + } + e.exports = { + set: i, get: a, has: r, enforce: function (e) { + return r(e) ? a(e) : i(e, {}) + }, getterFor: function (e) { + return function (t) { + var n; + if (!s(t) || (n = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); + return n + } + } + } + }, "./node_modules/core-js/internals/is-array-iterator-method.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/well-known-symbol.js"), + a = n("./node_modules/core-js/internals/iterators.js"), r = i("iterator"), l = Array.prototype; + e.exports = function (e) { + return void 0 !== e && (a.Array === e || l[r] === e) + } + }, "./node_modules/core-js/internals/is-forced.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/fails.js"), a = /#|\.prototype\./, r = function (e, t) { + var n = o[l(e)]; + return n == d || n != s && ("function" == typeof t ? i(t) : !!t) + }, l = r.normalize = function (e) { + return String(e).replace(a, ".").toLowerCase() + }, o = r.data = {}, s = r.NATIVE = "N", d = r.POLYFILL = "P"; + e.exports = r + }, "./node_modules/core-js/internals/is-object.js": function (e, t) { + e.exports = function (e) { + return "object" == typeof e ? null !== e : "function" == typeof e + } + }, "./node_modules/core-js/internals/is-pure.js": function (e, t) { + e.exports = !1 + }, "./node_modules/core-js/internals/iterators-core.js": function (e, t, n) { + "use strict"; + var i, a, r, l = n("./node_modules/core-js/internals/object-get-prototype-of.js"), + o = n("./node_modules/core-js/internals/hide.js"), s = n("./node_modules/core-js/internals/has.js"), + d = n("./node_modules/core-js/internals/well-known-symbol.js"), + u = n("./node_modules/core-js/internals/is-pure.js"), c = d("iterator"), h = !1; + [].keys && ("next" in (r = [].keys()) ? (a = l(l(r))) !== Object.prototype && (i = a) : h = !0), null == i && (i = {}), u || s(i, c) || o(i, c, (function () { + return this + })), e.exports = {IteratorPrototype: i, BUGGY_SAFARI_ITERATORS: h} + }, "./node_modules/core-js/internals/iterators.js": function (e, t) { + e.exports = {} + }, "./node_modules/core-js/internals/native-symbol.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/fails.js"); + e.exports = !!Object.getOwnPropertySymbols && !i((function () { + return !String(Symbol()) + })) + }, "./node_modules/core-js/internals/native-weak-map.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/global.js"), + a = n("./node_modules/core-js/internals/function-to-string.js"), r = i.WeakMap; + e.exports = "function" == typeof r && /native code/.test(a.call(r)) + }, "./node_modules/core-js/internals/object-create.js": function (e, t, n) { + var i = n("./node_modules/core-js/internals/an-object.js"), + a = n("./node_modules/core-js/internals/object-define-properties.js"), + r = n("./node_modules/core-js/internals/enum-bug-keys.js"), + l = n("./node_modules/core-js/internals/hidden-keys.js"), + o = n("./node_modules/core-js/internals/html.js"), + s = n("./node_modules/core-js/internals/document-create-element.js"), + d = n("./node_modules/core-js/internals/shared-key.js")("IE_PROTO"), u = function () { + }, c = function () { + var e, t = s("iframe"), n = r.length; + for (t.style.display = "none", o.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(" \ No newline at end of file diff --git a/frontend/src/components/BadgeSelectField.vue b/frontend/src/components/BadgeSelectField.vue new file mode 100644 index 0000000..a86dc43 --- /dev/null +++ b/frontend/src/components/BadgeSelectField.vue @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/BaseLayout.vue b/frontend/src/components/BaseLayout.vue new file mode 100644 index 0000000..ccc0e17 --- /dev/null +++ b/frontend/src/components/BaseLayout.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/CameraFileSource.vue b/frontend/src/components/CameraFileSource.vue new file mode 100644 index 0000000..5a93a89 --- /dev/null +++ b/frontend/src/components/CameraFileSource.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/CombinedFileField.vue b/frontend/src/components/CombinedFileField.vue new file mode 100644 index 0000000..c5430b0 --- /dev/null +++ b/frontend/src/components/CombinedFileField.vue @@ -0,0 +1,193 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/DeletableWrapper.vue b/frontend/src/components/DeletableWrapper.vue new file mode 100644 index 0000000..d357a01 --- /dev/null +++ b/frontend/src/components/DeletableWrapper.vue @@ -0,0 +1,36 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/DragDropFileSource.vue b/frontend/src/components/DragDropFileSource.vue new file mode 100644 index 0000000..6646ef5 --- /dev/null +++ b/frontend/src/components/DragDropFileSource.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Footer.vue b/frontend/src/components/Footer.vue new file mode 100644 index 0000000..b4cfa96 --- /dev/null +++ b/frontend/src/components/Footer.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/FsFileSource.vue b/frontend/src/components/FsFileSource.vue new file mode 100644 index 0000000..29bff9a --- /dev/null +++ b/frontend/src/components/FsFileSource.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Messages.vue b/frontend/src/components/Messages.vue new file mode 100644 index 0000000..5ff485c --- /dev/null +++ b/frontend/src/components/Messages.vue @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Notifications.vue b/frontend/src/components/Notifications.vue new file mode 100644 index 0000000..9ed61b3 --- /dev/null +++ b/frontend/src/components/Notifications.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/PropertyBadge.vue b/frontend/src/components/PropertyBadge.vue new file mode 100644 index 0000000..edad1a3 --- /dev/null +++ b/frontend/src/components/PropertyBadge.vue @@ -0,0 +1,114 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/PropertyField.vue b/frontend/src/components/PropertyField.vue new file mode 100644 index 0000000..cdc153f --- /dev/null +++ b/frontend/src/components/PropertyField.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/SearchBox.vue b/frontend/src/components/SearchBox.vue new file mode 100644 index 0000000..ad7a323 --- /dev/null +++ b/frontend/src/components/SearchBox.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue new file mode 100644 index 0000000..b76e1c9 --- /dev/null +++ b/frontend/src/components/Sidebar.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/TagField.vue b/frontend/src/components/TagField.vue new file mode 100644 index 0000000..7ee0987 --- /dev/null +++ b/frontend/src/components/TagField.vue @@ -0,0 +1,78 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue new file mode 100644 index 0000000..5740038 --- /dev/null +++ b/frontend/src/components/UserDropdown.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/WebcamFileSource.vue b/frontend/src/components/WebcamFileSource.vue new file mode 100644 index 0000000..7413d77 --- /dev/null +++ b/frontend/src/components/WebcamFileSource.vue @@ -0,0 +1,196 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/dns.js b/frontend/src/dns.js new file mode 100644 index 0000000..52cfe06 --- /dev/null +++ b/frontend/src/dns.js @@ -0,0 +1,31 @@ +import {query} from 'dns-query'; + +class FallBackResolver { + constructor() { + this._servers = ['1.1.1.1', '8.8.8.8']; + this._cache = JSON.parse(localStorage.getItem('dns-cache')) || {}; + } + + async query(domain, type) { + const key = domain + ':' + type; + if (key in this._cache && this._cache[key].time > Date.now() - 1000 * 60 * 60) { + const age_seconds = Math.ceil(Date.now() / 1000 - this._cache[key].time / 1000); + console.log('cache hit', key, this._cache[key].ttl - age_seconds); + return [this._cache[key].data]; + } + const result = await query( + {question: {type: type, name: domain}}, + { + endpoints: this._servers, + } + ) + if(result.answers.length === 0) throw new Error('No answer'); + const first = result.answers[0]; + this._cache[key] = {time: Date.now(), ...first}; // TODO hadle multiple answers + localStorage.setItem('dns-cache', JSON.stringify(this._cache)); + console.log('cache miss', key, first.ttl); + return [first.data]; + } +} + +export default FallBackResolver; \ No newline at end of file diff --git a/frontend/src/federation.js b/frontend/src/federation.js new file mode 100644 index 0000000..9afe33c --- /dev/null +++ b/frontend/src/federation.js @@ -0,0 +1,324 @@ +class ServerSet { + constructor(servers, unreachable_neighbors) { + if (!servers || !Array.isArray(servers)) { + throw new Error('no servers') + } + if (!unreachable_neighbors || typeof unreachable_neighbors.queryUnreachable !== 'function' || typeof unreachable_neighbors.unreachable !== 'function') { + throw new Error('no unreachable_neighbors') + } + this.servers = [...new Set(servers)] // deduplicate + this.unreachable_neighbors = unreachable_neighbors; + } + + add(server) { + console.log('adding server', server) + if (!server || typeof server !== 'string') { + throw new Error('server must be a string') + } + if (server in this.servers) { + console.log('server already in set', server) + return + } + this.servers.push(server); + } + + async get(auth, target) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'GET', + headers: { + ...auth.buildAuthHeader(url) + }, + credentials: 'omit' + }).catch(err => { + console.error('get from server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ).then(response => response.json()) + } catch (e) { + console.error('get from server failed', server, e) + } + } + throw new Error('all servers failed') + } + + async post(auth, target, data) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...auth.buildAuthHeader(url, data) + }, + credentials: 'omit', + body: JSON.stringify(data) + }).catch(err => { + console.error('post to server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ).then(response => response.json()) + } catch (e) { + console.error('post to server failed', server, e) + } + } + throw new Error('all servers failed') + } + + async patch(auth, target, data) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + ...auth.buildAuthHeader(url, data) + }, + credentials: 'omit', + body: JSON.stringify(data) + }).catch(err => { + console.error('patch to server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ).then(response => response.json()) + } catch (e) { + console.error('patch to server failed', server, e) + } + } + throw new Error('all servers failed') + } + + async put(auth, target, data) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + ...auth.buildAuthHeader(url, data) + }, + credentials: 'omit', + body: JSON.stringify(data) + }).catch(err => { + console.error('put to server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ).then(response => response.json()) + } catch (e) { + console.error('put to server failed', server, e) + } + } + throw new Error('all servers failed') + } + + async delete(auth, target) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'DELETE', + headers: { + ...auth.buildAuthHeader(url) + }, + credentials: 'omit' + }).catch(err => { + console.error('delete from server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ) + } catch (e) { + console.error('delete from server failed', server, e) + } + } + throw new Error('all servers failed') + } + + async getRaw(auth, target) { + if (!auth || typeof auth.buildAuthHeader !== 'function') { + throw new Error('no auth') + } + for (const server of this.servers) { + try { + if (this.unreachable_neighbors.queryUnreachable(server)) { + continue + } + const url = "https://" + server + target // TODO https + return await fetch(url, { + method: 'GET', + headers: { + ...auth.buildAuthHeader(url) + }, + credentials: 'omit' + }).catch(err => { + console.error('get from server failed', server, err) + this.unreachable_neighbors.unreachable(server) + } + ) + } catch (e) { + console.error('get from server failed', server, e) + } + } + throw new Error('all servers failed') + } +} + +class ServerSetUnion { + constructor(serverSets) { + if (!serverSets || !Array.isArray(serverSets)) { + throw new Error('no serverSets') + } + this.serverSets = serverSets; + } + + add(serverset) { + if (!serverset || !(serverset instanceof ServerSet)) { + throw new Error('no serverset') + } + if (this.serverSets.find(s => serverset.servers.every(s2 => s.servers.includes(s2)))) { + console.warn('serverset already in union', serverset) + return + } + this.serverSets.push(serverset) + } + + async get(auth, target) { + try { + return await this.serverSets.reduce(async (acc, serverset) => { + return acc.then(async (acc) => { + return acc.concat(await serverset.get(auth, target)) + }) + }, Promise.resolve([])) + } catch (e) { + throw new Error('all servers failed') + } + } + + async post(auth, target, data) { + try { + return await this.serverSets.reduce(async (acc, serverset) => { + return acc.then(async (acc) => { + return acc.concat(await serverset.post(auth, target, data)) + }) + }, Promise.resolve([])) + } catch (e) { + throw new Error('all servers failed') + } + } + + async patch(auth, target, data) { + try { + return await this.serverSets.reduce(async (acc, serverset) => { + return acc.then(async (acc) => { + return acc.concat(await serverset.patch(auth, target, data)) + }) + }, Promise.resolve([])) + } catch (e) { + throw new Error('all servers failed') + } + } + + async put(auth, target, data) { + try { + return await this.serverSets.reduce(async (acc, serverset) => { + return acc.then(async (acc) => { + return acc.concat(await serverset.put(auth, target, data)) + }) + }, Promise.resolve([])) + } catch (e) { + throw new Error('all servers failed') + } + } + + async delete(auth, target) { + try { + return await this.serverSets.reduce(async (acc, serverset) => { + return acc.then(async (acc) => { + return acc.concat(await serverset.delete(auth, target)) + }) + }, Promise.resolve([])) + } catch (e) { + throw new Error('all servers failed') + } + } +} + + +class authMethod { + constructor(method, auth) { + this.method = method; + this.auth = auth; + } + + buildAuthHeader(url, data) { + return this.method(this.auth, {url, data}) + } + +} + +function createSignAuth(username, signKey) { + const context = {username, signKey} + if (!context.signKey || !context.username || typeof context.username !== 'string' + || !(context.signKey instanceof Uint8Array) || context.signKey.length !== 64) { + throw new Error('no signKey or username') + } + return new authMethod(({signKey, username}, {url, data}) => { + const json = JSON.stringify(data) + const signature = nacl.crypto_sign_detached(nacl.encode_utf8(url + (data ? json : "")), signKey) + return {'Authorization': 'Signature ' + username + ':' + nacl.to_hex(signature)} + }, context) +} + +function createTokenAuth(token) { + const context = {token} + if (!context.token) { + throw new Error('no token') + } + return new authMethod(({token}, {url, data}) => { + return {'Authorization': 'Token ' + token} + }, context) +} + +function createNullAuth() { + return new authMethod(() => { + return {} + }, {}) +} + +export {ServerSet, ServerSetUnion, createSignAuth, createTokenAuth, createNullAuth}; + + diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..13d7aec --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,50 @@ +import {createApp} from 'vue' +//import { BootstrapVue, BootstrapVueIcons } from 'bootstrap-vue' +import {BootstrapIconsPlugin} from 'bootstrap-icons-vue'; +import App from './App.vue' + +import './assets/css/toolshed.css' +//import './assets/js/app.js' + +import router from './router' +import store from './store'; + +import _nacl from 'js-nacl'; + +const app = createApp(App).use(store).use(BootstrapIconsPlugin); + +_nacl.instantiate((nacl) => { + window.nacl = nacl + app.use(router).mount('#app') +}); + + +window.closeAllDropdowns = function () { + const dropdowns = document.getElementsByClassName("dropdown-menu"); + let i; + for (i = 0; i < dropdowns.length; i++) { + const openDropdown = dropdowns[i]; + if (openDropdown.classList.contains('show')) { + openDropdown.classList.remove('show'); + } + } +} + +window.onclick = function (event) { + if (!event.target.matches('.dropdown-toggle *') + && !event.target.matches('.dropdown-toggle') + && !event.target.matches('.dropdown-menu *') + && !event.target.matches('.dropdown-menu')) { + closeAllDropdowns(); + } + if (!event.target.matches('.sidebar-toggle *') + && !event.target.matches('.sidebar-toggle') + && !event.target.matches('.sidebar *') + && !event.target.matches('.sidebar')) { + const sidebar = document.getElementById("sidebar"); + const marginLeft = parseInt(getComputedStyle(sidebar).marginLeft); + if (sidebar.classList.contains('collapsed') && marginLeft === 0) { + sidebar.classList.remove('collapsed'); + } + } +} \ No newline at end of file diff --git a/frontend/src/neigbors.js b/frontend/src/neigbors.js new file mode 100644 index 0000000..bbdfc06 --- /dev/null +++ b/frontend/src/neigbors.js @@ -0,0 +1,48 @@ +class NeighborsCache { + constructor() { + //this._max_age = 1000 * 60 * 60; // 1 hour + //this._max_age = 1000 * 60 * 5; // 5 minutes + this._max_age = 1000 * 15; // 15 seconds + this._cache = JSON.parse(localStorage.getItem('neighbor-cache')) || {}; + } + + reachable(domain) { + console.log('reachable neighbor ' + domain) + if (domain in this._cache) { + delete this._cache[domain]; + localStorage.setItem('neighbor-cache', JSON.stringify(this._cache)); + } + } + + unreachable(domain) { + console.log('unreachable neighbor ' + domain) + this._cache[domain] = {time: Date.now()}; + localStorage.setItem('neighbor-cache', JSON.stringify(this._cache)); + } + + queryUnreachable(domain) { + //return false if unreachable + if (domain in this._cache) { + if (this._cache[domain].time > Date.now() - this._max_age) { + console.log('skip unreachable neighbor ' + domain + ' ' + Math.ceil( + Date.now()/1000 - this._cache[domain].time/1000) + 's/' + Math.ceil(this._max_age/1000) + 's') + return true + } else { + delete this._cache[domain]; + localStorage.setItem('neighbor-cache', JSON.stringify(this._cache)); + } + } + return false; + } + + list() { + return Object.entries(this._cache).map(([domain, elem]) => { + return { + domain: domain, + time: elem.time + } + }) + } +} + +export default NeighborsCache; \ No newline at end of file diff --git a/frontend/src/router.js b/frontend/src/router.js new file mode 100644 index 0000000..761bac9 --- /dev/null +++ b/frontend/src/router.js @@ -0,0 +1,56 @@ +import {createRouter, createWebHistory} from 'vue-router' +import Index from '@/views/Index.vue'; +import Login from '@/views/Login.vue'; +import Register from '@/views/Register.vue'; +import store from '@/store'; +import Profile from '@/views/Profile.vue'; +import Settings from '@/views/Settings.vue'; +import Inventory from '@/views/Inventory.vue'; +import Friends from "@/views/Friends.vue"; +import Search from "@/views/Search.vue"; +import InventoryNew from "@/views/InventoryNew.vue"; +import InventoryEdit from "@/views/InventoryEdit.vue"; +import InventoryDetail from "@/views/InventoryDetail.vue"; +import Admin from "@/views/Admin.vue"; +import Files from "@/views/Files.vue"; + + +const routes = [ + {path: '/', component: Index, meta: {requiresAuth: true}}, + {path: '/profile', component: Profile, meta: {requiresAuth: true}}, + {path: '/settings', component: Settings, meta: {requiresAuth: true}}, + {path: '/inventory', component: Inventory, meta: {requiresAuth: true}}, + {path: '/inventory/:id', component: InventoryDetail, meta: {requiresAuth: true}, props: true}, + {path: '/inventory/:id/edit', component: InventoryEdit, meta: {requiresAuth: true}, props: true}, + {path: '/inventory/new', component: InventoryNew, meta: {requiresAuth: true}}, + {path: '/friends', component: Friends, meta: {requiresAuth: true}}, + {path: '/files', component: Files, meta: {requiresAuth: true}}, + {path: '/admin', component: Admin, meta: {requiresAuth: true}}, + {path: '/search/:query', component: Search, meta: {requiresAuth: true}, props: true}, + {path: '/login', component: Login, meta: {requiresAuth: false}}, + {path: '/register', component: Register, meta: {requiresAuth: false}}, +] + +const router = createRouter({ + // 4. Provide the history implementation to use. We are using the hash history for simplicity here. + history: createWebHistory(), + linkActiveClass: "active", + routes, // short for `routes: routes` +}) + +router.beforeEach((to/*, from*/) => { + // instead of having to check every route record with + // to.matched.some(record => record.meta.requiresAuth) + if (to.meta.requiresAuth && !store.getters.isLoggedIn) { + // this route requires auth, check if logged in + // if not, redirect to login page. + console.log("Not logged in, redirecting to login page") + return { + path: '/login', + // save the location we were at to come back later + query: {redirect: to.fullPath}, + } + } +}) + +export default router \ No newline at end of file diff --git a/frontend/src/store.js b/frontend/src/store.js new file mode 100644 index 0000000..07609e0 --- /dev/null +++ b/frontend/src/store.js @@ -0,0 +1,439 @@ +import {createStore} from 'vuex'; +import router from '@/router'; +import FallBackResolver from "@/dns"; +import NeighborsCache from "@/neigbors"; +import {createNullAuth, createSignAuth, createTokenAuth, ServerSet, ServerSetUnion} from "@/federation"; + + +export default createStore({ + state: { + local_loaded: false, + last_load: {}, + user: null, + token: null, + keypair: null, + remember: false, + friends: [], + item_map: {}, + //notifications: [], + messages: [], + home_servers: null, + all_friends_servers: null, + resolver: new FallBackResolver(), + unreachable_neighbors: new NeighborsCache(), + tags: [], + properties: [], + files: [], + categories: [], + availability_policies: [], + domains: [], + storage_locations: [], + }, + mutations: { + setUser(state, user) { + state.user = user; + if (state.remember) + localStorage.setItem('user', user); + }, + setToken(state, token) { + state.token = token; + if (state.remember) + localStorage.setItem('token', token); + }, + setKey(state, keypair) { + state.keypair = nacl.crypto_sign_keypair_from_seed(nacl.from_hex(keypair)) + if (state.remember) + localStorage.setItem('keypair', nacl.to_hex(state.keypair.signSk).slice(0, 64)) + }, + setRemember(state, remember) { + state.remember = remember; + if (!remember) { + localStorage.removeItem('user'); + localStorage.removeItem('token'); + localStorage.removeItem('keypair'); + } + localStorage.setItem('remember', remember); + }, + setInventoryItems(state, {url, items}) { + state.item_map[url] = items; + }, + setFriends(state, friends) { + state.friends = friends; + }, + setHomeServers(state, home_servers) { + state.home_servers = home_servers; + }, + setAllFriendsServers(state, servers) { + state.all_friends_servers = servers; + }, + setTags(state, tags) { + state.tags = tags; + }, + setProperties(state, properties) { + state.properties = properties; + }, + setCategories(state, categories) { + state.categories = categories; + }, + setAvailabilityPolicies(state, availability_policies) { + state.availability_policies = availability_policies; + }, + setDomains(state, domains) { + state.domains = domains; + }, + setStorageLocations(state, storage_locations) { + state.storage_locations = storage_locations; + }, + setFiles(state, files) { + state.files = files; + }, + logout(state) { + state.user = null; + state.token = null; + state.keypair = null; + localStorage.removeItem('user'); + localStorage.removeItem('token'); + localStorage.removeItem('keypair'); + router.push('/login'); + }, + load_local(state) { + if (state.local_loaded) + return; + const remember = localStorage.getItem('remember'); + const user = localStorage.getItem('user'); + const token = localStorage.getItem('token'); + const keypair = localStorage.getItem('keypair'); + if (user && token) { + this.commit('setUser', user); + this.commit('setToken', token); + if (keypair) { + this.commit('setKey', keypair) + } + } + state.cache_loaded = true; + } + }, + actions: { + async login({commit, dispatch, state}, {username, password, remember}) { + commit('setRemember', remember); + const data = await fetch('/auth/token/', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({username: username, password: password}), + credentials: 'omit' + }).then(r => r.json()) + if (data.token && data.key) { + commit('setToken', data.token); + commit('setUser', username); + commit('setKey', data.key); + const s = await dispatch('lookupServer', {username}).then(servers => new ServerSet(servers, state.unreachable_neighbors)) + commit('setHomeServers', s) + return true; + } else { + return false; + } + }, + async lookupServer({state}, {username}) { + const domain = username.split('@')[1] + if (domain === 'example.eleon') + return ['10.23.42.186:8000']; + if (domain === 'localhost') + return ['127.0.0.1:8000']; + if (domain === 'example.com') + return ['10.23.42.128:8000', '10.23.42.128:8000']; + if (domain === 'example.jedi') + return ['10.23.42.128:8000']; + if (domain === 'example2.com') + return ['10.23.42.128:9000']; + const request = '_toolshed-server._tcp.' + domain + '.' + return await state.resolver.query(request, 'SRV').then( + (result) => result.map( + (answer) => answer.target + ':' + answer.port)) + }, + async getHomeServers({state, dispatch, commit}) { + if (state.home_servers) + return state.home_servers + const promise = dispatch('lookupServer', {username: state.user}).then(servers => new ServerSet(servers, state.unreachable_neighbors)) + commit('setHomeServers', promise) + return promise + }, + async getAllKnownServers({state, dispatch, commit}) { + const friends = await dispatch('fetchFriends') + if (state.all_friends_servers) + return state.all_friends_servers + const promise = (async () => { + const servers = new ServerSetUnion([]) + const home = await dispatch('getHomeServers') + servers.add(home) + for (const friend of friends) { + const s = await dispatch('lookupServer', {username: friend.username}) + servers.add(new ServerSet(s, state.unreachable_neighbors)) + } + return servers + })() + commit('setAllFriendsServers', promise) + return promise + }, + async getFriendServers({state, dispatch, commit}, {username}) { + return dispatch('lookupServer', {username}).then(servers => new ServerSet(servers, state.unreachable_neighbors)) + }, + async fetchInventoryItems({commit, dispatch, getters}) { + const servers = await dispatch('getHomeServers') + const items = await servers.get(getters.signAuth, '/api/inventory_items/') + items.map(item => item.files.map(file => file.owner = item.owner)) + commit('setInventoryItems', {url: '/', items}) + return items + }, + async searchInventories({state, dispatch, getters}, {query}) { + const servers = await dispatch('getAllKnownServers') + return await servers.get(getters.signAuth, '/api/inventory/search/?q=' + query) + }, + async createInventoryItem({state, dispatch, getters}, item) { + const servers = await dispatch('getHomeServers') + const data = {availability_policy: 'friends', ...item} + const reply = await servers.post(getters.signAuth, '/api/inventory_items/', data) + state.last_load.files = 0 + return reply + }, + async updateInventoryItem({state, dispatch, getters}, item) { + const servers = await dispatch('getHomeServers') + const data = {availability_policy: 'friends', ...item} + data.files = data.files.map(file => file.id) + return await servers.patch(getters.signAuth, '/api/inventory_items/' + item.id + '/', data) + }, + async deleteInventoryItem({state, dispatch, getters}, item) { + const servers = await dispatch('getHomeServers') + const ret = await servers.delete(getters.signAuth, '/api/inventory_items/' + item.id + '/') + dispatch('fetchInventoryItems') + return ret + }, + async fetchSearchResults({state, dispatch, getters}, {query}) { + const servers = await dispatch('getAllKnownServers') + return await servers.get(getters.signAuth, '/api/search/?query=' + query) + }, + async fetchFriends({commit, dispatch, getters, state}) { + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/friends/') + commit('setFriends', data) + return data + }, + async fetchFriendRequests({state, dispatch, getters}) { + const servers = await dispatch('getHomeServers') + return await servers.get(getters.signAuth, '/api/friendrequests/') + }, + async requestFriend({state, dispatch, getters}, {username}) { + if (username in state.friends) { + return true; + } + const home_servers = await dispatch('getHomeServers') + const home_reply = await home_servers.post(getters.signAuth, '/api/friendrequests/', { + befriender: state.user, + befriendee: username + }) + if (home_reply.status !== 'pending' || !home_reply.secret) + return false; + + const befriendee_servers = await dispatch('getFriendServers', {username}) + const ext_reply = await befriendee_servers.post(getters.signAuth, '/api/friendrequests/', { + befriender: state.user, + befriendee: username, + befriender_key: nacl.to_hex(state.keypair.signPk), + secret: home_reply.secret + }) + return true; + }, + async acceptFriend({state, dispatch, getters}, {id, secret, befriender}) { + const home_servers = await dispatch('getHomeServers') + const home_reply = await home_servers.post(getters.signAuth, '/api/friends/', { + friend_request_id: id, secret: secret + }) + const ext_servers = await dispatch('getFriendServers', {username: befriender}) + const ext_reply = await ext_servers.post(getters.signAuth, '/api/friendrequests/', { + befriender: state.user, + befriendee: befriender, + befriender_key: nacl.to_hex(state.keypair.signPk), + secret: secret + }) + return true + }, + async declineFriend({state, dispatch, getters}, {id}) { + const servers = await dispatch('getHomeServers') + return await servers.delete(getters.signAuth, '/api/friendrequests/' + id + '/') + }, + async dropFriend({state, dispatch, getters}, {id}) { + const servers = await dispatch('getHomeServers') + return await servers.delete(getters.signAuth, '/api/friends/' + id + '/') + }, + async fetchFiles({state, commit, dispatch, getters}) { + if (state.last_load.files > Date.now() - 1000 * 60 * 60 * 24) { + return state.files + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/files/') + data.map(file => file.owner = state.user) + commit('setFiles', data) + state.last_load.files = Date.now() + return data + }, + async fetchFilesByItem({state, commit, dispatch, getters}, {id}) { + const servers = await dispatch('getHomeServers') + return await servers.get(getters.signAuth, '/api/item_files/' + id + '/') + }, + async pushFile({state, dispatch, getters}, {item_id, file}) { + const servers = await dispatch('getHomeServers') + const data = await servers.post(getters.signAuth, '/api/item_files/' + item_id + '/', file) + if (data.name) { + data.owner = state.user + state.files.push(data) + return data + } + }, + async deleteFile({state, dispatch, getters}, {id}) { + const servers = await dispatch('getHomeServers') + await servers.delete(getters.signAuth, '/api/files/' + id + '/') + state.files = state.files.filter(file => file.id !== id) + }, + async deleteItemFile({state, dispatch, getters}, {item_id, file_id}) { + const servers = await dispatch('getHomeServers') + await servers.delete(getters.signAuth, '/api/item_files/' + item_id + '/' + file_id + '/') + state.files = state.files.filter(file => file.id !== file_id) + }, + async fetchTags({state, commit, dispatch, getters}) { + if (state.last_load.tags > Date.now() - 1000 * 60 * 60 * 24) { + return state.tags + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/tags/') + commit('setTags', data) + state.last_load.tags = Date.now() + return data + }, + async fetchProperties({state, commit, dispatch, getters}) { + if (state.last_load.properties > Date.now() - 1000 * 60 * 60 * 24) { + return state.properties + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/properties/') + commit('setProperties', data) + state.last_load.properties = Date.now() + return data + }, + async fetchCategories({state, commit, dispatch, getters}) { + if (state.last_load.categories > Date.now() - 1000 * 60 * 60 * 24) { + return state.categories + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/categories/') + commit('setCategories', data) + state.last_load.categories = Date.now() + return data + }, + async fetchAvailabilityPolicies({state, commit, dispatch, getters}) { + if (state.last_load.availability_policies > Date.now() - 1000 * 60 * 60 * 24) { + return state.availability_policies + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/availability_policies/') + commit('setAvailabilityPolicies', data) + state.last_load.availability_policies = Date.now() + return data + }, + async fetchStorageLocations({state, commit, dispatch, getters}) { + if (state.last_load.storage_locations > Date.now() - 1000 * 60 * 60 * 24) { + return state.storage_locations + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/storage_locations/') + commit('setStorageLocations', data) + state.last_load.storage_locations = Date.now() + return data + }, + async fetchInfo({state, commit, dispatch, getters}) { + const last_load_info = Math.min( + state.last_load.tags, + state.last_load.properties, + state.last_load.categories, + state.last_load.availability_policies) + if (last_load_info > Date.now() - 1000 * 60 * 60 * 24) { + return state.info + } + const servers = await dispatch('getHomeServers') + const data = await servers.get(getters.signAuth, '/api/info/') + commit('setTags', data.tags) + commit('setProperties', data.properties) + commit('setCategories', data.categories) + commit('setAvailabilityPolicies', data.availability_policies) + commit('setDomains', data.domains) + state.last_load.tags = Date.now() + state.last_load.properties = Date.now() + state.last_load.categories = Date.now() + state.last_load.availability_policies = Date.now() + return data + } + }, + getters: { + isLoggedIn(state) { + if (!state.local_loaded) { + state.remember = localStorage.getItem('remember') === 'true' + state.user = localStorage.getItem('user') + state.token = localStorage.getItem('token') + const keypair = localStorage.getItem('keypair') + if (keypair) + state.keypair = nacl.crypto_sign_keypair_from_seed(nacl.from_hex(keypair)) + state.local_loaded = true + } + + return state.user !== null && state.token !== null; + }, + signAuth(state) { + return createSignAuth(state.user, state.keypair.signSk) + }, + tokenAuth(state) { + return createTokenAuth(state.token) + }, + nullAuth(state) { + return createNullAuth({}) + }, + inventory_items(state) { + return Object.entries(state.item_map).reduce((acc, [url, items]) => { + return acc.concat(items) + }, []) + }, + notifications(state) { + // supported types: error, warning, info, login, success, friend + const u = state.unreachable_neighbors.list().map(elem => { + return { + type: 'error', + title: elem.domain + ' unreachable', + msg: 'The neighbor ' + elem.domain + ' is currently unreachable. Please try again later.', + time: elem.time + } + }) + return [...u, { + type: 'info', + title: 'Welcome to the Toolshed', + msg: 'This is a federated social network. You can add friends from other servers and share items with them.', + time: Date.now() + }, { + type: 'warning', + title: 'Lorem ipsum', + msg: 'Aliquam ex eros, imperdiet vulputate hendrerit et.', + time: Date.now() - 1000 * 60 * 60 * 2 + }, { + type: 'login', + title: 'Login from 192.186.1.8', + time: Date.now() - 1000 * 60 * 60 * 5 + }, { + type: 'friend', + title: 'New connection', + msg: 'Christina accepted your request.', + time: Date.now() - 1000 * 60 * 60 * 14 + }, { + type: 'success', + title: 'Lorem ipsum', + msg: 'Aliquam ex eros, imperdiet vulputate hendrerit et.', + time: Date.now() - 1000 * 60 * 60 * 24 + }] + }, + } +}) \ No newline at end of file diff --git a/frontend/src/tests/SearchBox.js b/frontend/src/tests/SearchBox.js new file mode 100644 index 0000000..cf12d07 --- /dev/null +++ b/frontend/src/tests/SearchBox.js @@ -0,0 +1,59 @@ +import {mount} from '@vue/test-utils' +import SearchBox from '../components/SearchBox.vue' + +test('SearchBox component', async () => { + expect(SearchBox).toBeTruthy() + + const mockRoute = { + params: { + query: 'urltest', + } + } + + const mockRouter = { + push: vi.fn(), + } + + const wrapper = mount(SearchBox, { + props: {}, + global: { + mocks: { + $route: mockRoute, + $router: mockRouter, + } + }, + attachTo: document.body, + }) + + await wrapper.get('button').trigger('click') + + expect(mockRouter.push).toHaveBeenCalledWith('/search/urltest') + + mockRouter.push.mockClear() + + await wrapper.find({ref: 'search-text'}).setValue('test2') + + await wrapper.get('button').trigger('click') + + expect(mockRouter.push).toHaveBeenCalledWith('/search/test2') + + mockRouter.push.mockClear() + + await wrapper.find({ref: 'search-text'}).setValue('äöüß!§$%&/()=?') + + await wrapper.get('button').trigger('click') + + expect(mockRouter.push).toHaveBeenCalledWith('/search/%C3%A4%C3%B6%C3%BC%C3%9F!%C2%A7%24%25%26%2F()%3D%3F') + + mockRouter.push.mockClear() + + await wrapper.find({ref: 'search-text'}).setValue('') + + await wrapper.get('button').trigger('click') + + expect(mockRouter.push).not.toHaveBeenCalled() + + expect(await wrapper.find({ref: 'search-text'}).element).toEqual(document.activeElement) + + expect(wrapper.html()).toMatchSnapshot() +}) diff --git a/frontend/src/tests/__snapshots__/SearchBox.js.snap b/frontend/src/tests/__snapshots__/SearchBox.js.snap new file mode 100644 index 0000000..d7a5ee0 --- /dev/null +++ b/frontend/src/tests/__snapshots__/SearchBox.js.snap @@ -0,0 +1,9 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`SearchBox component 1`] = ` +"
+
+
" +`; diff --git a/frontend/src/views/Admin.vue b/frontend/src/views/Admin.vue new file mode 100644 index 0000000..43020a2 --- /dev/null +++ b/frontend/src/views/Admin.vue @@ -0,0 +1,115 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue new file mode 100644 index 0000000..15a0e35 --- /dev/null +++ b/frontend/src/views/Files.vue @@ -0,0 +1,71 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Friends.vue b/frontend/src/views/Friends.vue new file mode 100644 index 0000000..e584a36 --- /dev/null +++ b/frontend/src/views/Friends.vue @@ -0,0 +1,192 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Index.vue b/frontend/src/views/Index.vue new file mode 100644 index 0000000..4a5d040 --- /dev/null +++ b/frontend/src/views/Index.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Inventory.vue b/frontend/src/views/Inventory.vue new file mode 100644 index 0000000..8744d4e --- /dev/null +++ b/frontend/src/views/Inventory.vue @@ -0,0 +1,77 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/InventoryDetail.vue b/frontend/src/views/InventoryDetail.vue new file mode 100644 index 0000000..b559b76 --- /dev/null +++ b/frontend/src/views/InventoryDetail.vue @@ -0,0 +1,107 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/InventoryEdit.vue b/frontend/src/views/InventoryEdit.vue new file mode 100644 index 0000000..1091352 --- /dev/null +++ b/frontend/src/views/InventoryEdit.vue @@ -0,0 +1,100 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/InventoryNew.vue b/frontend/src/views/InventoryNew.vue new file mode 100644 index 0000000..271f04f --- /dev/null +++ b/frontend/src/views/InventoryNew.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue new file mode 100644 index 0000000..3a86400 --- /dev/null +++ b/frontend/src/views/Login.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Profile.vue b/frontend/src/views/Profile.vue new file mode 100644 index 0000000..3fec4eb --- /dev/null +++ b/frontend/src/views/Profile.vue @@ -0,0 +1,256 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Register.vue b/frontend/src/views/Register.vue new file mode 100644 index 0000000..60b7a4e --- /dev/null +++ b/frontend/src/views/Register.vue @@ -0,0 +1,163 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Search.vue b/frontend/src/views/Search.vue new file mode 100644 index 0000000..658fb0d --- /dev/null +++ b/frontend/src/views/Search.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue new file mode 100644 index 0000000..8784570 --- /dev/null +++ b/frontend/src/views/Settings.vue @@ -0,0 +1,209 @@ + + + + + \ No newline at end of file diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..2ae2c0e --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,64 @@ +import {fileURLToPath, URL} from 'node:url' + +import {defineConfig} from 'vite' +import vue from '@vitejs/plugin-vue' +import * as fs from "fs"; + +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + }, + server: { + host: true, + cors: true, + headers: { + //allow all origins + 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', + 'Access-Control-Allow-Headers': 'Origin, Content-Type, X-Auth-Token, Authorization, Accept, charset, boundary, Content-Length', + 'Access-Control-Allow-Credentials': 'true', + 'Access-Control-Max-Age': '86400', + 'Content-Security-Policy': 'default-src \'self\';' + + ' script-src \'self\' \'wasm-unsafe-eval\';' + + ' style-src \'self\' \'unsafe-inline\';' + + ' img-src \'self\' https://* data:;' + + ' connect-src * data:', // TODO: change * to https://* for production + }, + /*https: { + key: fs.readFileSync('privkey.pem'), + cert: fs.readFileSync('fullchain.pem') + },*/ + proxy: { + '^/api/': { + target: "https://toolshed.j3d1.de:8000/", + }, + '^/auth/': { + target: "https://toolshed.j3d1.de:8000/", + secure: false, + }, + '^/docs/': { + target: "https://toolshed.j3d1.de:8000/", + }, + '^/static/': { + target: "https://toolshed.j3d1.de:8000/", + }, + '^/media/': { + target: "https://toolshed.j3d1.de:8000/", + }, + '^/wiki/': { + target: "http://127.0.0.1:8080/", + rewrite: (path) => path.replace(/^\/wiki/, ''), + }, + '^/livereload/': { + target: "http://127.0.0.1:8080/", + } + } + }, + test: { + include: ['src/tests/**/*.js'], + globals: true, + environment: "jsdom" + } +}) diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..35eec4f --- /dev/null +++ b/nginx.conf @@ -0,0 +1,37 @@ +worker_processes 2; + +events { + use epoll; + worker_connections 128; +} + +error_log logs/error.log info; + +http { + server_tokens off; + include /etc/nginx/mime.types; + charset utf-8; + + access_log logs/access.log combined; + + server { + server_name localhost; + listen 0.0.0.0:8080; + + error_page 500 502 503 504 /50x.html; + + location / { + root frontend/dist/; + } + + location /api/ { + proxy_pass http://127.0.0.1:8000/api/; + } + + location /auth/ { + proxy_pass http://127.0.0.1:8000/auth/; + } + + } + +} \ No newline at end of file diff --git a/proxy.sh b/proxy.sh new file mode 100755 index 0000000..aa07e9f --- /dev/null +++ b/proxy.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/sbin/nginx -g "daemon off;pid nginx.pid;" -c nginx.conf -e nginx.log -p $(pwd) \ No newline at end of file