diff --git a/.env b/.env
new file mode 100644
index 000000000..9620e59fb
--- /dev/null
+++ b/.env
@@ -0,0 +1,77 @@
+# In all environments, the following files are loaded if they exist,
+# the latter taking precedence over the former:
+#
+# * .env contains default values for the environment variables needed by the app
+# * .env.local uncommitted file with local overrides
+# * .env.$APP_ENV committed environment-specific defaults
+# * .env.$APP_ENV.local uncommitted environment-specific overrides
+#
+# Real environment variables win over .env files.
+#
+# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
+# https://symfony.com/doc/current/configuration/secrets.html
+#
+# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
+# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
+
+DOMAIN_NAME=https://your-wallabag-url.instance
+SERVER_NAME="Your wallabag instance"
+
+# two factor stuff
+TWOFACTOR_AUTH=true
+TWOFACTOR_SENDER=no-reply@wallabag.org
+
+# fosuser stuff
+FOSUSER_REGISTRATION=true
+FOSUSER_CONFIRMATION=true
+
+# how long the access token should live in seconds for the API
+FOS_OAUTH_SERVER_ACCESS_TOKEN_LIFETIME=3600
+# how long the refresh token should life in seconds for the API
+FOS_OAUTH_SERVER_REFRESH_TOKEN_LIFETIME=1209600
+
+FROM_EMAIL=no-reply@wallabag.org
+
+RSS_LIMIT=50
+
+LOCALE=en
+DATABASE_TABLE_PREFIX=wallabag_
+
+# redis stuff
+REDIS_SCHEME=tcp
+REDIS_HOST=localhost
+REDIS_PORT=6379
+REDIS_PATH=null
+REDIS_PASSWORD=null
+
+###> doctrine/doctrine-bundle ###
+# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
+# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
+#
+DATABASE_URL="sqlite:///%kernel.project_dir%/data/db/wallabag.sqlite"
+# DATABASE_URL="mysql://root:@127.0.0.1:3306/wallabag?serverVersion=8&charset=utf8mb4"
+# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=14&charset=utf8"
+###< doctrine/doctrine-bundle ###
+
+###> nelmio/cors-bundle ###
+CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$'
+###< nelmio/cors-bundle ###
+
+###> php-amqplib/rabbitmq-bundle ###
+RABBITMQ_URL=amqp://guest:guest@localhost:5672
+###< php-amqplib/rabbitmq-bundle ###
+
+###> sentry/sentry-symfony ###
+SENTRY_DSN=
+###< sentry/sentry-symfony ###
+
+###> symfony/framework-bundle ###
+APP_ENV=dev
+APP_SECRET=b6b54475f34a3238dec16508c4903ca0
+#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+#TRUSTED_HOSTS='^(localhost|example\.com)$'
+###< symfony/framework-bundle ###
+
+###> symfony/mailer ###
+MAILER_DSN=smtp://127.0.0.1
+###< symfony/mailer ###
diff --git a/.env.test b/.env.test
new file mode 100644
index 000000000..99e9f56ce
--- /dev/null
+++ b/.env.test
@@ -0,0 +1,7 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
+DATABASE_URL="mysql://root:root@127.0.0.1:3306/wallabag_test?serverVersion=8&charset=utf8mb4"
diff --git a/.env.test.mysql b/.env.test.mysql
new file mode 100644
index 000000000..99e9f56ce
--- /dev/null
+++ b/.env.test.mysql
@@ -0,0 +1,7 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
+DATABASE_URL="mysql://root:root@127.0.0.1:3306/wallabag_test?serverVersion=8&charset=utf8mb4"
diff --git a/.env.test.pgsql b/.env.test.pgsql
new file mode 100644
index 000000000..f3249afad
--- /dev/null
+++ b/.env.test.pgsql
@@ -0,0 +1,7 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
+DATABASE_URL="postgresql://wallabag:wallabagrocks@localhost:5432/wallabag_test?serverVersion=14&charset=utf8"
diff --git a/.env.test.sqlite b/.env.test.sqlite
new file mode 100644
index 000000000..c845c6e8e
--- /dev/null
+++ b/.env.test.sqlite
@@ -0,0 +1,7 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
+DATABASE_URL="sqlite:///%test_database_path%"
diff --git a/.gitattributes b/.gitattributes
index 3b534030c..bd329a0ed 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,5 +3,6 @@
/.github export-ignore
/.gitignore export-ignore
/phpstan.neon export-ignore
+/phpstan-baseline.neon export-ignore
/phpunit.xml.dist export-ignore
/tests export-ignore
diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml
index 03ee1aee2..b51f637f4 100644
--- a/.github/workflows/coding-standards.yml
+++ b/.github/workflows/coding-standards.yml
@@ -48,7 +48,7 @@ jobs:
run: "php bin/phpstan analyse --no-progress --error-format=checkstyle | cs2pr"
- name: "Run TwigCS"
- run: "php bin/twigcs --severity=error --display=blocking --reporter checkstyle app/ src/ | cs2pr"
+ run: "php bin/twigcs --severity=error --display=blocking --reporter checkstyle templates/ | cs2pr"
- name: "Run ergebnis/composer-normalize"
run: "composer normalize --dry-run --no-check-lock"
diff --git a/.github/workflows/upload-release-package.yml b/.github/workflows/upload-release-package.yml
index f76516c37..1131102d9 100644
--- a/.github/workflows/upload-release-package.yml
+++ b/.github/workflows/upload-release-package.yml
@@ -23,7 +23,7 @@ jobs:
with:
coverage: "none"
php-version: "${{ matrix.php }}"
- tools: pecl, composer:2.2
+ tools: pecl
extensions: pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, curl, imagick, pgsql, gd, tidy
ini-values: "date.timezone=Europe/Paris"
env:
diff --git a/.gitignore b/.gitignore
index 2504e972d..365d9ecef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,34 +1,27 @@
-# Cache, logs & sessions
+# Cache, log & sessions
/var/*
!/var/cache
/var/cache/*
!var/cache/.gitkeep
-!/var/logs
-/var/logs/*
-!var/logs/.gitkeep
+!/var/log
+/var/log/*
+!var/log/.gitkeep
!/var/sessions
/var/sessions/*
!var/sessions/.gitkeep
/bin/*
!/bin/console
-.php-cs-fixer.php
-.php-cs-fixer.cache
-.phpunit.result.cache
-phpunit.xml
# Parameters
/app/config/parameters.yml
-# Managed by Composer
-/vendor/
-
# Assets and user uploads
-web/uploads/
-/web/bundles/*
-!/web/bundles/.gitkeep
-/web/assets/images/*
-!web/assets/images/.gitkeep
-/web/wallassets/*.dev.js
+public/uploads/
+/public/bundles/*
+!/public/bundles/.gitkeep
+/public/assets/images/*
+!public/assets/images/.gitkeep
+/public/wallassets/*.dev.js
# Build
/app/build
@@ -47,9 +40,6 @@ data/db/wallabag*.sqlite
# assets stuff
node_modules/
bin
-app/Resources/build/
-!/src/Wallabag/CoreBundle/Resources/public
-/src/Wallabag/CoreBundle/Resources/public/*
# Test-generated files
admin-export.json
@@ -57,4 +47,24 @@ specialexport.json
/data/site-credentials-secret-key.txt
# Custom CSS file
-web/custom.css
+public/custom.css
+
+###> friendsofphp/php-cs-fixer ###
+/.php-cs-fixer.php
+/.php-cs-fixer.cache
+###< friendsofphp/php-cs-fixer ###
+
+###> symfony/phpunit-bridge ###
+.phpunit.result.cache
+/phpunit.xml
+###< symfony/phpunit-bridge ###
+
+###> symfony/framework-bundle ###
+/.env.local
+/.env.local.php
+/.env.*.local
+/config/secrets/prod/prod.decrypt.private.php
+/public/bundles/
+/var/
+/vendor/
+###< symfony/framework-bundle ###
diff --git a/GNUmakefile b/GNUmakefile
index 1fcf581aa..d4c8dc7a4 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -36,7 +36,7 @@ build: ## Run webpack
prepare: clean ## Prepare database for testsuite
ifdef DB
- cp app/config/tests/parameters_test.$(DB).yml app/config/parameters_test.yml
+ cp .env.test.$(DB) .env.test
endif
-php bin/console doctrine:database:drop --force --env=test
php bin/console doctrine:database:create --env=test
diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md
index 30dc85411..7c5739648 100644
--- a/RELEASE_PROCESS.md
+++ b/RELEASE_PROCESS.md
@@ -9,7 +9,7 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE` (li
#### Prepare the release
- Update these files with new information
- - `app/config/wallabag.yml` (`wallabag_core.version`)
+ - `config/wallabag.yaml` (`wallabag.version`)
- `CHANGELOG.md`
- Create a PR named "Prepare $LAST_WALLABAG_RELEASE release".
- Wait for test to be ok, merge it.
@@ -19,7 +19,7 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE` (li
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new) by targetting the `master` branch or any appropriate branch (for instance backports).
- Update [website](https://github.com/wallabag/website) to change MD5 sum and create the release blog post (based on the changelog).
- Update Dockerfile https://github.com/wallabag/docker (and create a new tag)
-- Put the next patch version suffixed with `-dev` in `app/config/wallabag.yml` (`wallabag_core.version`)
+- Put the next patch version suffixed with `-dev` in `config/wallabag.yaml` (`wallabag.version`)
- Drink a :beer:!
### Target PHP version
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
deleted file mode 100644
index 2e41c7606..000000000
--- a/app/config/config_dev.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-imports:
- - { resource: config.yml }
-
-framework:
- router:
- resource: "%kernel.project_dir%/app/config/routing_dev.yml"
- strict_requirements: true
- profiler:
- only_exceptions: false
-
- mailer:
- # see https://mailcatcher.me/
- dsn: smtp://127.0.0.1:1025
-
-web_profiler:
- toolbar: true
- intercept_redirects: false
-
-monolog:
- handlers:
- main:
- type: stream
- path: "%kernel.logs_dir%/%kernel.environment%.log"
- level: debug
- channels: ['!event']
- console:
- type: console
- bubble: false
- verbosity_levels:
- VERBOSITY_VERBOSE: INFO
- VERBOSITY_VERY_VERBOSE: DEBUG
- channels: ['!event', '!doctrine']
- console_very_verbose:
- type: console
- bubble: false
- verbosity_levels:
- VERBOSITY_VERBOSE: NOTICE
- VERBOSITY_VERY_VERBOSE: NOTICE
- VERBOSITY_DEBUG: DEBUG
- channels: [doctrine]
-
-# If you want to use cache for queries used in WallabagExtension
-# Uncomment the following lines
-#doctrine:
-# orm:
-# metadata_cache_driver: apcu
-# result_cache_driver: apcu
-# query_cache_driver: apcu
diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml
deleted file mode 100644
index 59d2e9e20..000000000
--- a/app/config/config_prod.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-imports:
- - { resource: config.yml }
-
-framework:
- assets:
- # json_manifest_path: '%kernel.project_dir%/web/bundles/wallabagcore/manifest.json'
-
-#doctrine:
-# orm:
-# metadata_cache_driver: apc
-# result_cache_driver: apc
-# query_cache_driver: apc
-
-monolog:
- handlers:
- main:
- type: fingers_crossed
- action_level: error
- handler: nested
- nested:
- type: stream
- path: "%kernel.logs_dir%/%kernel.environment%.log"
- level: debug
- console:
- type: console
-
-sentry:
- dsn: "%sentry_dsn%"
diff --git a/app/config/config_test.yml b/app/config/config_test.yml
deleted file mode 100644
index d738a49d6..000000000
--- a/app/config/config_test.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-imports:
- - { resource: config_dev.yml }
- - { resource: parameters_test.yml }
- - { resource: services_test.yml }
-
-framework:
- test: ~
- session:
- storage_id: session.storage.mock_file
- profiler:
- collect: false
- translator:
- enabled: false
- mailer:
- dsn: 'null://null'
-
-web_profiler:
- toolbar: false
- intercept_redirects: false
-
-doctrine:
- dbal:
- driver: "%test_database_driver%"
- host: "%test_database_host%"
- port: "%test_database_port%"
- dbname: "%test_database_name%"
- user: "%test_database_user%"
- password: "%test_database_password%"
- charset: "%test_database_charset%"
- path: "%env(TEST_DATABASE_PATH)%"
-
- orm:
- metadata_cache_driver:
- type: service
- id: filesystem_cache
- query_cache_driver:
- type: service
- id: filesystem_cache
diff --git a/app/config/parameters_addons.yml b/app/config/parameters_addons.yml
deleted file mode 100644
index 4948f3851..000000000
--- a/app/config/parameters_addons.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-parameters:
- addons_url:
- firefox: https://addons.mozilla.org/firefox/addon/wallabagger/
- chrome: https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj
- opera: https://addons.opera.com/en/extensions/details/wallabagger/?display=en
- f_droid: https://f-droid.org/app/fr.gaulupeau.apps.InThePoche
- google_play: https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche
- ios: https://itunes.apple.com/app/wallabag-2/id1170800946?mt=8
- windows: https://www.microsoft.com/store/apps/wallabag/9nblggh11646
diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml
deleted file mode 100644
index a57028de1..000000000
--- a/app/config/routing_dev.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-_wdt:
- resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
- prefix: /_wdt
-
-_profiler:
- resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
- prefix: /_profiler
-
-_errors:
- resource: '@TwigBundle/Resources/config/routing/errors.xml'
- prefix: /_error
-
-_main:
- resource: routing.yml
diff --git a/app/Resources/static/themes/_global/global.scss b/assets/themes/_global/global.scss
similarity index 100%
rename from app/Resources/static/themes/_global/global.scss
rename to assets/themes/_global/global.scss
diff --git a/app/Resources/static/themes/_global/img/bg-select.png b/assets/themes/_global/img/bg-select.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/bg-select.png
rename to assets/themes/_global/img/bg-select.png
diff --git a/app/Resources/static/themes/_global/img/icons/Diaspora-asterisk.svg b/assets/themes/_global/img/icons/Diaspora-asterisk.svg
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/Diaspora-asterisk.svg
rename to assets/themes/_global/img/icons/Diaspora-asterisk.svg
diff --git a/app/Resources/static/themes/_global/img/icons/diaspora-icon--black.png b/assets/themes/_global/img/icons/diaspora-icon--black.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/diaspora-icon--black.png
rename to assets/themes/_global/img/icons/diaspora-icon--black.png
diff --git a/app/Resources/static/themes/_global/img/icons/diaspora-icon--white.png b/assets/themes/_global/img/icons/diaspora-icon--white.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/diaspora-icon--white.png
rename to assets/themes/_global/img/icons/diaspora-icon--white.png
diff --git a/app/Resources/static/themes/_global/img/icons/scuttle.png b/assets/themes/_global/img/icons/scuttle.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/scuttle.png
rename to assets/themes/_global/img/icons/scuttle.png
diff --git a/app/Resources/static/themes/_global/img/icons/shaarli.png b/assets/themes/_global/img/icons/shaarli.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/shaarli.png
rename to assets/themes/_global/img/icons/shaarli.png
diff --git a/app/Resources/static/themes/_global/img/icons/unmark-icon--black.png b/assets/themes/_global/img/icons/unmark-icon--black.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/icons/unmark-icon--black.png
rename to assets/themes/_global/img/icons/unmark-icon--black.png
diff --git a/app/Resources/static/themes/_global/img/list.png b/assets/themes/_global/img/list.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/list.png
rename to assets/themes/_global/img/list.png
diff --git a/app/Resources/static/themes/_global/img/table.png b/assets/themes/_global/img/table.png
similarity index 100%
rename from app/Resources/static/themes/_global/img/table.png
rename to assets/themes/_global/img/table.png
diff --git a/app/Resources/static/themes/_global/index.js b/assets/themes/_global/index.js
similarity index 100%
rename from app/Resources/static/themes/_global/index.js
rename to assets/themes/_global/index.js
diff --git a/app/Resources/static/themes/_global/js/bookmarklet.js b/assets/themes/_global/js/bookmarklet.js
similarity index 100%
rename from app/Resources/static/themes/_global/js/bookmarklet.js
rename to assets/themes/_global/js/bookmarklet.js
diff --git a/app/Resources/static/themes/_global/js/highlight.js b/assets/themes/_global/js/highlight.js
similarity index 100%
rename from app/Resources/static/themes/_global/js/highlight.js
rename to assets/themes/_global/js/highlight.js
diff --git a/app/Resources/static/themes/_global/js/shortcuts/entry.js b/assets/themes/_global/js/shortcuts/entry.js
similarity index 100%
rename from app/Resources/static/themes/_global/js/shortcuts/entry.js
rename to assets/themes/_global/js/shortcuts/entry.js
diff --git a/app/Resources/static/themes/_global/js/shortcuts/main.js b/assets/themes/_global/js/shortcuts/main.js
similarity index 100%
rename from app/Resources/static/themes/_global/js/shortcuts/main.js
rename to assets/themes/_global/js/shortcuts/main.js
diff --git a/app/Resources/static/themes/_global/js/tools.js b/assets/themes/_global/js/tools.js
similarity index 100%
rename from app/Resources/static/themes/_global/js/tools.js
rename to assets/themes/_global/js/tools.js
diff --git a/app/Resources/static/themes/_global/share.js b/assets/themes/_global/share.js
similarity index 100%
rename from app/Resources/static/themes/_global/share.js
rename to assets/themes/_global/share.js
diff --git a/app/Resources/static/themes/_global/share.scss b/assets/themes/_global/share.scss
similarity index 100%
rename from app/Resources/static/themes/_global/share.scss
rename to assets/themes/_global/share.scss
diff --git a/app/Resources/static/themes/material/css/article.scss b/assets/themes/material/css/article.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/article.scss
rename to assets/themes/material/css/article.scss
diff --git a/app/Resources/static/themes/material/css/cards.scss b/assets/themes/material/css/cards.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/cards.scss
rename to assets/themes/material/css/cards.scss
diff --git a/app/Resources/static/themes/material/css/dark_theme.scss b/assets/themes/material/css/dark_theme.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/dark_theme.scss
rename to assets/themes/material/css/dark_theme.scss
diff --git a/app/Resources/static/themes/material/css/entries.scss b/assets/themes/material/css/entries.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/entries.scss
rename to assets/themes/material/css/entries.scss
diff --git a/app/Resources/static/themes/material/css/filters.scss b/assets/themes/material/css/filters.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/filters.scss
rename to assets/themes/material/css/filters.scss
diff --git a/app/Resources/static/themes/material/css/fonts.scss b/assets/themes/material/css/fonts.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/fonts.scss
rename to assets/themes/material/css/fonts.scss
diff --git a/app/Resources/static/themes/material/css/icons.scss b/assets/themes/material/css/icons.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/icons.scss
rename to assets/themes/material/css/icons.scss
diff --git a/app/Resources/static/themes/material/css/index.scss b/assets/themes/material/css/index.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/index.scss
rename to assets/themes/material/css/index.scss
diff --git a/app/Resources/static/themes/material/css/layout.scss b/assets/themes/material/css/layout.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/layout.scss
rename to assets/themes/material/css/layout.scss
diff --git a/app/Resources/static/themes/material/css/media_queries.scss b/assets/themes/material/css/media_queries.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/media_queries.scss
rename to assets/themes/material/css/media_queries.scss
diff --git a/app/Resources/static/themes/material/css/nav.scss b/assets/themes/material/css/nav.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/nav.scss
rename to assets/themes/material/css/nav.scss
diff --git a/app/Resources/static/themes/material/css/print.scss b/assets/themes/material/css/print.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/print.scss
rename to assets/themes/material/css/print.scss
diff --git a/app/Resources/static/themes/material/css/sidenav.scss b/assets/themes/material/css/sidenav.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/sidenav.scss
rename to assets/themes/material/css/sidenav.scss
diff --git a/app/Resources/static/themes/material/css/variables.scss b/assets/themes/material/css/variables.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/variables.scss
rename to assets/themes/material/css/variables.scss
diff --git a/app/Resources/static/themes/material/css/various.scss b/assets/themes/material/css/various.scss
similarity index 100%
rename from app/Resources/static/themes/material/css/various.scss
rename to assets/themes/material/css/various.scss
diff --git a/app/Resources/static/themes/material/index.js b/assets/themes/material/index.js
similarity index 100%
rename from app/Resources/static/themes/material/index.js
rename to assets/themes/material/index.js
diff --git a/app/Resources/static/themes/material/js/shortcuts/entry.js b/assets/themes/material/js/shortcuts/entry.js
similarity index 100%
rename from app/Resources/static/themes/material/js/shortcuts/entry.js
rename to assets/themes/material/js/shortcuts/entry.js
diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/assets/themes/material/js/shortcuts/main.js
similarity index 100%
rename from app/Resources/static/themes/material/js/shortcuts/main.js
rename to assets/themes/material/js/shortcuts/main.js
diff --git a/app/Resources/static/themes/material/js/tools.js b/assets/themes/material/js/tools.js
similarity index 100%
rename from app/Resources/static/themes/material/js/tools.js
rename to assets/themes/material/js/tools.js
diff --git a/bin/console b/bin/console
index 8cef40b2c..5de0e1c5b 100755
--- a/bin/console
+++ b/bin/console
@@ -1,27 +1,42 @@
#!/usr/bin/env php
getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev', true);
-$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption('--no-debug', true) && $env !== 'prod';
-
-if ($debug) {
- Debug::enable();
+if (!class_exists(Application::class)) {
+ throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
-$kernel = new AppKernel($env, $debug);
+$input = new ArgvInput();
+if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
+ putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
+}
+
+if ($input->hasParameterOption('--no-debug', true)) {
+ putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
+}
+
+require dirname(__DIR__).'/config/bootstrap.php';
+
+if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+
+ if (class_exists(Debug::class)) {
+ Debug::enable();
+ }
+}
+
+$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run($input);
diff --git a/composer.json b/composer.json
index 5f9ad3607..1052609bb 100644
--- a/composer.json
+++ b/composer.json
@@ -78,7 +78,6 @@
"guzzlehttp/guzzle": "^5.3.1",
"guzzlehttp/psr7": "^2.5",
"html2text/html2text": "^4.1",
- "incenteev/composer-parameter-handler": "^2.1",
"j0k3r/graby": "^2.0",
"javibravo/simpleue": "^2.0",
"jms/serializer": "^3.17",
@@ -118,11 +117,19 @@
"sensio/framework-extra-bundle": "^6.2",
"sentry/sentry-symfony": "4.9.2",
"stof/doctrine-extensions-bundle": "^1.2",
- "symfony/dom-crawler": "^4.0",
- "symfony/mailer": "^4.0",
- "symfony/monolog-bundle": "^3.1",
+ "symfony/asset": "4.4.*",
+ "symfony/config": "4.4.*",
+ "symfony/dom-crawler": "4.4.*",
+ "symfony/flex": "^1.19",
+ "symfony/form": "4.4.*",
+ "symfony/mailer": "4.4.*",
+ "symfony/monolog-bundle": "^3.8",
"symfony/proxy-manager-bridge": "^4.4",
- "symfony/symfony": "^4.0",
+ "symfony/security-bundle": "4.4.*",
+ "symfony/templating": "4.4.*",
+ "symfony/translation": "4.4.*",
+ "symfony/twig-bundle": "4.4.*",
+ "symfony/validator": "4.4.*",
"tecnickcom/tcpdf": "^6.3.0",
"twig/extra-bundle": "^3.4",
"twig/string-extra": "^3.4",
@@ -134,7 +141,7 @@
},
"require-dev": {
"dama/doctrine-test-bundle": "^7.1",
- "doctrine/doctrine-fixtures-bundle": "~3.0",
+ "doctrine/doctrine-fixtures-bundle": "^3.4",
"ergebnis/composer-normalize": "^2.28",
"friendsofphp/php-cs-fixer": "~3.4",
"friendsoftwig/twigcs": "^6.0",
@@ -145,8 +152,16 @@
"phpstan/phpstan-doctrine": "^1.3",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-symfony": "^1.2",
+ "symfony/browser-kit": "4.4.*",
+ "symfony/css-selector": "4.4.*",
+ "symfony/dotenv": "4.4.*",
"symfony/maker-bundle": "^1.18",
- "symfony/phpunit-bridge": "~6.0"
+ "symfony/phpunit-bridge": "~6.0",
+ "symfony/stopwatch": "4.4.*",
+ "symfony/web-profiler-bundle": "4.4.*"
+ },
+ "conflict": {
+ "symfony/symfony": "*"
},
"suggest": {
"ext-imagick": "To keep GIF animation when downloading image is enabled"
@@ -155,24 +170,18 @@
"prefer-stable": true,
"autoload": {
"psr-4": {
- "Wallabag\\": "src/Wallabag/"
- },
- "classmap": [
- "app/AppKernel.php",
- "app/AppCache.php"
- ]
+ "App\\": "src/"
+ }
},
"autoload-dev": {
"psr-4": {
- "Tests\\": "tests/"
- },
- "files": [
- "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
- ]
+ "App\\Tests\\": "tests/"
+ }
},
"config": {
"allow-plugins": {
"phpstan/extension-installer": true,
+ "symfony/flex": true,
"php-http/discovery": true,
"ergebnis/composer-normalize": true
},
@@ -183,22 +192,22 @@
"sort-packages": true
},
"extra": {
- "incenteev-parameters": {
- "file": "app/config/parameters.yml"
- },
- "public-dir": "web"
+ "symfony": {
+ "allow-contrib": true,
+ "docker": false,
+ "require": "4.4.*"
+ }
},
"scripts": {
"post-install-cmd": [
- "@post-cmd"
+ "@auto-scripts"
],
"post-update-cmd": [
- "@post-cmd"
+ "@auto-scripts"
],
- "post-cmd": [
- "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
- "bin/console cache:clear --no-warmup",
- "bin/console assets:install web --symlink --relative"
- ]
+ "auto-scripts": {
+ "cache:clear": "symfony-cmd",
+ "assets:install %PUBLIC_DIR%": "symfony-cmd"
+ }
}
}
diff --git a/composer.lock b/composer.lock
index cc78109df..6669cf10e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "1f7c20bf034c1595dacf792986d5d42a",
+ "content-hash": "694739d5d5425ad821c0337b2d015ac0",
"packages": [
{
"name": "babdev/pagerfanta-bundle",
@@ -2689,16 +2689,16 @@
},
{
"name": "gedmo/doctrine-extensions",
- "version": "v3.11.1",
+ "version": "v3.12.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine-extensions/DoctrineExtensions.git",
- "reference": "ae4bdf0d567e06b6bb1902a560ee78961b230953"
+ "reference": "eef4b4978118fdb4c0a03509325e807ad96e3bec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/ae4bdf0d567e06b6bb1902a560ee78961b230953",
- "reference": "ae4bdf0d567e06b6bb1902a560ee78961b230953",
+ "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/eef4b4978118fdb4c0a03509325e807ad96e3bec",
+ "reference": "eef4b4978118fdb4c0a03509325e807ad96e3bec",
"shasum": ""
},
"require": {
@@ -2714,7 +2714,6 @@
"symfony/deprecation-contracts": "^2.1 || ^3.0"
},
"conflict": {
- "doctrine/cache": "<1.11",
"doctrine/dbal": "<2.13.1 || ^3.0 <3.2",
"doctrine/mongodb-odm": "<2.3",
"doctrine/orm": "<2.10.2",
@@ -2726,25 +2725,25 @@
"doctrine/doctrine-bundle": "^2.3",
"doctrine/mongodb-odm": "^2.3",
"doctrine/orm": "^2.10.2",
- "friendsofphp/php-cs-fixer": "^3.4.0,<3.10",
+ "friendsofphp/php-cs-fixer": "^3.4.0 <3.10",
"nesbot/carbon": "^2.55",
- "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan": "^1.10.2",
"phpstan/phpstan-doctrine": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^8.5 || ^9.5",
+ "rector/rector": "^0.15.20",
"symfony/console": "^4.4 || ^5.3 || ^6.0",
"symfony/phpunit-bridge": "^6.0",
"symfony/yaml": "^4.4 || ^5.3 || ^6.0"
},
"suggest": {
"doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM",
- "doctrine/orm": "to use the extensions with the ORM",
- "symfony/cache": "to cache parsed annotations"
+ "doctrine/orm": "to use the extensions with the ORM"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.12-dev"
+ "dev-main": "3.13-dev"
}
},
"autoload": {
@@ -2792,10 +2791,28 @@
"support": {
"email": "gediminas.morkevicius@gmail.com",
"issues": "https://github.com/doctrine-extensions/DoctrineExtensions/issues",
- "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.11.1",
+ "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.12.0",
"wiki": "https://github.com/Atlantic18/DoctrineExtensions/tree/main/doc"
},
- "time": "2023-02-20T19:24:07+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/l3pp4rd",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/mbabker",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phansys",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/stof",
+ "type": "github"
+ }
+ ],
+ "time": "2023-07-08T20:38:42+00:00"
},
{
"name": "grandt/binstring",
@@ -4435,61 +4452,6 @@
},
"time": "2021-07-21T13:50:14+00:00"
},
- {
- "name": "incenteev/composer-parameter-handler",
- "version": "v2.1.5",
- "source": {
- "type": "git",
- "url": "https://github.com/Incenteev/ParameterHandler.git",
- "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/e1dd118763503f7fd766f907013e1d76d525fcc4",
- "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
- },
- "require-dev": {
- "composer/composer": "^1.0@dev",
- "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5 || ^6.0",
- "symfony/phpunit-bridge": "^3.4.47 || ^4.4.41 || ^5.4.8 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Incenteev\\ParameterHandler\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christophe Coevoet",
- "email": "stof@notk.org"
- }
- ],
- "description": "Composer script handling your ignored parameter file",
- "homepage": "https://github.com/Incenteev/ParameterHandler",
- "keywords": [
- "parameters management"
- ],
- "support": {
- "issues": "https://github.com/Incenteev/ParameterHandler/issues",
- "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.1.5"
- },
- "time": "2022-05-25T10:57:22+00:00"
- },
{
"name": "j0k3r/graby",
"version": "2.4.4",
@@ -7492,16 +7454,16 @@
},
{
"name": "phpseclib/phpseclib",
- "version": "3.0.20",
+ "version": "3.0.21",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67"
+ "reference": "4580645d3fc05c189024eb3b834c6c1e4f0f30a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67",
- "reference": "543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/4580645d3fc05c189024eb3b834c6c1e4f0f30a1",
+ "reference": "4580645d3fc05c189024eb3b834c6c1e4f0f30a1",
"shasum": ""
},
"require": {
@@ -7582,7 +7544,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
- "source": "https://github.com/phpseclib/phpseclib/tree/3.0.20"
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.21"
},
"funding": [
{
@@ -7598,7 +7560,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-13T06:30:34+00:00"
+ "time": "2023-07-09T15:24:48+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@@ -8165,58 +8127,6 @@
},
"time": "2023-04-04T09:50:52+00:00"
},
- {
- "name": "psr/link",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/link.git",
- "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
- "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Link\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for HTTP links",
- "keywords": [
- "http",
- "http-link",
- "link",
- "psr",
- "psr-13",
- "rest"
- ],
- "support": {
- "source": "https://github.com/php-fig/link/tree/master"
- },
- "time": "2016-10-28T16:06:13+00:00"
- },
{
"name": "psr/log",
"version": "1.1.4",
@@ -8883,16 +8793,16 @@
},
{
"name": "sentry/sentry",
- "version": "3.19.1",
+ "version": "3.20.1",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
- "reference": "dd1057fb37d4484ebb2d1bc9b05fa5969c078436"
+ "reference": "644ad9768c18139a80ac510090fad000d9ffd8a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/dd1057fb37d4484ebb2d1bc9b05fa5969c078436",
- "reference": "dd1057fb37d4484ebb2d1bc9b05fa5969c078436",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/644ad9768c18139a80ac510090fad000d9ffd8a4",
+ "reference": "644ad9768c18139a80ac510090fad000d9ffd8a4",
"shasum": ""
},
"require": {
@@ -8972,7 +8882,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
- "source": "https://github.com/getsentry/sentry-php/tree/3.19.1"
+ "source": "https://github.com/getsentry/sentry-php/tree/3.20.1"
},
"funding": [
{
@@ -8984,7 +8894,7 @@
"type": "custom"
}
],
- "time": "2023-05-25T06:19:09+00:00"
+ "time": "2023-06-26T11:01:40+00:00"
},
{
"name": "sentry/sentry-symfony",
@@ -9379,54 +9289,128 @@
"time": "2023-05-22T18:25:15+00:00"
},
{
- "name": "symfony/contracts",
- "version": "v1.1.13",
+ "name": "symfony/asset",
+ "version": "v4.4.46",
"source": {
"type": "git",
- "url": "https://github.com/symfony/contracts.git",
- "reference": "9e27f5c175ecbd6fff554d839ff4a432da797168"
+ "url": "https://github.com/symfony/asset.git",
+ "reference": "6ef0f9f352f90c469e8b363ebc038d81a7198873"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/contracts/zipball/9e27f5c175ecbd6fff554d839ff4a432da797168",
- "reference": "9e27f5c175ecbd6fff554d839ff4a432da797168",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/6ef0f9f352f90c469e8b363ebc038d81a7198873",
+ "reference": "6ef0f9f352f90c469e8b363ebc038d81a7198873",
"shasum": ""
},
"require": {
"php": ">=7.1.3",
- "psr/cache": "^1.0|^2.0|^3.0",
- "psr/container": "^1.0"
- },
- "replace": {
- "symfony/cache-contracts": "self.version",
- "symfony/event-dispatcher-contracts": "self.version",
- "symfony/http-client-contracts": "self.version",
- "symfony/service-contracts": "self.version",
- "symfony/translation-contracts": "self.version"
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "symfony/polyfill-intl-idn": "^1.10"
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/http-kernel": "^3.4|^4.0|^5.0"
},
"suggest": {
- "psr/event-dispatcher": "When using the EventDispatcher contracts",
- "symfony/cache-implementation": "",
- "symfony/event-dispatcher-implementation": "",
- "symfony/http-client-implementation": "",
- "symfony/service-implementation": "",
- "symfony/translation-implementation": ""
+ "symfony/http-foundation": ""
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.1-dev"
- }
- },
"autoload": {
"psr-4": {
- "Symfony\\Contracts\\": ""
+ "Symfony\\Component\\Asset\\": ""
},
"exclude-from-classmap": [
- "**/Tests/"
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/asset/tree/v4.4.46"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-08-30T22:05:24+00:00"
+ },
+ {
+ "name": "symfony/cache",
+ "version": "v4.4.48",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "3b98ed664887ad197b8ede3da2432787212eb915"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915",
+ "reference": "3b98ed664887ad197b8ede3da2432787212eb915",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/cache": "^1.0|^2.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.2|^5.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.7",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/http-kernel": "<4.4|>=5.0",
+ "symfony/var-dumper": "<4.4"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0",
+ "symfony/cache-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6|^2.0",
+ "doctrine/dbal": "^2.7|^3.0",
+ "predis/predis": "^1.1",
+ "psr/simple-cache": "^1.0|^2.0",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.1|^5.0",
+ "symfony/filesystem": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Cache\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -9443,18 +9427,14 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "A set of abstractions extracted out of the Symfony components",
+ "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
"homepage": "https://symfony.com",
"keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
+ "caching",
+ "psr6"
],
"support": {
- "source": "https://github.com/symfony/contracts/tree/v1.1.13"
+ "source": "https://github.com/symfony/cache/tree/v4.4.48"
},
"funding": [
{
@@ -9470,7 +9450,409 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2022-10-17T20:21:54+00:00"
+ },
+ {
+ "name": "symfony/cache-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0|^3.0"
+ },
+ "suggest": {
+ "symfony/cache-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Cache\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:53:40+00:00"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
+ "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/filesystem": "^3.4|^4.0|^5.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.22"
+ },
+ "conflict": {
+ "symfony/finder": "<3.4"
+ },
+ "require-dev": {
+ "symfony/event-dispatcher": "^3.4|^4.0|^5.0",
+ "symfony/finder": "^3.4|^4.0|^5.0",
+ "symfony/messenger": "^4.1|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/yaml": "To use the yaml reference dumper"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-20T09:59:04+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
+ "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "psr/log": ">=3",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/event-dispatcher": "<4.3|>=5",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<3.3"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^3.4|^4.0|^5.0",
+ "symfony/var-dumper": "^4.3|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-05T17:10:16+00:00"
+ },
+ {
+ "name": "symfony/debug",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/debug.git",
+ "reference": "1a692492190773c5310bc7877cb590c04c2f05be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be",
+ "reference": "1a692492190773c5310bc7877cb590c04c2f05be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/log": "^1|^2|^3"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<3.4"
+ },
+ "require-dev": {
+ "symfony/http-kernel": "^3.4|^4.0|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Debug\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/debug/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "abandoned": "symfony/error-handler",
+ "time": "2022-07-28T16:29:46+00:00"
+ },
+ {
+ "name": "symfony/dependency-injection",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9065fe97dbd38a897e95ea254eb5ddfe1310f734",
+ "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/container": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1.6|^2"
+ },
+ "conflict": {
+ "symfony/config": "<4.3|>=5.0",
+ "symfony/finder": "<3.4",
+ "symfony/proxy-manager-bridge": "<3.4",
+ "symfony/yaml": "<4.4.26"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0",
+ "symfony/service-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "symfony/config": "^4.3",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/yaml": "^4.4.26|^5.0"
+ },
+ "suggest": {
+ "symfony/config": "",
+ "symfony/expression-language": "For using expressions in service container configuration",
+ "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
+ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DependencyInjection\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows you to standardize and centralize the way objects are constructed in your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dependency-injection/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-16T16:18:09+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -9539,6 +9921,1646 @@
],
"time": "2022-01-02T09:53:40+00:00"
},
+ {
+ "name": "symfony/doctrine-bridge",
+ "version": "v4.4.48",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/doctrine-bridge.git",
+ "reference": "8dbbec53714eb512321380d582b45ff7e074a5d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/8dbbec53714eb512321380d582b45ff7e074a5d6",
+ "reference": "8dbbec53714eb512321380d582b45ff7e074a5d6",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/event-manager": "~1.0",
+ "doctrine/persistence": "^1.3|^2|^3",
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.7",
+ "doctrine/lexer": "<1.1",
+ "doctrine/orm": "<2.6.3",
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/form": "<4.4",
+ "symfony/http-kernel": "<4.3.7",
+ "symfony/messenger": "<4.3",
+ "symfony/proxy-manager-bridge": "<4.4.19",
+ "symfony/security-core": "<4.4",
+ "symfony/validator": "<4.4.2|<5.0.2,>=5.0"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.8",
+ "doctrine/annotations": "^1.10.4",
+ "doctrine/collections": "~1.0",
+ "doctrine/data-fixtures": "^1.1",
+ "doctrine/dbal": "^2.7|^3.0",
+ "doctrine/orm": "^2.6.3",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/form": "^4.4.41|^5.0.11",
+ "symfony/http-kernel": "^4.3.7",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/property-access": "^3.4|^4.0|^5.0",
+ "symfony/property-info": "^3.4|^4.0|^5.0",
+ "symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0",
+ "symfony/security-core": "^4.4|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^3.4|^4.0|^5.0",
+ "symfony/validator": "^4.4.2|^5.0.2",
+ "symfony/var-dumper": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "doctrine/data-fixtures": "",
+ "doctrine/dbal": "",
+ "doctrine/orm": "",
+ "symfony/form": "",
+ "symfony/property-info": "",
+ "symfony/validator": ""
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Doctrine\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Doctrine with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v4.4.48"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-14T11:24:01+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v4.4.45",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5",
+ "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "masterminds/html5": "<2.6"
+ },
+ "require-dev": {
+ "masterminds/html5": "^2.6",
+ "symfony/css-selector": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/css-selector": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-08-03T12:57:57+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "be731658121ef2d8be88f3a1ec938148a9237291"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291",
+ "reference": "be731658121ef2d8be88f3a1ec938148a9237291",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/log": "^1|^2|^3",
+ "symfony/debug": "^4.4.5",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "require-dev": {
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-28T16:29:46+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
+ "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/event-dispatcher-contracts": "^1.1",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<3.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "1.1"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/error-handler": "~3.4|~4.4",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-20T09:59:04+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v1.1.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e",
+ "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3"
+ },
+ "suggest": {
+ "psr/event-dispatcher": "",
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.1-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:41:36+00:00"
+ },
+ {
+ "name": "symfony/expression-language",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/expression-language.git",
+ "reference": "e4964c7636e19f6008660f450c09121c80c2a7b9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/e4964c7636e19f6008660f450c09121c80c2a7b9",
+ "reference": "e4964c7636e19f6008660f450c09121c80c2a7b9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/cache": "^3.4|^4.0|^5.0",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ExpressionLanguage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an engine that can compile and evaluate expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/expression-language/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-03T15:15:11+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v4.4.42",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5",
+ "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v4.4.42"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-05-20T08:49:14+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "66bd787edb5e42ff59d3523f623895af05043e4f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f",
+ "reference": "66bd787edb5e42ff59d3523f623895af05043e4f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-29T07:35:46+00:00"
+ },
+ {
+ "name": "symfony/flex",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/flex.git",
+ "reference": "49059a10127ac8270957e116a2251ae535d202ac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/flex/zipball/49059a10127ac8270957e116a2251ae535d202ac",
+ "reference": "49059a10127ac8270957e116a2251ae535d202ac",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "symfony/dotenv": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Symfony\\Flex\\Flex"
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Flex\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien.potencier@gmail.com"
+ }
+ ],
+ "description": "Composer plugin for Symfony",
+ "support": {
+ "issues": "https://github.com/symfony/flex/issues",
+ "source": "https://github.com/symfony/flex/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-26T16:25:26+00:00"
+ },
+ {
+ "name": "symfony/form",
+ "version": "v4.4.48",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/form.git",
+ "reference": "e1d137b13e0ec2cb5c5e38debca7a510c6f858c6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/form/zipball/e1d137b13e0ec2cb5c5e38debca7a510c6f858c6",
+ "reference": "e1d137b13e0ec2cb5c5e38debca7a510c6f858c6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/intl": "^4.4|^5.0",
+ "symfony/options-resolver": "~4.3|^5.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/property-access": "^3.4.40|^4.4.8|^5.0.8",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/console": "<4.3",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/doctrine-bridge": "<3.4",
+ "symfony/framework-bundle": "<3.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/intl": "<4.3",
+ "symfony/translation": "<4.2",
+ "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "~1.0",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/console": "^4.3|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/security-csrf": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.2|^5.0",
+ "symfony/validator": "^4.4.17|^5.1.9",
+ "symfony/var-dumper": "^4.3|^5.0"
+ },
+ "suggest": {
+ "symfony/security-csrf": "For protecting forms against CSRF attacks.",
+ "symfony/twig-bridge": "For templating with Twig.",
+ "symfony/validator": "For form validation."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Form\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows to easily create, process and reuse HTML forms",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/form/tree/v4.4.48"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-22T05:50:33+00:00"
+ },
+ {
+ "name": "symfony/framework-bundle",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/framework-bundle.git",
+ "reference": "d8cf2558249004a29b8e27b1f6eae52337ff471b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d8cf2558249004a29b8e27b1f6eae52337ff471b",
+ "reference": "d8cf2558249004a29b8e27b1f6eae52337ff471b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": ">=7.1.3",
+ "symfony/cache": "^4.4|^5.0",
+ "symfony/config": "^4.4.11|~5.0.11|^5.1.3",
+ "symfony/dependency-injection": "^4.4.38|^5.0.1",
+ "symfony/error-handler": "^4.4.1|^5.0.1",
+ "symfony/filesystem": "^3.4|^4.0|^5.0",
+ "symfony/finder": "^3.4|^4.0|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/routing": "^4.4.12|^5.1.4"
+ },
+ "conflict": {
+ "doctrine/persistence": "<1.3",
+ "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
+ "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/asset": "<3.4",
+ "symfony/browser-kit": "<4.3",
+ "symfony/console": "<4.4.21",
+ "symfony/dom-crawler": "<4.3",
+ "symfony/dotenv": "<4.3.6",
+ "symfony/form": "<4.3.5",
+ "symfony/http-client": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/mailer": "<4.4",
+ "symfony/messenger": "<4.4",
+ "symfony/mime": "<4.4",
+ "symfony/property-info": "<3.4",
+ "symfony/security-bundle": "<4.4",
+ "symfony/serializer": "<4.4",
+ "symfony/stopwatch": "<3.4",
+ "symfony/translation": "<4.4",
+ "symfony/twig-bridge": "<4.1.1",
+ "symfony/twig-bundle": "<4.4",
+ "symfony/validator": "<4.4",
+ "symfony/web-profiler-bundle": "<4.4",
+ "symfony/workflow": "<4.3.6"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "doctrine/cache": "^1.0|^2.0",
+ "doctrine/persistence": "^1.3|^2|^3",
+ "paragonie/sodium_compat": "^1.8",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/asset": "^3.4|^4.0|^5.0",
+ "symfony/browser-kit": "^4.3|^5.0",
+ "symfony/console": "^4.4.42|^5.4.9",
+ "symfony/css-selector": "^3.4|^4.0|^5.0",
+ "symfony/dom-crawler": "^4.4.30|^5.3.7",
+ "symfony/dotenv": "^4.3.6|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/form": "^4.3.5|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/mailer": "^4.4|^5.0",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/process": "^3.4|^4.0|^5.0",
+ "symfony/property-info": "^3.4|^4.0|^5.0",
+ "symfony/security-core": "^3.4|^4.4|^5.2",
+ "symfony/security-csrf": "^3.4|^4.0|^5.0",
+ "symfony/security-http": "^3.4|^4.0|^5.0",
+ "symfony/serializer": "^4.4|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0",
+ "symfony/templating": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/twig-bundle": "^4.4|^5.0",
+ "symfony/validator": "^4.4|^5.0",
+ "symfony/web-link": "^4.4|^5.0",
+ "symfony/workflow": "^4.3.6|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "suggest": {
+ "ext-apcu": "For best performance of the system caches",
+ "symfony/console": "For using the console commands",
+ "symfony/form": "For using forms",
+ "symfony/property-info": "For using the property_info service",
+ "symfony/serializer": "For using the serializer service",
+ "symfony/validator": "For using validation",
+ "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
+ "symfony/yaml": "For using the debug:config and lint:yaml commands"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\FrameworkBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/framework-bundle/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-05T15:42:31+00:00"
+ },
+ {
+ "name": "symfony/http-client",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "0185497cd61440bdf68df7d81241b97a543e9c3f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/0185497cd61440bdf68df7d81241b97a543e9c3f",
+ "reference": "0185497cd61440bdf68df7d81241b97a543e9c3f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/log": "^1|^2|^3",
+ "symfony/http-client-contracts": "^1.1.10|^2",
+ "symfony/polyfill-php73": "^1.11",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.0|^2"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "1.1|2.0"
+ },
+ "require-dev": {
+ "guzzlehttp/promises": "^1.4",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^4.3|^5.0",
+ "symfony/http-kernel": "^4.4.13",
+ "symfony/process": "^4.2|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-03T19:03:45+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/http-client-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-12T15:48:08+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "191413c7b832c015bb38eae963f2e57498c3c173"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/191413c7b832c015bb38eae963f2e57498c3c173",
+ "reference": "191413c7b832c015bb38eae963f2e57498c3c173",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/mime": "^4.3|^5.0",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-04T16:17:57+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v4.4.50",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "aa6df6c045f034aa13ac752fc234bb300b9488ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aa6df6c045f034aa13ac752fc234bb300b9488ef",
+ "reference": "aa6df6c045f034aa13ac752fc234bb300b9488ef",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "psr/log": "^1|^2",
+ "symfony/error-handler": "^4.4",
+ "symfony/event-dispatcher": "^4.4",
+ "symfony/http-client-contracts": "^1.1|^2",
+ "symfony/http-foundation": "^4.4.30|^5.3.7",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.3",
+ "symfony/config": "<3.4",
+ "symfony/console": ">=5",
+ "symfony/dependency-injection": "<4.3",
+ "symfony/translation": "<4.2",
+ "twig/twig": "<1.43|<2.13,>=2"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^4.3|^5.0",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/console": "^3.4|^4.0",
+ "symfony/css-selector": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^4.3|^5.0",
+ "symfony/dom-crawler": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/finder": "^3.4|^4.0|^5.0",
+ "symfony/process": "^3.4|^4.0|^5.0",
+ "symfony/routing": "^3.4|^4.0|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0",
+ "symfony/templating": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.2|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v4.4.50"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-01T08:01:31+00:00"
+ },
+ {
+ "name": "symfony/inflector",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/inflector.git",
+ "reference": "66185be61805b1e44a5c4000929e700228d426cc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc",
+ "reference": "66185be61805b1e44a5c4000929e700228d426cc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Inflector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts words between their singular and plural forms (English only)",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string",
+ "symfony",
+ "words"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/inflector/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "abandoned": "EnglishInflector from the String component",
+ "time": "2022-07-20T09:59:04+00:00"
+ },
+ {
+ "name": "symfony/intl",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/intl.git",
+ "reference": "f1d0f9d91ab482d33423b788999fbb43c34a9a59"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/f1d0f9d91ab482d33423b788999fbb43c34a9a59",
+ "reference": "f1d0f9d91ab482d33423b788999fbb43c34a9a59",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "ext-intl": "to use the component with locales other than \"en\""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Intl\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Eriksen Costa",
+ "email": "eriksen.costa@infranology.com.br"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "i18n",
+ "icu",
+ "internationalization",
+ "intl",
+ "l10n",
+ "localization"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/intl/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-03T15:15:11+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "554b8c0dc2db9d74e760fd6b726f527364f03302"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/554b8c0dc2db9d74e760fd6b726f527364f03302",
+ "reference": "554b8c0dc2db9d74e760fd6b726f527364f03302",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3",
+ "php": ">=7.1.3",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/mime": "^4.4.21|^5.2.6",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<4.4",
+ "symfony/sendgrid-mailer": "<4.4"
+ },
+ "require-dev": {
+ "symfony/amazon-mailer": "^4.4|^5.0",
+ "symfony/google-mailer": "^4.4|^5.0",
+ "symfony/http-client-contracts": "^1.1|^2",
+ "symfony/mailchimp-mailer": "^4.4|^5.0",
+ "symfony/mailgun-mailer": "^4.4|^5.0",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/postmark-mailer": "^4.4|^5.0",
+ "symfony/sendgrid-mailer": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-04T06:30:35+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d",
+ "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "symfony/mailer": "<4.4"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1",
+ "symfony/dependency-injection": "^3.4|^4.1|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-03T15:15:11+00:00"
+ },
+ {
+ "name": "symfony/monolog-bridge",
+ "version": "v4.4.43",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/monolog-bridge.git",
+ "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471",
+ "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471",
+ "shasum": ""
+ },
+ "require": {
+ "monolog/monolog": "^1.25.1",
+ "php": ">=7.1.3",
+ "symfony/http-kernel": "^4.3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "symfony/console": "<3.4",
+ "symfony/http-foundation": "<3.4"
+ },
+ "require-dev": {
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/security-core": "^3.4|^4.0|^5.0",
+ "symfony/var-dumper": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.",
+ "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.",
+ "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler."
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Monolog\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Monolog with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-16T12:12:11+00:00"
+ },
{
"name": "symfony/monolog-bundle",
"version": "v3.8.0",
@@ -9620,6 +11642,73 @@
],
"time": "2022-05-10T14:24:36+00:00"
},
+ {
+ "name": "symfony/options-resolver",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "583f56160f716dd435f1cd721fd14b548f4bb510"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/583f56160f716dd435f1cd721fd14b548f4bb510",
+ "reference": "583f56160f716dd435f1cd721fd14b548f4bb510",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-20T09:59:04+00:00"
+ },
{
"name": "symfony/polyfill-ctype",
"version": "v1.27.0",
@@ -10441,6 +12530,242 @@
],
"time": "2022-11-03T14:55:06+00:00"
},
+ {
+ "name": "symfony/property-access",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "d49682f6f0764df725c95128213a38f7e0a9f358"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358",
+ "reference": "d49682f6f0764df725c95128213a38f7e0a9f358",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/inflector": "^3.4|^4.0|^5.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/cache": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "psr/cache-implementation": "To cache access methods."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property path",
+ "reflection"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-access/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-27T13:16:42+00:00"
+ },
+ {
+ "name": "symfony/property-info",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-info.git",
+ "reference": "971cf46634e44d93d2174cf004555b69b19c9487"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/971cf46634e44d93d2174cf004555b69b19c9487",
+ "reference": "971cf46634e44d93d2174cf004555b69b19c9487",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/inflector": "^3.4|^4.0|^5.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
+ "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
+ "symfony/dependency-injection": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/cache": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/serializer": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "phpdocumentor/reflection-docblock": "To use the PHPDoc",
+ "psr/cache-implementation": "To cache results",
+ "symfony/doctrine-bridge": "To use Doctrine metadata",
+ "symfony/serializer": "To use Serializer metadata"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kévin Dunglas",
+ "email": "dunglas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts information about PHP class' properties using metadata of popular sources",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "doctrine",
+ "phpdoc",
+ "property",
+ "symfony",
+ "type",
+ "validator"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-info/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-15T11:00:03+00:00"
+ },
+ {
+ "name": "symfony/proxy-manager-bridge",
+ "version": "v4.4.39",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/proxy-manager-bridge.git",
+ "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/66c4de1f6fc16371c06762d6b7fafab2308a15a1",
+ "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1",
+ "shasum": ""
+ },
+ "require": {
+ "friendsofphp/proxy-manager-lts": "^1.0.2",
+ "php": ">=7.1.3",
+ "symfony/dependency-injection": "^4.0|^5.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/config": "^3.4|^4.0|^5.0"
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\ProxyManager\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for ProxyManager with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/proxy-manager-bridge/tree/v4.4.39"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-25T10:38:15+00:00"
+ },
{
"name": "symfony/psr-http-message-bridge",
"version": "v2.1.4",
@@ -10529,6 +12854,737 @@
],
"time": "2022-11-28T22:46:34+00:00"
},
+ {
+ "name": "symfony/routing",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
+ "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/config": "<4.2",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/yaml": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation loader",
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-20T09:59:04+00:00"
+ },
+ {
+ "name": "symfony/security-bundle",
+ "version": "v4.4.50",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-bundle.git",
+ "reference": "076fd2088ada33d760758d98ff07ddedbf567946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/076fd2088ada33d760758d98ff07ddedbf567946",
+ "reference": "076fd2088ada33d760758d98ff07ddedbf567946",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": ">=7.1.3",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/security-core": "^4.4",
+ "symfony/security-csrf": "^4.2|^5.0",
+ "symfony/security-guard": "^4.2|^5.0",
+ "symfony/security-http": "^4.4.50"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.2",
+ "symfony/console": "<3.4",
+ "symfony/framework-bundle": "<4.4",
+ "symfony/ldap": "<4.4",
+ "symfony/twig-bundle": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "symfony/asset": "^3.4|^4.0|^5.0",
+ "symfony/browser-kit": "^4.2|^5.0",
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/css-selector": "^3.4|^4.0|^5.0",
+ "symfony/dom-crawler": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/form": "^3.4|^4.0|^5.0",
+ "symfony/framework-bundle": "^4.4|^5.0",
+ "symfony/process": "^3.4|^4.0|^5.0",
+ "symfony/serializer": "^4.4|^5.0",
+ "symfony/translation": "^3.4|^4.0|^5.0",
+ "symfony/twig-bridge": "^3.4|^4.0|^5.0",
+ "symfony/twig-bundle": "^4.4|^5.0",
+ "symfony/validator": "^3.4|^4.0|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\SecurityBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-bundle/tree/v4.4.50"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-24T10:39:54+00:00"
+ },
+ {
+ "name": "symfony/security-core",
+ "version": "v4.4.48",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-core.git",
+ "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914",
+ "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/event-dispatcher-contracts": "^1.1|^2",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1.6|^2"
+ },
+ "conflict": {
+ "symfony/event-dispatcher": "<4.3|>=5",
+ "symfony/ldap": "<4.4",
+ "symfony/security-guard": "<4.3"
+ },
+ "require-dev": {
+ "psr/container": "^1.0|^2.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/ldap": "^4.4|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/validator": "^3.4.31|^4.3.4|^5.0"
+ },
+ "suggest": {
+ "psr/container-implementation": "To instantiate the Security class",
+ "symfony/event-dispatcher": "",
+ "symfony/expression-language": "For using the expression voter",
+ "symfony/http-foundation": "",
+ "symfony/ldap": "For using LDAP integration",
+ "symfony/validator": "For using the user password constraint"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Core\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Core Library",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-core/tree/v4.4.48"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-22T05:50:33+00:00"
+ },
+ {
+ "name": "symfony/security-csrf",
+ "version": "v4.4.37",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-csrf.git",
+ "reference": "45c956ef58135091f53732646a0acd28034f02c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0",
+ "reference": "45c956ef58135091f53732646a0acd28034f02c0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/security-core": "^3.4|^4.0|^5.0"
+ },
+ "conflict": {
+ "symfony/http-foundation": "<3.4"
+ },
+ "require-dev": {
+ "symfony/http-foundation": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/http-foundation": "For using the class SessionTokenStorage."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Csrf\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - CSRF Library",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-csrf/tree/v4.4.37"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:41:36+00:00"
+ },
+ {
+ "name": "symfony/security-guard",
+ "version": "v4.4.46",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-guard.git",
+ "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd",
+ "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/security-core": "^3.4.22|^4.2.3|^5.0",
+ "symfony/security-http": "^4.4.1"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Guard\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Guard",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-guard/tree/v4.4.46"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-09-23T06:06:49+00:00"
+ },
+ {
+ "name": "symfony/security-http",
+ "version": "v4.4.50",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-http.git",
+ "reference": "7fa4a0cac16f02cb534a6e9adcdb17385f94004f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/7fa4a0cac16f02cb534a6e9adcdb17385f94004f",
+ "reference": "7fa4a0cac16f02cb534a6e9adcdb17385f94004f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7",
+ "symfony/http-kernel": "^4.4",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/property-access": "^3.4|^4.0|^5.0",
+ "symfony/security-core": "^4.4.8"
+ },
+ "conflict": {
+ "symfony/event-dispatcher": ">=5",
+ "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/routing": "^3.4|^4.0|^5.0",
+ "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0"
+ },
+ "suggest": {
+ "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
+ "symfony/security-csrf": "For using tokens to protect authentication/logout attempts"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Http\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - HTTP Integration",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-http/tree/v4.4.50"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-24T10:39:54+00:00"
+ },
+ {
+ "name": "symfony/serializer",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/serializer.git",
+ "reference": "6e01d63c55657930a6de03d6e36aae50af98888d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/6e01d63c55657930a6de03d6e36aae50af98888d",
+ "reference": "6e01d63c55657930a6de03d6e36aae50af98888d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
+ "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/property-access": "<3.4",
+ "symfony/property-info": "<3.4",
+ "symfony/yaml": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
+ "symfony/cache": "^3.4|^4.0|^5.0",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/http-foundation": "^3.4|^4.0|^5.0",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/property-access": "^4.4.36|^5.3.13",
+ "symfony/property-info": "^3.4.13|~4.0|^5.0",
+ "symfony/validator": "^3.4|^4.0|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation mapping.",
+ "psr/cache-implementation": "For using the metadata cache.",
+ "symfony/config": "For using the XML mapping loader.",
+ "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.",
+ "symfony/property-access": "For using the ObjectNormalizer.",
+ "symfony/property-info": "To deserialize relations.",
+ "symfony/yaml": "For using the default YAML mapping loader."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Serializer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/serializer/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-09-19T08:38:33+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.1",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-05-30T19:17:29+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v4.4.46",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "757660703fbd139eea0001b759c6c3bf5bc3ea52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/757660703fbd139eea0001b759c6c3bf5bc3ea52",
+ "reference": "757660703fbd139eea0001b759c6c3bf5bc3ea52",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/service-contracts": "^1.0|^2"
+ },
+ "require-dev": {
+ "symfony/polyfill-php72": "~1.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v4.4.46"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-09-28T12:53:24+00:00"
+ },
{
"name": "symfony/string",
"version": "v5.4.22",
@@ -10616,171 +13672,36 @@
"time": "2023-03-14T06:11:53+00:00"
},
{
- "name": "symfony/symfony",
- "version": "v4.4.50",
+ "name": "symfony/templating",
+ "version": "v4.4.44",
"source": {
"type": "git",
- "url": "https://github.com/symfony/symfony.git",
- "reference": "6bc1c2e2506327daa9a2359ec45f7098ca947728"
+ "url": "https://github.com/symfony/templating.git",
+ "reference": "2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/symfony/zipball/6bc1c2e2506327daa9a2359ec45f7098ca947728",
- "reference": "6bc1c2e2506327daa9a2359ec45f7098ca947728",
+ "url": "https://api.github.com/repos/symfony/templating/zipball/2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9",
+ "reference": "2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9",
"shasum": ""
},
"require": {
- "doctrine/event-manager": "~1.0",
- "doctrine/persistence": "^1.3|^2|^3",
- "ext-xml": "*",
- "friendsofphp/proxy-manager-lts": "^1.0.2",
"php": ">=7.1.3",
- "psr/cache": "^1.0|^2.0",
- "psr/container": "^1.0",
- "psr/link": "^1.0",
- "psr/log": "^1|^2",
- "symfony/contracts": "^1.1.8",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-icu": "~1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php72": "~1.5",
- "symfony/polyfill-php73": "^1.11",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22",
- "twig/twig": "^1.43|^2.13|^3.0.4"
- },
- "conflict": {
- "doctrine/dbal": "<2.7",
- "egulias/email-validator": "~3.0.0",
- "masterminds/html5": "<2.6",
- "monolog/monolog": ">=2",
- "ocramius/proxy-manager": "<2.1",
- "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
- "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
- "phpunit/phpunit": "<5.4.3"
- },
- "provide": {
- "php-http/async-client-implementation": "*",
- "php-http/client-implementation": "*",
- "psr/cache-implementation": "1.0|2.0",
- "psr/container-implementation": "1.0",
- "psr/event-dispatcher-implementation": "1.0",
- "psr/http-client-implementation": "1.0",
- "psr/link-implementation": "1.0",
- "psr/log-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0",
- "symfony/event-dispatcher-implementation": "1.1",
- "symfony/http-client-implementation": "1.1|2.0",
- "symfony/service-implementation": "1.0|2.0",
- "symfony/translation-implementation": "1.0|2.0"
- },
- "replace": {
- "symfony/amazon-mailer": "self.version",
- "symfony/asset": "self.version",
- "symfony/browser-kit": "self.version",
- "symfony/cache": "self.version",
- "symfony/config": "self.version",
- "symfony/console": "self.version",
- "symfony/css-selector": "self.version",
- "symfony/debug": "self.version",
- "symfony/debug-bundle": "self.version",
- "symfony/dependency-injection": "self.version",
- "symfony/doctrine-bridge": "self.version",
- "symfony/dom-crawler": "self.version",
- "symfony/dotenv": "self.version",
- "symfony/error-handler": "self.version",
- "symfony/event-dispatcher": "self.version",
- "symfony/expression-language": "self.version",
- "symfony/filesystem": "self.version",
- "symfony/finder": "self.version",
- "symfony/form": "self.version",
- "symfony/framework-bundle": "self.version",
- "symfony/google-mailer": "self.version",
- "symfony/http-client": "self.version",
- "symfony/http-foundation": "self.version",
- "symfony/http-kernel": "self.version",
- "symfony/inflector": "self.version",
- "symfony/intl": "self.version",
- "symfony/ldap": "self.version",
- "symfony/lock": "self.version",
- "symfony/mailchimp-mailer": "self.version",
- "symfony/mailer": "self.version",
- "symfony/mailgun-mailer": "self.version",
- "symfony/messenger": "self.version",
- "symfony/mime": "self.version",
- "symfony/monolog-bridge": "self.version",
- "symfony/options-resolver": "self.version",
- "symfony/postmark-mailer": "self.version",
- "symfony/process": "self.version",
- "symfony/property-access": "self.version",
- "symfony/property-info": "self.version",
- "symfony/proxy-manager-bridge": "self.version",
- "symfony/routing": "self.version",
- "symfony/security": "self.version",
- "symfony/security-bundle": "self.version",
- "symfony/security-core": "self.version",
- "symfony/security-csrf": "self.version",
- "symfony/security-guard": "self.version",
- "symfony/security-http": "self.version",
- "symfony/sendgrid-mailer": "self.version",
- "symfony/serializer": "self.version",
- "symfony/stopwatch": "self.version",
- "symfony/templating": "self.version",
- "symfony/translation": "self.version",
- "symfony/twig-bridge": "self.version",
- "symfony/twig-bundle": "self.version",
- "symfony/validator": "self.version",
- "symfony/var-dumper": "self.version",
- "symfony/var-exporter": "self.version",
- "symfony/web-link": "self.version",
- "symfony/web-profiler-bundle": "self.version",
- "symfony/web-server-bundle": "self.version",
- "symfony/workflow": "self.version",
- "symfony/yaml": "self.version"
+ "symfony/polyfill-ctype": "~1.8"
},
"require-dev": {
- "cache/integration-tests": "dev-master",
- "composer/package-versions-deprecated": "^1.8",
- "doctrine/annotations": "^1.10.4",
- "doctrine/cache": "^1.6|^2.0",
- "doctrine/collections": "~1.0",
- "doctrine/data-fixtures": "^1.1",
- "doctrine/dbal": "^2.7|^3.0",
- "doctrine/orm": "^2.6.3",
- "egulias/email-validator": "^2.1.10|^3.1",
- "guzzlehttp/promises": "^1.4",
- "masterminds/html5": "^2.6",
- "monolog/monolog": "^1.25.1",
- "nyholm/psr7": "^1.0",
- "paragonie/sodium_compat": "^1.8",
- "php-http/httplug": "^1.0|^2.0",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "predis/predis": "~1.1",
- "psr/http-client": "^1.0",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/phpunit-bridge": "^5.2",
- "symfony/security-acl": "~2.8|~3.0",
- "twig/cssinliner-extra": "^2.12|^3",
- "twig/inky-extra": "^2.12|^3",
- "twig/markdown-extra": "^2.12|^3"
+ "psr/log": "^1|^2|^3"
+ },
+ "suggest": {
+ "psr/log-implementation": "For using debug logging in loaders"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Bundle\\": "src/Symfony/Bundle/",
- "Symfony\\Component\\": "src/Symfony/Component/",
- "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
- "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
- "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
- "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/"
+ "Symfony\\Component\\Templating\\": ""
},
- "classmap": [
- "src/Symfony/Component/Intl/Resources/stubs"
- ],
"exclude-from-classmap": [
- "**/Tests/"
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -10797,14 +13718,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "The Symfony PHP framework",
+ "description": "Provides all the tools needed to build any kind of template system",
"homepage": "https://symfony.com",
- "keywords": [
- "framework"
- ],
"support": {
- "issues": "https://github.com/symfony/symfony/issues",
- "source": "https://github.com/symfony/symfony/tree/v4.4.50"
+ "source": "https://github.com/symfony/templating/tree/v4.4.44"
},
"funding": [
{
@@ -10820,7 +13737,718 @@
"type": "tidelift"
}
],
- "time": "2023-02-01T08:01:44+00:00"
+ "time": "2022-06-27T13:16:42+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94",
+ "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^1.1.6|^2"
+ },
+ "conflict": {
+ "symfony/config": "<3.4",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/yaml": "<3.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/finder": "~2.8|~3.0|~4.0|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/intl": "^3.4|^4.0|^5.0",
+ "symfony/service-contracts": "^1.1.2|^2",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-03T15:15:11+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/translation-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-27T16:58:25+00:00"
+ },
+ {
+ "name": "symfony/twig-bridge",
+ "version": "v4.4.49",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/twig-bridge.git",
+ "reference": "d6b0fbfd5e2fab79c0c7b8dfe579e47ee0999113"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d6b0fbfd5e2fab79c0c7b8dfe579e47ee0999113",
+ "reference": "d6b0fbfd5e2fab79c0c7b8dfe579e47ee0999113",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "conflict": {
+ "symfony/console": "<3.4",
+ "symfony/form": "<4.4",
+ "symfony/http-foundation": "<4.3",
+ "symfony/translation": "<4.2",
+ "symfony/workflow": "<4.3"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3",
+ "symfony/asset": "^3.4|^4.0|^5.0",
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/finder": "^3.4|^4.0|^5.0",
+ "symfony/form": "^4.4.17",
+ "symfony/http-foundation": "^4.3|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/intl": "^4.4|^5.0",
+ "symfony/mime": "^4.3|^5.0",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/routing": "^3.4|^4.0|^5.0",
+ "symfony/security-acl": "^2.8|^3.0",
+ "symfony/security-core": "^3.0|^4.0|^5.0",
+ "symfony/security-csrf": "^3.4|^4.0|^5.0",
+ "symfony/security-http": "^3.4|^4.0|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0",
+ "symfony/templating": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.2.1|^5.0",
+ "symfony/web-link": "^4.4|^5.0",
+ "symfony/workflow": "^4.3|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0",
+ "twig/cssinliner-extra": "^2.12|^3",
+ "twig/inky-extra": "^2.12|^3",
+ "twig/markdown-extra": "^2.12|^3"
+ },
+ "suggest": {
+ "symfony/asset": "For using the AssetExtension",
+ "symfony/expression-language": "For using the ExpressionExtension",
+ "symfony/finder": "",
+ "symfony/form": "For using the FormExtension",
+ "symfony/http-kernel": "For using the HttpKernelExtension",
+ "symfony/routing": "For using the RoutingExtension",
+ "symfony/security-core": "For using the SecurityExtension",
+ "symfony/security-csrf": "For using the CsrfExtension",
+ "symfony/security-http": "For using the LogoutUrlExtension",
+ "symfony/stopwatch": "For using the StopwatchExtension",
+ "symfony/templating": "For using the TwigEngine",
+ "symfony/translation": "For using the TranslationExtension",
+ "symfony/var-dumper": "For using the DumpExtension",
+ "symfony/web-link": "For using the WebLinkExtension",
+ "symfony/yaml": "For using the YamlExtension"
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Twig\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Twig with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/twig-bridge/tree/v4.4.49"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-03T09:41:56+00:00"
+ },
+ {
+ "name": "symfony/twig-bundle",
+ "version": "v4.4.41",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/twig-bundle.git",
+ "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/164c1edc69f2c7ee337323efc78a8a8a263f45ff",
+ "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/http-foundation": "^4.3|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/twig-bridge": "^4.4|^5.0",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.1",
+ "symfony/framework-bundle": "<4.4",
+ "symfony/translation": "<4.2"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "doctrine/cache": "^1.0|^2.0",
+ "symfony/asset": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^4.2.5|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/finder": "^3.4|^4.0|^5.0",
+ "symfony/form": "^3.4|^4.0|^5.0",
+ "symfony/framework-bundle": "^4.4|^5.0",
+ "symfony/routing": "^3.4|^4.0|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0",
+ "symfony/templating": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.2|^5.0",
+ "symfony/web-link": "^3.4|^4.0|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\TwigBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration of Twig into the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/twig-bundle/tree/v4.4.41"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-12T15:19:55+00:00"
+ },
+ {
+ "name": "symfony/validator",
+ "version": "v4.4.48",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "54781a4c41efbd283b779110bf8ae7f263737775"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/54781a4c41efbd283b779110bf8ae7f263737775",
+ "reference": "54781a4c41efbd283b779110bf8ae7f263737775",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "doctrine/lexer": "<1.1",
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/intl": "<4.3",
+ "symfony/translation": ">=5.0",
+ "symfony/yaml": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "doctrine/cache": "^1.0|^2.0",
+ "egulias/email-validator": "^2.1.10|^3",
+ "symfony/cache": "^3.4|^4.0|^5.0",
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0",
+ "symfony/http-client": "^4.3|^5.0",
+ "symfony/http-foundation": "^4.1|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/intl": "^4.3|^5.0",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/property-access": "^3.4|^4.0|^5.0",
+ "symfony/property-info": "^3.4|^4.0|^5.0",
+ "symfony/translation": "^4.2",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
+ "doctrine/cache": "For using the default cached annotation reader.",
+ "egulias/email-validator": "Strict (RFC compliant) email validation",
+ "psr/cache-implementation": "For using the mapping cache.",
+ "symfony/config": "",
+ "symfony/expression-language": "For using the Expression validator",
+ "symfony/http-foundation": "",
+ "symfony/intl": "",
+ "symfony/property-access": "For accessing properties within comparison constraints",
+ "symfony/property-info": "To automatically add NotNull and Type constraints",
+ "symfony/translation": "For translating validation errors.",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Validator\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to validate values",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/validator/tree/v4.4.48"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-25T13:54:11+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "1069c7a3fca74578022fab6f81643248d02f8e63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63",
+ "reference": "1069c7a3fca74578022fab6f81643248d02f8e63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php72": "~1.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/console": "<3.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-03T15:15:11+00:00"
+ },
+ {
+ "name": "symfony/var-exporter",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/be74908a6942fdd331554b3cec27ff41b45ccad4",
+ "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-21T19:46:44+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v4.4.45",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d",
+ "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<3.4"
+ },
+ "require-dev": {
+ "symfony/console": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v4.4.45"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-08-02T15:47:23+00:00"
},
{
"name": "tecnickcom/tcpdf",
@@ -12829,16 +16457,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.5",
+ "version": "v4.16.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e"
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e",
- "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
"shasum": ""
},
"require": {
@@ -12879,9 +16507,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
},
- "time": "2023-05-19T20:20:00+00:00"
+ "time": "2023-06-25T14:52:30+00:00"
},
{
"name": "php-cs-fixer/diff",
@@ -13297,6 +16925,213 @@
},
"time": "2023-05-16T12:46:15+00:00"
},
+ {
+ "name": "symfony/browser-kit",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb",
+ "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/dom-crawler": "^3.4|^4.0|^5.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^3.4|^4.0|^5.0",
+ "symfony/http-client": "^4.3|^5.0",
+ "symfony/mime": "^4.3|^5.0",
+ "symfony/process": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-25T12:56:14+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed",
+ "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-27T13:16:42+00:00"
+ },
+ {
+ "name": "symfony/dotenv",
+ "version": "v4.4.37",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dotenv.git",
+ "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
+ "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3"
+ },
+ "require-dev": {
+ "symfony/process": "^3.4.2|^4.0|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Dotenv\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Registers environment variables from a .env file",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/dotenv/tree/v4.4.37"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:41:36+00:00"
+ },
{
"name": "symfony/maker-bundle",
"version": "v1.39.1",
@@ -13465,6 +17300,147 @@
}
],
"time": "2023-06-23T13:25:16+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
+ "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v4.4.44"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-27T13:16:42+00:00"
+ },
+ {
+ "name": "symfony/web-profiler-bundle",
+ "version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/web-profiler-bundle.git",
+ "reference": "c173202d8ce82fde63ec0953eaffdf065018b8f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c173202d8ce82fde63ec0953eaffdf065018b8f4",
+ "reference": "c173202d8ce82fde63ec0953eaffdf065018b8f4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/framework-bundle": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/routing": "^4.3|^5.0",
+ "symfony/twig-bundle": "^4.2|^5.0",
+ "twig/twig": "^1.43|^2.13|^3.0.4"
+ },
+ "conflict": {
+ "symfony/form": "<4.3",
+ "symfony/messenger": "<4.2"
+ },
+ "require-dev": {
+ "symfony/browser-kit": "^4.3|^5.0",
+ "symfony/console": "^4.3|^5.0",
+ "symfony/css-selector": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/stopwatch": "^3.4|^4.0|^5.0"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\WebProfilerBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a development tool that gives detailed information about the execution of any request",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v4.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-09-29T14:10:52+00:00"
}
],
"aliases": [],
diff --git a/config/bootstrap.php b/config/bootstrap.php
new file mode 100644
index 000000000..d43714ff7
--- /dev/null
+++ b/config/bootstrap.php
@@ -0,0 +1,23 @@
+=1.2)
+if (is_array($env = @include dirname(__DIR__) . '/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
+ (new Dotenv(false))->populate($env);
+} else {
+ // load all the .env files
+ (new Dotenv(false))->loadEnv(dirname(__DIR__) . '/.env');
+}
+
+$_SERVER += $_ENV;
+$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
+$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
+$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], \FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/config/bundles.php b/config/bundles.php
new file mode 100644
index 000000000..f2b743913
--- /dev/null
+++ b/config/bundles.php
@@ -0,0 +1,34 @@
+ ['all' => true],
+ BD\GuzzleSiteAuthenticatorBundle\BDGuzzleSiteAuthenticatorBundle::class => ['all' => true],
+ Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
+ Craue\ConfigBundle\CraueConfigBundle::class => ['all' => true],
+ DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true],
+ Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
+ Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
+ FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true],
+ FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true],
+ FOS\RestBundle\FOSRestBundle::class => ['all' => true],
+ FOS\UserBundle\FOSUserBundle::class => ['all' => true],
+ KPhoen\RulerZBundle\KPhoenRulerZBundle::class => ['all' => true],
+ Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle::class => ['all' => true],
+ Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
+ Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
+ OldSound\RabbitMqBundle\OldSoundRabbitMqBundle::class => ['all' => true],
+ Http\HttplugBundle\HttplugBundle::class => ['all' => true],
+ Scheb\TwoFactorBundle\SchebTwoFactorBundle::class => ['all' => true],
+ Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
+ Sentry\SentryBundle\SentryBundle::class => ['prod' => true],
+ Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
+ Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
+ Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
+ Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
+ JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true],
+ Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle::class => ['all' => true],
+ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
+ Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
+ Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
+ Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
+];
diff --git a/config/packages/bazinga_hateoas.yaml b/config/packages/bazinga_hateoas.yaml
new file mode 100644
index 000000000..93a743d33
--- /dev/null
+++ b/config/packages/bazinga_hateoas.yaml
@@ -0,0 +1,4 @@
+# For full configuration see https://github.com/willdurand/BazingaHateoasBundle/blob/master/Resources/doc/index.md#reference-configuration
+bazinga_hateoas:
+ twig_extension:
+ enabled: true
diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml
new file mode 100644
index 000000000..6899b7200
--- /dev/null
+++ b/config/packages/cache.yaml
@@ -0,0 +1,19 @@
+framework:
+ cache:
+ # Unique name of your app: used to compute stable namespaces for cache keys.
+ #prefix_seed: your_vendor_name/app_name
+
+ # The "app" cache stores to the filesystem by default.
+ # The data in this cache should persist between deploys.
+ # Other options include:
+
+ # Redis
+ #app: cache.adapter.redis
+ #default_redis_provider: redis://localhost
+
+ # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
+ #app: cache.adapter.apcu
+
+ # Namespaced pools use the above "app" backend by default
+ #pools:
+ #my.dedicated.cache: null
diff --git a/config/packages/craue_config.yaml b/config/packages/craue_config.yaml
new file mode 100644
index 000000000..c7ae05a67
--- /dev/null
+++ b/config/packages/craue_config.yaml
@@ -0,0 +1,3 @@
+# define custom entity so we can override length attribute to fix utf8mb4 issue
+craue_config:
+ entity_name: App\Entity\InternalSetting
diff --git a/config/packages/dev/framework.yaml b/config/packages/dev/framework.yaml
new file mode 100644
index 000000000..460a437f4
--- /dev/null
+++ b/config/packages/dev/framework.yaml
@@ -0,0 +1,9 @@
+framework:
+ router:
+ strict_requirements: true
+ profiler:
+ only_exceptions: false
+
+ mailer:
+ # see https://mailcatcher.me/
+ dsn: smtp://127.0.0.1:1025
diff --git a/config/packages/dev/jsm_serializer.yaml b/config/packages/dev/jsm_serializer.yaml
new file mode 100644
index 000000000..f94604102
--- /dev/null
+++ b/config/packages/dev/jsm_serializer.yaml
@@ -0,0 +1,7 @@
+jms_serializer:
+ visitors:
+ json_serialization:
+ options:
+ - JSON_PRETTY_PRINT
+ - JSON_UNESCAPED_SLASHES
+ - JSON_PRESERVE_ZERO_FRACTION
diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml
new file mode 100644
index 000000000..b1998da1a
--- /dev/null
+++ b/config/packages/dev/monolog.yaml
@@ -0,0 +1,19 @@
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
+ channels: ["!event"]
+ # uncomment to get logging in your browser
+ # you may have to allow bigger header sizes in your Web server configuration
+ #firephp:
+ # type: firephp
+ # level: info
+ #chromephp:
+ # type: chromephp
+ # level: info
+ console:
+ type: console
+ process_psr_3_messages: false
+ channels: ["!event", "!doctrine", "!console"]
diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml
new file mode 100644
index 000000000..1f1cb2bb4
--- /dev/null
+++ b/config/packages/dev/web_profiler.yaml
@@ -0,0 +1,3 @@
+web_profiler:
+ toolbar: true
+ intercept_redirects: false
diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml
new file mode 100644
index 000000000..a1402acba
--- /dev/null
+++ b/config/packages/doctrine.yaml
@@ -0,0 +1,32 @@
+doctrine:
+ dbal:
+ url: '%env(resolve:DATABASE_URL)%'
+
+ orm:
+ auto_generate_proxy_classes: "%kernel.debug%"
+ auto_mapping: true
+ mappings:
+ App:
+ is_bundle: false
+ type: annotation
+ dir: '%kernel.project_dir%/src/Entity'
+ prefix: 'App\Entity'
+ alias: App
+
+# doctrine:
+# dbal:
+# url: '%env(resolve:DATABASE_URL)%'
+
+# # IMPORTANT: You MUST configure your server version,
+# # either here or in the DATABASE_URL env var (see .env file)
+# #server_version: '14'
+# orm:
+# auto_generate_proxy_classes: true
+# naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
+# auto_mapping: true
+# mappings:
+# App:
+# is_bundle: false
+# dir: '%kernel.project_dir%/src/Entity'
+# prefix: 'App\Entity'
+# alias: App
diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml
new file mode 100644
index 000000000..f46aee58a
--- /dev/null
+++ b/config/packages/doctrine_migrations.yaml
@@ -0,0 +1,12 @@
+doctrine_migrations:
+ migrations_paths:
+ # namespace is arbitrary but should be different from App\Migrations
+ # as migrations classes should NOT be autoloaded
+ 'DoctrineMigrations': '%kernel.project_dir%/migrations'
+ enable_profiler: false
+ storage:
+ table_storage:
+ table_name: 'migration_versions'
+ version_column_name: 'version'
+ version_column_length: 192
+ executed_at_column_name: 'executed_at'
diff --git a/config/packages/fos_js_routing.yaml b/config/packages/fos_js_routing.yaml
new file mode 100644
index 000000000..fe8ed3dc2
--- /dev/null
+++ b/config/packages/fos_js_routing.yaml
@@ -0,0 +1,13 @@
+fos_js_routing:
+ routes_to_expose:
+ - homepage
+ - starred
+ - archive
+ - all
+ - tag
+ - config
+ - import
+ - developer
+ - howto
+ - fos_user_security_logout
+ - new
diff --git a/config/packages/fos_oauth_server.yaml b/config/packages/fos_oauth_server.yaml
new file mode 100644
index 000000000..21abfa029
--- /dev/null
+++ b/config/packages/fos_oauth_server.yaml
@@ -0,0 +1,12 @@
+# Read the documentation: https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md#step-5-configure-fosoauthserverbundle
+fos_oauth_server:
+ db_driver: orm
+ client_class: App\Entity\Client
+ access_token_class: App\Entity\AccessToken
+ refresh_token_class: App\Entity\RefreshToken
+ auth_code_class: App\Entity\AuthCode
+ service:
+ user_provider: fos_user.user_provider.username_email
+ options:
+ refresh_token_lifetime: "%env(FOS_OAUTH_SERVER_REFRESH_TOKEN_LIFETIME)%"
+ access_token_lifetime: "%env(FOS_OAUTH_SERVER_ACCESS_TOKEN_LIFETIME)%"
diff --git a/config/packages/fos_rest.yaml b/config/packages/fos_rest.yaml
new file mode 100644
index 000000000..a11642039
--- /dev/null
+++ b/config/packages/fos_rest.yaml
@@ -0,0 +1,34 @@
+fos_rest:
+ param_fetcher_listener: true
+ body_listener: true
+ view:
+ mime_types:
+ csv:
+ - 'text/csv'
+ - 'text/plain'
+ pdf:
+ - 'application/pdf'
+ epub:
+ - 'application/epub+zip'
+ mobi:
+ - 'application/x-mobipocket-ebook'
+ view_response_listener: 'force'
+ formats:
+ xml: true
+ json: true
+ txt: true
+ csv: true
+ pdf: true
+ epub: true
+ mobi: true
+ failed_validation: HTTP_BAD_REQUEST
+ routing_loader: false
+ format_listener:
+ enabled: true
+ rules:
+ - { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false }
+ - { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
+ - { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
+ # for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
+ # so we need to add custom rule for custom api export but also for all other routes of the application...
+ - { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
diff --git a/config/packages/fos_user.yaml b/config/packages/fos_user.yaml
new file mode 100644
index 000000000..cec2fcd54
--- /dev/null
+++ b/config/packages/fos_user.yaml
@@ -0,0 +1,12 @@
+fos_user:
+ db_driver: orm
+ firewall_name: secured_area
+ user_class: App\Entity\User
+ registration:
+ confirmation:
+ enabled: '%env(bool:FOSUSER_CONFIRMATION)%'
+ from_email:
+ address: '%env(FROM_EMAIL)%'
+ sender_name: wallabag
+ service:
+ mailer: App\Mailer\UserMailer
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
new file mode 100644
index 000000000..728f575ad
--- /dev/null
+++ b/config/packages/framework.yaml
@@ -0,0 +1,24 @@
+# see https://symfony.com/doc/current/reference/configuration/framework.html
+framework:
+ translator:
+ enabled: true
+ fallback: "%env(LOCALE)%"
+ default_path: '%kernel.project_dir%/translations'
+ secret: '%env(APP_SECRET)%'
+ router:
+ strict_requirements: ~
+ form: ~
+ csrf_protection: ~
+ validation:
+ enable_annotations: true
+ templating:
+ engines: ['twig']
+ default_locale: "%env(LOCALE)%"
+ trusted_hosts: ~
+ session:
+ # handler_id set to null will use default session handler from php.ini
+ handler_id: session.handler.native_file
+ save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%"
+ fragments: ~
+ http_method_override: true
+ assets: ~
diff --git a/config/packages/http_discovery.yaml b/config/packages/http_discovery.yaml
new file mode 100644
index 000000000..2a789e73c
--- /dev/null
+++ b/config/packages/http_discovery.yaml
@@ -0,0 +1,10 @@
+services:
+ Psr\Http\Message\RequestFactoryInterface: '@http_discovery.psr17_factory'
+ Psr\Http\Message\ResponseFactoryInterface: '@http_discovery.psr17_factory'
+ Psr\Http\Message\ServerRequestFactoryInterface: '@http_discovery.psr17_factory'
+ Psr\Http\Message\StreamFactoryInterface: '@http_discovery.psr17_factory'
+ Psr\Http\Message\UploadedFileFactoryInterface: '@http_discovery.psr17_factory'
+ Psr\Http\Message\UriFactoryInterface: '@http_discovery.psr17_factory'
+
+ http_discovery.psr17_factory:
+ class: Http\Discovery\Psr17Factory
diff --git a/config/packages/httplug.yaml b/config/packages/httplug.yaml
new file mode 100644
index 000000000..4b176344a
--- /dev/null
+++ b/config/packages/httplug.yaml
@@ -0,0 +1,21 @@
+httplug:
+ clients:
+ wallabag_core:
+ factory: App\Helper\HttpClientFactory
+ config:
+ defaults:
+ timeout: 10
+ plugins: ['httplug.plugin.logger']
+ wallabag_core.entry.download_images:
+ factory: 'httplug.factory.auto'
+ plugins: ['httplug.plugin.logger']
+ wallabag_import.pocket.client:
+ factory: 'httplug.factory.auto'
+ plugins:
+ - 'httplug.plugin.logger'
+ - header_defaults:
+ headers:
+ 'content-type': 'application/json'
+ 'X-Accept': 'application/json'
+ discovery:
+ client: false
diff --git a/config/packages/jms_serializer.yaml b/config/packages/jms_serializer.yaml
new file mode 100644
index 000000000..d0d9a98ac
--- /dev/null
+++ b/config/packages/jms_serializer.yaml
@@ -0,0 +1,9 @@
+jms_serializer:
+ handlers:
+ # to be removed if we switch to (default) ISO8601 datetime instead of ATOM
+ # see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
+ datetime:
+ default_format: "Y-m-d\\TH:i:sO" # ATOMjms_serializer:
+ visitors:
+ xml_serialization:
+ format_output: '%kernel.debug%'
diff --git a/config/packages/kphoen_rulerz.yaml b/config/packages/kphoen_rulerz.yaml
new file mode 100644
index 000000000..e7d643f80
--- /dev/null
+++ b/config/packages/kphoen_rulerz.yaml
@@ -0,0 +1,3 @@
+kphoen_rulerz:
+ targets:
+ doctrine: true
diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml
new file mode 100644
index 000000000..56a650d89
--- /dev/null
+++ b/config/packages/mailer.yaml
@@ -0,0 +1,3 @@
+framework:
+ mailer:
+ dsn: '%env(MAILER_DSN)%'
diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml
new file mode 100644
index 000000000..b996d5579
--- /dev/null
+++ b/config/packages/monolog.yaml
@@ -0,0 +1,3 @@
+monolog:
+ channels:
+ - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
diff --git a/config/packages/nelmio_api_doc.yaml b/config/packages/nelmio_api_doc.yaml
new file mode 100644
index 000000000..d5a26fb2b
--- /dev/null
+++ b/config/packages/nelmio_api_doc.yaml
@@ -0,0 +1,17 @@
+nelmio_api_doc:
+ areas: # to filter documented areas
+ path_patterns:
+ - ^/api(?!/doc$) # Accepts routes under /api except /api/doc
+ documentation:
+ info:
+ title: wallabag API documentation
+ description: This is the API documentation of wallabag
+ version: 2.x
+ securityDefinitions:
+ Bearer:
+ type: apiKey
+ description: 'Value: Bearer {jwt}'
+ name: Authorization
+ in: header
+ security:
+ - Bearer: []
diff --git a/config/packages/nelmio_cors.yaml b/config/packages/nelmio_cors.yaml
new file mode 100644
index 000000000..0a7c0b8fe
--- /dev/null
+++ b/config/packages/nelmio_cors.yaml
@@ -0,0 +1,28 @@
+nelmio_cors:
+ defaults:
+ allow_credentials: false
+ allow_origin: []
+ allow_headers: []
+ allow_methods: []
+ expose_headers: []
+ max_age: 0
+ hosts: []
+ #origin_regex: false
+ paths:
+ '^/api/':
+ allow_origin: ['*']
+ allow_headers: ['Authorization','content-type']
+ allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
+ max_age: 3600
+ '^/oauth/':
+ allow_origin: ['*']
+ allow_headers: ['Authorization','content-type']
+ allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
+ max_age: 3600
+ '^/':
+ #origin_regex: true
+ allow_origin: ['*']
+ allow_headers: ['Authorization','content-type']
+ allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
+ max_age: 3600
+ hosts: ['^api\.']
diff --git a/config/packages/old_sound_rabbit_mq.yaml b/config/packages/old_sound_rabbit_mq.yaml
new file mode 100644
index 000000000..c283f61af
--- /dev/null
+++ b/config/packages/old_sound_rabbit_mq.yaml
@@ -0,0 +1,148 @@
+old_sound_rabbit_mq:
+ connections:
+ default:
+ url: '%env(RABBITMQ_URL)%'
+ vhost: /
+ lazy: true
+ producers:
+ import_pocket:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.pocket'
+ type: topic
+ import_readability:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.readability'
+ type: topic
+ import_pinboard:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.pinboard'
+ type: topic
+ import_delicious:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.delicious'
+ type: topic
+ import_instapaper:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.instapaper'
+ type: topic
+ import_wallabag_v1:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.wallabag_v1'
+ type: topic
+ import_wallabag_v2:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.wallabag_v2'
+ type: topic
+ import_elcurator:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.elcurator'
+ type: topic
+ import_firefox:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.firefox'
+ type: topic
+ import_chrome:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.chrome'
+ type: topic
+ consumers:
+ import_pocket:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.pocket'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.pocket'
+ callback: wallabag_import.consumer.amqp.pocket
+ qos_options: {prefetch_count: 10}
+ import_readability:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.readability'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.readability'
+ callback: wallabag_import.consumer.amqp.readability
+ qos_options: {prefetch_count: 10}
+ import_instapaper:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.instapaper'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.instapaper'
+ callback: wallabag_import.consumer.amqp.instapaper
+ qos_options: {prefetch_count: 10}
+ import_pinboard:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.pinboard'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.pinboard'
+ callback: wallabag_import.consumer.amqp.pinboard
+ qos_options: {prefetch_count: 10}
+ import_delicious:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.delicious'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.delicious'
+ callback: wallabag_import.consumer.amqp.delicious
+ qos_options: {prefetch_count: 10}
+ import_wallabag_v1:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.wallabag_v1'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.wallabag_v1'
+ callback: wallabag_import.consumer.amqp.wallabag_v1
+ qos_options: {prefetch_count: 10}
+ import_wallabag_v2:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.wallabag_v2'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.wallabag_v2'
+ callback: wallabag_import.consumer.amqp.wallabag_v2
+ qos_options: {prefetch_count: 10}
+ import_elcurator:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.elcurator'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.elcurator'
+ callback: wallabag_import.consumer.amqp.elcurator
+ qos_options: {prefetch_count: 10}
+ import_firefox:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.firefox'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.firefox'
+ callback: wallabag_import.consumer.amqp.firefox
+ qos_options: {prefetch_count: 10}
+ import_chrome:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.chrome'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.chrome'
+ callback: wallabag_import.consumer.amqp.chrome
+ qos_options: {prefetch_count: 10}
diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml
new file mode 100644
index 000000000..5dc700dda
--- /dev/null
+++ b/config/packages/prod/doctrine.yaml
@@ -0,0 +1,18 @@
+doctrine:
+ orm:
+ auto_generate_proxy_classes: false
+ proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
+ query_cache_driver:
+ type: pool
+ pool: doctrine.system_cache_pool
+ result_cache_driver:
+ type: pool
+ pool: doctrine.result_cache_pool
+
+framework:
+ cache:
+ pools:
+ doctrine.result_cache_pool:
+ adapter: cache.app
+ doctrine.system_cache_pool:
+ adapter: cache.system
diff --git a/config/packages/prod/jsm_serializer.yaml b/config/packages/prod/jsm_serializer.yaml
new file mode 100644
index 000000000..89c86c893
--- /dev/null
+++ b/config/packages/prod/jsm_serializer.yaml
@@ -0,0 +1,6 @@
+jms_serializer:
+ visitors:
+ json_serialization:
+ options:
+ - JSON_UNESCAPED_SLASHES
+ - JSON_PRESERVE_ZERO_FRACTION
diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml
new file mode 100644
index 000000000..9c22a5a3f
--- /dev/null
+++ b/config/packages/prod/monolog.yaml
@@ -0,0 +1,21 @@
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ excluded_http_codes: [404, 405]
+ buffer_size: 50 # How many messages should be saved? Prevent memory leaks
+ nested:
+ type: stream
+ path: php://stderr
+ level: debug
+ formatter: monolog.formatter.json
+ console:
+ type: console
+ process_psr_3_messages: false
+ channels: ["!event", "!doctrine"]
+ deprecation:
+ type: stream
+ channels: [deprecation]
+ path: php://stderr
diff --git a/config/packages/prod/routing.yaml b/config/packages/prod/routing.yaml
new file mode 100644
index 000000000..b3e6a0af2
--- /dev/null
+++ b/config/packages/prod/routing.yaml
@@ -0,0 +1,3 @@
+framework:
+ router:
+ strict_requirements: null
diff --git a/config/packages/prod/sentry.yaml b/config/packages/prod/sentry.yaml
new file mode 100644
index 000000000..a5ccf756b
--- /dev/null
+++ b/config/packages/prod/sentry.yaml
@@ -0,0 +1,22 @@
+sentry:
+ dsn: '%env(SENTRY_DSN)%'
+ options:
+ excluded_exceptions:
+ - Symfony\Component\HttpKernel\Exception\NotFoundHttpException
+ - Symfony\Component\Security\Core\Exception\AccessDeniedException
+
+# If you are using Monolog, you also need these additional configuration and services to log the errors correctly:
+# https://docs.sentry.io/platforms/php/guides/symfony/#monolog-integration
+# register_error_listener: false
+
+# monolog:
+# handlers:
+# sentry:
+# type: service
+# id: Sentry\Monolog\Handler
+
+# services:
+# Sentry\Monolog\Handler:
+# arguments:
+# $hub: '@Sentry\State\HubInterface'
+# $level: !php/const Monolog\Logger::ERROR
diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml
new file mode 100644
index 000000000..b45c1cec7
--- /dev/null
+++ b/config/packages/routing.yaml
@@ -0,0 +1,7 @@
+framework:
+ router:
+ utf8: true
+
+ # Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
+ # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
+ #default_uri: http://localhost
diff --git a/config/packages/scheb_2fa.yaml b/config/packages/scheb_2fa.yaml
new file mode 100644
index 000000000..b9bb80958
--- /dev/null
+++ b/config/packages/scheb_2fa.yaml
@@ -0,0 +1,28 @@
+# See the configuration reference at https://symfony.com/bundles/SchebTwoFactorBundle/5.x/configuration.html
+scheb_two_factor:
+ # security_tokens:
+ # - Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken
+ # If you're using guard-based authentication, you have to use this one:
+ # - Symfony\Component\Security\Guard\Token\PostAuthenticationGuardToken
+ # If you're using authenticator-based security (introduced in Symfony 5.1), you have to use this one:
+ # - Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken
+
+ trusted_device:
+ enabled: true
+ cookie_name: wllbg_trusted_computer
+ lifetime: 2592000
+
+ backup_codes:
+ enabled: "%env(TWOFACTOR_AUTH)%"
+
+ google:
+ enabled: "%env(TWOFACTOR_AUTH)%"
+ issuer: "%env(SERVER_NAME)%"
+ template: "Authentication/form.html.twig"
+
+ email:
+ enabled: "%env(TWOFACTOR_AUTH)%"
+ sender_email: "%env(TWOFACTOR_SENDER)%"
+ digits: 6
+ template: "Authentication/form.html.twig"
+ mailer: App\Mailer\AuthCodeMailer
diff --git a/app/config/security.yml b/config/packages/security.yaml
similarity index 97%
rename from app/config/security.yml
rename to config/packages/security.yaml
index 9ab516215..ac2640422 100644
--- a/app/config/security.yml
+++ b/config/packages/security.yaml
@@ -9,7 +9,7 @@ security:
providers:
administrators:
entity:
- class: 'Wallabag\UserBundle\Entity\User'
+ class: 'App\Entity\User'
property: username
fos_userbundle:
id: fos_user.user_provider.username_email
@@ -45,7 +45,7 @@ security:
anonymous: true
remember_me:
- secret: "%secret%"
+ secret: "%env(APP_SECRET)%"
lifetime: 31536000
path: /
domain: ~
diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml
new file mode 100644
index 000000000..84334642f
--- /dev/null
+++ b/config/packages/sensio_framework_extra.yaml
@@ -0,0 +1,4 @@
+# see https://github.com/symfony/symfony-standard/pull/1133
+sensio_framework_extra:
+ router:
+ annotations: false
diff --git a/config/packages/stof_doctrine_extensions.yaml b/config/packages/stof_doctrine_extensions.yaml
new file mode 100644
index 000000000..f13e9a4ac
--- /dev/null
+++ b/config/packages/stof_doctrine_extensions.yaml
@@ -0,0 +1,9 @@
+# Read the documentation: https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html
+# See the official DoctrineExtensions documentation for more details: https://github.com/doctrine-extensions/DoctrineExtensions/tree/main/doc
+stof_doctrine_extensions:
+ default_locale: "%env(LOCALE)%"
+ translation_fallback: true
+ orm:
+ default:
+ tree: true
+ sluggable: true
diff --git a/config/packages/test/dama_doctrine_test_bundle.yaml b/config/packages/test/dama_doctrine_test_bundle.yaml
new file mode 100644
index 000000000..80b009117
--- /dev/null
+++ b/config/packages/test/dama_doctrine_test_bundle.yaml
@@ -0,0 +1,4 @@
+dama_doctrine_test:
+ enable_static_connection: true
+ enable_static_meta_data_cache: true
+ enable_static_query_cache: true
diff --git a/config/packages/test/doctrine.yaml b/config/packages/test/doctrine.yaml
new file mode 100644
index 000000000..4f706dc11
--- /dev/null
+++ b/config/packages/test/doctrine.yaml
@@ -0,0 +1,8 @@
+doctrine:
+ orm:
+ metadata_cache_driver:
+ type: service
+ id: filesystem_cache
+ query_cache_driver:
+ type: service
+ id: filesystem_cache
diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml
new file mode 100644
index 000000000..6e03815e0
--- /dev/null
+++ b/config/packages/test/framework.yaml
@@ -0,0 +1,10 @@
+framework:
+ test: ~
+ session:
+ storage_id: session.storage.mock_file
+ profiler:
+ collect: false
+ translator:
+ enabled: false
+ mailer:
+ dsn: 'null://null'
diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml
new file mode 100644
index 000000000..fc40641dc
--- /dev/null
+++ b/config/packages/test/monolog.yaml
@@ -0,0 +1,12 @@
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ excluded_http_codes: [404, 405]
+ channels: ["!event"]
+ nested:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
diff --git a/config/packages/test/twig.yaml b/config/packages/test/twig.yaml
new file mode 100644
index 000000000..8c6e0b401
--- /dev/null
+++ b/config/packages/test/twig.yaml
@@ -0,0 +1,2 @@
+twig:
+ strict_variables: true
diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml
new file mode 100644
index 000000000..1e5ab7880
--- /dev/null
+++ b/config/packages/test/validator.yaml
@@ -0,0 +1,3 @@
+framework:
+ validation:
+ not_compromised_password: false
diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml
new file mode 100644
index 000000000..03752de21
--- /dev/null
+++ b/config/packages/test/web_profiler.yaml
@@ -0,0 +1,6 @@
+web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+framework:
+ profiler: { collect: false }
diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml
new file mode 100644
index 000000000..05a2b3d82
--- /dev/null
+++ b/config/packages/translation.yaml
@@ -0,0 +1,6 @@
+framework:
+ default_locale: en
+ translator:
+ default_path: '%kernel.project_dir%/translations'
+ fallbacks:
+ - en
diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
new file mode 100644
index 000000000..55c391311
--- /dev/null
+++ b/config/packages/twig.yaml
@@ -0,0 +1,14 @@
+# twig:
+# default_path: '%kernel.project_dir%/templates'
+# debug: '%kernel.debug%'
+# strict_variables: '%kernel.debug%'
+# exception_controller: null
+
+twig:
+ debug: "%kernel.debug%"
+ strict_variables: "%kernel.debug%"
+ form_themes:
+ - "@LexikFormFilter/Form/form_div_layout.html.twig"
+ exception_controller: App\Controller\ExceptionController:showAction
+ globals:
+ registration_enabled: '%env(bool:FOSUSER_REGISTRATION)%'
diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml
new file mode 100644
index 000000000..350786a13
--- /dev/null
+++ b/config/packages/validator.yaml
@@ -0,0 +1,8 @@
+framework:
+ validation:
+ email_validation_mode: html5
+
+ # Enables validator auto-mapping support.
+ # For instance, basic validation constraints will be inferred from Doctrine's metadata.
+ #auto_mapping:
+ # App\Entity\: []
diff --git a/config/preload.php b/config/preload.php
new file mode 100644
index 000000000..d7e9b316e
--- /dev/null
+++ b/config/preload.php
@@ -0,0 +1,9 @@
+container->getParameter('wallabag_core.default_ignore_origin_instance_rules') as $entity) {
+ foreach ($this->container->getParameter('wallabag.default_ignore_origin_instance_rules') as $entity) {
$previous_rule = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
diff --git a/app/DoctrineMigrations/Version20200414120227.php b/migrations/Version20200414120227.php
similarity index 84%
rename from app/DoctrineMigrations/Version20200414120227.php
rename to migrations/Version20200414120227.php
index a24ce45ee..9b26886fa 100644
--- a/app/DoctrineMigrations/Version20200414120227.php
+++ b/migrations/Version20200414120227.php
@@ -1,10 +1,10 @@
@@ -15,8 +15,29 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -24,9 +45,7 @@
src
vendor
- src/Wallabag/*Bundle/Resources
- src/Wallabag/*Bundle/Tests
- src/Wallabag/*Bundle/DataFixtures
+ src/DataFixtures
@@ -34,4 +53,7 @@
+
+
+
diff --git a/web/.htaccess b/public/.htaccess
similarity index 100%
rename from web/.htaccess
rename to public/.htaccess
diff --git a/var/logs/.gitkeep b/public/assets/images/.gitkeep
similarity index 100%
rename from var/logs/.gitkeep
rename to public/assets/images/.gitkeep
diff --git a/web/favicon.ico b/public/favicon.ico
similarity index 100%
rename from web/favicon.ico
rename to public/favicon.ico
diff --git a/web/img/appicon/apple-touch-icon-114.png b/public/img/appicon/apple-touch-icon-114.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-114.png
rename to public/img/appicon/apple-touch-icon-114.png
diff --git a/web/img/appicon/apple-touch-icon-120.png b/public/img/appicon/apple-touch-icon-120.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-120.png
rename to public/img/appicon/apple-touch-icon-120.png
diff --git a/web/img/appicon/apple-touch-icon-144.png b/public/img/appicon/apple-touch-icon-144.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-144.png
rename to public/img/appicon/apple-touch-icon-144.png
diff --git a/web/img/appicon/apple-touch-icon-152.png b/public/img/appicon/apple-touch-icon-152.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-152.png
rename to public/img/appicon/apple-touch-icon-152.png
diff --git a/web/img/appicon/apple-touch-icon-512.png b/public/img/appicon/apple-touch-icon-512.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-512.png
rename to public/img/appicon/apple-touch-icon-512.png
diff --git a/web/img/appicon/apple-touch-icon-57.png b/public/img/appicon/apple-touch-icon-57.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-57.png
rename to public/img/appicon/apple-touch-icon-57.png
diff --git a/web/img/appicon/apple-touch-icon-72.png b/public/img/appicon/apple-touch-icon-72.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-72.png
rename to public/img/appicon/apple-touch-icon-72.png
diff --git a/web/img/appicon/apple-touch-icon-76.png b/public/img/appicon/apple-touch-icon-76.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon-76.png
rename to public/img/appicon/apple-touch-icon-76.png
diff --git a/web/img/appicon/apple-touch-icon.png b/public/img/appicon/apple-touch-icon.png
similarity index 100%
rename from web/img/appicon/apple-touch-icon.png
rename to public/img/appicon/apple-touch-icon.png
diff --git a/web/img/logo-square.svg b/public/img/logo-square.svg
similarity index 100%
rename from web/img/logo-square.svg
rename to public/img/logo-square.svg
diff --git a/web/img/logo-w.png b/public/img/logo-w.png
similarity index 100%
rename from web/img/logo-w.png
rename to public/img/logo-w.png
diff --git a/web/img/logo-wallabag.svg b/public/img/logo-wallabag.svg
similarity index 100%
rename from web/img/logo-wallabag.svg
rename to public/img/logo-wallabag.svg
diff --git a/public/index.php b/public/index.php
new file mode 100644
index 000000000..61652d4b2
--- /dev/null
+++ b/public/index.php
@@ -0,0 +1,27 @@
+handle($request);
+$response->send();
+$kernel->terminate($request, $response);
diff --git a/web/js/fos_js_routes.js b/public/js/fos_js_routes.js
similarity index 100%
rename from web/js/fos_js_routes.js
rename to public/js/fos_js_routes.js
diff --git a/web/manifest.json b/public/manifest.json
similarity index 100%
rename from web/manifest.json
rename to public/manifest.json
diff --git a/web/robots.txt b/public/robots.txt
similarity index 100%
rename from web/robots.txt
rename to public/robots.txt
diff --git a/web/wallassets/themes/_global/img/icons/diaspora-icon--black.png b/public/wallassets/assets/themes/_global/img/icons/diaspora-icon--black.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/diaspora-icon--black.png
rename to public/wallassets/assets/themes/_global/img/icons/diaspora-icon--black.png
diff --git a/web/wallassets/themes/_global/img/icons/scuttle.png b/public/wallassets/assets/themes/_global/img/icons/scuttle.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/scuttle.png
rename to public/wallassets/assets/themes/_global/img/icons/scuttle.png
diff --git a/web/wallassets/themes/_global/img/icons/shaarli.png b/public/wallassets/assets/themes/_global/img/icons/shaarli.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/shaarli.png
rename to public/wallassets/assets/themes/_global/img/icons/shaarli.png
diff --git a/web/wallassets/themes/_global/img/icons/unmark-icon--black.png b/public/wallassets/assets/themes/_global/img/icons/unmark-icon--black.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/unmark-icon--black.png
rename to public/wallassets/assets/themes/_global/img/icons/unmark-icon--black.png
diff --git a/web/wallassets/fonts/IcoMoon-Free.ttf b/public/wallassets/fonts/IcoMoon-Free.ttf
similarity index 100%
rename from web/wallassets/fonts/IcoMoon-Free.ttf
rename to public/wallassets/fonts/IcoMoon-Free.ttf
diff --git a/web/wallassets/fonts/MaterialIcons-Regular.eot b/public/wallassets/fonts/MaterialIcons-Regular.eot
similarity index 100%
rename from web/wallassets/fonts/MaterialIcons-Regular.eot
rename to public/wallassets/fonts/MaterialIcons-Regular.eot
diff --git a/web/wallassets/fonts/MaterialIcons-Regular.ttf b/public/wallassets/fonts/MaterialIcons-Regular.ttf
similarity index 100%
rename from web/wallassets/fonts/MaterialIcons-Regular.ttf
rename to public/wallassets/fonts/MaterialIcons-Regular.ttf
diff --git a/web/wallassets/fonts/MaterialIcons-Regular.woff b/public/wallassets/fonts/MaterialIcons-Regular.woff
similarity index 100%
rename from web/wallassets/fonts/MaterialIcons-Regular.woff
rename to public/wallassets/fonts/MaterialIcons-Regular.woff
diff --git a/web/wallassets/fonts/MaterialIcons-Regular.woff2 b/public/wallassets/fonts/MaterialIcons-Regular.woff2
similarity index 100%
rename from web/wallassets/fonts/MaterialIcons-Regular.woff2
rename to public/wallassets/fonts/MaterialIcons-Regular.woff2
diff --git a/web/wallassets/fonts/Roboto-Bold.woff b/public/wallassets/fonts/Roboto-Bold.woff
similarity index 100%
rename from web/wallassets/fonts/Roboto-Bold.woff
rename to public/wallassets/fonts/Roboto-Bold.woff
diff --git a/web/wallassets/fonts/Roboto-Bold.woff2 b/public/wallassets/fonts/Roboto-Bold.woff2
similarity index 100%
rename from web/wallassets/fonts/Roboto-Bold.woff2
rename to public/wallassets/fonts/Roboto-Bold.woff2
diff --git a/web/wallassets/fonts/Roboto-Light.woff b/public/wallassets/fonts/Roboto-Light.woff
similarity index 100%
rename from web/wallassets/fonts/Roboto-Light.woff
rename to public/wallassets/fonts/Roboto-Light.woff
diff --git a/web/wallassets/fonts/Roboto-Light.woff2 b/public/wallassets/fonts/Roboto-Light.woff2
similarity index 100%
rename from web/wallassets/fonts/Roboto-Light.woff2
rename to public/wallassets/fonts/Roboto-Light.woff2
diff --git a/web/wallassets/fonts/Roboto-Medium.woff b/public/wallassets/fonts/Roboto-Medium.woff
similarity index 100%
rename from web/wallassets/fonts/Roboto-Medium.woff
rename to public/wallassets/fonts/Roboto-Medium.woff
diff --git a/web/wallassets/fonts/Roboto-Medium.woff2 b/public/wallassets/fonts/Roboto-Medium.woff2
similarity index 100%
rename from web/wallassets/fonts/Roboto-Medium.woff2
rename to public/wallassets/fonts/Roboto-Medium.woff2
diff --git a/web/wallassets/fonts/Roboto-Regular.woff b/public/wallassets/fonts/Roboto-Regular.woff
similarity index 100%
rename from web/wallassets/fonts/Roboto-Regular.woff
rename to public/wallassets/fonts/Roboto-Regular.woff
diff --git a/web/wallassets/fonts/Roboto-Regular.woff2 b/public/wallassets/fonts/Roboto-Regular.woff2
similarity index 100%
rename from web/wallassets/fonts/Roboto-Regular.woff2
rename to public/wallassets/fonts/Roboto-Regular.woff2
diff --git a/web/wallassets/fonts/Roboto-Thin.woff b/public/wallassets/fonts/Roboto-Thin.woff
similarity index 100%
rename from web/wallassets/fonts/Roboto-Thin.woff
rename to public/wallassets/fonts/Roboto-Thin.woff
diff --git a/web/wallassets/fonts/Roboto-Thin.woff2 b/public/wallassets/fonts/Roboto-Thin.woff2
similarity index 100%
rename from web/wallassets/fonts/Roboto-Thin.woff2
rename to public/wallassets/fonts/Roboto-Thin.woff2
diff --git a/web/wallassets/fonts/lato-black-italic.woff b/public/wallassets/fonts/lato-black-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-black-italic.woff
rename to public/wallassets/fonts/lato-black-italic.woff
diff --git a/web/wallassets/fonts/lato-black-italic.woff2 b/public/wallassets/fonts/lato-black-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-black-italic.woff2
rename to public/wallassets/fonts/lato-black-italic.woff2
diff --git a/web/wallassets/fonts/lato-black.woff b/public/wallassets/fonts/lato-black.woff
similarity index 100%
rename from web/wallassets/fonts/lato-black.woff
rename to public/wallassets/fonts/lato-black.woff
diff --git a/web/wallassets/fonts/lato-black.woff2 b/public/wallassets/fonts/lato-black.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-black.woff2
rename to public/wallassets/fonts/lato-black.woff2
diff --git a/web/wallassets/fonts/lato-bold-italic.woff b/public/wallassets/fonts/lato-bold-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-bold-italic.woff
rename to public/wallassets/fonts/lato-bold-italic.woff
diff --git a/web/wallassets/fonts/lato-bold-italic.woff2 b/public/wallassets/fonts/lato-bold-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-bold-italic.woff2
rename to public/wallassets/fonts/lato-bold-italic.woff2
diff --git a/web/wallassets/fonts/lato-bold.woff b/public/wallassets/fonts/lato-bold.woff
similarity index 100%
rename from web/wallassets/fonts/lato-bold.woff
rename to public/wallassets/fonts/lato-bold.woff
diff --git a/web/wallassets/fonts/lato-bold.woff2 b/public/wallassets/fonts/lato-bold.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-bold.woff2
rename to public/wallassets/fonts/lato-bold.woff2
diff --git a/web/wallassets/fonts/lato-hairline-italic.woff b/public/wallassets/fonts/lato-hairline-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-hairline-italic.woff
rename to public/wallassets/fonts/lato-hairline-italic.woff
diff --git a/web/wallassets/fonts/lato-hairline-italic.woff2 b/public/wallassets/fonts/lato-hairline-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-hairline-italic.woff2
rename to public/wallassets/fonts/lato-hairline-italic.woff2
diff --git a/web/wallassets/fonts/lato-hairline.woff b/public/wallassets/fonts/lato-hairline.woff
similarity index 100%
rename from web/wallassets/fonts/lato-hairline.woff
rename to public/wallassets/fonts/lato-hairline.woff
diff --git a/web/wallassets/fonts/lato-hairline.woff2 b/public/wallassets/fonts/lato-hairline.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-hairline.woff2
rename to public/wallassets/fonts/lato-hairline.woff2
diff --git a/web/wallassets/fonts/lato-heavy-italic.woff b/public/wallassets/fonts/lato-heavy-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-heavy-italic.woff
rename to public/wallassets/fonts/lato-heavy-italic.woff
diff --git a/web/wallassets/fonts/lato-heavy-italic.woff2 b/public/wallassets/fonts/lato-heavy-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-heavy-italic.woff2
rename to public/wallassets/fonts/lato-heavy-italic.woff2
diff --git a/web/wallassets/fonts/lato-heavy.woff b/public/wallassets/fonts/lato-heavy.woff
similarity index 100%
rename from web/wallassets/fonts/lato-heavy.woff
rename to public/wallassets/fonts/lato-heavy.woff
diff --git a/web/wallassets/fonts/lato-heavy.woff2 b/public/wallassets/fonts/lato-heavy.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-heavy.woff2
rename to public/wallassets/fonts/lato-heavy.woff2
diff --git a/web/wallassets/fonts/lato-light-italic.woff b/public/wallassets/fonts/lato-light-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-light-italic.woff
rename to public/wallassets/fonts/lato-light-italic.woff
diff --git a/web/wallassets/fonts/lato-light-italic.woff2 b/public/wallassets/fonts/lato-light-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-light-italic.woff2
rename to public/wallassets/fonts/lato-light-italic.woff2
diff --git a/web/wallassets/fonts/lato-light.woff b/public/wallassets/fonts/lato-light.woff
similarity index 100%
rename from web/wallassets/fonts/lato-light.woff
rename to public/wallassets/fonts/lato-light.woff
diff --git a/web/wallassets/fonts/lato-light.woff2 b/public/wallassets/fonts/lato-light.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-light.woff2
rename to public/wallassets/fonts/lato-light.woff2
diff --git a/web/wallassets/fonts/lato-medium-italic.woff b/public/wallassets/fonts/lato-medium-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-medium-italic.woff
rename to public/wallassets/fonts/lato-medium-italic.woff
diff --git a/web/wallassets/fonts/lato-medium-italic.woff2 b/public/wallassets/fonts/lato-medium-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-medium-italic.woff2
rename to public/wallassets/fonts/lato-medium-italic.woff2
diff --git a/web/wallassets/fonts/lato-medium.woff b/public/wallassets/fonts/lato-medium.woff
similarity index 100%
rename from web/wallassets/fonts/lato-medium.woff
rename to public/wallassets/fonts/lato-medium.woff
diff --git a/web/wallassets/fonts/lato-medium.woff2 b/public/wallassets/fonts/lato-medium.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-medium.woff2
rename to public/wallassets/fonts/lato-medium.woff2
diff --git a/web/wallassets/fonts/lato-normal-italic.woff b/public/wallassets/fonts/lato-normal-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-normal-italic.woff
rename to public/wallassets/fonts/lato-normal-italic.woff
diff --git a/web/wallassets/fonts/lato-normal-italic.woff2 b/public/wallassets/fonts/lato-normal-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-normal-italic.woff2
rename to public/wallassets/fonts/lato-normal-italic.woff2
diff --git a/web/wallassets/fonts/lato-normal.woff b/public/wallassets/fonts/lato-normal.woff
similarity index 100%
rename from web/wallassets/fonts/lato-normal.woff
rename to public/wallassets/fonts/lato-normal.woff
diff --git a/web/wallassets/fonts/lato-normal.woff2 b/public/wallassets/fonts/lato-normal.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-normal.woff2
rename to public/wallassets/fonts/lato-normal.woff2
diff --git a/web/wallassets/fonts/lato-semibold-italic.woff b/public/wallassets/fonts/lato-semibold-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-semibold-italic.woff
rename to public/wallassets/fonts/lato-semibold-italic.woff
diff --git a/web/wallassets/fonts/lato-semibold-italic.woff2 b/public/wallassets/fonts/lato-semibold-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-semibold-italic.woff2
rename to public/wallassets/fonts/lato-semibold-italic.woff2
diff --git a/web/wallassets/fonts/lato-semibold.woff b/public/wallassets/fonts/lato-semibold.woff
similarity index 100%
rename from web/wallassets/fonts/lato-semibold.woff
rename to public/wallassets/fonts/lato-semibold.woff
diff --git a/web/wallassets/fonts/lato-semibold.woff2 b/public/wallassets/fonts/lato-semibold.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-semibold.woff2
rename to public/wallassets/fonts/lato-semibold.woff2
diff --git a/web/wallassets/fonts/lato-thin-italic.woff b/public/wallassets/fonts/lato-thin-italic.woff
similarity index 100%
rename from web/wallassets/fonts/lato-thin-italic.woff
rename to public/wallassets/fonts/lato-thin-italic.woff
diff --git a/web/wallassets/fonts/lato-thin-italic.woff2 b/public/wallassets/fonts/lato-thin-italic.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-thin-italic.woff2
rename to public/wallassets/fonts/lato-thin-italic.woff2
diff --git a/web/wallassets/fonts/lato-thin.woff b/public/wallassets/fonts/lato-thin.woff
similarity index 100%
rename from web/wallassets/fonts/lato-thin.woff
rename to public/wallassets/fonts/lato-thin.woff
diff --git a/web/wallassets/fonts/lato-thin.woff2 b/public/wallassets/fonts/lato-thin.woff2
similarity index 100%
rename from web/wallassets/fonts/lato-thin.woff2
rename to public/wallassets/fonts/lato-thin.woff2
diff --git a/web/wallassets/img/annotator-glyph-sprite.png b/public/wallassets/img/annotator-glyph-sprite.png
similarity index 100%
rename from web/wallassets/img/annotator-glyph-sprite.png
rename to public/wallassets/img/annotator-glyph-sprite.png
diff --git a/web/wallassets/img/annotator-icon-sprite.png b/public/wallassets/img/annotator-icon-sprite.png
similarity index 100%
rename from web/wallassets/img/annotator-icon-sprite.png
rename to public/wallassets/img/annotator-icon-sprite.png
diff --git a/web/wallassets/manifest.json b/public/wallassets/manifest.json
similarity index 88%
rename from web/wallassets/manifest.json
rename to public/wallassets/manifest.json
index 5954415df..86b0dcaf1 100644
--- a/web/wallassets/manifest.json
+++ b/public/wallassets/manifest.json
@@ -1,4 +1,8 @@
{
+ "assets/themes/_global/img/icons/diaspora-icon--black.png": "assets/themes/_global/img/icons/diaspora-icon--black.png",
+ "assets/themes/_global/img/icons/scuttle.png": "assets/themes/_global/img/icons/scuttle.png",
+ "assets/themes/_global/img/icons/shaarli.png": "assets/themes/_global/img/icons/shaarli.png",
+ "assets/themes/_global/img/icons/unmark-icon--black.png": "assets/themes/_global/img/icons/unmark-icon--black.png",
"fonts/IcoMoon-Free.ttf": "fonts/IcoMoon-Free.ttf",
"fonts/lato-black-italic.woff": "fonts/lato-black-italic.woff",
"fonts/lato-black-italic.woff2": "fonts/lato-black-italic.woff2",
@@ -58,9 +62,5 @@
"material.js.map": "material.js.map",
"public.css": "public.css",
"public.css.map": "public.css.map",
- "public.js": "public.js",
- "themes/_global/img/icons/diaspora-icon--black.png": "themes/_global/img/icons/diaspora-icon--black.png",
- "themes/_global/img/icons/scuttle.png": "themes/_global/img/icons/scuttle.png",
- "themes/_global/img/icons/shaarli.png": "themes/_global/img/icons/shaarli.png",
- "themes/_global/img/icons/unmark-icon--black.png": "themes/_global/img/icons/unmark-icon--black.png"
+ "public.js": "public.js"
}
\ No newline at end of file
diff --git a/web/wallassets/material.css b/public/wallassets/material.css
similarity index 100%
rename from web/wallassets/material.css
rename to public/wallassets/material.css
diff --git a/public/wallassets/material.css.map b/public/wallassets/material.css.map
new file mode 100644
index 000000000..a8e9e59b5
--- /dev/null
+++ b/public/wallassets/material.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"material.css","mappings":"AAAA;;;;EAAA,CAKA,iBACE,oCAGF,sBACE,yBAGF,2BACE,oCAGF,qCACE,yBAGF,2BACE,oCAGF,qCACE,yBAGF,2BACE,oCAGF,qCACE,yBAGF,2BACE,oCAGF,qCACE,yBAGF,2BACE,oCAGF,qCACE,yBAGF,0BACE,oCAGF,oCACE,yBAGF,0BACE,oCAGF,oCACE,yBAGF,0BACE,oCAGF,oCACE,yBAGF,0BACE,oCAGF,oCACE,yBAGF,KACE,oCAGF,UACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,cACE,oCAGF,wBACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,QACE,oCAGF,aACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,iCAGF,2BACE,sBAGF,aACE,oCAGF,kBACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,QACE,oCAGF,aACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,YACE,oCAGF,iBACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,OACE,oCAGF,YACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,aACE,oCAGF,kBACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,QACE,oCAGF,aACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,iCAGF,2BACE,sBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,OACE,oCAGF,YACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,QACE,oCAGF,aACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,kBACE,oCAGF,4BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,aACE,oCAGF,kBACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,uBACE,oCAGF,iCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,sBACE,oCAGF,gCACE,yBAGF,OACE,oCAGF,YACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,iBACE,oCAGF,2BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,WACE,oCAGF,gBACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,qBACE,oCAGF,+BACE,yBAGF,oBACE,oCAGF,8BACE,yBAGF,oBACE,oCAGF,8BACE,yBAGF,oBACE,oCAGF,8BACE,yBAGF,oBACE,oCAGF,8BACE,yBAGF,MACE,oCAGF,WACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,iCAGF,0BACE,sBAGF,gBACE,oCAGF,0BACE,yBAGF,gBACE,oCAGF,0BACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,eACE,oCAGF,yBACE,yBAGF,OACE,iCAGF,YACE,sBAGF,OACE,iCAGF,YACE,sBAGF,aACE,0CAGF,kBACE,+BAGF,4EAMA,KACE,uBAEA,0BAEA,8BAOF,KACE,SAWF,2FAaE,cAOF,4BAIE,qBAEA,wBAQF,sBACE,aACA,SAOF,kBAEE,aAQF,EACE,+BAOF,iBAEE,UAQF,YACE,yBAMF,SAEE,iBAMF,IACE,kBAOF,GACE,cACA,eAMF,KACE,gBACA,WAMF,MACE,cAMF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,WAGF,IACE,eAQF,IACE,SAMF,eACE,gBAQF,OACE,gBAMF,GACE,uBACA,SAMF,IACE,cAMF,kBAIE,gCACA,cAeF,sCAKE,cAEA,aAEA,SAOF,OACE,iBASF,cAEE,oBAUF,oEAIE,0BAEA,eAOF,sCAEE,eAMF,iDAEE,SACA,UAOF,MACE,mBAUF,uCAEE,sBAEA,UASF,4FAEE,YAOF,mBACE,6BAEA,uBASF,+FAEE,wBAMF,SACE,wBACA,aACA,2BAOF,OACE,SAEA,UAOF,SACE,cAOF,SACE,iBAQF,MACE,yBACA,iBAGF,MAEE,UAGF,KACE,sBAGF,mBACE,mBAGF,yBACE,eACA,qBAGF,4BACE,qBAGF,EACE,cACA,qBACA,0CAGF,gBAGE,aAGQ,mBAGV,UACE,WAGF,WACE,2BAGF,+GACE,iGAGF,gEACE,iGAGF,WACE,kGAGF,WACE,mGAGF,kBACE,uGAGF,WACE,yGAGF,WACE,2BACA,aAGF,iBACE,2BACA,oEAGF,SACE,WACA,gBACA,yBAGF,WACE,cACA,oBACA,8BAGF,EACE,oBAGF,OACE,WACA,kBAGF,QACE,YACA,iBAGF,OACE,eAGF,QACE,eAGF,SACE,eAGF,QACE,eAGF,0CAEE,eACA,YAGF,eACE,qBACA,kBACA,kBACA,mBACA,YAGF,iBACE,WACA,qBACA,iBACA,eACA,iBAGF,wBACE,WAGF,sBACE,yBAGF,0BACE,eACA,WAGF,iBACE,eAGF,2BACE,qBACA,WAGF,0CACE,YACE,WAEF,wCAEE,UAEF,qBACE,UACA,gBACA,oBAIJ,YACE,eACA,2BAGF,+FAGE,qBACA,WACA,eAGF,mBACE,YACA,2BACA,mBACA,qBACA,6BACA,mBACA,kBACA,eACA,oBACA,mCAGF,+BACE,aAGF,uBACE,WAGF,oBACE,kBACA,gBACA,aAGF,UACE,kBACA,MACA,OACA,QACA,SACA,WAGF,cACE,aACA,kBACA,SACA,SACA,eACA,gBAEA,+BAEQ,2BAGV,qBACE,kBAGF,QACE,0BAMF,qBACE,UAGF,SACE,UAEQ,uBAMV,0CACE,4CACE,yBAIJ,0CACE,sBACE,yBAIJ,0CACE,oBACE,yBAIJ,gEACE,kBACE,yBAIJ,0CACE,oBACE,yBAIJ,0CACE,eACE,0BAIJ,gEACE,gBACE,0BAIJ,0CACE,eACE,0BAIJ,0CACE,uBACE,0BAIJ,0CACE,yBACE,0BAIJ,0CACE,sBACE,mBAIJ,aACE,iBACA,yBAGF,+BACE,gBACA,gBAGA,aAGQ,mBACR,iBACA,2BACA,oCAGF,YACE,YAGF,MACE,WACA,cAGF,gDAEE,gCAGF,sCACE,yBAGF,0BACE,gBAGF,yBACE,sCAGF,+BACE,yBAGF,sDACE,kBAGF,MACE,gCAGF,MACE,iBACA,mBACA,gBACA,sBACA,kBAGF,0CACE,uBACE,WACA,yBACA,iBACA,cACA,kBAGF,uCACE,YAEF,oDAEE,SACA,mBAEF,0BACE,gBAEF,6BACE,cACA,WAEF,gCACE,cACA,mBAEF,2CACE,YAEF,6BACE,cACA,WACA,kBACA,gBACA,mBAEF,gCACE,qBACA,mBAEF,0BACE,cACA,iBAEF,0BACE,cACA,kBACA,gBAEF,0BACE,eAEF,6BACE,SACA,+BAEF,mCACE,gBACA,cAEF,mCACE,cACA,eACA,gBAEF,mCACE,SAEF,yCACE,gCAIJ,YACE,sBACA,yBACA,kBACA,gBACA,kBAGF,6BACE,sBACA,mBACA,kBACA,SACA,gCAGF,oCACE,gBACA,kBACA,kBAGF,4CACE,kBACA,WACA,YACA,gBACA,UACA,qBACA,sBAGF,6CACE,eACA,iBACA,WACA,sBACA,kBAGF,2CACE,eAGF,sCACE,SAGF,uDACE,kBACA,SACA,WAGF,wCACE,mBAGF,oCACE,yBACA,cAGF,uDACE,WAGF,8BACE,cACA,gBACA,cAGF,iDACE,sBAGF,2CACE,sBACA,gCACA,kBAGF,yCACE,kBAGF,gDACE,kBAGF,mBACE,YACA,cAGF,yBACE,SACA,YAGF,iBACE,kBACA,sBACA,SACA,gBAGF,uEACE,kBACA,MACA,OACA,WACA,YAGF,UACE,kBACA,WACA,cACA,WACA,yBACA,kBACA,sBACA,gBAGF,uBACE,kBACA,MACA,OACA,SACA,yBACA,4BAGF,yBACE,yBAGF,gCACE,WACA,kBACA,yBACA,MACA,OACA,SACA,uBAEQ,8EAGV,+BACE,WACA,kBACA,yBACA,MACA,OACA,SACA,uBAEQ,+EAEA,sBAkBV,yBACE,GACE,UACA,WAEF,IACE,UACA,WAEF,KACE,UACA,YAmBJ,+BACE,GACE,WACA,WAEF,IACE,UACA,UAEF,KACE,UACA,WAOJ,MACE,wBAGF,YACE,gBAGF,aACE,iBAGF,sBACE,kBAGF,MACE,sBAGF,OACE,uBAGF,sDAEE,2BACA,yBACA,sBAEA,iBAGF,QACE,kBAGF,cACE,cACA,iBACA,kBAGF,UACE,cACA,mBACA,gBACA,uBAGF,YACE,qBAGF,WACE,eACA,cACA,iBACA,kBACA,eACA,iBACA,YACA,cACA,YACA,sBAGF,eACE,gBACA,gBACA,WACA,yBACA,kBAGF,qBACE,eAGF,sCACE,qCAGF,oBACE,qBACA,WACA,gBACA,iBACA,YAGF,4BACE,+BAGF,wBACE,+BAGF,qBACE,gBAIF,gBACE,kCAGQ,6BAGV,WACE,cACA,iBACA,UAGF,0CACE,WACE,WAIJ,0CACE,WACE,WAIJ,gBACE,qBACA,sBAGF,SACE,iBACA,oBAGF,gBACE,UAGF,oBACE,iBAGF,oBACE,cAGF,KACE,iBACA,kBACA,mBAGF,WACE,WACA,cACA,WAGF,UACE,WACA,sBACA,iBACA,eAGF,gDACE,kBAGF,aACE,oBACA,iBACA,UACA,WAGF,aACE,qBACA,iBACA,UACA,WAGF,aACE,UACA,iBACA,UACA,WAGF,aACE,qBACA,iBACA,UACA,WAGF,aACE,qBACA,iBACA,UACA,WAGF,aACE,UACA,iBACA,UACA,WAGF,aACE,qBACA,iBACA,UACA,WAGF,aACE,qBACA,iBACA,UACA,WAGF,aACE,UACA,iBACA,UACA,WAGF,cACE,qBACA,iBACA,UACA,WAGF,cACE,qBACA,iBACA,UACA,WAGF,cACE,WACA,iBACA,UACA,WAGF,oBACE,0BAGF,kBACE,oBAGF,kBACE,mBAGF,oBACE,2BAGF,kBACE,qBAGF,kBACE,oBAGF,oBACE,gBAGF,kBACE,UAGF,kBACE,SAGF,oBACE,2BAGF,kBACE,qBAGF,kBACE,oBAGF,oBACE,2BAGF,kBACE,qBAGF,kBACE,oBAGF,oBACE,gBAGF,kBACE,UAGF,kBACE,SAGF,oBACE,2BAGF,kBACE,qBAGF,kBACE,oBAGF,oBACE,2BAGF,kBACE,qBAGF,kBACE,oBAGF,oBACE,gBAGF,kBACE,UAGF,kBACE,SAGF,qBACE,2BAGF,mBACE,qBAGF,mBACE,oBAGF,qBACE,2BAGF,mBACE,qBAGF,mBACE,oBAGF,qBACE,iBAGF,mBACE,WAGF,mBACE,UAGF,0CACE,aACE,oBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,WACA,iBACA,UACA,WAEF,oBACE,0BAEF,kBACE,oBAEF,kBACE,mBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,iBAEF,mBACE,WAEF,mBACE,WAIJ,0CACE,aACE,oBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,qBACA,iBACA,UACA,WAEF,aACE,UACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,WACA,iBACA,UACA,WAEF,oBACE,0BAEF,kBACE,oBAEF,kBACE,mBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,2BAEF,kBACE,qBAEF,kBACE,oBAEF,oBACE,gBAEF,kBACE,UAEF,kBACE,SAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,iBAEF,mBACE,WAEF,mBACE,WAIJ,2CACE,cACE,oBACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,UACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,UACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,qBACA,iBACA,UACA,WAEF,cACE,UACA,iBACA,UACA,WAEF,eACE,qBACA,iBACA,UACA,WAEF,eACE,qBACA,iBACA,UACA,WAEF,eACE,WACA,iBACA,UACA,WAEF,qBACE,0BAEF,mBACE,oBAEF,mBACE,mBAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,gBAEF,mBACE,UAEF,mBACE,SAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,gBAEF,mBACE,UAEF,mBACE,SAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,2BAEF,mBACE,qBAEF,mBACE,oBAEF,qBACE,gBAEF,mBACE,UAEF,mBACE,SAEF,sBACE,2BAEF,oBACE,qBAEF,oBACE,oBAEF,sBACE,2BAEF,oBACE,qBAEF,oBACE,oBAEF,sBACE,iBAEF,oBACE,WAEF,oBACE,WAIJ,IACE,WACA,yBACA,WACA,YACA,iBAGF,iBACE,YAGF,8BACE,gBACA,YAGF,8BACE,kBACA,mBAGF,MACE,WAGF,+DAGE,cACA,eACA,YACA,iBAGF,iBACE,kBACA,YAGF,0CACE,sBACE,cAIJ,qBACE,WACA,kBACA,UACA,YACA,cAGF,uBACE,YACA,iBAGF,gBACE,kBACA,WACA,qBACA,iBACA,UACA,mBAGF,uBACE,SAEQ,2BAGV,0CACE,gBACE,SAEQ,2BAEV,2CACE,UAEQ,eAEV,qBACE,WAEF,sBACE,YACA,WAIJ,sBACE,YACA,UAGF,+GAGE,WACA,kBAGF,eACE,qBACA,eACA,eAGF,OACE,SAGF,UACE,gCACA,WACA,UAGF,iBACE,gCAGF,SACE,gCACA,eACA,WACA,cACA,eACA,eAGF,2FACE,gBACA,iBACA,kBAGF,2KACE,eACA,oBAGF,eACE,gCAGF,YACE,WAGF,SACE,YAGF,iBACE,SACA,YAGF,uBACE,YACA,iBACA,YACA,kBAGF,yOACE,YACA,gBAGF,uBACE,MACA,OAGF,yBACE,2BACA,qBAGF,gCACE,WAGF,cACE,kBACA,YACA,YAGF,kBACE,eAGF,0CACE,8BACE,gBAEF,qEACE,YACA,iBAEF,cACE,aAIJ,WACE,qBACA,sIACA,gBAGF,WACE,qBACA,uIACA,gBAGF,WACE,qBACA,yIACA,gBAGF,WACE,qBACA,wIACA,gBAGF,WACE,qBACA,sIACA,gBAGF,EACE,qBAGF,KACE,gBACA,gCACA,mBACA,sBAGF,sCACE,KACE,gBAIJ,0CACE,KACE,kBAIJ,2CACE,KACE,gBAIJ,kBACE,gBACA,gBAGF,8BACE,oBAGF,GACE,iBACA,iBACA,0BAGF,GACE,kBACA,iBACA,4BAGF,GACE,kBACA,iBACA,4BAGF,GACE,kBACA,iBACA,2BAGF,GACE,kBACA,iBACA,0BAGF,GACE,eACA,iBACA,uBAGF,GACE,kBAGF,OACE,gBAGF,MACE,cAGF,sCACE,gBAGF,MACE,gBAGF,WACE,gBAGF,0CACE,WACE,kBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,mBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,mBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,mBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,oBAIJ,0CACE,WACE,mBAIJ,0CACE,WACE,kBAIJ,kBAEE,wEACA,CAGF,4BAEU,mBAER,mCACA,CAGF,2BAEU,mBAGV,YACE,2BACA,aACA,sBACA,kBACA,sBAGF,MACE,kBACA,sBACA,sBACA,2BACA,kBAGF,kBACE,eACA,gBAGF,4BACE,eAGF,qCACE,kBAGF,yEACE,eACA,gBAGF,mHACE,eAGF,+EACE,gBACA,gBAGF,4EACE,kBACA,SACA,OACA,QAGF,YACE,aAGF,aACE,aAGF,YACE,aAGF,iBAGE,aAGF,0GACE,YACA,gBACA,iBAGF,sHACE,YAGF,6BACE,cAGF,iCACE,0BACA,eACA,WAGF,+BAGE,aAGQ,sBAGA,OACR,kBAGF,6CAGU,YAGV,iCACE,UAGF,iCACE,UACA,oBAGF,kBACE,kBAGF,sBACE,cACA,0BACA,kBACA,OACA,QACA,MACA,SACA,WAGF,8BACE,WACA,kBACA,SACA,OACA,eACA,aAGF,oBACE,aACA,0BAGF,sBACE,SACA,cAGF,gCACE,cACA,iBACA,kBAGF,kCACE,iBAGF,mBACE,kBACA,yBACA,0CACA,kBAGF,8BACE,0BAGF,kFACE,cACA,kBACA,0BACA,yBAGF,wFACE,cAGF,mBACE,aACA,kBACA,sBACA,WACA,gBACA,OACA,SACA,YACA,UACA,aAGF,+BACE,eACA,cAGF,iBACE,cACA,eACA,cAGF,0CACE,iBACE,eACA,WAIJ,gEACE,iBACE,QACA,UACA,eAIJ,0CACE,iBACE,QACA,SACA,eAIJ,OACE,kBACA,SACA,WACA,WACA,gBACA,kBACA,eACA,YACA,gBACA,kBACA,qBACA,yBACA,kBACA,iBACA,gBACA,WAGA,aAGQ,mBAGA,8BAGV,+CACE,SACA,iBAGF,eACE,mBAGF,0CACE,OACE,WACA,iBAIJ,gEACE,OACE,YAIJ,0CACE,OACE,aAIJ,MACE,kBACA,gBACA,kBACA,YACA,WACA,sBACA,cACA,mBAGF,uBACE,+BAGF,kHAGE,2BAGF,yEAEE,WAGF,kCACE,sBAGF,uBAGE,aAGF,4BAGE,YAGF,WACE,qBACA,kBACA,iBACA,YACA,UACA,SACA,yBAGF,aACE,2BACA,cACA,WACA,YACA,eACA,eACA,uBACA,gBACA,2BAGF,uCACE,+BACA,cAGF,kDAEE,2BACA,eAGF,iBACE,kBACA,SACA,WACA,yBACA,uBAGF,0CACE,MAGE,aAEF,WAGE,YAEF,aACE,gBAIJ,kBACE,iBACA,eACA,aACA,+BACA,kBACA,WACA,gBACA,iBACA,UACA,kBACA,kBACA,2BACA,gBACA,OACA,MACA,oBACA,kBAGF,UACE,kBACA,UACA,WACA,WACA,0BACA,yBACA,WAEQ,wBACR,kBAGF,0BAEE,YACA,kBACA,qBACA,YACA,iBACA,eACA,yBACA,sBACA,0CAGF,qSAcE,oBACA,oCACA,gBACA,yBACA,eAGF,+XAcE,oCACA,yBAGF,mDAIE,eACA,UAGF,6DAIE,iBACA,oBAGF,gDAEE,yBAGF,gBACE,qBACA,WACA,yBACA,kBACA,oBACA,wBACA,eAGF,4BACE,yBAGF,cACE,qBACA,WACA,kBACA,gBACA,UACA,WACA,YACA,iBACA,UACA,yBACA,kBACA,eACA,eACA,sBAGF,oBACE,yBAGF,qBACE,gBAGF,wBACE,WACA,YAGF,oCACE,aAGF,0BACE,iBAGF,0BACE,kBACA,WACA,aAGF,+BACE,WACA,UAGF,gBACE,cACA,qBACA,kBACA,WACA,iBACA,iBAGF,oBACE,YAGF,kBACE,eACA,WACA,YACA,iBACA,gBACA,YAGF,4BACE,mBAGF,6BACE,mBAGF,gCACE,iBACA,WACA,QAEQ,2BACR,YACA,UACA,YAIF,mCACE,qBACA,qBAGF,0BACE,UACA,YAGF,qCACE,UAGF,6BAGE,aACA,MACA,SAGF,gCAGU,OACR,qBACA,SACA,YACA,gBAGF,kCACE,cACA,gBACA,kBACA,WACA,YACA,+BACA,gBACA,WACA,iBACA,UAGF,oCACE,oBAGF,qBACE,OACA,QACA,kBACA,kBACA,YACA,SACA,kBAGF,wBACE,mBAGF,oCACE,UAGF,gCACE,kBACA,MACA,OACA,WACA,WACA,YACA,yBACA,kBAEQ,mBAGV,UACE,gBACA,+BACA,cACA,eACA,gCAGF,iCACE,+BAGF,gCACE,gCACA,gBAGF,iBACE,gCAGF,mBACE,0CACA,yBACA,eAGF,WACE,YACA,iBAGF,aACE,iBAGF,WACE,cAGF,kBACE,sBACA,SACA,aACA,gBACA,iBACA,gBACA,UACA,kBACA,YACA,yBAGF,qBACE,WACA,sBACA,eACA,gBACA,mBACA,WACA,gBACA,oBAGF,qFACE,sBAGF,qCACE,yBAGF,6BACE,aACA,WAGF,iDACE,eACA,cACA,cACA,iBACA,kBAGF,gCACE,QACA,OACA,YAGF,yBACE,eACA,oBACA,WACA,kBACA,WAGF,yDACE,QACA,OACA,YAGF;;;;;;;EAAA,CAQA,cACE,kBACA,eACA,qBACA,gBACA,yBACG,sBAEK,iBACR,0CACA,sBACA,UACA,wBAGF,4BACE,kBACA,kBACA,WACA,YACA,iBACA,kBACA,UACA,0BACA,4BAEA,sCAGQ,mBACR,oBAGF,wCACE,uCAGF,sCACE,oCAGF,yCACE,qCAGF,yCACE,oCAGF,yCACE,qCAGF,wCACE,oCAGF,uCACE,oCAGF,kGACE,SACA,kBACA,kBACA,uBACA,gBAGF,kBACE,kBACA,WAGF,oBACE,2BAGF,cAEU,wBACR,2EAGF,qBACE,mBACA,sBAGF,yCACE,kBACA,MACA,OACA,UAGF,cACE,kBACA,YACA,aACA,kBACA,kBACA,wBAGF,aACE,cAIF,4BACE,WAGF,OACE,aACA,eACA,OACA,QACA,yBACA,UACA,eACA,UACA,YACA,gBACA,kBACA,wBAGF,0CACE,OACE,WAIJ,wCACE,aAGF,sBACE,aAGF,oBACE,eAGF,qBACE,0BACA,yBACA,gBACA,YACA,WAGF,yFACE,YACA,aAGF,eACE,eACA,YACA,WACA,OACA,SACA,QACA,YACA,WACA,gBACA,aACA,oBAGF,0BACE,UACA,WAGF,yCACE,kBACA,yBACA,gBACA,WACA,gBAGF,wCACE,oCACA,kBACA,SAGF,oBACE,SACA,aACA,SACA,WACA,eACA,gBACA,2BAGF,aACE,0BACA,4BACA,2BACA,sBAGF,oBACE,cACA,eACA,gBACA,iBACA,eACA,sBACA,6BAGF,sBACE,WACA,iBACA,iBACA,cACA,WACA,kBACA,kBAGF,kBACE,aACA,6BACA,sBACA,aAGF,oDAEE,YACA,gBAGF,0DAEE,UAGF,kEAEE,+BACA,YACA,oBACA,eACA,eAGF,8EAEE,iCAGF,sEAEE,oBAGF,8DAEE,SACA,sBAGF,wEAEE,wBAGF,oBACE,YACA,gBAGF,uBACE,oEACA,cACA,4DAGF,8BACE,qEACA,cAGF,MACE,qBACA,YACA,eACA,gBACA,qBACA,iBACA,eACA,mBACA,yBACA,kBACA,iBAGF,UACE,WACA,qBACA,YACA,WACA,kBAGF,aACE,eACA,YACA,eACA,iBACA,iBAGF,OACE,YACA,gCACA,gBACA,kBACA,gBACA,aACA,mBAGF,aACE,gCACA,6BAGF,aACE,YAGF,sBACE,yBACA,WAGF,cACE,gBACA,SACA,qBACA,qBACA,eACA,YACA,iBACA,UACA,SACA,qBACA,uBAGF,oBACE,oBACA,2BAGF,6BACE,aAGF,eACE,iBACA,UACA,wBAGF,mBACE,gBAEQ,4BAGV,eACE,cAEA,eACA,kBACA,uBACA,mCAGF,kCACE,WAGF,sBAEE,gBAGF,qBACE,eACA,MACA,QACA,SACA,OACA,yBACA,aACA,oBAGF,qBACE,eACA,aACA,WACA,iBACA,SACA,OACA,WACA,kBACA,eACA,YACA,aACA,mCAGF,aACE,0BAGF,aACE,aACA,yBAGF,MACE,gBACA,cAMF,4BACE,cAGF,kBAEE,cAGF,mBAEE,cAGF,uBACE,cAIF,gQAaE,+BACA,YACA,gCACA,gBACA,aACA,YACA,WACA,eACA,kBACA,UACA,gBACA,uBACA,mBAGF,42BAyBE,sBACA,yCAGF,wgCA0BE,sBAGF,8hBAaE,gCACA,6BAGF,4mBAaE,cAGF,0uBAyBE,gCACA,6BAGF,kiCA0BE,2BACA,cACA,UAGF,8xBAyBE,gCACA,6BAGF,slCA0BE,yBACA,cACA,UAGF,mcAaE,WACA,oBAGF,4ZAaE,cACA,WACA,kBACA,SACA,UACA,mDAGF,aACE,kBACA,gBAGF,oBACE,qBACA,sBACA,gBAGF,+DAEE,mBAGF,uBACE,YAGF,wEAEE,iCAGF,mBACE,cACA,kBACA,UACA,OACA,eACA,YACA,wBACA,mBAGF,2CACE,gBAEQ,4BAGV,qBACE,kBACA,WACA,eACA,qBAGF,4BACE,cAGF,oKAKE,iBACA,UACA,wBAGF,2BACE,iBAGF,0CACE,2BACE,UACA,yBAIJ,0CACE,2BACE,UACA,yBAKJ,gCACE,cACA,oBACA,kBACA,wBAGF,sCACE,sBACA,SACA,gBACA,WAGF,gKAGE,WAGF,sCACE,UAGF,sGAEE,kBACA,MACA,WACA,oBACA,eACA,eACA,qBAIF,SACE,WACA,YACA,+BAGF,8BACE,kBAEA,yBAEA,YACA,gBAGF,WACE,aACA,qBACA,qBACA,yBAEA,mBAEA,kBACA,MAIF,sBACE,iBACA,cACA,UACA,gBAGF,oCACE,WAGF,6BACE,YACA,WACA,gBAKF,gDAEE,kBACA,aACA,UAGF,4DAEE,kBACA,kBACA,eACA,qBACA,YACA,iBACA,eACA,qBAEA,yBACG,sBAEK,iBAGV,mDAEE,WACA,kBACA,OACA,MACA,WACA,WACA,YACA,UACA,qBAIF,uOAME,kBAGF,+EAEE,yBAGF,uCAEU,mBAIV,kCACE,+BAGF,sHAGE,yBAGF,2EAEE,yBAGF,iCAEU,sBAIV,0CAEU,qBAIV,uCACE,qCAIF,oDACE,iCAGF,mDACE,YACA,iCAIF,4FAEE,+BACA,6BAGF,4BACE,sBAGF,iDACE,6BAGF,0CACE,iCACA,qBAMF,OACE,mBACA,gBAGF,kBACE,gBAIF,sDAEE,kBACA,aACA,UAOF,sBACE,kBACA,kBACA,eACA,qBACA,YACA,iBACA,eACA,yBAEA,sBAEA,wBAEA,qBAIF,yEAEE,WACA,kBACA,MACA,OACA,WACA,YACA,UACA,yBACA,kBACA,eACA,eAGF,4CACE,SAEQ,mBAGV,oDACE,YACA,iCAGF,yCAEU,mBACR,SACA,kBACA,qCACA,gCAGF,qCACE,SACA,UACA,WACA,YACA,mCACA,oCACA,+BACA,gCAEQ,wBACR,mCACQ,2BAEA,2BAGV,8CACE,uCACA,wCAIF,2CACE,UACA,WACA,WACA,YACA,gBACA,iBACA,+BACA,mBAEQ,wBACR,mCACQ,2BAEA,2BAGV,oDACE,uCACA,+BAGF,sCACE,kBAGF,6EAEE,WACA,OACA,kBAEA,mGACA,UAGF,qDACE,QACA,SACA,+BACA,SACA,SAEA,yBAEA,2BAGF,oDACE,YACA,WACA,+BACA,yBACA,QACA,UAGF,+CACE,MACA,SACA,UACA,YACA,mCACA,oCACA,4BACA,6BAEA,yBAEA,2BAGF,8CACE,MACA,WACA,YACA,yBACA,yBACA,UAGF,mDACE,kBACA,qBACA,gCAGF,2DACE,kBACA,yBACA,qBAGF,8DACE,+BACA,+BAGF,6DACE,2BACA,yBAGF,wDACE,+BAGF,uDACE,yBACA,qBAKF,kBAEE,yBACA,sBACA,wBACA,qBAGF,cACE,eAGF,mCACE,UACA,QACA,SAGF,kDACE,yBAGF,wDACE,yBACA,UAGF,qBACE,WACA,qBACA,kBACA,WACA,YACA,yBACA,mBACA,kBACA,+BACA,sBACA,cAGF,2BACE,WACA,kBACA,qBACA,WACA,YACA,yBACA,mBACA,wCACA,UACA,SACA,iEAGF,wIAEE,uEAGF,uHAEE,mEAGF,8CACE,eAGF,4HAEE,yBAKF,OACE,aAGF,uBACE,cAGF,OACE,sCACA,WACA,YACA,yBACA,kBACA,YAGF,cACE,kBAGF,gBACE,kBAGF,sCACE,kBACA,eACA,+BACA,YACA,gCACA,aACA,YACA,iBACA,WACA,eACA,kBACA,UACA,cAGF,2BACE,cACA,kBACA,QACA,MACA,SACA,YACA,cACA,eACA,iBAGF,oCACE,sBAGF,sBACE,kBACA,UACA,gBAGF,gBACE,qBAGF,+CACE,qBACA,eACA,yBAEA,sBAEA,qBAEA,uCAGF,kBACE,qBAGF,4FAGE,qBACA,+BAGF,wBACE,iBACA,UACA,wBAGF,cACE,iBAGF,wBACE,YACA,WACA,gBACA,YAGF,6BACE,0BAGF,2CACE,qBAGF,kCACE,qBAGF,gDACE,kBAKF,YACE,kBAGF,+BACE,gBACA,kBAGF,4BACE,WAGF,wCACE,WACA,YACA,iBAGF,iBACE,eAGF,6BACE,kBACA,MACA,QACA,OACA,SACA,WACA,SACA,UACA,eACA,eACA,UACA,wBAKF,aACE,kBAGF,2CAEE,eAGF,kBACE,kBACA,+BACA,YACA,aACA,WACA,cACA,UAGF,wBACE,aAGF,yBACE,kBACA,SACA,OACA,YACA,SACA,QACA,kBACA,yBACA,gBAEQ,yBAEA,yBAGV,gCACE,cACA,WACA,kBACA,cACA,YAEQ,wBAGV,gCACE,4BAGF,uCACE,WACA,iBACA,eACA,eAGF,kBACE,wBAGF,iDACE,WACA,mBACA,YAGF,wCACE,wBACA,YACA,YACA,WACA,kBACA,yBAEQ,yBACR,kBACA,sCAGF,uDACE,gBAGF,kBAEE,sBAIF,oCACE,WACA,gBACA,YAGF,oCACE,YACA,YACA,WACA,kBACA,mBACA,gBAGF,iCACE,uBACA,oBAGF,0CACE,gBAGF,6BACE,WACA,yBACA,2BACA,mBAEA,oBAGF,kCACE,gBAGF,kCACE,gBAGF,6BACE,YACA,YACA,WACA,kBACA,mBAGF,wCACE,gBAGF,wCACE,gBAMF,yBACE,eAGF,sBACE,cAGF,qBACE,qBACA,gBACA,cACA,kBACA,cACA,mBACA,kBACA,qBAGF,2BACE,cACA,kBACA,8BAGF,4BACE,gBACA,kBACA,8BAGF,UACE,eACA,YACA,OACA,MACA,SAEQ,4BACR,YACA,yBACA,uBACA,oBACA,sBACA,YACA,gBACA,sBACA,mCACQ,2BAEA,4BAGV,wBACE,QAEQ,2BACR,UAEQ,2BAGV,uBACE,SAGF,aACE,WACA,iBAGF,oBACE,iCAGF,eACE,sBACA,cACA,eACA,gBACA,YACA,iBACA,eAGF,qBACE,iCAGF,yHACE,iBAGF,iGACE,WAGF,wBACE,cAGF,uFACE,yBAGF,kCACE,yBAGF,gHAGE,WACA,YACA,iBACA,kBACA,WACA,sBAGF,mBACE,iBAGF,qBACE,eACA,oBACA,sBACA,eACA,gBACA,iBAGF,2BACE,+BAGF,oBACE,kBACA,oBACA,kBAGF,sBACE,YACA,UAGF,4BACE,+BAGF,gCACE,gBACA,kBACA,MACA,QACA,SACA,OACA,WAGF,iFACE,cAGF,4BACE,YACA,WAGF,qDAEE,eACA,iBAGF,0BACE,gBACA,gBAGF,2BACE,oBACA,gBAGF,aACE,YACA,WACA,eACA,MACA,YAGF,gBACE,OAEQ,wBACR,eAGF,8BACE,QACA,UAGF,0CACE,gBAEU,4BAEV,8BAEU,2BAEV,YACE,eAEF,oBACE,qBAIJ,4HAEE,yBAGF,gIAEE,WAGF,4BACE,UAGF,iBACE,eACA,MACA,OACA,QACA,aACA,gCACA,YACA,oBA4BF,mBACE,qBACA,kBACA,WACA,YAGF,yBACE,WACA,YAGF,uBACE,WACA,YAGF,0BAGE,kDASF,4BACE,GAEU,0BAIZ,eACE,kBACA,WACA,YACA,UACA,qBAGF,iCAEE,qBAGF,+BAEE,qBAGF,qCAEE,qBAGF,mCAEE,qBAgBF,oCAGE,kJAGF,mCAGE,iJAGF,sCAGE,oJAGF,qCAGE,mJAGF,6LAME,UAEA,+EAsCF,8BACE,MAEU,yBAGV,IAEU,yBAGV,MAEU,yBAGV,IAEU,yBAGV,MAEU,yBAGV,IAEU,yBAGV,MAEU,yBAGV,GAEU,2BA0BZ,4BACE,KACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,UAEF,KACE,WAsBJ,2BACE,KACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,WAsBJ,8BACE,KACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,WAsBJ,6BACE,KACE,UAEF,IACE,UAEF,IACE,UAEF,IACE,UAEF,KACE,WAQJ,WACE,kBACA,MACA,SACA,UACA,YACA,gBACA,qBAGF,mBACE,YACA,WAGF,gBACE,qBACA,kBACA,UACA,YACA,gBACA,qBAGF,wBACE,WACA,YACA,iBAEA,mBACA,qBACA,6CACA,kBAEA,eACA,kBACA,MACA,QACA,SAGF,6BACE,OACA,4CAEA,yBAGF,8BACE,WACA,2CAEA,0BAGF,qCAGE,sEAGF,sCAGE,uEAeF,qBACE,KAEU,yBAEV,IAEU,wBAEV,GAEU,0BAgBZ,sBACE,KAEU,0BAEV,IAEU,uBAEV,GAEU,2BAIZ,2BAGE,8FAYF,oBACE,KACE,UAEF,GACE,WAIJ,QACE,kBACA,aACA,WAGF,mBACE,YACA,WACA,kBACA,MACA,OACA,QACA,SAGF,6BACE,YAGF,iCACE,UACA,YAGF,gBACE,yBACA,SACA,aAGF,mBACE,UACA,kBACA,MACA,OACA,UACA,WACA,eACA,gBAGF,uBACE,YACA,WACA,sBACA,2BAGF,4BACE,WACA,kBACA,QACA,SACA,UACA,UAGF,8BACE,cAGF,0BACE,UAGF,oBACE,kBACA,kBACA,OACA,QACA,SACA,SAGF,oCACE,qBACA,kBACA,eACA,YACA,WACA,cACA,yBACA,gCACA,kBAGF,2CACE,yBAGF,UACE,gBACA,kBACA,WACA,aAEQ,kBAEA,4BAEA,wBAGV,0BACE,MACA,OACA,SAGF,+CACE,kBACA,OACA,QACA,YACA,UAGF,+DACE,YAGF,yCACE,WACA,YACA,iBACA,kBACA,MACA,OAGF,4CACE,eACA,gBACA,iBAGF,2CACE,eAGF,yBACE,aACA,YACA,aACA,kBACA,MACA,OAGF,6BACE,WAGF,sBACE,kBACA,kBACA,OACA,QACA,SACA,SAGF,sCACE,qBACA,kBACA,eACA,WACA,UACA,gBACA,sCACA,gCACA,kBAGF,6CACE,sBAGF,uGAEE,oBAGF,oBACE,YACA,aACA,eACA,aACA,kBACA,6BAGF,yBACE,mBACA,yBAGF,qCAEU,mBACR,YAEA,kGACA,CAGF,kDAEU,mBAGV,iDACE,mBAEQ,qEAER,qDACA,CAGF,YACE,kBACA,eACA,kBACA,yBACA,wGACA,WACA,YACA,UAEQ,mBAER,kGACA,CAGF,oBACE,kBACA,mBAGF,iBACE,kBACA,kBACA,cAGF,iDACE,WACA,cACA,kBACA,WACA,YACA,kBACA,sBAGF,yBAEU,mBAER,wBACA,CAGF,wBACE,kBAEA,mDAEA,WAGF,mBACE,QACA,SAEQ,gCACR,cACA,6BAGF,gGACE,gBAGF,0CACE,gCACE,YACA,cAIJ,OACE,iBACA,kBAGF,eACE,WACA,cACA,kBACA,WACA,YACA,MACA,OACA,yBACA,sBAEA,qCAGQ,qEACR,WAqBF,2BACE,GACE,UAEQ,mBAEV,IACE,UAEQ,qBAEV,KACE,UAEQ,sBAUZ,QACE,eACA,gBACA,gBACA,WACA,kBACA,cACA,yBACA,sBAEA,iBAMF,eACE,eAMF,qCACE,qBAMF,gBACE,WACA,gBACA,iCAGF;;;EAAA,CAUA,+BAEE,SACA,OACA,QACA,SAMF,gBACE,eACA,gDACA,mCAMF,eACE,kBACA,cACA,gBACA,YACA,iBACA,gEACA,wBACA,eACA,UACA,6BAGF,6BACE,eACE,iBACA,SACA,aACA,gBAIJ,6BACE,eACE,oBAOJ,cACE,cACA,WACA,YAGF,6BACE,cACE,eAOJ,aACE,gBACA,mBACA,sBAGF,6BACE,aACE,cACA,sBACA,yBACA,sBACA,0BACA,6CAOJ,gCACE,MACA,yBACA,uGACA,OACA,2BACA,oCAGF,+BACE,MACA,kEACA,0BACA,eACA,UAGF,6BACE,+BACE,QACA,aAUJ,qCACE,qBAGF,eACE,cACA,gBAGF,6BACE,+BACE,QACA,aAUJ,aACE,cAMF,gBACE,kBACA,kBACA,iBAMF,6BAEE,qBACA,kBACA,mBAMF,6CAEE,WACA,UACA,kBACA,mBAGF,uCACE,eACA,sBACA,UAGF,sCACE,eACA,sBACA,UAGF,yDAEE,6BAMF,sCAEE,kBACA,oBACA,UACA,WACA,uBACA,YAGF,mBACE,UACA,qBAGF,mBACE,WACA,oBAGF,sHAIE,eACA,gBACA,2BACA,0BAMF,eACE,kBACA,yBACA,iBACA,mBACA,eACA,WACA,iBACA,mBAGF,oCACE,kBAGF,kBACE,SACA,UAMF,iBACE,oBACA,gBACA,qBACA,WACA,gBAIF,6BACE,iBACE,qBAOJ,oBACE,kBACA,cACA,oBACA,iBACA,gBACA,+BAGF,8BACE,sBAGF,4BACE,eACA,WACA,gBAGF,uBACE,aACA,iBACA,WAGF,6BACE,eACA,WACA,gBAGF,2EAEE,eAGF,4FAGE,kBAEQ,sBACR,mBACA,WAGF,4FAGE,mBACA,qBACA,WACA,eAGF,sGAEE,gBAMF,gBACE,kBAGA,aAGQ,mBAGA,8BAGV,qEAGE,sBACA,gBACA,eACA,gBACA,iBACA,UACA,qBACA,sBAGF,uFAGE,eACA,WACA,mBACA,4BAGF,uFAGE,mBACA,6BACA,aAGF,0FAGE,kBACA,qBACA,SAGF,4DAEE,YACA,mBAGF,8BACE,YACA,QACA,+BACA,sCAGF,8BACE,YACA,YACA,0BAGF,8BACE,YACA,WACA,mBACA,gBACA,mBACA,WAGF,wEAEE,mBACA,qBACA,WACA,eAGF,wCACE,sBAMF,aACE,kBACA,gBAGF,sBACE,kBACA,yBACA,WACA,oBACA,gBAGF,kDAEE,eACA,WACA,mBAGF,yBACE,yBACA,aACA,gBACA,kBACA,eACA,mBAGF,uBACE,yBACA,eAGF,qBACE,iBACA,gBAGF,sBACE,iBACA,2BAGF,aACE,UAGF,4BACE,eAGF,kCACE,YAGF,eACE,aACA,mBAGF,sBACE,cACA,oBACA,iBACA,gBACA,+BAGF,gCACE,cAGF,sDACE,WAGF,iBACE,gBAGF,4FAGE,kBAEQ,qBACR,yBACA,WAGF,8JAGE,yBAGF,gBACE,iBACA,iBAGF,8BACE,iBACA,eACA,cAGF,oDAEE,YACA,oCACA,uCACA,iCACA,QACA,SACA,cACA,cAGF,0BACE,eACA,gCAGF,iFACE,yBASF,cACE,gBACA,sBACA,SAMF,mBACE,6BACA,0BACA,mBACA,kBACA,gBACA,qBAGF,4BACE,mBACE,kBAKJ,yBACE,eACA,WACA,mBACA,qBACA,WAIF,gCACE,qBACA,WAGF,uFAEE,eACA,WACA,mBAIF,8GAGE,mBACA,WACA,WAIF,8GAGE,mBACA,qBACA,WACA,eACA,kBACA,aAMF,qCACE,cACA,UACA,kBACA,mBACA,gBACA,SACA,gBACA,gBACA,kBACA,yBACA,WAGF,sFAEE,WACA,mBACA,gBACA,kBACA,eACA,WACA,aAGF,4CACE,YACA,WACA,iBACA,iBAGF,oGAEE,WASF,6BACE,gBACA,gBAMF,2BACE,cACA,mBACA,UAGF,6BACE,2BACE,mB;AClvRJ,0DAGC,wDACA,mBACA,gBACA,SACA,UACA,gBAIA,gBAGA,mBACA,gBACA,cAMD,iBACC,yDACA,4BAGD,0RAOC,yDACA,4BAMD,cACC,mBACA,+BACA,wGAGD,wBACC,mBACA,8BACA,wGAMD,mBACC,kBAKD,oDAGC,aAGD,kBACC,aAGD,sEAIC,kBACA,eACA,cAGD,gBACC,aACA,kBAMD,iBACC,iBACA,kBACA,WACA,YACA,6BAGD,uBACC,+BAGD,wBACC,iCAGD,wBACC,cACA,WACA,YACA,cACA,YACA,gBACA,mBACA,eAQD,iBACC,QACA,SAGD,kBACC,SACA,UACA,YACA,WACA,gBACA,yBACA,uCACA,yBACA,sCAGA,kBAGA,wCACA,qCAGD,sCACC,UACA,YAGD,sCACC,YACA,QAGD,yBACC,iBAGD,uEAEC,UACA,SACA,gBAGD,wBACC,WACA,cACA,WACA,YACA,wBACA,kBACA,aACA,SAGD,4CACC,UACA,UAGD,4CACC,4BACA,YACA,SAGD,qHAGC,kBACA,eAGD,kCACC,6BACA,0CAGD,8CACC,gBAGD,wDAEC,6BACA,2CAMD,sBACC,gBAGD,0EAEC,iBAMD,2FAEC,iBACA,oBACA,cACA,eACA,kBACA,gBACA,gBAGD,sCACC,kBACA,QACA,UACA,iBACA,UAIA,+BACA,YAGD,0GAEC,UAGD,qFAEC,eACA,qBACA,WACA,YACA,gBACA,YACA,WACA,mBACA,+BACA,aAGD,kMAIC,WAGD,mGAEC,UAGD,uDACC,aAGD,sDACC,4BAGD,wDACC,4BAGD,sDACC,6BAMD,kCACC,kBAGD,wCACC,MACA,eACA,eACA,eAGD,mFAEC,cACA,eACA,iBACA,YACA,SACA,cACA,gBAGA,yBACA,sBACA,YAGD,8DACC,WACA,UAGD,0EACC,kBACA,yBACA,0BAGD,6EACC,YACA,sBACA,0BACA,4CAGD,+EACC,WACA,sBACA,0BAGD,uDACC,iBAIA,0BAGD,+FAEC,yBACA,aAGD,2GAEC,WACA,YACA,UACA,eACA,iBACA,eAGD,sCACC,gBAGD,8GAGC,iBACA,YACA,6BACA,yBAmBA,4GAcA,uHACC,CAGD,oHACC,CAMD,0BAGD,yDACC,gBACA,gCAIA,0BAGD,uEAEC,kBACA,qBACA,qBACA,cACA,0CACA,qBACA,iBACA,eACA,iBACA,yBACA,yBAsBA,oIAaA,mFACC,CAED,gFACC,CAKD,kBAGD,0BACC,kBACA,QACA,SACA,cACA,WACA,WACA,YACA,gBACA,4BAGD,qMAKC,aACA,qBACA,yBAsBA,iIAOA,WACA,qCAGD,gEAEC,gBACA,6BAGD,wFAEC,qBACA,yBAsBA,gIASD,yCACC,6BAGD,uJAGC,gBACA,6BAGD,0CACC,4BAGD,2EACC,yBAGD,6DACC,4BACA,YAGD,kBACC,kBACA,MACA,QACA,WACA,YACA,+BAGD,sCACC,WACA,OACA,6BAGD,sCACC,SACA,SACA,+BAGD,yDACC,6BAMD,kBACC,WACA,eACA,UACA,OACA,WACA,eACA,iBACA,kBACA,gBACA,0BACA,gCAIA,4BAGD,0BACC,qBAGD,wBACC,qBAGD,oBACC,SAGD,oBACC,WAGD,uBACC,MAMD,gBACC,mBAGD,+BACC,qBACA,cACA,kBACA,gBACA,iBACA,yBAIA,kBAMD,kBACC,eACA,MACA,QACA,OACA,gBACA,cACA,YACA,gCACA,kBACA,mBAIA,gBAKA,iDACC,CACD,8CACC,CAGF,yBACC,eACA,iBACA,cACA,yCACA,kBACA,SAID,4FAEC,kBACA,qBACA,gBACA,iBACA,cACA,iBAGD,yGAEC,gBACA,cACA,WACA,iBAIA,4BAGD,mDACC,iBAGD,mDACC,cACA,YACA,wBACA,sBACA,yBACA,iBACA,gBACA,iBACA,gBACA,eACA,YACA,WACA,yBAIA,4BAKA,4CACC,CACD,yCACC,CAIF,yDACC,aACA,sBAGD,0CACC,kBACA,UACA,QACA,YACA,mBACA,WACA,YACA,4BACA,WAGD,gGAEC,WAGD,iDACC,UAGD,sDACC,yBACA,UACA,mBACA,WACA,gBAOA,mFACC,CAED,gFACC,CAIF,8KAGC,oBAGD,4DACC,kBACA,QACA,SACA,WACA,cACA,UACA,WACA,6BAGD,kEACC,6BAGD,sEAIC,4BACA,iBAGD,4EACC,UACA,UACA,6BAGD,kFACC,6BAGD,qBACC,mBACA,+BACA,wGAGD,uBACC,sB;AC13BD,WACA,4BACE,kBACA,gBACA,mBACA,4CACA,yLAEA,iBAEF,4BACE,mBACA,kBACA,eACA,qBAEA,cACA,oBACA,sBACA,iBACA,mBACA,kBAEA,mCAEA,kCAEA,kCAEA,6BAEA,6BACA,WACE,8BACF,WACE,8BACF,WACE,6BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,sCACF,WACE,8BACF,WACE,8BACF,WACE,4BACF,WACE,iCACF,WACE,uCACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,8BACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,+BACF,WACE,sCACF,WACE,6BACF,WACE,qCACF,WACE,uCACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,uCACF,WACE,4CACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,+BACF,WACE,sCACF,WACE,oCACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,gCACF,WACE,qCACF,WACE,sCACF,WACE,oCACF,WACE,2CACF,WACE,sCACF,WACE,0CACF,WACE,mCACF,WACE,2CACF,WACE,wCACF,WACE,+CACF,WACE,oCACF,WACE,uCACF,WACE,qCACF,WACE,iCACF,WACE,4BACF,WACE,4BACF,WACE,oCACF,WACE,kCACF,WACE,kCACF,WACE,gCACF,WACE,qCACF,WACE,iCACF,WACE,iCACF,WACE,kCACF,WACE,mCACF,WACE,2CACF,WACE,oCACF,WACE,iCACF,WACE,sCACF,WACE,oCACF,WACE,iCACF,WACE,qCACF,WACE,yCACF,WACE,sCACF,WACE,4CACF,WACE,qCACF,WACE,iCACF,WACE,0CACF,WACE,iCACF,WACE,qCACF,WACE,2CACF,WACE,sCACF,WACE,qCACF,WACE,iCACF,WACE,oCACF,WACE,+BACF,WACE,6CACF,WACE,8BACF,WACE,kCACF,WACE,oCACF,WACE,4BACF,WACE,0CACF,WACE,iDACF,WACE,sDACF,WACE,mDACF,WACE,oDACF,WACE,qDACF,WACE,mDACF,WACE,oDACF,WACE,sCACF,WACE,iCACF,WACE,wCACF,WACE,4CACF,WACE,8CACF,WACE,yCACF,WACE,wCACF,WACE,gCACF,WACE,wCACF,WACE,8BACF,WACE,kCACF,WACE,kCACF,WACE,iCACF,WACE,8BACF,WACE,gDACF,WACE,8CACF,WACE,+CACF,WACE,8CACF,WACE,8CACF,WACE,2CACF,WACE,kCACF,WACE,sCACF,WACE,gCACF,WACE,kCACF,WACE,wCACF,WACE,oCACF,WACE,kCACF,WACE,+BACF,WACE,gCACF,WACE,kCACF,WACE,qCACF,WACE,4BACF,WACE,kCACF,WACE,4BACF,WACE,qCACF,WACE,yCACF,WACE,yCACF,WACE,qCACF,WACE,8BACF,WACE,iCACF,WACE,6BACF,WACE,oCACF,WACE,qCACF,WACE,gCACF,WACE,mCACF,WACE,mCACF,WACE,uCACF,WACE,2CACF,WACE,0CACF,WACE,0CACF,WACE,2CACF,WACE,wCACF,WACE,uCACF,WACE,wCACF,WACE,+CACF,WACE,sCACF,WACE,sCACF,WACE,0CACF,WACE,mCACF,WACE,oCACF,WACE,wCACF,WACE,qCACF,WACE,kCACF,WACE,gCACF,WACE,qCACF,WACE,mCACF,WACE,mCACF,WACE,uCACF,WACE,wCACF,WACE,0CACF,WACE,4CACF,WACE,6CACF,WACE,kCACF,WACE,4CACF,WACE,6CACF,WACE,wCACF,WACE,yCACF,WACE,4BACF,WACE,qCACF,WACE,oCACF,WACE,qCACF,WACE,mCACF,WACE,oCACF,WACE,oCACF,WACE,mCACF,WACE,mCACF,WACE,qCACF,WACE,4CACF,WACE,4CACF,WACE,oCACF,WACE,sCACF,WACE,wCACF,WACE,qCACF,WACE,mCACF,WACE,kCACF,WACE,qCACF,WACE,uCACF,WACE,kCACF,WACE,iCACF,WACE,8CACF,WACE,kCACF,WACE,iCACF,WACE,kCACF,WACE,+BACF,WACE,qCACF,WACE,8BACF,WACE,sCACF,WACE,gCACF,WACE,gCACF,WACE,+BACF,WACE,kCACF,WACE,yCACF,WACE,iCACF,WACE,gCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,8CACF,WACE,qCACF,WACE,sCACF,WACE,oCACF,WACE,wCACF,WACE,qCACF,WACE,4BACF,WACE,qCACF,WACE,sCACF,WACE,uCACF,WACE,gCACF,WACE,oCACF,WACE,iCACF,WACE,8BACF,WACE,qCACF,WACE,gCACF,WACE,gCACF,WACE,+BACF,WACE,sCACF,WACE,8BACF,WACE,sCACF,WACE,kCACF,WACE,kCACF,WACE,wCACF,WACE,4CACF,WACE,2CACF,WACE,wCACF,WACE,4CACF,WACE,sCACF,WACE,oCACF,WACE,iCACF,WACE,gCACF,WACE,6BACF,WACE,6BACF,WACE,oCACF,WACE,iCACF,WACE,qCACF,WACE,uCACF,WACE,wCACF,WACE,yCACF,WACE,wCACF,WACE,kCACF,WACE,mCACF,WACE,sCACF,WACE,qCACF,WACE,qCACF,WACE,0CACF,WACE,qCACF,WACE,oCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,mCACF,WACE,wCACF,WACE,4BACF,WACE,2CACF,WACE,yCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,wCACF,WACE,wCACF,WACE,uCACF,WACE,0CACF,WACE,0CACF,WACE,8CACF,WACE,qCACF,WACE,uCACF,WACE,8CACF,WACE,wCACF,WACE,sCACF,WACE,8BACF,WACE,qCACF,WACE,mCACF,WACE,8BACF,WACE,qCACF,WACE,iCACF,WACE,mCACF,WACE,kCACF,WACE,iCACF,WACE,wCACF,WACE,8BACF,WACE,8BACF,WACE,+BACF,WACE,6BACF,WACE,kCACF,WACE,uCACF,WACE,uCACF,WACE,0CACF,WACE,4CACF,WACE,2CACF,WACE,6BACF,WACE,iCACF,WACE,kCACF,WACE,mCACF,WACE,oCACF,WACE,6CACF,WACE,sCACF,WACE,mCACF,WACE,uCACF,WACE,+BACF,WACE,mCACF,WACE,uCACF,WACE,qCACF,WACE,sCACF,WACE,uCACF,WACE,oCACF,WACE,oCACF,WACE,qCACF,WACE,iCACF,WACE,+BACF,WACE,4CACF,WACE,6CACF,WACE,0CACF,WACE,kCACF,WACE,mCACF,WACE,mCACF,WACE,sCACF,WACE,wCACF,WACE,oCACF,WACE,kCACF,WACE,8BACF,WACE,+BACF,WACE,6BACF,WACE,uCACF,WACE,2CACF,WACE,+BACF,WACE,yCACF,WACE,iCACF,WACE,oCACF,WACE,mCACF,WACE,kCACF,WACE,4CACF,WACE,0CACF,WACE,8BACF,WACE,kCACF,WACE,+BACF,WACE,sCACF,WACE,uCACF,WACE,yCACF,WACE,6BACF,WACE,oCACF,WACE,4CACF,WACE,8BACF,WACE,kCACF,WACE,gDACF,WACE,qCACF,WACE,6CACF,WACE,kCACF,WACE,sCACF,WACE,kCACF,WACE,qCACF,WACE,sCACF,WACE,mCACF,WACE,uCACF,WACE,2CACF,WACE,+BACF,WACE,+BACF,WACE,6CACF,WACE,8BACF,WACE,oCACF,WACE,0CACF,WACE,8BACF,WACE,kCACF,WACE,8BACF,WACE,yCACF,WACE,uCACF,WACE,gDACF,WACE,2CACF,WACE,8BACF,WACE,qCACF,WACE,mCACF,WACE,uCACF,WACE,kCACF,WACE,oCACF,WACE,mCACF,WACE,qCACF,WACE,uCACF,WACE,4BACF,WACE,mCACF,WACE,6BACF,WACE,iCACF,WACE,+BACF,WACE,qCACF,WACE,oCACF,WACE,6CACF,WACE,mCACF,WACE,iCACF,WACE,gCACF,WACE,qCACF,WACE,0CACF,WACE,+BACF,WACE,gCACF,WACE,gCACF,WACE,uCACF,WACE,4CACF,WACE,gCACF,WACE,iCACF,WACE,iCACF,WACE,yCACF,WACE,4CACF,WACE,gDACF,WACE,qCACF,WACE,4CACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,sCACF,WACE,wCACF,WACE,oCACF,WACE,iCACF,WACE,qCACF,WACE,oCACF,WACE,sCACF,WACE,yCACF,WACE,0CACF,WACE,6CACF,WACE,iCACF,WACE,uCACF,WACE,sCACF,WACE,gDACF,WACE,+BACF,WACE,iCACF,WACE,kCACF,WACE,oCACF,WACE,uCACF,WACE,gCACF,WACE,oCACF,WACE,+BACF,WACE,0CACF,WACE,oCACF,WACE,wCACF,WACE,qCACF,WACE,6BACF,WACE,qCACF,WACE,6BACF,WACE,kCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,kCACF,WACE,uCACF,WACE,sCACF,WACE,sCACF,WACE,oCACF,WACE,oCACF,WACE,qCACF,WACE,4BACF,WACE,yCACF,WACE,0CACF,WACE,uCACF,WACE,sCACF,WACE,uCACF,WACE,uCACF,WACE,uCACF,WACE,qCACF,WACE,sCACF,WACE,iCACF,WACE,wCACF,WACE,gCACF,WACE,kCACF,WACE,kCACF,WACE,kCACF,WACE,4CACF,WACE,mCACF,WACE,yCACF,WACE,oCACF,WACE,uCACF,WACE,sCACF,WACE,0CACF,WACE,mCACF,WACE,gCACF,WACE,uCACF,WACE,mCACF,WACE,+BACF,WACE,6BACF,WACE,+BACF,WACE,+BACF,WACE,uCACF,WACE,uCACF,WACE,qCACF,WACE,wCACF,WACE,sCACF,WACE,uCACF,WACE,sCACF,WACE,wCACF,WACE,oCACF,WACE,iCACF,WACE,wCACF,WACE,6BACF,WACE,gDACF,WACE,oCACF,WACE,wCACF,WACE,gCACF,WACE,wCACF,WACE,4CACF,WACE,uCACF,WACE,mCACF,WACE,0CACF,WACE,uCACF,WACE,gCACF,WACE,qCACF,WACE,sCACF,WACE,mCACF,WACE,gCACF,WACE,gCACF,WACE,mCACF,WACE,+BACF,WACE,sCACF,WACE,mCACF,WACE,wCACF,WACE,wCACF,WACE,+CACF,WACE,uCACF,WACE,8CACF,WACE,uCACF,WACE,8CACF,WACE,yCACF,WACE,uCACF,WACE,2CACF,WACE,kDACF,WACE,uCACF,WACE,0CACF,WACE,iDACF,WACE,yCACF,WACE,2CACF,WACE,kDACF,WACE,wCACF,WACE,mCACF,WACE,4CACF,WACE,yCACF,WACE,kCACF,WACE,gCACF,WACE,iCACF,WACE,yCACF,WACE,yCACF,WACE,4BACF,WACE,mCACF,WACE,uCACF,WACE,uCACF,WACE,sCACF,WACE,uCACF,WACE,2CACF,WACE,2CACF,WACE,0CACF,WACE,wDACF,WACE,oCACF,WACE,qCACF,WACE,6BACF,WACE,yCACF,WACE,+BACF,WACE,mCACF,WACE,wCACF,WACE,4CACF,WACE,6BACF,WACE,iCACF,WACE,qCACF,WACE,oCACF,WACE,oCACF,WACE,kCACF,WACE,mCACF,WACE,qCACF,WACE,iCACF,WACE,qCACF,WACE,wCACF,WACE,iCACF,WACE,sCACF,WACE,6CACF,WACE,oCACF,WACE,+BACF,WACE,oCACF,WACE,uCACF,WACE,6BACF,WACE,kCACF,WACE,wCACF,WACE,gDACF,WACE,4CACF,WACE,kDACF,WACE,4CACF,WACE,4BACF,WACE,qCACF,WACE,4BACF,WACE,4BACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,gCACF,WACE,wCACF,WACE,6BACF,WACE,4BACF,WACE,wCACF,WACE,uCACF,WACE,6BACF,WACE,wCACF,WACE,sCACF,WACE,sCACF,WACE,0CACF,WACE,kCACF,WACE,2CACF,WACE,iCACF,WACE,kCACF,WACE,4BACF,WACE,gCACF,WACE,8BACF,WACE,gCACF,WACE,sCACF,WACE,sCACF,WACE,sCACF,WACE,qCACF,WACE,uCACF,WACE,uCACF,WACE,0CACF,WACE,yCACF,WACE,4CACF,WACE,iCACF,WACE,8BACF,WACE,kCACF,WACE,4CACF,WACE,wCACF,WACE,uCACF,WACE,qCACF,WACE,oCACF,WACE,4CACF,WACE,qCACF,WACE,sCACF,WACE,qCACF,WACE,sCACF,WACE,6CACF,WACE,4CACF,WACE,oCACF,WACE,gDACF,WACE,4CACF,WACE,kCACF,WACE,8BACF,WACE,sCACF,WACE,kCACF,WACE,0CACF,WACE,6BACF,WACE,oCACF,WACE,mCACF,WACE,8BACF,WACE,wCACF,WACE,mCACF,WACE,mCACF,WACE,qCACF,WACE,mCACF,WACE,oCACF,WACE,+BACF,WACE,2CACF,WACE,oCACF,WACE,oCACF,WACE,iCACF,WACE,gCACF,WACE,oCACF,WACE,iCACF,WACE,yCACF,WACE,yCACF,WACE,uCACF,WACE,uCACF,WACE,wCACF,WACE,wCACF,WACE,sCACF,WACE,kCACF,WACE,sCACF,WACE,6BACF,WACE,gDACF,WACE,4CACF,WACE,iCACF,WACE,mCACF,WACE,gCACF,WACE,wCACF,WACE,qCACF,WACE,oCACF,WACE,iCACF,WACE,iCACF,WACE,wCACF,WACE,yCACF,WACE,4BACF,WACE,2CACF,WACE,uCACF,WACE,6BACF,WACE,iCACF,WACE,+BACF,WACE,8BACF,WACE,iCACF,WACE,kCACF,WACE,4CACF,WACE,kCACF,WACE,kCACF,WACE,2CACF,WACE,kCACF,WACE,sCACF,WACE,2CACF,WACE,0CACF,WACE,kCACF,WACE,qCACF,WACE,oCACF,WACE,+BACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,sCACF,WACE,mCACF,WACE,uCACF,WACE,uCACF,WACE,4CACF,WACE,qCACF,WACE,sCACF,WACE,mCACF,WACE,oCACF,WACE,wCACF,WACE,wCACF,WACE,oCACF,WACE,0CACF,WACE,uCACF,WACE,qCACF,WACE,qCACF,WACE,oCACF,WACE,0CACF,WACE,qCACF,WACE,yCACF,WACE,mCACF,WACE,kCACF,WACE,mCACF,WACE,mCACF,WACE,+BACF,WACE,uCACF,WACE,6BACF,WACE,oCACF,WACE,8BACF,WACE,8BACF,WACE,mCACF,WACE,kCACF,WACE,iCACF,WACE,uCACF,WACE,sCACF,WACE,iCACF,WACE,+BACF,WACE,qCACF,WACE,oCACF,WACE,uCACF,WACE,6BACF,WACE,4CACF,WACE,wCACF,WACE,qCACF,WACE,sCACF,WACE,8BACF,WACE,oCACF,WACE,qCACF,WACE,gCACF,WACE,iCACF,WACE,8BACF,WACE,+BACF,WACE,oCACF,WACE,sCACF,WACE,mCACF,WACE,oCACF,WACE,sCACF,WACE,uCACF,WACE,mCACF,WACE,yCACF,WACE,sCACF,WACE,0CACF,WACE,kCACF,WACE,+BACF,WACE,kCACF,WACE,mCACF,WACE,4CACF,WACE,6CACF,WACE,0CACF,WACE,2CACF,WACE,oCACF,WACE,qCACF,WACE,0CACF,WACE,2CACF,WACE,0CACF,WACE,+CACF,WACE,+CACF,WACE,sCACF,WACE,4CACF,WACE,6CACF,WACE,6CACF,WACE,iDACF,WACE,wCACF,WACE,qCACF,WACE,qCACF,WACE,sCACF,WACE,oCACF,WACE,6CACF,WACE,oDACF,WACE,oDACF,WACE,yCACF,WACE,0CACF,WACE,6BACF,WACE,8BACF,WACE,gCACF,WACE,mCACF,WACE,mCACF,WACE,kCACF,WACE,yCACF,WACE,mCACF,WACE,uCACF,WACE,0CACF,WACE,mCACF,WACE,mCACF,WACE,wCACF,WACE,kCACF,WACE,qCACF,WACE,oCACF,WACE,gCACF,WACE,8BACF,WACE,+BACF,WACE,kCACF,WACE,8BACF,WACE,0CACF,WACE,gCACF,WACE,gCACF,WACE,4BACF,WACE,gCACF,WACE,6BACF,WACE,6BACF,WACE,6BACF,WACE,oCACF,WACE,gCACF,WACE,iCACF,WACE,kCACF,WACE,kCACF,WACE,sCACF,WACE,gCACF,WACE,8BACF,WACE,iCACF,WACE,gCACF,WACE,8BACF,WACE,mCACF,WACE,8BACF,WACE,iCACF,WACE,iCACF,WACE,yCACF,WACE,iCACF,WACE,gCACF,WACE,kCACF,WACE,8BACF,WACE,kCACF,WACE,kCACF,WACE,qCACF,WACE,mCACF,WACE,+BACF,WACE,qCACF,WACE,0CACF,WACE,6BACF,WACE,kCACF,WACE,iCACF,WACE,iCACF,WACE,2BACF,WACE,iCACF,WACE,wCACF,WACE,4CACF,WACE,gCACF,WACE,uCACF,WACE,+BACF,WACE,sCACF,WACE,iCACF,WACE,mCACF,WACE,iCACF,WACE,mCACF,WACE,2CACF,WACE,gCACF,WACE,oCACF,WACE,oCACF,WACE,gCACF,WACE,0CACF,WACE,gCACF,WACE,yCACF,WACE,qCACF,WACE,kCACF,WACE,+BACF,WACE,6BACF,WACE,oCACF,WACE,qCACF,WACE,6BACF,WACE,gCACF,WACE,mCACF,WACE,oCACF,WACE,qCACF,WACE,kCACF,WACE,sCACF,WACE,sCACF,WACE,yCACF,WACE,+BACF,WACE,gCACF,WACE,oCACF,WACE,2CACF,WACE,6BACF,WACE,4BACF,WACE,gCACF,WACE,wCACF,WACE,6BACF,WACE,oCACF,WACE,iCACF,WACE,kCACF,WACE,4CACF,WACE,kCACF,WACE,8CACF,WACE,wCACF,WACE,yCACF,WACE,gCACF,WACE,8BACF,WACE,oCACF,WACE,yCACF,WACE,2CACF,WACE,wCACF,WACE,uCACF,WACE,sCACF,WACE,8BACF,WACE,qCACF,WACE,kCACF,WACE,mCACF,WACE,oCACF,WACE,6BACF,WACE,6BACF,WACE,8BACF,WACE,4BACF,WACE,6BACF,WACE,oCACF,WACE,iCACF,WACE,8BACF,WACE,2CACF,WACE,4CACF,WACE,qCACF,WACE,2CACF,WACE,wCACF,WACE,sCACF,WACE,0CACF,WACE,8BACF,WACE,0CACF,WACE,gDACF,WACE,6BACF,WACE,qCACF,WACE,8BACF,WACE,qCACF,WACE,8CACF,WACE,uCACF,WACE,0CACF,WACE,wCACF,WACE,0CACF,WACE,oCACF,WACE,0CACF,WACE,qCACF,WACE,iCACF,WACE,wCACF,WACE,uCACF,WACE,iDACF,WACE,kCACF,WACE,yCACF,WACE,kCACF,WACE,oCACF,WACE,sCACF,WACE,0CACF,WACE,yCACF,WACE,kCACF,WACE,6BACF,WACE,4BACF,WACE,mCACF,WACE,kCACF,WACE,mCACF,WACE,kCACF,WACE,mCACF,WACE,iCACF,WACE,qCACF,WACE,4BACF,WACE,gCACF,WACE,iCACF,WACE,qCACF,WACE,4CACF,WACE,4CACF,WACE,6CACF,WACE,0CACF,WACE,2CACF,WACE,0CACF,WACE,yCACF,WACE,6CACF,WACE,yCACF,WACE,6CACF,WACE,mDACF,WACE,mDACF,WACE,oDACF,WACE,iDACF,WACE,sCACF,WACE,wCACF,WACE,4CACF,WACE,wCACF,WACE,qCACF,WACE,uCACF,WACE,iCACF,WACE,gCACF,WACE,oCACF,WACE,8BACF,WACE,wCACF,WACE,gDACF,WACE,kCACF,WACE,sCACF,WACE,4BACF,WACE,kCACF,WACE,kCACF,WACE,iCACF,WACE,+BACF,WACE,0CACF,WACE,mCACF,WACE,uCACF,WACE,kCACF,WACE,+BACF,WACE,+BACF,WACE,qCACF,WACE,oCACF,WACE,iCACF,WACE,oCACF,WACE,2CACF,WACE,sCACF,WACE,6BACF,WACE,kCACF,WACE,oCACF,WACE,0CACF,WACE,sCACF,WACE,sCACF,WACE,8BACF,WACE,mCACF,WACE,kCACF,WACE,yCACF,WACE,0CACF,WACE,kCACF,WACE,mCACF,WACE,oCACF,WACE,qCACF,WACE,6BACF,WACE,iCACF,WACE,sCACF,WACE,+BACF,WACE,6BACF,WACE,iCACF,WACE,kCACF,WACE,gCACF,WACE,+BACF,WACE,uCACF,WACE,sCACF,WACE,kCACF,WACE,yCACF,WACE,kCACF,WACE,mCACF,WACE,uCACF,WACE,gDACF,WACE,qCACF,WACE,oCACF,WACE,8CACF,WACE,sCACF,WACE,0CACF,WACE,4CACF,WACE,uCACF,WACE,oCACF,WACE,8CACF,WACE,sCACF,WACE,mCACF,WACE,qCACF,WACE,oCACF,WACE,sCACF,WACE,uCACF,WACE,oCACF,WACE,oCACF,WACE,mCACF,WACE,qCACF,WACE,0CACF,WACE,yCACF,WACE,wCACF,WACE,yCACF,WACE,kCACF,WACE,uCACF,WACE,mCACF,WACE,sCACF,WACE,0CACF,WACE,yCACF,WACE,qCACF,WACE,oCACF,WACE,qCACF,WACE,2CACF,WACE,6BACF,WACE,mCACF,WACE,kCACF,WACE,qCACF,WACE,oCACF,WACE,mCACF,WACE,8BACF,WACE,iCACF,WACE,+BACF,WACE,8BACF,WACE,gCACF,WACE,gCACF,WACE,gCACF,WACE,gCACF,WACE,kCACF,WACE,kCACF,WACE,6BACF,WACE,8BACF,WACE,qCACF,WACE,gCACF,WACE,uCACF,WACE,4CACF,WACE,gCACF,WACE,qCACF,WACE,+BACF,WACE,6BACF,WACE,kCACF,WACE,qCACF,WACE,6BACF,WACE,4BACF,WACE,wCACF,WACE,uCACF,WACE,sCACF,WACE,4BACF,WACE,uCACF,WACE,iCACF,WACE,+BACF,WACE,uCACF,WACE,uCACF,WACE,yCACF,WACE,wCACF,WACE,0CACF,WACE,6CACF,WACE,mCACF,WACE,2CACF,WACE,8BACF,WACE,iCACF,WACE,4CACF,WACE,2CACF,WACE,kCACF,WACE,4CACF,WACE,yCACF,WACE,mCACF,WACE,0CACF,WACE,qCACF,WACE,+BACF,WACE,6BACF,WACE,kCACF,WACE,kCACF,WACE,8BACF,WACE,mCACF,WACE,gCACF,WACE,kCACF,WACE,0CACF,WACE,4BACF,WACE,yCACF,WACE,wCACF,WACE,iCACF,WACE,gCACF,WACE,kCACF,WACE,sCACF,WACE,iCACF,WACE,oCACF,WACE,+CACF,WACE,0CACF,WACE,4BACF,WACE,wCACF,WACE,mCACF,WACE,4CACF,WACE,uCACF,WACE,6BACF,WACE,qCACF,WACE,kCACF,WACE,0CACF,WACE,qCACF,WACE,mCACF,WACE,uCACF,WACE,qCACF,WACE,uCACF,WACE,wCACF,WACE,8BACF,WACE,kCACF,WACE,wCACF,WACE,gCACF,WACE,sCACF,WACE,uCACF,WACE,0CACF,WACE,6BACF,WACE,iCACF,WACE,8BACF,WACE,6BACF,WACE,mCACF,WACE,kCACF,WACE,kCACF,WACE,+BACF,WACE,2CACF,WACE,0CACF,WACE,yCACF,WACE,4CACF,WACE,6CACF,WACE,mCACF,WACE,8BACF,WACE,kCACF,WACE,sCACF,WACE,gCACF,WACE,8BACF,WACE,uCACF,WACE,qCACF,WACE,+BACF,WACE,2BACF,WACE,wCACF,WACE,sCACF,WACE,yCACF,WACE,+BACF,WACE,mCACF,WACE,kCACF,WACE,oCACF,WACE,uCACF,WACE,yCACF,WACE,yCACF,WACE,oCACF,WACE,4BACF,WACE,+BACF,WACE,sCACF,WACE,wCACF,WACE,sCACF,WACE,mCACF,WACE,gCACF,WACE,yCACF,WACE,qCACF,WACE,mCACF,WACE,6CACF,WACE,qCACF,WACE,sCACF,WACE,uCACF,WACE,qCACF,WACE,qCACF,WACE,2CACF,WACE,2CACF,WACE,2CACF,WACE,kCACF,WACE,qCACF,WACE,kCACF,WACE,kCACF,WACE,kCACF,WACE,4BACF,WACE,sCACF,WACE,kCACF,WACE,mCACF,WACE,yCACF,WACE,oCACF,WACE,oCACF,WACE,yCACF,WACE,oCACF,WACE,gCACF,WACE,iCACF,WACE,kCACF,WACE,sCACF,WACE,oDACF,WACE,iCACF,WACE,gCACF,WACE,mCACF,WACE,iCACF,WACE,wCACF,WACE,wCACF,WACE,uCACF,WACE,+BACF,WACE,oCACF,WACE,oCACF,WACE,oCACF,WACE,0CACF,WACE,uCACF,WACE,8BACF,WACE,mCACF,WACE,mCACF,WACE,uCACF,WACE,uCACF,WACE,4CACF,WACE,oCACF,WACE,6BACF,WACE,iCACF,WACE,iCACF,WACE,8BACF,WACE,yCACF,WACE,+CACF,WACE,sCACF,WACE,6CACF,WACE,2CACF,WACE,0CACF,WACE,yCACF,WACE,6CACF,WACE,sCACF,WACE,oCACF,WACE,gCACF,WACE,qCACF,WACE,oCACF,WACE,sCACF,WACE,mCACF,WACE,2CACF,WACE,uCACF,WACE,0CACF,WACE,gCACF,WACE,wCACF,WACE,qCACF,WACE,oCACF,WACE,wCACF,WACE,kCACF,WACE,qCACF,WACE,gCACF,WACE,iCACF,WACE,+BACF,WACE,sCACF,WACE,sCACF,WACE,+BACF,WACE,sCACF,WACE,+BACF,WACE,gCACF,WACE,8BACF,WACE,iCACF,WACE,6BACF,WACE,gCACF,WACE,iCACF,WACE,qCACF,WACE,iCACF,WACE,0CACF,WACE,yCACF,WACE,4CACF,WACE,mDACF,WACE,6CACF,WACE,oDACF,WACE,0CACF,WACE,iDACF,WACE,4CACF,WACE,mDACF,WACE,oCACF,WACE,6BACF,WACE,mCACF,WACE,iCACF,WACE,gCACF,WACE,8BACF,WACE,qCACF,WACE,4CACF,WACE,6CACF,WACE,2CACF,WACE,gCACF,WACE,iCACF,WACE,+BACF,WACE,mCACF,WACE,gCACF,WACE,wCACF,WACE,iCACF,WACE,+BACF,WACE,mCACF,WACE,uCACF,WACE,gCACF,WACE,wCACF,WACE,yCACF,WACE,8CACF,WACE,0CACF,WACE,yCACF,WACE,gDACF,WACE,sCACF,WACE,mCACF,WACE,uCACF,WACE,uCACF,WACE,+BACF,WACE,mCACF,WACE,uCACF,WACE,yCACF,WACE,4CACF,WACE,mCACF,WACE,uCACF,WACE,mCACF,WACE,0CACF,WACE,sCACF,WACE,4CACF,WACE,sCACF,WACE,wCACF,WACE,uCACF,WACE,qCACF,WACE,4CACF,WACE,6BACF,WACE,iCACF,WACE,8BACF,WACE,sCACF,WACE,gDACF,WACE,uCACF,WACE,uCACF,WACE,sCACF,WACE,wCACF,WACE,sCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,qCACF,WACE,kCACF,WACE,wCACF,WACE,uCACF,WACE,sCACF,WACE,uCACF,WACE,wCACF,WACE,8BACF,WACE,oCACF,WACE,qCACF,WACE,0CACF,WACE,2CACF,WACE,qCACF,WACE,sCACF,WACE,iDACF,WACE,gDACF,WACE,gDACF,WACE,4BACF,WACE,8BACF,WACE,kCACF,WACE,uCACF,WACE,2CACF,WACE,+CACF,WACE,kCACF,WACE,0CACF,WACE,2CACF,WACE,4BACF,WACE,iCACF,WACE,gCACF,WACE,mCACF,WACE,8BACF,WACE,0CACF,WACE,4BACF,WACE,8BACF,WACE,mCACF,WACE,mCACF,WACE,oCACF,WACE,yCACF,WACE,2CACF,WACE,4CACF,WACE,sCACF,WACE,sCACF,WACE,oCACF,WACE,qCACF,WACE,2CACF,WACE,kDACF,WACE,4CACF,WACE,sCACF,WACE,wCACF,WACE,iCACF,WACE,iCACF,WACE,iCACF,WACE,sCACF,WACE,+BACF,WACE,6BACF,WACE,iCACF,WACE,gCACF,WACE,6BACF,WACE,0CACF,WACE,iCACF,WACE,iCACF,WACE,8BACF,WACE,oCACF,WACE,kCACF,WACE,2CACF,WACE,gDACF,WACE,uCACF,WACE,uCACF,WACE,gCACF,WACE,qCACF,WACE,oCACF,WACE,8BACF,WACE,uCACF,WACE,sCACF,WACE,oCACF,WACE,6CACF,WACE,mDACF,WACE,gCACF,WACE,qCACF,WACE,mCACF,WACE,uCACF,WACE,+BACF,WACE,mCACF,WACE,gCACF,WACE,+CACF,WACE,oCACF,WACE,iCACF,WACE,gCACF,WACE,kCACF,WACE,wCACF,WACE,sCACF,WACE,oCACF,WACE,wCACF,WACE,sCACF,WACE,8BACF,WACE,oCACF,WACE,wCACF,WACE,8CACF,WACE,4CACF,WACE,mCACF,WACE,6BACF,WACE,8BACF,WACE,qCACF,WACE,8BACF,WACE,8BACF,WACE,6CACF,WACE,yCACF,WACE,wCACF,WACE,+CACF,WACE,sCACF,WACE,qCACF,WACE,kCACF,WACE,mCACF,WACE,oCACF,WACE,gCACF,WACE,+BACF,WACE,kCACF,WACE,0CACF,WACE,gCACF,WACE,qCACF,WACE,sCACF,WACE,kCACF,WACE,0CACF,WACE,kCACF,WACE,kCACF,WACE,+BACF,WACE,+BACF,WACE,6BACF,WACE,wCACF,WACE,gCACF,WACE,oCACF,WACE,+BACF,WACE,sCACF,WACE,8CACF,WACE,oCACF,WACE,0CACF,WACE,yCACF,WACE,uCACF,WACE,oCACF,WACE,6CACF,WACE,gCACF,WACE,oCACF,WACE,+BACF,WACE,kCACF,WACE,mCACF,WACE,sCACF,WACE,+BACF,WACE,kCACF,WACE,kCACF,WACE,iCACF,WACE,6CACF,WACE,8BACF,WACE,kCACF,WACE,+BACF,WACE,6CACF,WACE,mCACF,WACE,uCACF,WACE,qCACF,WACE,sCACF,WACE,iCACF,WACE,oCACF,WACE,mCACF,WACE,wCACF,WACE,gCACF,WACE,2CACF,WACE,qCACF,WACE,gCACF,WACE,kCACF,WACE,oCACF,WACE,+BACF,WACE,sCACF,WACE,sCACF,WACE,6CACF,WACE,uCACF,WACE,gCACF,WACE,6BACF,WACE,yCACF,WACE,qCACF,WACE,8CACF,WACE,6CACF,WACE,oCACF,WACE,qCACF,WACE,wCACF,WACE,yCACF,WACE,uCACF,WACE,8BACF,WACE,+BACF,WACE,+BACF,WACE,iCACF,WACE,6BACF,WACE,4BACF,WACE,6BACF,WACE,oCACF,WACE,mCACF,WACE,4CACF,WACE,kCACF,WACE,qCACF,WACE,uCACF,WACE,gCACF,WACE,kCACF,WACE,kCACF,WACE,sCACF,WACE,6BACF,WACE,iCACF,WACE,gCACF,WACE,qCACF,WACE,gCACF,WACE,8BACF,WACE,gCACF,WACE,qCACF,WACE,iCACF,WACE,sCACF,WACE,+BACF,WACE,+BACF,WACE,gCACF,WACE,8BACF,WACE,mCACF,WACE,8CACF,WACE,6CACF,WACE,6CACF,WACE,wCACF,WACE,4CACF,WACE,8CACF,WACE,qCACF,WACE,mCACF,WACE,2CACF,WACE,qCACF,WACE,2BACF,WACE,gCACF,WACE,sCACF,WACE,mCACF,WACE,+BACF,WACE,mCACF,WACE,iCACF,WACE,wCACF,WACE,6CACF,WACE,gDACF,WACE,gCACF,WACE,mCACF,WACE,yCACF,WACE,6BACF,WACE,6BACF,WACE,yCACF,WACE,4CACF,WACE,uCACF,WACE,oCACF,WACE,wCACF,WACE,sCACF,WACE,gCACF,WACE,oCACF,WACE,+CACF,WACE,0CACF,WACE,4CACF,WACE,gDACF,WACE,oDACF,WACE,iDACF,WACE,iCACF,WACE,iCACF,WACE,+CACF,WACE,8CACF,WACE,gDACF,WACE,2CACF,WACE,4CACF,WACE,sCACF,WACE,yCACF,WACE,0CACF,WACE,+CACF,WACE,iDACF,WACE,iDACF,WACE,4CACF,WACE,8CACF,WACE,0CACF,WACE,uCACF,WACE,uCACF,WACE,wCACF,WACE,yCACF,WACE,iDACF,WACE,uCACF,WACE,oCACF,WACE,8BACF,WACE,2CACF,WACE,uCACF,WACE,+BACF,WACE,oCACF,WACE,6BACF,WACE,+BACF,WACE,iCACF,WACE,gCACF,WACE,qCACF,WACE,wCACF,WACE,sCACF,WACE,+CACF,WACE,mCACF,WACE,iCACF,WACE,mCACF,WACE,+BACF,WACE,gCACF,WACE,mCACF,WACE,sCACF,WACE,6BACF,WACE,sCACF,WACE,8CACF,WACE,8CACF,WACE,4CACF,WACE,kDACF,WACE,kDACF,WACE,oEACF,WACE,oEACF,WACE,+CACF,WACE,+CACF,WACE,6CACF,WACE,4CACF,WACE,0CACF,WACE,0CACF,WACE,+CACF,WACE,wCACF,WACE,4DACF,WACE,wCACF,WACE,oDACF,WACE,sEACF,WACE,mDACF,WACE,iCACF,WACE,iCACF,WACE,uCACF,WACE,0CACF,WACE,mCACF,WACE,4BACF,WACE,sCACF,WACE,kCACF,WACE,sCACF,WACE,iCACF,WACE,kCACF,WACE,0CACF,WACE,qCACF,WACE,sCACF,WACE,qCACF,WACE,kCACF,WACE,mCACF,WACE,mCACF,WACE,sCACF,WACE,4BACF,WACE,mCACF,WACE,iCACF,WACE,uCACF,WACE,+BACF,WACE,qCACF,WACE,gCACF,WACE,mCACF,WACE,oCACF,WACE,6BACF,WACE,wCACF,WACE,oCACF,WACE,6BACF,WACE,sCACF,WACE,4BACF,WACE,qCACF,WACE,+BACF,WACE,8BACF,WACE,sCACF,WACE,mCACF,WACE,mCACF,WACE,4BACF,WACE,kCACF,WACE,wCACF,WACE,sCACF,WACE,0CACF,WACE,yCACF,WACE,gCACF,WACE,sCACF,WACE,sCACF,WACE,0CACF,WACE,sCACF,WACE,8BACF,WACE,mCACF,WACE,oCACF,WACE,8BACF,WACE,+BACF,WACE,mCACF,WACE,wCACF,WACE,0CACF,WACE,uCACF,WACE,uCACF,WACE,wCACF,WACE,oCACF,WACE,0CACF,WACE,wCACF,WACE,sCACF,WACE,uCACF,WACE,4CACF,WACE,mCACF,WACE,2CACF,WACE,qCACF,WACE,qCACF,WACE,sCACF,WACE,sCACF,WACE,0CACF,WACE,+BACF,WACE,oCACF,WACE,mCACF,WACE,0CACF,WACE,2CACF,WACE,gCACF,WACE,+BACF,WACE,6BACF,WACE,oCACF,WACE,8CACF,WACE,kCACF,WACE,qCACF,WACE,uCACF,WACE,kCACF,WACE,8BACF,WACE,8BACF,WACE,+CACF,WACE,8CACF,WACE,+CACF,WACE,8CACF,WACE,sCACF,WACE,6BACF,WACE,oCACF,WACE,0CACF,WACE,gCACF,WACE,8BACF,WACE,6CACF,WACE,mCACF,WACE,8BACF,WACE,iCACF,WACE,mCACF,WACE,+BACF,WACE,mCACF,WACE,wCACF,WACE,iCACF,WACE,8BACF,WACE,gDACF,WACE,iDACF,WACE,gCACF,WACE,kCACF,WACE,sCACF,WACE,kCACF,WACE,sCACF,WACE,+BACF,WACE,kCACF,WACE,8BACF,WACE,sCACF,WACE,oCACF,WACE,+CACF,WACE,2CACF,WACE,gCACF,WACE,sCACF,WACE,gCACF,WACE,uCACF,WACE,mCACF,WACE,mCACF,WACE,+CACF,WACE,kCACF,WACE,yCACF,WACE,6CACF,WACE,8BACF,WACE,mCACF,WACE,uCACF,WACE,mCACF,WACE,uCACF,WACE,oCACF,WACE,wCACF,WACE,iCACF,WACE,qCACF,WACE,uCACF,WACE,+CACF,WACE,mDACF,WACE,uCACF,WACE,sCACF,WACE,oCACF,WACE,qCACF,WACE,qCACF,WACE,kCACF,WACE,6BACF,WACE,iCACF,WACE,sCACF,WACE,kCACF,WACE,qCACF,WACE,+CACF,WACE,oDACF,WACE,uDACF,WACE,sCACF,WACE,0CACF,WACE,yCACF,WACE,4BACF,WACE,uCACF,WACE,kCACF,WACE,oCACF,WACE,yCACF,WACE,mCACF,WACE,mCACF,WACE,+BACF,WACE,uCACF,WACE,mCACF,WACE,4BACF,WACE,kCACF,WACE,uCACF,WACE,qCACF,WACE,8BACF,WACE,6BACF,WACE,iCACF,WACE,mCACF,WACE,iCACF,WACE,wCACF,WACE,qCACF,WACE,iCACF,WACE,gCACF,WACE,sCACF,WACE,oCACF,WACE,oCACF,WACE,sCACF,WACE,uCACF,WACE,6CACF,WACE,gDACF,WACE,8CACF,WACE,2CACF,WACE,2CACF,WACE,qCACF,WACE,gCACF,WACE,gCACF,WACE,uCACF,WACE,iCACF,WACE,mCACF,WACE,wCACF,WACE,mCACF,WACE,uCACF,WACE,2CACF,WACE,iCACF,WACE,qCACF,WACE,yCACF,WACE,uCACF,WACE,qCACF,WACE,+BACF,WACE,sCACF,WACE,kCACF,WACE,iCACF,WACE,8BACF,WACE,iCACF,WACE,wCACF,WACE,gCACF,WACE,uCACF,WACE,kCACF,WACE,yCACF,WACE,oCACF,WACE,8BACF,WACE,4BACF,WACE,8BACF,WACE,mCACF,WACE,kCACF,WACE,8BACF,WACE,6BACF,WACE,iCACF,WACE,8BACF,WACE,gCACF,WACE,kCACF,WACE,6BACF,WACE,6BACF,WACE,sCACF,WACE,gCACF,WACE,8BACF,WACE,6BACF,WACE,mCACF,WACE,kDACF,WACE,kCACF,WACE,oCACF,WACE,0CACF,WACE,kCACF,WACE,uCACF,WACE,sCACF,WACE,sCACF,WACE,yCACF,WACE,oCACF,WACE,oCACF,WACE,qCACF,WACE,4BACF,WACE,gCACF,WACE,4BACF,WACE,6BACF,WACE,iCACF,WACE,kCACF,WACE,mCACF,WACE,wCACF,WACE,yCACF,WACE,yCACF,WACE,0CACF,WACE,kCACF,WACE,sCACF,WACE,2BACF,WACE,+BACF,WACE,oCACF,WACE,sCACF,WACE,oCACF,WACE,qCACF,WACE,iCACF,WACE,kCACF,WACE,6BACF,WACE,oCACF,WACE,oCACF,WACE,oCACF,WACE,oCACF,WACE,iCACF,WACE,+BACF,WACE,wCACF,WACE,gCACF,WACE,+BACF,WACE,oCACF,WACE,4BACF,WACE,gCACF,WACE,iCACF,WACE,kCACF,WACE,qCACF,WACE,iCACF,WACE,sCACF,WACE,8CACF,WACE,8CACF,WACE,2CACF,WACE,4CACF,WACE,wCACF,WACE,+CACF,WACE,uCACF,WACE,kCACF,WACE,mCACF,WACE,0CACF,WACE,2CACF,WACE,yCACF,WACE,mCACF,WACE,oCACF,WACE,sCACF,WACE,uCACF,WACE,qCACF,WACE,iCACF,WACE,qCACF,WACE,wCACF,WACE,4CACF,WACE,oCACF,WACE,mCACF,WACE,sCACF,WACE,oCACF,WACE,yCACF,WACE,mCACF,WACE,uCACF,WACE,qCACF,WACE,yCACF,WACE,kCACF,WACE,iCACF,WACE,sCACF,WACE,mCACF,WACE,oCACF,WACE,kCACF,WACE,oCACF,WACE,mCACF,WACE,qCACF,WACE,oCACF,WACE,sCACF,WACE,kCACF,WACE,iCACF,WACE,8BACF,WACE,mCACF,WACE,uCACF,WACE,mCACF,WACE,uCACF,WACE,kCACF,WACE,gCACF,WACE,oCACF,WACE,wCACF,WACE,oCACF,WACE,mCACF,WACE,kCACF,WACE,2CACF,WACE,gCACF,WACE,oCACF,WACE,iCACF,WACE,+BACF,WACE,+BACF,WACE,wCACF,WACE,0CACF,WACE,sCACF,WACE,kCACF,WACE,kCACF,WACE,gCACF,WACE,sCACF,WACE,6BACF,WACE,8BACF,WACE,oCACF,WACE,kCACF,WACE,8BACF,WACE,qCACF,WACE,mCACF,WACE,wCACF,WACE,8BACF,WACE,oCACF,WACE,gCACF,WACE,kCACF,WACE,wCACF,WACE,sCACF,WACE,iCACF,WACE,iCACF,WACE,sCACF,WACE,oCACF,WACE,2BACF,WACE,4BACF,WACE,kCACF,WACE,sCACF,WACE,oCACF,WACE,gCACF,WACE,+BACF,WACE,gCACF,WACE,6BACF,WACE,iCACF,WACE,iCACF,WACE,0CACF,WACE,sCACF,WACE,gCACF,WACE,mCACF,WACE,qCACF,WACE,mCACF,WACE,6BACF,WACE,mCACF,WACE,mCACF,WACE,qCACF,WACE,uCACF,WACE,qCACF,WACE,kCACF,WACE,kCACF,WACE,iCACF,WACE,sCACF,WACE,6CACF,WACE,uCACF,WACE,6CACF,WACE,qDACF,WACE,2CACF,WACE,mCACF,WACE,+BACF,WACE,iCACF,WACE,8BACF,WACE,qCACF,WACE,kCACF,WACE,6BACF,WACE,qCACF,WACE,iCACF,WACE,qCACF,WACE,0CACF,WACE,mCACF,WACE,0CACF,WACE,2CACF,WACE,kCACF,WACE,uCACF,WACE,gCACF,WACE,6BACF,WACE,6CACF,WACE,gCACF,WACE,oCACF,WACE,iCACF,WACE,qCACF,G;ACh0IF;;CAAA,CAIA,WACE,iBACA,gBACA,kBACA,kCACA,mHAGF,WACE,iBACA,gBACA,kBACA,kCACA,mHAGF,WACE,iBACA,gBACA,kBACA,kCACA,mHAGF,WACE,iBACA,gBACA,kBACA,kCACA,mHAGF,WACE,iBACA,gBACA,kBACA,kCACA,mHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,0BACA,gBACA,kBACA,kCACA,qHAGF,WACE,0BACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,qHAGF,WACE,iBACA,gBACA,kBACA,kCACA,I;ACxIF,qCACA,qCACA,qCACA,qCAGA,8CACA,0DAGA,oCACA,gE;ACZA,w1B;ACAA,SCIA,cACE,cACA,eACA,iBACA,sBACA,yBACA,kBAEA,aACE,eACA,kBACA,yBACA,yHAEA,aAME,mKAEA,eACE,qBAIJ,gBACE,qBAGF,gBACE,qBAGF,gBACE,qBAGF,gBACE,qBAGF,gBACE,qBAGF,gBACE,oBAGF,gCACE,qBACA,0BAGF,yBACE,qBAGF,iBACE,4CAGF,oBAEE,6BAGF,iBACE,yBAGF,gBACE,8BAIJ,cAEE,YACA,cAGF,qBACE,kBACA,yBACA,WACA,aACA,sBACA,eACA,gBACA,cACA,mBACA,kBACA,oBAGF,aACE,uBACA,uBAIA,YACE,mBACA,8BAEA,cACE,mBACA,iCAEA,mBACE,sBACA,eACA,kDAEA,aACE,iBACA,eACA,gCAIJ,UACE,qBACA,6BAIJ,WACE,qBACA,sBAIJ,wBACE,sBACA,gBACA,kBACA,YACA,iBACA,+CAEA,UAEE,uCAGF,WACE,eACA,iBACA,iBACA,cAMR,qBACE,0BACA,gCAEA,QACE,gBACA,mBAGF,SACE,4BACA,oBAGF,sBACE,yBAEA,SACE,gCAIJ,WACE,sDAEA,yBACE,WAKN,cACE,MACA,WACA,WACA,SACA,aACA,eCnMA,eACE,qBAuBF,mBACE,YACA,gEAGF,kBAEE,gBACA,eACA,gEACA,+CAGF,oBACE,8DAGF,cAEE,6BACA,wDAGF,aAEE,+BAGF,gBACE,eACA,0BAGF,iBACE,SACA,WACA,cACA,iCAGF,iBACE,oCAGF,oBACE,yBCtEc,aDwEd,iBACA,kBACA,WACA,eACA,4BACA,gBACA,uBACA,mBACA,oCAGF,kBACE,oBAGF,2BACE,6BAEA,QACE,eACA,iBACA,sBAGF,UACE,SACA,4BAGF,UACE,0BAGF,YACE,0BACA,kCApGJ,mBACE,sBACA,uGAEA,mBAEE,uCAGF,gBACE,mBAgGJ,WACE,uBAGF,aACE,UAGF,eACE,iBACA,kBACA,YAIJ,YACE,YACA,sBACA,+BAGF,sBACE,mBACA,gBACA,cACA,kFAGF,WAGE,+BACA,yBACA,cACA,6GAEA,uBACE,2CAIJ,0BAEE,qCACA,yBC7JgB,kBD+JhB,WACA,eACA,iBACA,uBAGF,sBACE,mBACA,0BACA,gBACA,qBAGF,YACE,sGAGF,oBAKE,mBACA,WACA,gBAGF,uBACE,gBACA,mBACA,uBACA,gBACA,gBAGF,YACE,gBACA,YACA,sBAGF,eACE,cACA,gBAGF,YACE,kBAGF,gBACE,kBAGF,YACE,4DACA,qBAGF,WACE,mBACA,eAGF,YACE,mBACA,mCAEA,cACE,iBACA,6BAGF,eACE,gBACA,kBACA,OACA,4BAGF,eACE,aACA,aACA,oCAEA,eACE,kCAGF,wBCxPc,cD0PZ,gBACA,kBACA,iBACA,YACA,uEAEA,UAEE,mDAGF,WACE,eACA,iBACA,iBACA,0CAlQN,mBACE,sBACA,cAqQE,eACA,iBACA,uHArQF,mBAEE,+CAGF,gBACE,2DAiQA,cACE,gCAKN,MACE,6BAGF,MACE,aACA,eACA,oBACA,YACA,cACA,qBAGF,oBACE,uCAIJ,UAEE,uCAGF,eACE,YACA,yEAGF,qBAEE,qBAGF,mBACE,cAGF,YACE,iBACA,iBACA,SACA,aAGF,YACE,SACA,YACA,sBACA,QAIF,YACE,SACA,eE9UF,yBACE,0BAEA,iBACE,gBACA,OACA,oBAGF,WACE,sBAGF,WAKE,iBACA,gBACA,oBACA,wBAPA,cACE,oCAWJ,iBACE,gBACA,OACA,+BAGF,iBACE,UAIJ,eACE,aAGF,iBACE,UACA,8BAEA,WACE,YACA,UAIJ,YACE,oBACA,eACA,8BACA,sBAEA,mBACE,YAGF,UACE,gBAKF,YACE,SACA,eACA,6BACA,6DAEA,YAEE,gBAIJ,SACE,8GAEA,wBAGE,mCAGF,iBACE,gCAIJ,cAEE,YACA,cACA,iBACA,uBAGF,iBACE,iBACA,4BAGF,cACE,YACA,cACA,WACA,cAIJ,kBACE,SAGF,YACE,uBAGF,YACE,oBAIA,eACE,cACA,aAGF,kBACE,iBCpIF,SACE,WACA,4BAGF,WACE,aACA,MCRJ,YACE,iBACA,sBACA,mBACA,iBAEA,SACE,iBACA,gBAIJ,4BACE,GAGF,aHhBkB,+BGoBlB,WAGE,YAGF,eACE,OAGF,aACE,eAGE,YACE,iBAGF,YACE,YACA,mBAGF,wBACE,KC7CN,WACE,oBACA,WAIA,UACE,gBAGF,wBACE,kCAIJ,aACE,mBACA,mBACA,oBACA,YACA,cACA,+BACA,YACA,iBAGF,YACE,iCACA,eACA,8BACA,mBACA,mBAEA,iBACE,iCAIJ,WACE,cACA,YAGF,YACE,mBAGF,YACE,YACA,yBACA,iEAGF,qBAGE,aAGF,8BACE,qBAEA,QACE,iBACA,gCAGF,aACE,oBACA,YACA,sCAGF,QACE,gBACA,WACA,gBAIJ,YACE,mBACA,mCAIA,SACE,oCAGF,mBACE,eACA,eACA,qBACA,6BAGF,YACE,OACA,iBACA,mBACA,+EAGF,wBAEE,kCAIJ,qBAEE,kBAGF,SACE,+BACA,YACA,wBAEA,wBACE,yCAIJ,WAEE,iBAGF,YACE,gBAGF,YACE,wBAGF,eACE,MACA,mBAGF,UACE,sBAEA,eACE,mBACA,wBAGF,YACE,kBACA,mBACA,oBACA,0BAIJ,iBACE,YACE,mBAGF,eACE,cACA,YCrKJ,WACE,cAEA,SACE,2BAEA,kBACE,mDAGF,UACE,cACA,aAIJ,QACE,mBAGF,cACE,iBACA,YACA,mEAGF,WAEE,iBACA,eACA,mBAGF,aACE,kBACA,SAIJ,gBACE,kBAGF,WACE,gEC1CA,eAEE,iCAIF,kBACE,2BAIJ,cACE,wBAGF,QACE,mBACA,OAGF,YACE,MAGF,MACE,mgBC9BA,wBAiBE,qFAGF,wBAEE,2QAGF,wBAME,wCAGF,wBACE,yBAGF,0BACE,0CAGF,oBACE,wEAGF,wBAEE,yXAGF,aAYE,yEAGF,mCAGE,sCAGF,wBACE,4BAGF,wBACE,iCAGF,wBACE,mJAGF,wBAGE,sBAGF,2BACE,4DAGF,wBAEE,0BAGF,8BACE,oFAGF,mBAGE,mHAGF,iBAIE,mCAGF,qBACE,iDAGF,aAEE,yBACA,2CAGF,qBACE,wBACE,aC1HN,mBACE,4CACA,mBACA,kBACA,iBCFF,4BACE,mBACA,kBACA,eACA,UACA,WACA,qBACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,mCAGA,kCAGA,kCAGA,6BAGA,wBAEA,cACE,wBAGF,cACE,wBAGF,cACE,wBAGF,cACE,0BAGF,qBACE,uCAEA,qBACE,2BAIJ,UACE,wCAEA,0BACE,kDAUN,mBAEE,WACA,kBACA,mBACA,oBACA,oBACA,cACA,qBACA,iBAGA,6BACA,mBAGF,WACE,sBAGF,WACE,wBAGF,WACE,oBAGF,WACE,oBAGF,WACE,cAGF,2BACE,8BACA,0BACA,iBACA,sBAEA,UACE,cACA,WACA,YACA,WACA,qBACA,+BAGF,uEACE,6BAGF,uEACE,8BAGF,uEACE,8BAGF,uEACE,4BAIJ,WACE,yBAGF,WACE,uBAGF,WACE,qBAGF,WACE,uBAGF,WACE,sBAGF,WACE,uBAGF,WACE,oBAGF,WACE,gDAGF,aAEE,gCACA,mBACA,4DAGF,mCAEE,cCvLF,KAGE,iBACE,sBACA,OAGF,UACE,KAGF,yBACE,wLAMF,uBAeE,MAGF,yBACE,UAGF,yBACE,SAGF,sBACE,wBAIF,2BACE,oBAIF,4BACE,0BAIF,mBACE,OAGF,UACE,SACA,UACA,UAGF,UACE,4CCnEJ,aACE,2DACE,4CAIJ,6CACE,kBAGE,aAGF,gBACE,uCAIJ,gBACE,iBACE,4CAIJ,uBACE,cAIE,OAGF,aACE,cACA,QAGF,cACE,YACA,qBAGF,oBACE,gBAGF,aACE,mBAGF,6BACE,UAGF,cACE,iBACA,kBACA,qBACA,eACA,oBAEA,gBACE,cAIJ,sBACE,mBAEA,SACE,OAIJ,oBACE,YACA,MAGF,cACE,YAGF,YACE,gBAGF,mBACE,yCAEA,UAEE,2BAIJ,UACE,wCAGF,OACE,oEAIJ,aACE,cACE,cACA,mEAIJ,aAEI,SACE,cACA,cAGF,cACE,cACA,cAGF,cACE,cACA,cAGF,SACE,cACA,cAGF,aACE,cACA,cAGF,cACE,cACA,cAGF,SACE,cACA,cAGF,cACE,cACA,cAGF,cACE,cACA,eAGF,UACE,cACA,4CAKN,YACE,YACE,aAGF,SACE,WAGF,SACE,0CAGF,YACE,oBAIJ,KACE,aACE,kD","sources":["webpack://wallabag/./node_modules/materialize-css/dist/css/materialize.css","webpack://wallabag/./node_modules/annotator/css/annotator.css","webpack://wallabag/./node_modules/material-design-icons-iconfont/dist/material-design-icons.css","webpack://wallabag/./node_modules/lato-font/css/lato-font.css","webpack://wallabag/./assets/themes/_global/global.scss","webpack://wallabag/./node_modules/highlight.js/styles/atom-one-light.css","webpack://wallabag/./assets/themes/material/css/index.scss","webpack://wallabag/./assets/themes/material/css/article.scss","webpack://wallabag/./assets/themes/material/css/cards.scss","webpack://wallabag/./assets/themes/material/css/variables.scss","webpack://wallabag/./assets/themes/material/css/entries.scss","webpack://wallabag/./assets/themes/material/css/filters.scss","webpack://wallabag/./assets/themes/material/css/layout.scss","webpack://wallabag/./assets/themes/material/css/nav.scss","webpack://wallabag/./assets/themes/material/css/sidenav.scss","webpack://wallabag/./assets/themes/material/css/various.scss","webpack://wallabag/./assets/themes/material/css/dark_theme.scss","webpack://wallabag/./assets/themes/material/css/fonts.scss","webpack://wallabag/./assets/themes/material/css/icons.scss","webpack://wallabag/./assets/themes/material/css/print.scss","webpack://wallabag/./assets/themes/material/css/media_queries.scss"],"sourcesContent":["/*!\n * Materialize v0.98.2 (http://materializecss.com)\n * Copyright 2014-2015 Materialize\n * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)\n */\n.materialize-red {\n background-color: #e51c23 !important;\n}\n\n.materialize-red-text {\n color: #e51c23 !important;\n}\n\n.materialize-red.lighten-5 {\n background-color: #fdeaeb !important;\n}\n\n.materialize-red-text.text-lighten-5 {\n color: #fdeaeb !important;\n}\n\n.materialize-red.lighten-4 {\n background-color: #f8c1c3 !important;\n}\n\n.materialize-red-text.text-lighten-4 {\n color: #f8c1c3 !important;\n}\n\n.materialize-red.lighten-3 {\n background-color: #f3989b !important;\n}\n\n.materialize-red-text.text-lighten-3 {\n color: #f3989b !important;\n}\n\n.materialize-red.lighten-2 {\n background-color: #ee6e73 !important;\n}\n\n.materialize-red-text.text-lighten-2 {\n color: #ee6e73 !important;\n}\n\n.materialize-red.lighten-1 {\n background-color: #ea454b !important;\n}\n\n.materialize-red-text.text-lighten-1 {\n color: #ea454b !important;\n}\n\n.materialize-red.darken-1 {\n background-color: #d0181e !important;\n}\n\n.materialize-red-text.text-darken-1 {\n color: #d0181e !important;\n}\n\n.materialize-red.darken-2 {\n background-color: #b9151b !important;\n}\n\n.materialize-red-text.text-darken-2 {\n color: #b9151b !important;\n}\n\n.materialize-red.darken-3 {\n background-color: #a21318 !important;\n}\n\n.materialize-red-text.text-darken-3 {\n color: #a21318 !important;\n}\n\n.materialize-red.darken-4 {\n background-color: #8b1014 !important;\n}\n\n.materialize-red-text.text-darken-4 {\n color: #8b1014 !important;\n}\n\n.red {\n background-color: #F44336 !important;\n}\n\n.red-text {\n color: #F44336 !important;\n}\n\n.red.lighten-5 {\n background-color: #FFEBEE !important;\n}\n\n.red-text.text-lighten-5 {\n color: #FFEBEE !important;\n}\n\n.red.lighten-4 {\n background-color: #FFCDD2 !important;\n}\n\n.red-text.text-lighten-4 {\n color: #FFCDD2 !important;\n}\n\n.red.lighten-3 {\n background-color: #EF9A9A !important;\n}\n\n.red-text.text-lighten-3 {\n color: #EF9A9A !important;\n}\n\n.red.lighten-2 {\n background-color: #E57373 !important;\n}\n\n.red-text.text-lighten-2 {\n color: #E57373 !important;\n}\n\n.red.lighten-1 {\n background-color: #EF5350 !important;\n}\n\n.red-text.text-lighten-1 {\n color: #EF5350 !important;\n}\n\n.red.darken-1 {\n background-color: #E53935 !important;\n}\n\n.red-text.text-darken-1 {\n color: #E53935 !important;\n}\n\n.red.darken-2 {\n background-color: #D32F2F !important;\n}\n\n.red-text.text-darken-2 {\n color: #D32F2F !important;\n}\n\n.red.darken-3 {\n background-color: #C62828 !important;\n}\n\n.red-text.text-darken-3 {\n color: #C62828 !important;\n}\n\n.red.darken-4 {\n background-color: #B71C1C !important;\n}\n\n.red-text.text-darken-4 {\n color: #B71C1C !important;\n}\n\n.red.accent-1 {\n background-color: #FF8A80 !important;\n}\n\n.red-text.text-accent-1 {\n color: #FF8A80 !important;\n}\n\n.red.accent-2 {\n background-color: #FF5252 !important;\n}\n\n.red-text.text-accent-2 {\n color: #FF5252 !important;\n}\n\n.red.accent-3 {\n background-color: #FF1744 !important;\n}\n\n.red-text.text-accent-3 {\n color: #FF1744 !important;\n}\n\n.red.accent-4 {\n background-color: #D50000 !important;\n}\n\n.red-text.text-accent-4 {\n color: #D50000 !important;\n}\n\n.pink {\n background-color: #e91e63 !important;\n}\n\n.pink-text {\n color: #e91e63 !important;\n}\n\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n color: #ec407a !important;\n}\n\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n color: #c2185b !important;\n}\n\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n color: #880e4f !important;\n}\n\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n color: #f50057 !important;\n}\n\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n color: #c51162 !important;\n}\n\n.purple {\n background-color: #9c27b0 !important;\n}\n\n.purple-text {\n color: #9c27b0 !important;\n}\n\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n color: #ab47bc !important;\n}\n\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n color: #4a148c !important;\n}\n\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n color: #e040fb !important;\n}\n\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n color: #aa00ff !important;\n}\n\n.deep-purple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n color: #673ab7 !important;\n}\n\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n color: #7e57c2 !important;\n}\n\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n color: #6200ea !important;\n}\n\n.indigo {\n background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n color: #3f51b5 !important;\n}\n\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n color: #5c6bc0 !important;\n}\n\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n color: #283593 !important;\n}\n\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n color: #304ffe !important;\n}\n\n.blue {\n background-color: #2196F3 !important;\n}\n\n.blue-text {\n color: #2196F3 !important;\n}\n\n.blue.lighten-5 {\n background-color: #E3F2FD !important;\n}\n\n.blue-text.text-lighten-5 {\n color: #E3F2FD !important;\n}\n\n.blue.lighten-4 {\n background-color: #BBDEFB !important;\n}\n\n.blue-text.text-lighten-4 {\n color: #BBDEFB !important;\n}\n\n.blue.lighten-3 {\n background-color: #90CAF9 !important;\n}\n\n.blue-text.text-lighten-3 {\n color: #90CAF9 !important;\n}\n\n.blue.lighten-2 {\n background-color: #64B5F6 !important;\n}\n\n.blue-text.text-lighten-2 {\n color: #64B5F6 !important;\n}\n\n.blue.lighten-1 {\n background-color: #42A5F5 !important;\n}\n\n.blue-text.text-lighten-1 {\n color: #42A5F5 !important;\n}\n\n.blue.darken-1 {\n background-color: #1E88E5 !important;\n}\n\n.blue-text.text-darken-1 {\n color: #1E88E5 !important;\n}\n\n.blue.darken-2 {\n background-color: #1976D2 !important;\n}\n\n.blue-text.text-darken-2 {\n color: #1976D2 !important;\n}\n\n.blue.darken-3 {\n background-color: #1565C0 !important;\n}\n\n.blue-text.text-darken-3 {\n color: #1565C0 !important;\n}\n\n.blue.darken-4 {\n background-color: #0D47A1 !important;\n}\n\n.blue-text.text-darken-4 {\n color: #0D47A1 !important;\n}\n\n.blue.accent-1 {\n background-color: #82B1FF !important;\n}\n\n.blue-text.text-accent-1 {\n color: #82B1FF !important;\n}\n\n.blue.accent-2 {\n background-color: #448AFF !important;\n}\n\n.blue-text.text-accent-2 {\n color: #448AFF !important;\n}\n\n.blue.accent-3 {\n background-color: #2979FF !important;\n}\n\n.blue-text.text-accent-3 {\n color: #2979FF !important;\n}\n\n.blue.accent-4 {\n background-color: #2962FF !important;\n}\n\n.blue-text.text-accent-4 {\n color: #2962FF !important;\n}\n\n.light-blue {\n background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n color: #03a9f4 !important;\n}\n\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n color: #29b6f6 !important;\n}\n\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n color: #0091ea !important;\n}\n\n.cyan {\n background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n color: #00bcd4 !important;\n}\n\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n color: #26c6da !important;\n}\n\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n color: #00838f !important;\n}\n\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n color: #006064 !important;\n}\n\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n color: #00b8d4 !important;\n}\n\n.teal {\n background-color: #009688 !important;\n}\n\n.teal-text {\n color: #009688 !important;\n}\n\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n color: #26a69a !important;\n}\n\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n color: #00897b !important;\n}\n\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n color: #00796b !important;\n}\n\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n color: #00695c !important;\n}\n\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n color: #004d40 !important;\n}\n\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n color: #64ffda !important;\n}\n\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n color: #00bfa5 !important;\n}\n\n.green {\n background-color: #4CAF50 !important;\n}\n\n.green-text {\n color: #4CAF50 !important;\n}\n\n.green.lighten-5 {\n background-color: #E8F5E9 !important;\n}\n\n.green-text.text-lighten-5 {\n color: #E8F5E9 !important;\n}\n\n.green.lighten-4 {\n background-color: #C8E6C9 !important;\n}\n\n.green-text.text-lighten-4 {\n color: #C8E6C9 !important;\n}\n\n.green.lighten-3 {\n background-color: #A5D6A7 !important;\n}\n\n.green-text.text-lighten-3 {\n color: #A5D6A7 !important;\n}\n\n.green.lighten-2 {\n background-color: #81C784 !important;\n}\n\n.green-text.text-lighten-2 {\n color: #81C784 !important;\n}\n\n.green.lighten-1 {\n background-color: #66BB6A !important;\n}\n\n.green-text.text-lighten-1 {\n color: #66BB6A !important;\n}\n\n.green.darken-1 {\n background-color: #43A047 !important;\n}\n\n.green-text.text-darken-1 {\n color: #43A047 !important;\n}\n\n.green.darken-2 {\n background-color: #388E3C !important;\n}\n\n.green-text.text-darken-2 {\n color: #388E3C !important;\n}\n\n.green.darken-3 {\n background-color: #2E7D32 !important;\n}\n\n.green-text.text-darken-3 {\n color: #2E7D32 !important;\n}\n\n.green.darken-4 {\n background-color: #1B5E20 !important;\n}\n\n.green-text.text-darken-4 {\n color: #1B5E20 !important;\n}\n\n.green.accent-1 {\n background-color: #B9F6CA !important;\n}\n\n.green-text.text-accent-1 {\n color: #B9F6CA !important;\n}\n\n.green.accent-2 {\n background-color: #69F0AE !important;\n}\n\n.green-text.text-accent-2 {\n color: #69F0AE !important;\n}\n\n.green.accent-3 {\n background-color: #00E676 !important;\n}\n\n.green-text.text-accent-3 {\n color: #00E676 !important;\n}\n\n.green.accent-4 {\n background-color: #00C853 !important;\n}\n\n.green-text.text-accent-4 {\n color: #00C853 !important;\n}\n\n.light-green {\n background-color: #8bc34a !important;\n}\n\n.light-green-text {\n color: #8bc34a !important;\n}\n\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n color: #9ccc65 !important;\n}\n\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n color: #33691e !important;\n}\n\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n color: #64dd17 !important;\n}\n\n.lime {\n background-color: #cddc39 !important;\n}\n\n.lime-text {\n color: #cddc39 !important;\n}\n\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n color: #d4e157 !important;\n}\n\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n color: #afb42b !important;\n}\n\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n color: #827717 !important;\n}\n\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n color: #aeea00 !important;\n}\n\n.yellow {\n background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n color: #ffeb3b !important;\n}\n\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n color: #ffee58 !important;\n}\n\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n color: #ffd600 !important;\n}\n\n.amber {\n background-color: #ffc107 !important;\n}\n\n.amber-text {\n color: #ffc107 !important;\n}\n\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n color: #ffca28 !important;\n}\n\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n color: #ffab00 !important;\n}\n\n.orange {\n background-color: #ff9800 !important;\n}\n\n.orange-text {\n color: #ff9800 !important;\n}\n\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n color: #ffa726 !important;\n}\n\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n color: #e65100 !important;\n}\n\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n color: #ff6d00 !important;\n}\n\n.deep-orange {\n background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n color: #ff5722 !important;\n}\n\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n color: #ff7043 !important;\n}\n\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n color: #dd2c00 !important;\n}\n\n.brown {\n background-color: #795548 !important;\n}\n\n.brown-text {\n color: #795548 !important;\n}\n\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n color: #8d6e63 !important;\n}\n\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n color: #4e342e !important;\n}\n\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n color: #3e2723 !important;\n}\n\n.blue-grey {\n background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n color: #607d8b !important;\n}\n\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n color: #78909c !important;\n}\n\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n color: #263238 !important;\n}\n\n.grey {\n background-color: #9e9e9e !important;\n}\n\n.grey-text {\n color: #9e9e9e !important;\n}\n\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n color: #bdbdbd !important;\n}\n\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n color: #757575 !important;\n}\n\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n color: #616161 !important;\n}\n\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n color: #424242 !important;\n}\n\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n color: #212121 !important;\n}\n\n.black {\n background-color: #000000 !important;\n}\n\n.black-text {\n color: #000000 !important;\n}\n\n.white {\n background-color: #FFFFFF !important;\n}\n\n.white-text {\n color: #FFFFFF !important;\n}\n\n.transparent {\n background-color: transparent !important;\n}\n\n.transparent-text {\n color: transparent !important;\n}\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\nhtml {\n box-sizing: border-box;\n}\n\n*, *:before, *:after {\n box-sizing: inherit;\n}\n\nul:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n}\n\nul:not(.browser-default) li {\n list-style-type: none;\n}\n\na {\n color: #039be5;\n text-decoration: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.valign-wrapper {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.clearfix {\n clear: both;\n}\n\n.z-depth-0 {\n box-shadow: none !important;\n}\n\n.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n}\n\n.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n.z-depth-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n.z-depth-3 {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3);\n}\n\n.z-depth-4, .modal {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3);\n}\n\n.z-depth-5 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);\n}\n\n.hoverable {\n transition: box-shadow .25s;\n box-shadow: 0;\n}\n\n.hoverable:hover {\n transition: box-shadow .25s;\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.divider {\n height: 1px;\n overflow: hidden;\n background-color: #e0e0e0;\n}\n\nblockquote {\n margin: 20px 0;\n padding-left: 1.5rem;\n border-left: 5px solid #ee6e73;\n}\n\ni {\n line-height: inherit;\n}\n\ni.left {\n float: left;\n margin-right: 15px;\n}\n\ni.right {\n float: right;\n margin-left: 15px;\n}\n\ni.tiny {\n font-size: 1rem;\n}\n\ni.small {\n font-size: 2rem;\n}\n\ni.medium {\n font-size: 4rem;\n}\n\ni.large {\n font-size: 6rem;\n}\n\nimg.responsive-img,\nvideo.responsive-video {\n max-width: 100%;\n height: auto;\n}\n\n.pagination li {\n display: inline-block;\n border-radius: 2px;\n text-align: center;\n vertical-align: top;\n height: 30px;\n}\n\n.pagination li a {\n color: #444;\n display: inline-block;\n font-size: 1.2rem;\n padding: 0 10px;\n line-height: 30px;\n}\n\n.pagination li.active a {\n color: #fff;\n}\n\n.pagination li.active {\n background-color: #ee6e73;\n}\n\n.pagination li.disabled a {\n cursor: default;\n color: #999;\n}\n\n.pagination li i {\n font-size: 2rem;\n}\n\n.pagination li.pages ul li {\n display: inline-block;\n float: none;\n}\n\n@media only screen and (max-width: 992px) {\n .pagination {\n width: 100%;\n }\n .pagination li.prev,\n .pagination li.next {\n width: 10%;\n }\n .pagination li.pages {\n width: 80%;\n overflow: hidden;\n white-space: nowrap;\n }\n}\n\n.breadcrumb {\n font-size: 18px;\n color: rgba(255, 255, 255, 0.7);\n}\n\n.breadcrumb i,\n.breadcrumb [class^=\"mdi-\"], .breadcrumb [class*=\"mdi-\"],\n.breadcrumb i.material-icons {\n display: inline-block;\n float: left;\n font-size: 24px;\n}\n\n.breadcrumb:before {\n content: '\\E5CC';\n color: rgba(255, 255, 255, 0.7);\n vertical-align: top;\n display: inline-block;\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 25px;\n margin: 0 10px 0 8px;\n -webkit-font-smoothing: antialiased;\n}\n\n.breadcrumb:first-child:before {\n display: none;\n}\n\n.breadcrumb:last-child {\n color: #fff;\n}\n\n.parallax-container {\n position: relative;\n overflow: hidden;\n height: 500px;\n}\n\n.parallax {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n}\n\n.parallax img {\n display: none;\n position: absolute;\n left: 50%;\n bottom: 0;\n min-width: 100%;\n min-height: 100%;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n\n.pin-top, .pin-bottom {\n position: relative;\n}\n\n.pinned {\n position: fixed !important;\n}\n\n/*********************\n Transition Classes\n**********************/\nul.staggered-list li {\n opacity: 0;\n}\n\n.fade-in {\n opacity: 0;\n -webkit-transform-origin: 0 50%;\n transform-origin: 0 50%;\n}\n\n/*********************\n Media Query Classes\n**********************/\n@media only screen and (max-width: 600px) {\n .hide-on-small-only, .hide-on-small-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (max-width: 992px) {\n .hide-on-med-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 601px) {\n .hide-on-med-and-up {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .hide-on-med-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 993px) {\n .hide-on-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 993px) {\n .show-on-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .show-on-medium {\n display: block !important;\n }\n}\n\n@media only screen and (max-width: 600px) {\n .show-on-small {\n display: block !important;\n }\n}\n\n@media only screen and (min-width: 601px) {\n .show-on-medium-and-up {\n display: block !important;\n }\n}\n\n@media only screen and (max-width: 992px) {\n .show-on-medium-and-down {\n display: block !important;\n }\n}\n\n@media only screen and (max-width: 600px) {\n .center-on-small-only {\n text-align: center;\n }\n}\n\n.page-footer {\n padding-top: 20px;\n background-color: #ee6e73;\n}\n\n.page-footer .footer-copyright {\n overflow: hidden;\n min-height: 50px;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n padding: 10px 0px;\n color: rgba(255, 255, 255, 0.8);\n background-color: rgba(51, 51, 51, 0.08);\n}\n\ntable, th, td {\n border: none;\n}\n\ntable {\n width: 100%;\n display: table;\n}\n\ntable.bordered > thead > tr,\ntable.bordered > tbody > tr {\n border-bottom: 1px solid #d0d0d0;\n}\n\ntable.striped > tbody > tr:nth-child(odd) {\n background-color: #f2f2f2;\n}\n\ntable.striped > tbody > tr > td {\n border-radius: 0;\n}\n\ntable.highlight > tbody > tr {\n transition: background-color .25s ease;\n}\n\ntable.highlight > tbody > tr:hover {\n background-color: #f2f2f2;\n}\n\ntable.centered thead tr th, table.centered tbody tr td {\n text-align: center;\n}\n\nthead {\n border-bottom: 1px solid #d0d0d0;\n}\n\ntd, th {\n padding: 15px 5px;\n display: table-cell;\n text-align: left;\n vertical-align: middle;\n border-radius: 2px;\n}\n\n@media only screen and (max-width: 992px) {\n table.responsive-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n display: block;\n position: relative;\n /* sort out borders */\n }\n table.responsive-table td:empty:before {\n content: '\\00a0';\n }\n table.responsive-table th,\n table.responsive-table td {\n margin: 0;\n vertical-align: top;\n }\n table.responsive-table th {\n text-align: left;\n }\n table.responsive-table thead {\n display: block;\n float: left;\n }\n table.responsive-table thead tr {\n display: block;\n padding: 0 10px 0 0;\n }\n table.responsive-table thead tr th::before {\n content: \"\\00a0\";\n }\n table.responsive-table tbody {\n display: block;\n width: auto;\n position: relative;\n overflow-x: auto;\n white-space: nowrap;\n }\n table.responsive-table tbody tr {\n display: inline-block;\n vertical-align: top;\n }\n table.responsive-table th {\n display: block;\n text-align: right;\n }\n table.responsive-table td {\n display: block;\n min-height: 1.25em;\n text-align: left;\n }\n table.responsive-table tr {\n padding: 0 10px;\n }\n table.responsive-table thead {\n border: 0;\n border-right: 1px solid #d0d0d0;\n }\n table.responsive-table.bordered th {\n border-bottom: 0;\n border-left: 0;\n }\n table.responsive-table.bordered td {\n border-left: 0;\n border-right: 0;\n border-bottom: 0;\n }\n table.responsive-table.bordered tr {\n border: 0;\n }\n table.responsive-table.bordered tbody tr {\n border-right: 1px solid #d0d0d0;\n }\n}\n\n.collection {\n margin: 0.5rem 0 1rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n\n.collection .collection-item.avatar .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n\n.collection .collection-item.avatar p {\n margin: 0;\n}\n\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n\n.collection .collection-item.active {\n background-color: #26a69a;\n color: #eafaf9;\n}\n\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n\n.collection a.collection-item {\n display: block;\n transition: .25s;\n color: #26a69a;\n}\n\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n\n.secondary-content {\n float: right;\n color: #26a69a;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n.video-container {\n position: relative;\n padding-bottom: 56.25%;\n height: 0;\n overflow: hidden;\n}\n\n.video-container iframe, .video-container object, .video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.progress {\n position: relative;\n height: 4px;\n display: block;\n width: 100%;\n background-color: #acece6;\n border-radius: 2px;\n margin: 0.5rem 0 1rem 0;\n overflow: hidden;\n}\n\n.progress .determinate {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background-color: #26a69a;\n transition: width .3s linear;\n}\n\n.progress .indeterminate {\n background-color: #26a69a;\n}\n\n.progress .indeterminate:before {\n content: '';\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.progress .indeterminate:after {\n content: '';\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n -webkit-animation-delay: 1.15s;\n animation-delay: 1.15s;\n}\n\n@-webkit-keyframes indeterminate {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@keyframes indeterminate {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@-webkit-keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n\n@keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n\n/*******************\n Utility Classes\n*******************/\n.hide {\n display: none !important;\n}\n\n.left-align {\n text-align: left;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n\n.right {\n float: right !important;\n}\n\n.no-select, input[type=range],\ninput[type=range] + .thumb {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: 22px;\n height: 22px;\n color: #757575;\n float: right;\n box-sizing: border-box;\n}\n\nspan.badge.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: #26a69a;\n border-radius: 2px;\n}\n\nspan.badge.new:after {\n content: \" new\";\n}\n\nspan.badge[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n}\n\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: 22px;\n height: 22px;\n}\n\n.collection-item span.badge {\n margin-top: calc(0.75rem - 11px);\n}\n\n.collapsible span.badge {\n margin-top: calc(1.5rem - 11px);\n}\n\n.side-nav span.badge {\n margin-top: calc(24px - 11px);\n}\n\n/* This is needed for some mobile phones to display the Google Icon font properly */\n.material-icons {\n text-rendering: optimizeLegibility;\n -webkit-font-feature-settings: 'liga';\n -moz-font-feature-settings: 'liga';\n font-feature-settings: 'liga';\n}\n\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n\n@media only screen and (min-width: 601px) {\n .container {\n width: 85%;\n }\n}\n\n@media only screen and (min-width: 993px) {\n .container {\n width: 70%;\n }\n}\n\n.container .row {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.section.no-pad {\n padding: 0;\n}\n\n.section.no-pad-bot {\n padding-bottom: 0;\n}\n\n.section.no-pad-top {\n padding-top: 0;\n}\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n}\n\n.row:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n.row .col {\n float: left;\n box-sizing: border-box;\n padding: 0 0.75rem;\n min-height: 1px;\n}\n\n.row .col[class*=\"push-\"], .row .col[class*=\"pull-\"] {\n position: relative;\n}\n\n.row .col.s1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.s12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n\n.row .col.offset-s1 {\n margin-left: 8.3333333333%;\n}\n\n.row .col.pull-s1 {\n right: 8.3333333333%;\n}\n\n.row .col.push-s1 {\n left: 8.3333333333%;\n}\n\n.row .col.offset-s2 {\n margin-left: 16.6666666667%;\n}\n\n.row .col.pull-s2 {\n right: 16.6666666667%;\n}\n\n.row .col.push-s2 {\n left: 16.6666666667%;\n}\n\n.row .col.offset-s3 {\n margin-left: 25%;\n}\n\n.row .col.pull-s3 {\n right: 25%;\n}\n\n.row .col.push-s3 {\n left: 25%;\n}\n\n.row .col.offset-s4 {\n margin-left: 33.3333333333%;\n}\n\n.row .col.pull-s4 {\n right: 33.3333333333%;\n}\n\n.row .col.push-s4 {\n left: 33.3333333333%;\n}\n\n.row .col.offset-s5 {\n margin-left: 41.6666666667%;\n}\n\n.row .col.pull-s5 {\n right: 41.6666666667%;\n}\n\n.row .col.push-s5 {\n left: 41.6666666667%;\n}\n\n.row .col.offset-s6 {\n margin-left: 50%;\n}\n\n.row .col.pull-s6 {\n right: 50%;\n}\n\n.row .col.push-s6 {\n left: 50%;\n}\n\n.row .col.offset-s7 {\n margin-left: 58.3333333333%;\n}\n\n.row .col.pull-s7 {\n right: 58.3333333333%;\n}\n\n.row .col.push-s7 {\n left: 58.3333333333%;\n}\n\n.row .col.offset-s8 {\n margin-left: 66.6666666667%;\n}\n\n.row .col.pull-s8 {\n right: 66.6666666667%;\n}\n\n.row .col.push-s8 {\n left: 66.6666666667%;\n}\n\n.row .col.offset-s9 {\n margin-left: 75%;\n}\n\n.row .col.pull-s9 {\n right: 75%;\n}\n\n.row .col.push-s9 {\n left: 75%;\n}\n\n.row .col.offset-s10 {\n margin-left: 83.3333333333%;\n}\n\n.row .col.pull-s10 {\n right: 83.3333333333%;\n}\n\n.row .col.push-s10 {\n left: 83.3333333333%;\n}\n\n.row .col.offset-s11 {\n margin-left: 91.6666666667%;\n}\n\n.row .col.pull-s11 {\n right: 91.6666666667%;\n}\n\n.row .col.push-s11 {\n left: 91.6666666667%;\n}\n\n.row .col.offset-s12 {\n margin-left: 100%;\n}\n\n.row .col.pull-s12 {\n right: 100%;\n}\n\n.row .col.push-s12 {\n left: 100%;\n}\n\n@media only screen and (min-width: 601px) {\n .row .col.m1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-m1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-m1 {\n right: 8.3333333333%;\n }\n .row .col.push-m1 {\n left: 8.3333333333%;\n }\n .row .col.offset-m2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-m2 {\n right: 16.6666666667%;\n }\n .row .col.push-m2 {\n left: 16.6666666667%;\n }\n .row .col.offset-m3 {\n margin-left: 25%;\n }\n .row .col.pull-m3 {\n right: 25%;\n }\n .row .col.push-m3 {\n left: 25%;\n }\n .row .col.offset-m4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-m4 {\n right: 33.3333333333%;\n }\n .row .col.push-m4 {\n left: 33.3333333333%;\n }\n .row .col.offset-m5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-m5 {\n right: 41.6666666667%;\n }\n .row .col.push-m5 {\n left: 41.6666666667%;\n }\n .row .col.offset-m6 {\n margin-left: 50%;\n }\n .row .col.pull-m6 {\n right: 50%;\n }\n .row .col.push-m6 {\n left: 50%;\n }\n .row .col.offset-m7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-m7 {\n right: 58.3333333333%;\n }\n .row .col.push-m7 {\n left: 58.3333333333%;\n }\n .row .col.offset-m8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-m8 {\n right: 66.6666666667%;\n }\n .row .col.push-m8 {\n left: 66.6666666667%;\n }\n .row .col.offset-m9 {\n margin-left: 75%;\n }\n .row .col.pull-m9 {\n right: 75%;\n }\n .row .col.push-m9 {\n left: 75%;\n }\n .row .col.offset-m10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-m10 {\n right: 83.3333333333%;\n }\n .row .col.push-m10 {\n left: 83.3333333333%;\n }\n .row .col.offset-m11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-m11 {\n right: 91.6666666667%;\n }\n .row .col.push-m11 {\n left: 91.6666666667%;\n }\n .row .col.offset-m12 {\n margin-left: 100%;\n }\n .row .col.pull-m12 {\n right: 100%;\n }\n .row .col.push-m12 {\n left: 100%;\n }\n}\n\n@media only screen and (min-width: 993px) {\n .row .col.l1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-l1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-l1 {\n right: 8.3333333333%;\n }\n .row .col.push-l1 {\n left: 8.3333333333%;\n }\n .row .col.offset-l2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-l2 {\n right: 16.6666666667%;\n }\n .row .col.push-l2 {\n left: 16.6666666667%;\n }\n .row .col.offset-l3 {\n margin-left: 25%;\n }\n .row .col.pull-l3 {\n right: 25%;\n }\n .row .col.push-l3 {\n left: 25%;\n }\n .row .col.offset-l4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-l4 {\n right: 33.3333333333%;\n }\n .row .col.push-l4 {\n left: 33.3333333333%;\n }\n .row .col.offset-l5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-l5 {\n right: 41.6666666667%;\n }\n .row .col.push-l5 {\n left: 41.6666666667%;\n }\n .row .col.offset-l6 {\n margin-left: 50%;\n }\n .row .col.pull-l6 {\n right: 50%;\n }\n .row .col.push-l6 {\n left: 50%;\n }\n .row .col.offset-l7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-l7 {\n right: 58.3333333333%;\n }\n .row .col.push-l7 {\n left: 58.3333333333%;\n }\n .row .col.offset-l8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-l8 {\n right: 66.6666666667%;\n }\n .row .col.push-l8 {\n left: 66.6666666667%;\n }\n .row .col.offset-l9 {\n margin-left: 75%;\n }\n .row .col.pull-l9 {\n right: 75%;\n }\n .row .col.push-l9 {\n left: 75%;\n }\n .row .col.offset-l10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-l10 {\n right: 83.3333333333%;\n }\n .row .col.push-l10 {\n left: 83.3333333333%;\n }\n .row .col.offset-l11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-l11 {\n right: 91.6666666667%;\n }\n .row .col.push-l11 {\n left: 91.6666666667%;\n }\n .row .col.offset-l12 {\n margin-left: 100%;\n }\n .row .col.pull-l12 {\n right: 100%;\n }\n .row .col.push-l12 {\n left: 100%;\n }\n}\n\n@media only screen and (min-width: 1201px) {\n .row .col.xl1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-xl1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-xl1 {\n right: 8.3333333333%;\n }\n .row .col.push-xl1 {\n left: 8.3333333333%;\n }\n .row .col.offset-xl2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-xl2 {\n right: 16.6666666667%;\n }\n .row .col.push-xl2 {\n left: 16.6666666667%;\n }\n .row .col.offset-xl3 {\n margin-left: 25%;\n }\n .row .col.pull-xl3 {\n right: 25%;\n }\n .row .col.push-xl3 {\n left: 25%;\n }\n .row .col.offset-xl4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-xl4 {\n right: 33.3333333333%;\n }\n .row .col.push-xl4 {\n left: 33.3333333333%;\n }\n .row .col.offset-xl5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-xl5 {\n right: 41.6666666667%;\n }\n .row .col.push-xl5 {\n left: 41.6666666667%;\n }\n .row .col.offset-xl6 {\n margin-left: 50%;\n }\n .row .col.pull-xl6 {\n right: 50%;\n }\n .row .col.push-xl6 {\n left: 50%;\n }\n .row .col.offset-xl7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-xl7 {\n right: 58.3333333333%;\n }\n .row .col.push-xl7 {\n left: 58.3333333333%;\n }\n .row .col.offset-xl8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-xl8 {\n right: 66.6666666667%;\n }\n .row .col.push-xl8 {\n left: 66.6666666667%;\n }\n .row .col.offset-xl9 {\n margin-left: 75%;\n }\n .row .col.pull-xl9 {\n right: 75%;\n }\n .row .col.push-xl9 {\n left: 75%;\n }\n .row .col.offset-xl10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-xl10 {\n right: 83.3333333333%;\n }\n .row .col.push-xl10 {\n left: 83.3333333333%;\n }\n .row .col.offset-xl11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-xl11 {\n right: 91.6666666667%;\n }\n .row .col.push-xl11 {\n left: 91.6666666667%;\n }\n .row .col.offset-xl12 {\n margin-left: 100%;\n }\n .row .col.pull-xl12 {\n right: 100%;\n }\n .row .col.push-xl12 {\n left: 100%;\n }\n}\n\nnav {\n color: #fff;\n background-color: #ee6e73;\n width: 100%;\n height: 56px;\n line-height: 56px;\n}\n\nnav.nav-extended {\n height: auto;\n}\n\nnav.nav-extended .nav-wrapper {\n min-height: 56px;\n height: auto;\n}\n\nnav.nav-extended .nav-content {\n position: relative;\n line-height: normal;\n}\n\nnav a {\n color: #fff;\n}\n\nnav i,\nnav [class^=\"mdi-\"], nav [class*=\"mdi-\"],\nnav i.material-icons {\n display: block;\n font-size: 24px;\n height: 56px;\n line-height: 56px;\n}\n\nnav .nav-wrapper {\n position: relative;\n height: 100%;\n}\n\n@media only screen and (min-width: 993px) {\n nav a.button-collapse {\n display: none;\n }\n}\n\nnav .button-collapse {\n float: left;\n position: relative;\n z-index: 1;\n height: 56px;\n margin: 0 18px;\n}\n\nnav .button-collapse i {\n height: 56px;\n line-height: 56px;\n}\n\nnav .brand-logo {\n position: absolute;\n color: #fff;\n display: inline-block;\n font-size: 2.1rem;\n padding: 0;\n white-space: nowrap;\n}\n\nnav .brand-logo.center {\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n\n@media only screen and (max-width: 992px) {\n nav .brand-logo {\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n }\n nav .brand-logo.left, nav .brand-logo.right {\n padding: 0;\n -webkit-transform: none;\n transform: none;\n }\n nav .brand-logo.left {\n left: 0.5rem;\n }\n nav .brand-logo.right {\n right: 0.5rem;\n left: auto;\n }\n}\n\nnav .brand-logo.right {\n right: 0.5rem;\n padding: 0;\n}\n\nnav .brand-logo i,\nnav .brand-logo [class^=\"mdi-\"], nav .brand-logo [class*=\"mdi-\"],\nnav .brand-logo i.material-icons {\n float: left;\n margin-right: 15px;\n}\n\nnav .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n}\n\nnav ul {\n margin: 0;\n}\n\nnav ul li {\n transition: background-color .3s;\n float: left;\n padding: 0;\n}\n\nnav ul li.active {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul a {\n transition: background-color .3s;\n font-size: 1rem;\n color: #fff;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n}\n\nnav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n}\n\nnav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {\n height: inherit;\n line-height: inherit;\n}\n\nnav ul a:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul.left {\n float: left;\n}\n\nnav form {\n height: 100%;\n}\n\nnav .input-field {\n margin: 0;\n height: 100%;\n}\n\nnav .input-field input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n}\n\nnav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {\n border: none;\n box-shadow: none;\n}\n\nnav .input-field label {\n top: 0;\n left: 0;\n}\n\nnav .input-field label i {\n color: rgba(255, 255, 255, 0.7);\n transition: color .3s;\n}\n\nnav .input-field label.active i {\n color: #fff;\n}\n\n.navbar-fixed {\n position: relative;\n height: 56px;\n z-index: 997;\n}\n\n.navbar-fixed nav {\n position: fixed;\n}\n\n@media only screen and (min-width: 601px) {\n nav.nav-extended .nav-wrapper {\n min-height: 64px;\n }\n nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {\n height: 64px;\n line-height: 64px;\n }\n .navbar-fixed {\n height: 64px;\n }\n}\n\n@font-face {\n font-family: \"Roboto\";\n src: local(Roboto Thin), url(\"../fonts/roboto/Roboto-Thin.woff2\") format(\"woff2\"), url(\"../fonts/roboto/Roboto-Thin.woff\") format(\"woff\");\n font-weight: 100;\n}\n\n@font-face {\n font-family: \"Roboto\";\n src: local(Roboto Light), url(\"../fonts/roboto/Roboto-Light.woff2\") format(\"woff2\"), url(\"../fonts/roboto/Roboto-Light.woff\") format(\"woff\");\n font-weight: 300;\n}\n\n@font-face {\n font-family: \"Roboto\";\n src: local(Roboto Regular), url(\"../fonts/roboto/Roboto-Regular.woff2\") format(\"woff2\"), url(\"../fonts/roboto/Roboto-Regular.woff\") format(\"woff\");\n font-weight: 400;\n}\n\n@font-face {\n font-family: \"Roboto\";\n src: local(Roboto Medium), url(\"../fonts/roboto/Roboto-Medium.woff2\") format(\"woff2\"), url(\"../fonts/roboto/Roboto-Medium.woff\") format(\"woff\");\n font-weight: 500;\n}\n\n@font-face {\n font-family: \"Roboto\";\n src: local(Roboto Bold), url(\"../fonts/roboto/Roboto-Bold.woff2\") format(\"woff2\"), url(\"../fonts/roboto/Roboto-Bold.woff\") format(\"woff\");\n font-weight: 700;\n}\n\na {\n text-decoration: none;\n}\n\nhtml {\n line-height: 1.5;\n font-family: \"Roboto\", sans-serif;\n font-weight: normal;\n color: rgba(0, 0, 0, 0.87);\n}\n\n@media only screen and (min-width: 0) {\n html {\n font-size: 14px;\n }\n}\n\n@media only screen and (min-width: 992px) {\n html {\n font-size: 14.5px;\n }\n}\n\n@media only screen and (min-width: 1200px) {\n html {\n font-size: 15px;\n }\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-weight: 400;\n line-height: 1.1;\n}\n\nh1 a, h2 a, h3 a, h4 a, h5 a, h6 a {\n font-weight: inherit;\n}\n\nh1 {\n font-size: 4.2rem;\n line-height: 110%;\n margin: 2.1rem 0 1.68rem 0;\n}\n\nh2 {\n font-size: 3.56rem;\n line-height: 110%;\n margin: 1.78rem 0 1.424rem 0;\n}\n\nh3 {\n font-size: 2.92rem;\n line-height: 110%;\n margin: 1.46rem 0 1.168rem 0;\n}\n\nh4 {\n font-size: 2.28rem;\n line-height: 110%;\n margin: 1.14rem 0 0.912rem 0;\n}\n\nh5 {\n font-size: 1.64rem;\n line-height: 110%;\n margin: 0.82rem 0 0.656rem 0;\n}\n\nh6 {\n font-size: 1rem;\n line-height: 110%;\n margin: 0.5rem 0 0.4rem 0;\n}\n\nem {\n font-style: italic;\n}\n\nstrong {\n font-weight: 500;\n}\n\nsmall {\n font-size: 75%;\n}\n\n.light, .page-footer .footer-copyright {\n font-weight: 300;\n}\n\n.thin {\n font-weight: 200;\n}\n\n.flow-text {\n font-weight: 300;\n}\n\n@media only screen and (min-width: 360px) {\n .flow-text {\n font-size: 1.2rem;\n }\n}\n\n@media only screen and (min-width: 390px) {\n .flow-text {\n font-size: 1.224rem;\n }\n}\n\n@media only screen and (min-width: 420px) {\n .flow-text {\n font-size: 1.248rem;\n }\n}\n\n@media only screen and (min-width: 450px) {\n .flow-text {\n font-size: 1.272rem;\n }\n}\n\n@media only screen and (min-width: 480px) {\n .flow-text {\n font-size: 1.296rem;\n }\n}\n\n@media only screen and (min-width: 510px) {\n .flow-text {\n font-size: 1.32rem;\n }\n}\n\n@media only screen and (min-width: 540px) {\n .flow-text {\n font-size: 1.344rem;\n }\n}\n\n@media only screen and (min-width: 570px) {\n .flow-text {\n font-size: 1.368rem;\n }\n}\n\n@media only screen and (min-width: 600px) {\n .flow-text {\n font-size: 1.392rem;\n }\n}\n\n@media only screen and (min-width: 630px) {\n .flow-text {\n font-size: 1.416rem;\n }\n}\n\n@media only screen and (min-width: 660px) {\n .flow-text {\n font-size: 1.44rem;\n }\n}\n\n@media only screen and (min-width: 690px) {\n .flow-text {\n font-size: 1.464rem;\n }\n}\n\n@media only screen and (min-width: 720px) {\n .flow-text {\n font-size: 1.488rem;\n }\n}\n\n@media only screen and (min-width: 750px) {\n .flow-text {\n font-size: 1.512rem;\n }\n}\n\n@media only screen and (min-width: 780px) {\n .flow-text {\n font-size: 1.536rem;\n }\n}\n\n@media only screen and (min-width: 810px) {\n .flow-text {\n font-size: 1.56rem;\n }\n}\n\n@media only screen and (min-width: 840px) {\n .flow-text {\n font-size: 1.584rem;\n }\n}\n\n@media only screen and (min-width: 870px) {\n .flow-text {\n font-size: 1.608rem;\n }\n}\n\n@media only screen and (min-width: 900px) {\n .flow-text {\n font-size: 1.632rem;\n }\n}\n\n@media only screen and (min-width: 930px) {\n .flow-text {\n font-size: 1.656rem;\n }\n}\n\n@media only screen and (min-width: 960px) {\n .flow-text {\n font-size: 1.68rem;\n }\n}\n\n@media only screen and (max-width: 360px) {\n .flow-text {\n font-size: 1.2rem;\n }\n}\n\n.scale-transition {\n transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;\n transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;\n transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;\n}\n\n.scale-transition.scale-out {\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform .2s !important;\n transition: transform .2s !important;\n transition: transform .2s, -webkit-transform .2s !important;\n}\n\n.scale-transition.scale-in {\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n\n.card-panel {\n transition: box-shadow .25s;\n padding: 24px;\n margin: 0.5rem 0 1rem 0;\n border-radius: 2px;\n background-color: #fff;\n}\n\n.card {\n position: relative;\n margin: 0.5rem 0 1rem 0;\n background-color: #fff;\n transition: box-shadow .25s;\n border-radius: 2px;\n}\n\n.card .card-title {\n font-size: 24px;\n font-weight: 300;\n}\n\n.card .card-title.activator {\n cursor: pointer;\n}\n\n.card.small, .card.medium, .card.large {\n position: relative;\n}\n\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n max-height: 60%;\n overflow: hidden;\n}\n\n.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {\n max-height: 40%;\n}\n\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n max-height: 100%;\n overflow: hidden;\n}\n\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.card.small {\n height: 300px;\n}\n\n.card.medium {\n height: 400px;\n}\n\n.card.large {\n height: 500px;\n}\n\n.card.horizontal {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n}\n\n.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n}\n\n.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {\n height: 100%;\n}\n\n.card.horizontal .card-image {\n max-width: 50%;\n}\n\n.card.horizontal .card-image img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n}\n\n.card.horizontal .card-stacked {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-flex: 1;\n -ms-flex: 1;\n flex: 1;\n position: relative;\n}\n\n.card.horizontal .card-stacked .card-content {\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.card.sticky-action .card-action {\n z-index: 2;\n}\n\n.card.sticky-action .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n}\n\n.card .card-image {\n position: relative;\n}\n\n.card .card-image img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n}\n\n.card .card-image .card-title {\n color: #fff;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: 24px;\n}\n\n.card .card-content {\n padding: 24px;\n border-radius: 0 0 2px 2px;\n}\n\n.card .card-content p {\n margin: 0;\n color: inherit;\n}\n\n.card .card-content .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n}\n\n.card .card-content .card-title i {\n line-height: 32px;\n}\n\n.card .card-action {\n position: relative;\n background-color: inherit;\n border-top: 1px solid rgba(160, 160, 160, 0.2);\n padding: 16px 24px;\n}\n\n.card .card-action:last-child {\n border-radius: 0 0 2px 2px;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {\n color: #ffab40;\n margin-right: 24px;\n transition: color .3s ease;\n text-transform: uppercase;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {\n color: #ffd8a6;\n}\n\n.card .card-reveal {\n padding: 24px;\n position: absolute;\n background-color: #fff;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n}\n\n.card .card-reveal .card-title {\n cursor: pointer;\n display: block;\n}\n\n#toast-container {\n display: block;\n position: fixed;\n z-index: 10000;\n}\n\n@media only screen and (max-width: 600px) {\n #toast-container {\n min-width: 100%;\n bottom: 0%;\n }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n #toast-container {\n left: 5%;\n bottom: 7%;\n max-width: 90%;\n }\n}\n\n@media only screen and (min-width: 993px) {\n #toast-container {\n top: 10%;\n right: 7%;\n max-width: 86%;\n }\n}\n\n.toast {\n border-radius: 2px;\n top: 35px;\n width: auto;\n clear: both;\n margin-top: 10px;\n position: relative;\n max-width: 100%;\n height: auto;\n min-height: 48px;\n line-height: 1.5em;\n word-break: break-all;\n background-color: #323232;\n padding: 10px 25px;\n font-size: 1.1rem;\n font-weight: 300;\n color: #fff;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-justify-content: space-between;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.toast .btn, .toast .btn-large, .toast .btn-flat {\n margin: 0;\n margin-left: 3rem;\n}\n\n.toast.rounded {\n border-radius: 24px;\n}\n\n@media only screen and (max-width: 600px) {\n .toast {\n width: 100%;\n border-radius: 0;\n }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n .toast {\n float: left;\n }\n}\n\n@media only screen and (min-width: 993px) {\n .toast {\n float: right;\n }\n}\n\n.tabs {\n position: relative;\n overflow-x: auto;\n overflow-y: hidden;\n height: 48px;\n width: 100%;\n background-color: #fff;\n margin: 0 auto;\n white-space: nowrap;\n}\n\n.tabs.tabs-transparent {\n background-color: transparent;\n}\n\n.tabs.tabs-transparent .tab a,\n.tabs.tabs-transparent .tab.disabled a,\n.tabs.tabs-transparent .tab.disabled a:hover {\n color: rgba(255, 255, 255, 0.7);\n}\n\n.tabs.tabs-transparent .tab a:hover,\n.tabs.tabs-transparent .tab a.active {\n color: #fff;\n}\n\n.tabs.tabs-transparent .indicator {\n background-color: #fff;\n}\n\n.tabs.tabs-fixed-width {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n}\n\n.tabs.tabs-fixed-width .tab {\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.tabs .tab {\n display: inline-block;\n text-align: center;\n line-height: 48px;\n height: 48px;\n padding: 0;\n margin: 0;\n text-transform: uppercase;\n}\n\n.tabs .tab a {\n color: rgba(238, 110, 115, 0.7);\n display: block;\n width: 100%;\n height: 100%;\n padding: 0 24px;\n font-size: 14px;\n text-overflow: ellipsis;\n overflow: hidden;\n transition: color .28s ease;\n}\n\n.tabs .tab a:hover, .tabs .tab a.active {\n background-color: transparent;\n color: #ee6e73;\n}\n\n.tabs .tab.disabled a,\n.tabs .tab.disabled a:hover {\n color: rgba(238, 110, 115, 0.7);\n cursor: default;\n}\n\n.tabs .indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: #f6b2b5;\n will-change: left, right;\n}\n\n@media only screen and (max-width: 992px) {\n .tabs {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n }\n .tabs .tab {\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n }\n .tabs .tab a {\n padding: 0 12px;\n }\n}\n\n.material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n background-color: transparent;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n -webkit-transform-origin: 50% 0%;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n\n.btn, .btn-large,\n.btn-flat {\n border: none;\n border-radius: 2px;\n display: inline-block;\n height: 36px;\n line-height: 36px;\n padding: 0 2rem;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled, .disabled.btn-large,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-large:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n[disabled].btn-large,\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: #DFDFDF !important;\n box-shadow: none;\n color: #9F9F9F !important;\n cursor: default;\n}\n\n.btn.disabled:hover, .disabled.btn-large:hover,\n.btn-floating.disabled:hover,\n.btn-large.disabled:hover,\n.btn-flat.disabled:hover,\n.btn:disabled:hover,\n.btn-large:disabled:hover,\n.btn-floating:disabled:hover,\n.btn-large:disabled:hover,\n.btn-flat:disabled:hover,\n.btn[disabled]:hover,\n[disabled].btn-large:hover,\n.btn-floating[disabled]:hover,\n.btn-large[disabled]:hover,\n.btn-flat[disabled]:hover {\n background-color: #DFDFDF !important;\n color: #9F9F9F !important;\n}\n\n.btn, .btn-large,\n.btn-floating,\n.btn-large,\n.btn-flat {\n font-size: 1rem;\n outline: 0;\n}\n\n.btn i, .btn-large i,\n.btn-floating i,\n.btn-large i,\n.btn-flat i {\n font-size: 1.3rem;\n line-height: inherit;\n}\n\n.btn:focus, .btn-large:focus,\n.btn-floating:focus {\n background-color: #1d7d74;\n}\n\n.btn, .btn-large {\n text-decoration: none;\n color: #fff;\n background-color: #26a69a;\n text-align: center;\n letter-spacing: .5px;\n transition: .2s ease-out;\n cursor: pointer;\n}\n\n.btn:hover, .btn-large:hover {\n background-color: #2bbbad;\n}\n\n.btn-floating {\n display: inline-block;\n color: #fff;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: 40px;\n height: 40px;\n line-height: 40px;\n padding: 0;\n background-color: #26a69a;\n border-radius: 50%;\n transition: .3s;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.btn-floating:hover {\n background-color: #26a69a;\n}\n\n.btn-floating:before {\n border-radius: 0;\n}\n\n.btn-floating.btn-large {\n width: 56px;\n height: 56px;\n}\n\n.btn-floating.btn-large.halfway-fab {\n bottom: -28px;\n}\n\n.btn-floating.btn-large i {\n line-height: 56px;\n}\n\n.btn-floating.halfway-fab {\n position: absolute;\n right: 24px;\n bottom: -20px;\n}\n\n.btn-floating.halfway-fab.left {\n right: auto;\n left: 24px;\n}\n\n.btn-floating i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: #fff;\n font-size: 1.6rem;\n line-height: 40px;\n}\n\nbutton.btn-floating {\n border: none;\n}\n\n.fixed-action-btn {\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 998;\n}\n\n.fixed-action-btn.active ul {\n visibility: visible;\n}\n\n.fixed-action-btn.horizontal {\n padding: 0 0 0 15px;\n}\n\n.fixed-action-btn.horizontal ul {\n text-align: right;\n right: 64px;\n top: 50%;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n width: 500px;\n /*width 100% only goes to width of button container */\n}\n\n.fixed-action-btn.horizontal ul li {\n display: inline-block;\n margin: 15px 15px 0 0;\n}\n\n.fixed-action-btn.toolbar {\n padding: 0;\n height: 56px;\n}\n\n.fixed-action-btn.toolbar.active > a i {\n opacity: 0;\n}\n\n.fixed-action-btn.toolbar ul {\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n top: 0;\n bottom: 0;\n}\n\n.fixed-action-btn.toolbar ul li {\n -webkit-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n}\n\n.fixed-action-btn.toolbar ul li a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: 56px;\n z-index: 1;\n}\n\n.fixed-action-btn.toolbar ul li a i {\n line-height: inherit;\n}\n\n.fixed-action-btn ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n}\n\n.fixed-action-btn ul li {\n margin-bottom: 15px;\n}\n\n.fixed-action-btn ul a.btn-floating {\n opacity: 0;\n}\n\n.fixed-action-btn .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 40px;\n height: 40px;\n background-color: #26a69a;\n border-radius: 50%;\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: #343434;\n cursor: pointer;\n transition: background-color .2s;\n}\n\n.btn-flat:focus, .btn-flat:active {\n background-color: transparent;\n}\n\n.btn-flat:focus, .btn-flat:hover {\n background-color: rgba(0, 0, 0, 0.1);\n box-shadow: none;\n}\n\n.btn-flat:active {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.btn-flat.disabled {\n background-color: transparent !important;\n color: #b3b3b3 !important;\n cursor: default;\n}\n\n.btn-large {\n height: 54px;\n line-height: 54px;\n}\n\n.btn-large i {\n font-size: 1.6rem;\n}\n\n.btn-block {\n display: block;\n}\n\n.dropdown-content {\n background-color: #fff;\n margin: 0;\n display: none;\n min-width: 100px;\n max-height: 650px;\n overflow-y: auto;\n opacity: 0;\n position: absolute;\n z-index: 999;\n will-change: width, height;\n}\n\n.dropdown-content li {\n clear: both;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n min-height: 50px;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n text-transform: none;\n}\n\n.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {\n background-color: #eee;\n}\n\n.dropdown-content li.active.selected {\n background-color: #e1e1e1;\n}\n\n.dropdown-content li.divider {\n min-height: 0;\n height: 1px;\n}\n\n.dropdown-content li > a, .dropdown-content li > span {\n font-size: 16px;\n color: #26a69a;\n display: block;\n line-height: 22px;\n padding: 14px 16px;\n}\n\n.dropdown-content li > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n}\n\n.dropdown-content li > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n}\n\n.input-field.col .dropdown-content [type=\"checkbox\"] + label {\n top: 1px;\n left: 0;\n height: 18px;\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: .3s ease-out;\n}\n\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n transition: all 0.7s ease-out;\n transition-property: opacity, -webkit-transform;\n transition-property: transform, opacity;\n transition-property: transform, opacity, -webkit-transform;\n -webkit-transform: scale(0);\n transform: scale(0);\n pointer-events: none;\n}\n\n.waves-effect.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n}\n\n.waves-effect.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, 0.7);\n}\n\n.waves-effect.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, 0.7);\n}\n\n.waves-effect.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, 0.7);\n}\n\n.waves-effect.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.7);\n}\n\n.waves-effect.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.7);\n}\n\n.waves-effect.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.7);\n}\n\n.waves-effect input[type=\"button\"], .waves-effect input[type=\"reset\"], .waves-effect input[type=\"submit\"] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n}\n\n.waves-effect img {\n position: relative;\n z-index: -1;\n}\n\n.waves-notransition {\n transition: none !important;\n}\n\n.waves-circle {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n}\n\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}\n\n.modal {\n display: none;\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n border-radius: 2px;\n will-change: top, opacity;\n}\n\n@media only screen and (max-width: 992px) {\n .modal {\n width: 80%;\n }\n}\n\n.modal h1, .modal h2, .modal h3, .modal h4 {\n margin-top: 0;\n}\n\n.modal .modal-content {\n padding: 24px;\n}\n\n.modal .modal-close {\n cursor: pointer;\n}\n\n.modal .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n}\n\n.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n float: right;\n margin: 6px 0;\n}\n\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -100px;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n}\n\n.modal.modal-fixed-footer .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n}\n\n.modal.modal-fixed-footer .modal-footer {\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n}\n\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n\n.collapsible {\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n border-left: 1px solid #ddd;\n margin: 0.5rem 0 1rem 0;\n}\n\n.collapsible-header {\n display: block;\n cursor: pointer;\n min-height: 3rem;\n line-height: 3rem;\n padding: 0 1rem;\n background-color: #fff;\n border-bottom: 1px solid #ddd;\n}\n\n.collapsible-header i {\n width: 2rem;\n font-size: 1.6rem;\n line-height: 3rem;\n display: block;\n float: left;\n text-align: center;\n margin-right: 1rem;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid #ddd;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n.side-nav .collapsible,\n.side-nav.fixed .collapsible {\n border: none;\n box-shadow: none;\n}\n\n.side-nav .collapsible li,\n.side-nav.fixed .collapsible li {\n padding: 0;\n}\n\n.side-nav .collapsible-header,\n.side-nav.fixed .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 16px;\n}\n\n.side-nav .collapsible-header:hover,\n.side-nav.fixed .collapsible-header:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.side-nav .collapsible-header i,\n.side-nav.fixed .collapsible-header i {\n line-height: inherit;\n}\n\n.side-nav .collapsible-body,\n.side-nav.fixed .collapsible-body {\n border: 0;\n background-color: #fff;\n}\n\n.side-nav .collapsible-body li a,\n.side-nav.fixed .collapsible-body li a {\n padding: 0 23.5px 0 31px;\n}\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n}\n\n.collapsible.popout > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n margin: 0 24px;\n transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.collapsible.popout > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n}\n\n.chip {\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: #e4e4e4;\n margin-bottom: 5px;\n margin-right: 5px;\n}\n\n.chip > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n}\n\n.chip .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid #9e9e9e;\n box-shadow: none;\n margin: 0 0 20px 0;\n min-height: 45px;\n outline: none;\n transition: all .3s;\n}\n\n.chips.focus {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\n\n.chips:hover {\n cursor: text;\n}\n\n.chips .chip.selected {\n background-color: #26a69a;\n color: #fff;\n}\n\n.chips .input {\n background: none;\n border: 0;\n color: rgba(0, 0, 0, 0.6);\n display: inline-block;\n font-size: 1rem;\n height: 3rem;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n}\n\n.chips .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n}\n\n.chips .autocomplete-content {\n margin-top: 0;\n}\n\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.chips:empty ~ label {\n font-size: 0.8rem;\n -webkit-transform: translateY(-140%);\n transform: translateY(-140%);\n}\n\n.materialboxed {\n display: block;\n cursor: -webkit-zoom-in;\n cursor: zoom-in;\n position: relative;\n transition: opacity .4s;\n -webkit-backface-visibility: hidden;\n}\n\n.materialboxed:hover:not(.active) {\n opacity: .8;\n}\n\n.materialboxed.active {\n cursor: -webkit-zoom-out;\n cursor: zoom-out;\n}\n\n#materialbox-overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #292929;\n z-index: 1000;\n will-change: opacity;\n}\n\n.materialbox-caption {\n position: fixed;\n display: none;\n color: #fff;\n line-height: 50px;\n bottom: 0;\n left: 0;\n width: 100%;\n text-align: center;\n padding: 0% 15%;\n height: 50px;\n z-index: 1000;\n -webkit-font-smoothing: antialiased;\n}\n\nselect:focus {\n outline: 1px solid #c9f3ef;\n}\n\nbutton:focus {\n outline: none;\n background-color: #2ab7a9;\n}\n\nlabel {\n font-size: 0.8rem;\n color: #9e9e9e;\n}\n\n/* Text Inputs + Textarea\n ========================================================================== */\n/* Style Placeholders */\n::-webkit-input-placeholder {\n color: #d1d1d1;\n}\n\n:-moz-placeholder {\n /* Firefox 18- */\n color: #d1d1d1;\n}\n\n::-moz-placeholder {\n /* Firefox 19+ */\n color: #d1d1d1;\n}\n\n:-ms-input-placeholder {\n color: #d1d1d1;\n}\n\n/* Text inputs */\ninput:not([type]),\ninput[type=text],\ninput[type=password],\ninput[type=email],\ninput[type=url],\ninput[type=time],\ninput[type=date],\ninput[type=datetime],\ninput[type=datetime-local],\ninput[type=tel],\ninput[type=number],\ninput[type=search],\ntextarea.materialize-textarea {\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n border-radius: 0;\n outline: none;\n height: 3rem;\n width: 100%;\n font-size: 1rem;\n margin: 0 0 20px 0;\n padding: 0;\n box-shadow: none;\n box-sizing: content-box;\n transition: all 0.3s;\n}\n\ninput:not([type]):disabled, input:not([type])[readonly=\"readonly\"],\ninput[type=text]:disabled,\ninput[type=text][readonly=\"readonly\"],\ninput[type=password]:disabled,\ninput[type=password][readonly=\"readonly\"],\ninput[type=email]:disabled,\ninput[type=email][readonly=\"readonly\"],\ninput[type=url]:disabled,\ninput[type=url][readonly=\"readonly\"],\ninput[type=time]:disabled,\ninput[type=time][readonly=\"readonly\"],\ninput[type=date]:disabled,\ninput[type=date][readonly=\"readonly\"],\ninput[type=datetime]:disabled,\ninput[type=datetime][readonly=\"readonly\"],\ninput[type=datetime-local]:disabled,\ninput[type=datetime-local][readonly=\"readonly\"],\ninput[type=tel]:disabled,\ninput[type=tel][readonly=\"readonly\"],\ninput[type=number]:disabled,\ninput[type=number][readonly=\"readonly\"],\ninput[type=search]:disabled,\ninput[type=search][readonly=\"readonly\"],\ntextarea.materialize-textarea:disabled,\ntextarea.materialize-textarea[readonly=\"readonly\"] {\n color: rgba(0, 0, 0, 0.26);\n border-bottom: 1px dotted rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):disabled + label,\ninput:not([type])[readonly=\"readonly\"] + label,\ninput[type=text]:disabled + label,\ninput[type=text][readonly=\"readonly\"] + label,\ninput[type=password]:disabled + label,\ninput[type=password][readonly=\"readonly\"] + label,\ninput[type=email]:disabled + label,\ninput[type=email][readonly=\"readonly\"] + label,\ninput[type=url]:disabled + label,\ninput[type=url][readonly=\"readonly\"] + label,\ninput[type=time]:disabled + label,\ninput[type=time][readonly=\"readonly\"] + label,\ninput[type=date]:disabled + label,\ninput[type=date][readonly=\"readonly\"] + label,\ninput[type=datetime]:disabled + label,\ninput[type=datetime][readonly=\"readonly\"] + label,\ninput[type=datetime-local]:disabled + label,\ninput[type=datetime-local][readonly=\"readonly\"] + label,\ninput[type=tel]:disabled + label,\ninput[type=tel][readonly=\"readonly\"] + label,\ninput[type=number]:disabled + label,\ninput[type=number][readonly=\"readonly\"] + label,\ninput[type=search]:disabled + label,\ninput[type=search][readonly=\"readonly\"] + label,\ntextarea.materialize-textarea:disabled + label,\ntextarea.materialize-textarea[readonly=\"readonly\"] + label {\n color: rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:focus:not([readonly]),\ninput[type=password]:focus:not([readonly]),\ninput[type=email]:focus:not([readonly]),\ninput[type=url]:focus:not([readonly]),\ninput[type=time]:focus:not([readonly]),\ninput[type=date]:focus:not([readonly]),\ninput[type=datetime]:focus:not([readonly]),\ninput[type=datetime-local]:focus:not([readonly]),\ninput[type=tel]:focus:not([readonly]),\ninput[type=number]:focus:not([readonly]),\ninput[type=search]:focus:not([readonly]),\ntextarea.materialize-textarea:focus:not([readonly]) {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\n\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:focus:not([readonly]) + label,\ninput[type=password]:focus:not([readonly]) + label,\ninput[type=email]:focus:not([readonly]) + label,\ninput[type=url]:focus:not([readonly]) + label,\ninput[type=time]:focus:not([readonly]) + label,\ninput[type=date]:focus:not([readonly]) + label,\ninput[type=datetime]:focus:not([readonly]) + label,\ninput[type=datetime-local]:focus:not([readonly]) + label,\ninput[type=tel]:focus:not([readonly]) + label,\ninput[type=number]:focus:not([readonly]) + label,\ninput[type=search]:focus:not([readonly]) + label,\ntextarea.materialize-textarea:focus:not([readonly]) + label {\n color: #26a69a;\n}\n\ninput:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text].valid,\ninput[type=text]:focus.valid,\ninput[type=password].valid,\ninput[type=password]:focus.valid,\ninput[type=email].valid,\ninput[type=email]:focus.valid,\ninput[type=url].valid,\ninput[type=url]:focus.valid,\ninput[type=time].valid,\ninput[type=time]:focus.valid,\ninput[type=date].valid,\ninput[type=date]:focus.valid,\ninput[type=datetime].valid,\ninput[type=datetime]:focus.valid,\ninput[type=datetime-local].valid,\ninput[type=datetime-local]:focus.valid,\ninput[type=tel].valid,\ninput[type=tel]:focus.valid,\ninput[type=number].valid,\ninput[type=number]:focus.valid,\ninput[type=search].valid,\ninput[type=search]:focus.valid,\ntextarea.materialize-textarea.valid,\ntextarea.materialize-textarea:focus.valid {\n border-bottom: 1px solid #4CAF50;\n box-shadow: 0 1px 0 0 #4CAF50;\n}\n\ninput:not([type]).valid + label:after,\ninput:not([type]):focus.valid + label:after,\ninput[type=text].valid + label:after,\ninput[type=text]:focus.valid + label:after,\ninput[type=password].valid + label:after,\ninput[type=password]:focus.valid + label:after,\ninput[type=email].valid + label:after,\ninput[type=email]:focus.valid + label:after,\ninput[type=url].valid + label:after,\ninput[type=url]:focus.valid + label:after,\ninput[type=time].valid + label:after,\ninput[type=time]:focus.valid + label:after,\ninput[type=date].valid + label:after,\ninput[type=date]:focus.valid + label:after,\ninput[type=datetime].valid + label:after,\ninput[type=datetime]:focus.valid + label:after,\ninput[type=datetime-local].valid + label:after,\ninput[type=datetime-local]:focus.valid + label:after,\ninput[type=tel].valid + label:after,\ninput[type=tel]:focus.valid + label:after,\ninput[type=number].valid + label:after,\ninput[type=number]:focus.valid + label:after,\ninput[type=search].valid + label:after,\ninput[type=search]:focus.valid + label:after,\ntextarea.materialize-textarea.valid + label:after,\ntextarea.materialize-textarea:focus.valid + label:after {\n content: attr(data-success);\n color: #4CAF50;\n opacity: 1;\n}\n\ninput:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text].invalid,\ninput[type=text]:focus.invalid,\ninput[type=password].invalid,\ninput[type=password]:focus.invalid,\ninput[type=email].invalid,\ninput[type=email]:focus.invalid,\ninput[type=url].invalid,\ninput[type=url]:focus.invalid,\ninput[type=time].invalid,\ninput[type=time]:focus.invalid,\ninput[type=date].invalid,\ninput[type=date]:focus.invalid,\ninput[type=datetime].invalid,\ninput[type=datetime]:focus.invalid,\ninput[type=datetime-local].invalid,\ninput[type=datetime-local]:focus.invalid,\ninput[type=tel].invalid,\ninput[type=tel]:focus.invalid,\ninput[type=number].invalid,\ninput[type=number]:focus.invalid,\ninput[type=search].invalid,\ninput[type=search]:focus.invalid,\ntextarea.materialize-textarea.invalid,\ntextarea.materialize-textarea:focus.invalid {\n border-bottom: 1px solid #F44336;\n box-shadow: 0 1px 0 0 #F44336;\n}\n\ninput:not([type]).invalid + label:after,\ninput:not([type]):focus.invalid + label:after,\ninput[type=text].invalid + label:after,\ninput[type=text]:focus.invalid + label:after,\ninput[type=password].invalid + label:after,\ninput[type=password]:focus.invalid + label:after,\ninput[type=email].invalid + label:after,\ninput[type=email]:focus.invalid + label:after,\ninput[type=url].invalid + label:after,\ninput[type=url]:focus.invalid + label:after,\ninput[type=time].invalid + label:after,\ninput[type=time]:focus.invalid + label:after,\ninput[type=date].invalid + label:after,\ninput[type=date]:focus.invalid + label:after,\ninput[type=datetime].invalid + label:after,\ninput[type=datetime]:focus.invalid + label:after,\ninput[type=datetime-local].invalid + label:after,\ninput[type=datetime-local]:focus.invalid + label:after,\ninput[type=tel].invalid + label:after,\ninput[type=tel]:focus.invalid + label:after,\ninput[type=number].invalid + label:after,\ninput[type=number]:focus.invalid + label:after,\ninput[type=search].invalid + label:after,\ninput[type=search]:focus.invalid + label:after,\ntextarea.materialize-textarea.invalid + label:after,\ntextarea.materialize-textarea:focus.invalid + label:after {\n content: attr(data-error);\n color: #F44336;\n opacity: 1;\n}\n\ninput:not([type]).validate + label,\ninput[type=text].validate + label,\ninput[type=password].validate + label,\ninput[type=email].validate + label,\ninput[type=url].validate + label,\ninput[type=time].validate + label,\ninput[type=date].validate + label,\ninput[type=datetime].validate + label,\ninput[type=datetime-local].validate + label,\ninput[type=tel].validate + label,\ninput[type=number].validate + label,\ninput[type=search].validate + label,\ntextarea.materialize-textarea.validate + label {\n width: 100%;\n pointer-events: none;\n}\n\ninput:not([type]) + label:after,\ninput[type=text] + label:after,\ninput[type=password] + label:after,\ninput[type=email] + label:after,\ninput[type=url] + label:after,\ninput[type=time] + label:after,\ninput[type=date] + label:after,\ninput[type=datetime] + label:after,\ninput[type=datetime-local] + label:after,\ninput[type=tel] + label:after,\ninput[type=number] + label:after,\ninput[type=search] + label:after,\ntextarea.materialize-textarea + label:after {\n display: block;\n content: \"\";\n position: absolute;\n top: 60px;\n opacity: 0;\n transition: .2s opacity ease-out, .2s color ease-out;\n}\n\n.input-field {\n position: relative;\n margin-top: 1rem;\n}\n\n.input-field.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n}\n\n.input-field.inline input,\n.input-field.inline .select-dropdown {\n margin-bottom: 1rem;\n}\n\n.input-field.col label {\n left: 0.75rem;\n}\n\n.input-field.col .prefix ~ label,\n.input-field.col .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - 1.5rem);\n}\n\n.input-field label {\n color: #9e9e9e;\n position: absolute;\n top: 0.8rem;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: .2s ease-out;\n text-align: initial;\n}\n\n.input-field label:not(.label-icon).active {\n font-size: 0.8rem;\n -webkit-transform: translateY(-140%);\n transform: translateY(-140%);\n}\n\n.input-field .prefix {\n position: absolute;\n width: 3rem;\n font-size: 2rem;\n transition: color .2s;\n}\n\n.input-field .prefix.active {\n color: #26a69a;\n}\n\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea,\n.input-field .prefix ~ label,\n.input-field .prefix ~ .validate ~ label,\n.input-field .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.input-field .prefix ~ label {\n margin-left: 3rem;\n}\n\n@media only screen and (max-width: 992px) {\n .input-field .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n}\n\n@media only screen and (max-width: 600px) {\n .input-field .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n}\n\n/* Search Field */\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n}\n\n.input-field input[type=search]:focus {\n background-color: #fff;\n border: 0;\n box-shadow: none;\n color: #444;\n}\n\n.input-field input[type=search]:focus + label i,\n.input-field input[type=search]:focus ~ .mdi-navigation-close,\n.input-field input[type=search]:focus ~ .material-icons {\n color: #444;\n}\n\n.input-field input[type=search] + label {\n left: 1rem;\n}\n\n.input-field input[type=search] ~ .mdi-navigation-close,\n.input-field input[type=search] ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: 2rem;\n transition: .3s color;\n}\n\n/* Textarea */\ntextarea {\n width: 100%;\n height: 3rem;\n background-color: transparent;\n}\n\ntextarea.materialize-textarea {\n overflow-y: hidden;\n /* prevents scroll bar flash */\n padding: .8rem 0 1.6rem 0;\n /* prevents text jump on Enter keypress */\n resize: none;\n min-height: 3rem;\n}\n\n.hiddendiv {\n display: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem;\n /* prevents text jump on Enter keypress */\n position: absolute;\n top: 0;\n}\n\n/* Autocomplete */\n.autocomplete-content {\n margin-top: -20px;\n display: block;\n opacity: 1;\n position: static;\n}\n\n.autocomplete-content li .highlight {\n color: #444;\n}\n\n.autocomplete-content li img {\n height: 40px;\n width: 40px;\n margin: 5px 15px;\n}\n\n/* Radio Buttons\n ========================================================================== */\n[type=\"radio\"]:not(:checked),\n[type=\"radio\"]:checked {\n position: absolute;\n left: -9999px;\n opacity: 0;\n}\n\n[type=\"radio\"]:not(:checked) + label,\n[type=\"radio\"]:checked + label {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: .28s ease;\n /* webkit (konqueror) browsers */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n[type=\"radio\"] + label:before,\n[type=\"radio\"] + label:after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: .28s ease;\n}\n\n/* Unchecked styles */\n[type=\"radio\"]:not(:checked) + label:before,\n[type=\"radio\"]:not(:checked) + label:after,\n[type=\"radio\"]:checked + label:before,\n[type=\"radio\"]:checked + label:after,\n[type=\"radio\"].with-gap:checked + label:before,\n[type=\"radio\"].with-gap:checked + label:after {\n border-radius: 50%;\n}\n\n[type=\"radio\"]:not(:checked) + label:before,\n[type=\"radio\"]:not(:checked) + label:after {\n border: 2px solid #5a5a5a;\n}\n\n[type=\"radio\"]:not(:checked) + label:after {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=\"radio\"]:checked + label:before {\n border: 2px solid transparent;\n}\n\n[type=\"radio\"]:checked + label:after,\n[type=\"radio\"].with-gap:checked + label:before,\n[type=\"radio\"].with-gap:checked + label:after {\n border: 2px solid #26a69a;\n}\n\n[type=\"radio\"]:checked + label:after,\n[type=\"radio\"].with-gap:checked + label:after {\n background-color: #26a69a;\n}\n\n[type=\"radio\"]:checked + label:after {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=\"radio\"].with-gap:checked + label:after {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n}\n\n/* Focused styles */\n[type=\"radio\"].tabbed:focus + label:before {\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n}\n\n/* Disabled Radio With gap */\n[type=\"radio\"].with-gap:disabled:checked + label:before {\n border: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"].with-gap:disabled:checked + label:after {\n border: none;\n background-color: rgba(0, 0, 0, 0.26);\n}\n\n/* Disabled style */\n[type=\"radio\"]:disabled:not(:checked) + label:before,\n[type=\"radio\"]:disabled:checked + label:before {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled + label {\n color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:not(:checked) + label:before {\n border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:checked + label:after {\n background-color: rgba(0, 0, 0, 0.26);\n border-color: #BDBDBD;\n}\n\n/* Checkboxes\n ========================================================================== */\n/* CUSTOM CSS CHECKBOXES */\nform p {\n margin-bottom: 10px;\n text-align: left;\n}\n\nform p:last-child {\n margin-bottom: 0;\n}\n\n/* Remove default checkbox */\n[type=\"checkbox\"]:not(:checked),\n[type=\"checkbox\"]:checked {\n position: absolute;\n left: -9999px;\n opacity: 0;\n}\n\n[type=\"checkbox\"] {\n /* checkbox aspect */\n}\n\n[type=\"checkbox\"] + label {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n -webkit-user-select: none;\n /* webkit (safari, chrome) browsers */\n -moz-user-select: none;\n /* mozilla browsers */\n -khtml-user-select: none;\n /* webkit (konqueror) browsers */\n -ms-user-select: none;\n /* IE10+ */\n}\n\n[type=\"checkbox\"] + label:before,\n[type=\"checkbox\"]:not(.filled-in) + label:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid #5a5a5a;\n border-radius: 1px;\n margin-top: 2px;\n transition: .2s;\n}\n\n[type=\"checkbox\"]:not(.filled-in) + label:after {\n border: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n\n[type=\"checkbox\"]:not(:checked):disabled + label:before {\n border: none;\n background-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"checkbox\"].tabbed:focus + label:after {\n -webkit-transform: scale(1);\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n[type=\"checkbox\"]:checked + label:before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #26a69a;\n border-bottom: 2px solid #26a69a;\n -webkit-transform: rotate(40deg);\n transform: rotate(40deg);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-transform-origin: 100% 100%;\n transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:checked:disabled + label:before {\n border-right: 2px solid rgba(0, 0, 0, 0.26);\n border-bottom: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n/* Indeterminate checkbox */\n[type=\"checkbox\"]:indeterminate + label:before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: 2px solid #26a69a;\n border-bottom: none;\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-transform-origin: 100% 100%;\n transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:indeterminate:disabled + label:before {\n border-right: 2px solid rgba(0, 0, 0, 0.26);\n background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in + label:after {\n border-radius: 2px;\n}\n\n[type=\"checkbox\"].filled-in + label:before,\n[type=\"checkbox\"].filled-in + label:after {\n content: '';\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;\n z-index: 1;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n -webkit-transform: rotateZ(37deg);\n transform: rotateZ(37deg);\n -webkit-transform-origin: 20% 40%;\n transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid #5a5a5a;\n top: 0px;\n z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n -webkit-transform: rotateZ(37deg);\n transform: rotateZ(37deg);\n -webkit-transform-origin: 100% 100%;\n transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid #26a69a;\n background-color: #26a69a;\n z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in.tabbed:focus + label:after {\n border-radius: 2px;\n border-color: #5a5a5a;\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n[type=\"checkbox\"].filled-in.tabbed:checked:focus + label:after {\n border-radius: 2px;\n background-color: #26a69a;\n border-color: #26a69a;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:before {\n background-color: transparent;\n border: 2px solid transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:after {\n border-color: transparent;\n background-color: #BDBDBD;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:before {\n background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:after {\n background-color: #BDBDBD;\n border-color: #BDBDBD;\n}\n\n/* Switch\n ========================================================================== */\n.switch,\n.switch * {\n -webkit-user-select: none;\n -moz-user-select: none;\n -khtml-user-select: none;\n -ms-user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.switch label input[type=checkbox]:checked + .lever {\n background-color: #84c7c1;\n}\n\n.switch label input[type=checkbox]:checked + .lever:after {\n background-color: #26a69a;\n left: 24px;\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 40px;\n height: 15px;\n background-color: #818181;\n border-radius: 15px;\n margin-right: 10px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n}\n\n.switch label .lever:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 21px;\n height: 21px;\n background-color: #F1F1F1;\n border-radius: 21px;\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);\n left: -5px;\n top: -3px;\n transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:after,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: #BDBDBD;\n}\n\n/* Select Field\n ========================================================================== */\nselect {\n display: none;\n}\n\nselect.browser-default {\n display: block;\n}\n\nselect {\n background-color: rgba(255, 255, 255, 0.9);\n width: 100%;\n padding: 5px;\n border: 1px solid #f2f2f2;\n border-radius: 2px;\n height: 3rem;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n position: relative;\n}\n\n.select-wrapper input.select-dropdown {\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n outline: none;\n height: 3rem;\n line-height: 3rem;\n width: 100%;\n font-size: 1rem;\n margin: 0 0 20px 0;\n padding: 0;\n display: block;\n}\n\n.select-wrapper span.caret {\n color: initial;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n height: 10px;\n margin: auto 0;\n font-size: 10px;\n line-height: 10px;\n}\n\n.select-wrapper span.caret.disabled {\n color: rgba(0, 0, 0, 0.26);\n}\n\n.select-wrapper + label {\n position: absolute;\n top: -14px;\n font-size: 0.8rem;\n}\n\nselect:disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: rgba(0, 0, 0, 0.3);\n cursor: default;\n -webkit-user-select: none;\n /* webkit (safari, chrome) browsers */\n -moz-user-select: none;\n /* mozilla browsers */\n -ms-user-select: none;\n /* IE10+ */\n border-bottom: 1px solid rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper i {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: rgba(0, 0, 0, 0.3);\n background-color: transparent;\n}\n\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label {\n margin-left: 3rem;\n}\n\n.select-dropdown li img {\n height: 40px;\n width: 40px;\n margin: 5px 15px;\n float: right;\n}\n\n.select-dropdown li.optgroup {\n border-top: 1px solid #eee;\n}\n\n.select-dropdown li.optgroup.selected > span {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.select-dropdown li.optgroup > span {\n color: rgba(0, 0, 0, 0.4);\n}\n\n.select-dropdown li.optgroup ~ li.optgroup-option {\n padding-left: 1rem;\n}\n\n/* File Input\n ========================================================================== */\n.file-field {\n position: relative;\n}\n\n.file-field .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n}\n\n.file-field input.file-path {\n width: 100%;\n}\n\n.file-field .btn, .file-field .btn-large {\n float: left;\n height: 3rem;\n line-height: 3rem;\n}\n\n.file-field span {\n cursor: pointer;\n}\n\n.file-field input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n\n/* Range\n ========================================================================== */\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n}\n\ninput[type=range]:focus {\n outline: none;\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: #26a69a;\n margin-left: 7px;\n -webkit-transform-origin: 50% 50%;\n transform-origin: 50% 50%;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n}\n\ninput[type=range] + .thumb .value {\n display: block;\n width: 30px;\n text-align: center;\n color: #26a69a;\n font-size: 0;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n\ninput[type=range] + .thumb.active {\n border-radius: 50% 50% 50% 0;\n}\n\ninput[type=range] + .thumb.active .value {\n color: #fff;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n}\n\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background-color: #26a69a;\n -webkit-transform-origin: 50% 50%;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n transition: .3s;\n}\n\ninput[type=range]:focus::-webkit-slider-runnable-track {\n background: #ccc;\n}\n\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n height: 3px;\n background: #ddd;\n border: none;\n}\n\ninput[type=range]::-moz-range-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n margin-top: -5px;\n}\n\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\ninput[type=range]:focus::-moz-range-track {\n background: #ccc;\n}\n\ninput[type=range]::-ms-track {\n height: 3px;\n background: transparent;\n border-color: transparent;\n border-width: 6px 0;\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n}\n\ninput[type=range]:focus::-ms-fill-lower {\n background: #888;\n}\n\ninput[type=range]:focus::-ms-fill-upper {\n background: #ccc;\n}\n\n/***************\n Nav List\n***************/\n.table-of-contents.fixed {\n position: fixed;\n}\n\n.table-of-contents li {\n padding: 2px 0;\n}\n\n.table-of-contents a {\n display: inline-block;\n font-weight: 300;\n color: #757575;\n padding-left: 20px;\n height: 1.5rem;\n line-height: 1.5rem;\n letter-spacing: .4;\n display: inline-block;\n}\n\n.table-of-contents a:hover {\n color: #a8a8a8;\n padding-left: 19px;\n border-left: 1px solid #ee6e73;\n}\n\n.table-of-contents a.active {\n font-weight: 500;\n padding-left: 18px;\n border-left: 2px solid #ee6e73;\n}\n\n.side-nav {\n position: fixed;\n width: 300px;\n left: 0;\n top: 0;\n margin: 0;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%);\n padding-bottom: 60px;\n background-color: #fff;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-transform: translateX(-105%);\n transform: translateX(-105%);\n}\n\n.side-nav.right-aligned {\n right: 0;\n -webkit-transform: translateX(105%);\n transform: translateX(105%);\n left: auto;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.side-nav .collapsible {\n margin: 0;\n}\n\n.side-nav li {\n float: none;\n line-height: 48px;\n}\n\n.side-nav li.active {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.side-nav li > a {\n color: rgba(0, 0, 0, 0.87);\n display: block;\n font-size: 14px;\n font-weight: 500;\n height: 48px;\n line-height: 48px;\n padding: 0 32px;\n}\n\n.side-nav li > a:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.side-nav li > a.btn, .side-nav li > a.btn-large, .side-nav li > a.btn-large, .side-nav li > a.btn-flat, .side-nav li > a.btn-floating {\n margin: 10px 15px;\n}\n\n.side-nav li > a.btn, .side-nav li > a.btn-large, .side-nav li > a.btn-large, .side-nav li > a.btn-floating {\n color: #fff;\n}\n\n.side-nav li > a.btn-flat {\n color: #343434;\n}\n\n.side-nav li > a.btn:hover, .side-nav li > a.btn-large:hover, .side-nav li > a.btn-large:hover {\n background-color: #2bbbad;\n}\n\n.side-nav li > a.btn-floating:hover {\n background-color: #26a69a;\n}\n\n.side-nav li > a > i,\n.side-nav li > a > [class^=\"mdi-\"], .side-nav li > a li > a > [class*=\"mdi-\"],\n.side-nav li > a > i.material-icons {\n float: left;\n height: 48px;\n line-height: 48px;\n margin: 0 32px 0 0;\n width: 24px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.side-nav .divider {\n margin: 8px 0 0 0;\n}\n\n.side-nav .subheader {\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 14px;\n font-weight: 500;\n line-height: 48px;\n}\n\n.side-nav .subheader:hover {\n background-color: transparent;\n}\n\n.side-nav .userView {\n position: relative;\n padding: 32px 32px 0;\n margin-bottom: 8px;\n}\n\n.side-nav .userView > a {\n height: auto;\n padding: 0;\n}\n\n.side-nav .userView > a:hover {\n background-color: transparent;\n}\n\n.side-nav .userView .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n}\n\n.side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email {\n display: block;\n}\n\n.side-nav .userView .circle {\n height: 64px;\n width: 64px;\n}\n\n.side-nav .userView .name,\n.side-nav .userView .email {\n font-size: 14px;\n line-height: 24px;\n}\n\n.side-nav .userView .name {\n margin-top: 16px;\n font-weight: 500;\n}\n\n.side-nav .userView .email {\n padding-bottom: 16px;\n font-weight: 400;\n}\n\n.drag-target {\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n\n.side-nav.fixed {\n left: 0;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n position: fixed;\n}\n\n.side-nav.fixed.right-aligned {\n right: 0;\n left: auto;\n}\n\n@media only screen and (max-width: 992px) {\n .side-nav.fixed {\n -webkit-transform: translateX(-105%);\n transform: translateX(-105%);\n }\n .side-nav.fixed.right-aligned {\n -webkit-transform: translateX(105%);\n transform: translateX(105%);\n }\n .side-nav a {\n padding: 0 16px;\n }\n .side-nav .userView {\n padding: 16px 16px 0;\n }\n}\n\n.side-nav .collapsible-body > ul:not(.collapsible) > li.active,\n.side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: #ee6e73;\n}\n\n.side-nav .collapsible-body > ul:not(.collapsible) > li.active a,\n.side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active a {\n color: #fff;\n}\n\n.side-nav .collapsible-body {\n padding: 0;\n}\n\n#sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n will-change: opacity;\n}\n\n/*\n @license\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n * STROKEWIDTH = 3px\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\n * should rotate each time, 216 gives us a\n * 5 pointed star shape (it's 360/5 * 3).\n * For a 7 pointed star, we might do\n * 360/7 * 3 = 154.286)\n * CONTAINERWIDTH = 28px\n * SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n display: inline-block;\n position: relative;\n width: 50px;\n height: 50px;\n}\n\n.preloader-wrapper.small {\n width: 36px;\n height: 36px;\n}\n\n.preloader-wrapper.big {\n width: 64px;\n height: 64px;\n}\n\n.preloader-wrapper.active {\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n -webkit-animation: container-rotate 1568ms linear infinite;\n animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n\n@keyframes container-rotate {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-red {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-yellow {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-green {\n /* durations: 4 * ARCTIME */\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n /* durations: 4 * ARCTIME */\n opacity: 1;\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n 12.5% {\n -webkit-transform: rotate(135deg);\n }\n /* 0.5 * ARCSIZE */\n 25% {\n -webkit-transform: rotate(270deg);\n }\n /* 1 * ARCSIZE */\n 37.5% {\n -webkit-transform: rotate(405deg);\n }\n /* 1.5 * ARCSIZE */\n 50% {\n -webkit-transform: rotate(540deg);\n }\n /* 2 * ARCSIZE */\n 62.5% {\n -webkit-transform: rotate(675deg);\n }\n /* 2.5 * ARCSIZE */\n 75% {\n -webkit-transform: rotate(810deg);\n }\n /* 3 * ARCSIZE */\n 87.5% {\n -webkit-transform: rotate(945deg);\n }\n /* 3.5 * ARCSIZE */\n to {\n -webkit-transform: rotate(1080deg);\n }\n /* 4 * ARCSIZE */\n}\n\n@keyframes fill-unfill-rotate {\n 12.5% {\n -webkit-transform: rotate(135deg);\n transform: rotate(135deg);\n }\n /* 0.5 * ARCSIZE */\n 25% {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n }\n /* 1 * ARCSIZE */\n 37.5% {\n -webkit-transform: rotate(405deg);\n transform: rotate(405deg);\n }\n /* 1.5 * ARCSIZE */\n 50% {\n -webkit-transform: rotate(540deg);\n transform: rotate(540deg);\n }\n /* 2 * ARCSIZE */\n 62.5% {\n -webkit-transform: rotate(675deg);\n transform: rotate(675deg);\n }\n /* 2.5 * ARCSIZE */\n 75% {\n -webkit-transform: rotate(810deg);\n transform: rotate(810deg);\n }\n /* 3 * ARCSIZE */\n 87.5% {\n -webkit-transform: rotate(945deg);\n transform: rotate(945deg);\n }\n /* 3.5 * ARCSIZE */\n to {\n -webkit-transform: rotate(1080deg);\n transform: rotate(1080deg);\n }\n /* 4 * ARCSIZE */\n}\n\n@-webkit-keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@-webkit-keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n\n@keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n\n@-webkit-keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n\n@keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n\n@-webkit-keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n@keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.gap-patch .circle {\n width: 1000%;\n left: -450%;\n}\n\n.circle-clipper {\n display: inline-block;\n position: relative;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.circle-clipper .circle {\n width: 200%;\n height: 100%;\n border-width: 3px;\n /* STROKEWIDTH */\n border-style: solid;\n border-color: inherit;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n -webkit-animation: none;\n animation: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n}\n\n.circle-clipper.left .circle {\n left: 0;\n border-right-color: transparent !important;\n -webkit-transform: rotate(129deg);\n transform: rotate(129deg);\n}\n\n.circle-clipper.right .circle {\n left: -100%;\n border-left-color: transparent !important;\n -webkit-transform: rotate(-129deg);\n transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n /* duration: ARCTIME */\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n /* duration: ARCTIME */\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n from {\n -webkit-transform: rotate(130deg);\n }\n 50% {\n -webkit-transform: rotate(-5deg);\n }\n to {\n -webkit-transform: rotate(130deg);\n }\n}\n\n@keyframes left-spin {\n from {\n -webkit-transform: rotate(130deg);\n transform: rotate(130deg);\n }\n 50% {\n -webkit-transform: rotate(-5deg);\n transform: rotate(-5deg);\n }\n to {\n -webkit-transform: rotate(130deg);\n transform: rotate(130deg);\n }\n}\n\n@-webkit-keyframes right-spin {\n from {\n -webkit-transform: rotate(-130deg);\n }\n 50% {\n -webkit-transform: rotate(5deg);\n }\n to {\n -webkit-transform: rotate(-130deg);\n }\n}\n\n@keyframes right-spin {\n from {\n -webkit-transform: rotate(-130deg);\n transform: rotate(-130deg);\n }\n 50% {\n -webkit-transform: rotate(5deg);\n transform: rotate(5deg);\n }\n to {\n -webkit-transform: rotate(-130deg);\n transform: rotate(-130deg);\n }\n}\n\n#spinnerContainer.cooldown {\n /* duration: SHRINK_TIME */\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.slider {\n position: relative;\n height: 400px;\n width: 100%;\n}\n\n.slider.fullscreen {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.slider.fullscreen ul.slides {\n height: 100%;\n}\n\n.slider.fullscreen ul.indicators {\n z-index: 2;\n bottom: 30px;\n}\n\n.slider .slides {\n background-color: #9e9e9e;\n margin: 0;\n height: 400px;\n}\n\n.slider .slides li {\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: inherit;\n overflow: hidden;\n}\n\n.slider .slides li img {\n height: 100%;\n width: 100%;\n background-size: cover;\n background-position: center;\n}\n\n.slider .slides li .caption {\n color: #fff;\n position: absolute;\n top: 15%;\n left: 15%;\n width: 70%;\n opacity: 0;\n}\n\n.slider .slides li .caption p {\n color: #e0e0e0;\n}\n\n.slider .slides li.active {\n z-index: 2;\n}\n\n.slider .indicators {\n position: absolute;\n text-align: center;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n}\n\n.slider .indicators .indicator-item {\n display: inline-block;\n position: relative;\n cursor: pointer;\n height: 16px;\n width: 16px;\n margin: 0 12px;\n background-color: #e0e0e0;\n transition: background-color .3s;\n border-radius: 50%;\n}\n\n.slider .indicators .indicator-item.active {\n background-color: #4CAF50;\n}\n\n.carousel {\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 400px;\n -webkit-perspective: 500px;\n perspective: 500px;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n -webkit-transform-origin: 0% 50%;\n transform-origin: 0% 50%;\n}\n\n.carousel.carousel-slider {\n top: 0;\n left: 0;\n height: 0;\n}\n\n.carousel.carousel-slider .carousel-fixed-item {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 20px;\n z-index: 1;\n}\n\n.carousel.carousel-slider .carousel-fixed-item.with-indicators {\n bottom: 68px;\n}\n\n.carousel.carousel-slider .carousel-item {\n width: 100%;\n height: 100%;\n min-height: 400px;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.carousel.carousel-slider .carousel-item h2 {\n font-size: 24px;\n font-weight: 500;\n line-height: 32px;\n}\n\n.carousel.carousel-slider .carousel-item p {\n font-size: 15px;\n}\n\n.carousel .carousel-item {\n display: none;\n width: 200px;\n height: 200px;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.carousel .carousel-item > img {\n width: 100%;\n}\n\n.carousel .indicators {\n position: absolute;\n text-align: center;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n}\n\n.carousel .indicators .indicator-item {\n display: inline-block;\n position: relative;\n cursor: pointer;\n height: 8px;\n width: 8px;\n margin: 24px 4px;\n background-color: rgba(255, 255, 255, 0.5);\n transition: background-color .3s;\n border-radius: 50%;\n}\n\n.carousel .indicators .indicator-item.active {\n background-color: #fff;\n}\n\n.carousel.scrolling .carousel-item .materialboxed,\n.carousel .carousel-item:not(.active) .materialboxed {\n pointer-events: none;\n}\n\n.tap-target-wrapper {\n width: 800px;\n height: 800px;\n position: fixed;\n z-index: 1000;\n visibility: hidden;\n transition: visibility 0s .3s;\n}\n\n.tap-target-wrapper.open {\n visibility: visible;\n transition: visibility 0s;\n}\n\n.tap-target-wrapper.open .tap-target {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: .95;\n transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), -webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), -webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n}\n\n.tap-target-wrapper.open .tap-target-wave::before {\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n\n.tap-target-wrapper.open .tap-target-wave::after {\n visibility: visible;\n -webkit-animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n transition: opacity .3s, visibility 0s 1s, -webkit-transform .3s;\n transition: opacity .3s, transform .3s, visibility 0s 1s;\n transition: opacity .3s, transform .3s, visibility 0s 1s, -webkit-transform .3s;\n}\n\n.tap-target {\n position: absolute;\n font-size: 1rem;\n border-radius: 50%;\n background-color: #ee6e73;\n box-shadow: 0 20px 20px 0 rgba(0, 0, 0, 0.14), 0 10px 50px 0 rgba(0, 0, 0, 0.12), 0 30px 10px -20px rgba(0, 0, 0, 0.2);\n width: 100%;\n height: 100%;\n opacity: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), -webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), -webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);\n}\n\n.tap-target-content {\n position: relative;\n display: table-cell;\n}\n\n.tap-target-wave {\n position: absolute;\n border-radius: 50%;\n z-index: 10001;\n}\n\n.tap-target-wave::before, .tap-target-wave::after {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: #ffffff;\n}\n\n.tap-target-wave::before {\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\n\n.tap-target-wave::after {\n visibility: hidden;\n transition: opacity .3s, visibility 0s, -webkit-transform .3s;\n transition: opacity .3s, transform .3s, visibility 0s;\n transition: opacity .3s, transform .3s, visibility 0s, -webkit-transform .3s;\n z-index: -1;\n}\n\n.tap-target-origin {\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n z-index: 10002;\n position: absolute !important;\n}\n\n.tap-target-origin:not(.btn):not(.btn-large), .tap-target-origin:not(.btn):not(.btn-large):hover {\n background: none;\n}\n\n@media only screen and (max-width: 600px) {\n .tap-target, .tap-target-wrapper {\n width: 600px;\n height: 600px;\n }\n}\n\n.pulse {\n overflow: initial;\n position: relative;\n}\n\n.pulse::before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity .3s, -webkit-transform .3s;\n transition: opacity .3s, transform .3s;\n transition: opacity .3s, transform .3s, -webkit-transform .3s;\n -webkit-animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n z-index: -1;\n}\n\n@-webkit-keyframes pulse-animation {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n }\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n }\n}\n\n/* ==========================================================================\n $BASE-PICKER\n ========================================================================== */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n.picker {\n font-size: 16px;\n text-align: left;\n line-height: 1.2;\n color: #000000;\n position: absolute;\n z-index: 10000;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/**\n * The picker input element.\n */\n.picker__input {\n cursor: default;\n}\n\n/**\n * When the picker is opened, the input element is \"activated\".\n */\n.picker__input.picker__input--active {\n border-color: #0089ec;\n}\n\n/**\n * The holder is the only \"scrollable\" top-level container element.\n */\n.picker__holder {\n width: 100%;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n/*!\n * Default mobile-first, responsive styling for pickadate.js\n * Demo: http://amsul.github.io/pickadate.js\n */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n/**\n * Make the holder and frame fullscreen.\n */\n.picker__holder,\n.picker__frame {\n bottom: 0;\n left: 0;\n right: 0;\n top: 100%;\n}\n\n/**\n * The holder should overlay the entire screen.\n */\n.picker__holder {\n position: fixed;\n transition: background 0.15s ease-out, top 0s 0.15s;\n -webkit-backface-visibility: hidden;\n}\n\n/**\n * The frame that bounds the box contents of the picker.\n */\n.picker__frame {\n position: absolute;\n margin: 0 auto;\n min-width: 256px;\n width: 300px;\n max-height: 350px;\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n filter: alpha(opacity=0);\n -moz-opacity: 0;\n opacity: 0;\n transition: all 0.15s ease-out;\n}\n\n@media (min-height: 28.875em) {\n .picker__frame {\n overflow: visible;\n top: auto;\n bottom: -100%;\n max-height: 80%;\n }\n}\n\n@media (min-height: 40.125em) {\n .picker__frame {\n margin-bottom: 7.5%;\n }\n}\n\n/**\n * The wrapper sets the stage to vertically align the box contents.\n */\n.picker__wrap {\n display: table;\n width: 100%;\n height: 100%;\n}\n\n@media (min-height: 28.875em) {\n .picker__wrap {\n display: block;\n }\n}\n\n/**\n * The box contains all the picker contents.\n */\n.picker__box {\n background: #ffffff;\n display: table-cell;\n vertical-align: middle;\n}\n\n@media (min-height: 28.875em) {\n .picker__box {\n display: block;\n border: 1px solid #777777;\n border-top-color: #898989;\n border-bottom-width: 0;\n border-radius: 5px 5px 0 0;\n box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);\n }\n}\n\n/**\n * When the picker opens...\n */\n.picker--opened .picker__holder {\n top: 0;\n background: transparent;\n -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)\";\n zoom: 1;\n background: rgba(0, 0, 0, 0.32);\n transition: background 0.15s ease-out;\n}\n\n.picker--opened .picker__frame {\n top: 0;\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";\n filter: alpha(opacity=100);\n -moz-opacity: 1;\n opacity: 1;\n}\n\n@media (min-height: 35.875em) {\n .picker--opened .picker__frame {\n top: 10%;\n bottom: auto;\n }\n}\n\n/**\n * For `large` screens, transform into an inline picker.\n */\n/* ==========================================================================\n CUSTOM MATERIALIZE STYLES\n ========================================================================== */\n.picker__input.picker__input--active {\n border-color: #E3F2FD;\n}\n\n.picker__frame {\n margin: 0 auto;\n max-width: 325px;\n}\n\n@media (min-height: 38.875em) {\n .picker--opened .picker__frame {\n top: 10%;\n bottom: auto;\n }\n}\n\n/* ==========================================================================\n $BASE-DATE-PICKER\n ========================================================================== */\n/**\n * The picker box.\n */\n.picker__box {\n padding: 0 1em;\n}\n\n/**\n * The header containing the month and year stuff.\n */\n.picker__header {\n text-align: center;\n position: relative;\n margin-top: .75em;\n}\n\n/**\n * The month and year labels.\n */\n.picker__month,\n.picker__year {\n display: inline-block;\n margin-left: .25em;\n margin-right: .25em;\n}\n\n/**\n * The month and year selectors.\n */\n.picker__select--month,\n.picker__select--year {\n height: 2em;\n padding: 0;\n margin-left: .25em;\n margin-right: .25em;\n}\n\n.picker__select--month.browser-default {\n display: inline;\n background-color: #FFFFFF;\n width: 40%;\n}\n\n.picker__select--year.browser-default {\n display: inline;\n background-color: #FFFFFF;\n width: 26%;\n}\n\n.picker__select--month:focus,\n.picker__select--year:focus {\n border-color: rgba(0, 0, 0, 0.05);\n}\n\n/**\n * The month navigation buttons.\n */\n.picker__nav--prev,\n.picker__nav--next {\n position: absolute;\n padding: .5em 1.25em;\n width: 1em;\n height: 1em;\n box-sizing: content-box;\n top: -0.25em;\n}\n\n.picker__nav--prev {\n left: -1em;\n padding-right: 1.25em;\n}\n\n.picker__nav--next {\n right: -1em;\n padding-left: 1.25em;\n}\n\n.picker__nav--disabled,\n.picker__nav--disabled:hover,\n.picker__nav--disabled:before,\n.picker__nav--disabled:before:hover {\n cursor: default;\n background: none;\n border-right-color: #f5f5f5;\n border-left-color: #f5f5f5;\n}\n\n/**\n * The calendar table of dates\n */\n.picker__table {\n text-align: center;\n border-collapse: collapse;\n border-spacing: 0;\n table-layout: fixed;\n font-size: 1rem;\n width: 100%;\n margin-top: .75em;\n margin-bottom: .5em;\n}\n\n.picker__table th, .picker__table td {\n text-align: center;\n}\n\n.picker__table td {\n margin: 0;\n padding: 0;\n}\n\n/**\n * The weekday labels\n */\n.picker__weekday {\n width: 14.285714286%;\n font-size: .75em;\n padding-bottom: .25em;\n color: #999999;\n font-weight: 500;\n /* Increase the spacing a tad */\n}\n\n@media (min-height: 33.875em) {\n .picker__weekday {\n padding-bottom: .5em;\n }\n}\n\n/**\n * The days on the calendar\n */\n.picker__day--today {\n position: relative;\n color: #595959;\n letter-spacing: -.3;\n padding: .75rem 0;\n font-weight: 400;\n border: 1px solid transparent;\n}\n\n.picker__day--disabled:before {\n border-top-color: #aaaaaa;\n}\n\n.picker__day--infocus:hover {\n cursor: pointer;\n color: #000;\n font-weight: 500;\n}\n\n.picker__day--outfocus {\n display: none;\n padding: .75rem 0;\n color: #fff;\n}\n\n.picker__day--outfocus:hover {\n cursor: pointer;\n color: #dddddd;\n font-weight: 500;\n}\n\n.picker__day--highlighted:hover,\n.picker--focused .picker__day--highlighted {\n cursor: pointer;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n border-radius: 50%;\n -webkit-transform: scale(0.75);\n transform: scale(0.75);\n background: #0089ec;\n color: #ffffff;\n}\n\n.picker__day--disabled,\n.picker__day--disabled:hover,\n.picker--focused .picker__day--disabled {\n background: #f5f5f5;\n border-color: #f5f5f5;\n color: #dddddd;\n cursor: default;\n}\n\n.picker__day--highlighted.picker__day--disabled,\n.picker__day--highlighted.picker__day--disabled:hover {\n background: #bbbbbb;\n}\n\n/**\n * The footer containing the \"today\", \"clear\", and \"close\" buttons.\n */\n.picker__footer {\n text-align: center;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-justify-content: space-between;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.picker__button--today,\n.picker__button--clear,\n.picker__button--close {\n border: 1px solid #ffffff;\n background: #ffffff;\n font-size: .8em;\n padding: .66em 0;\n font-weight: bold;\n width: 33%;\n display: inline-block;\n vertical-align: bottom;\n}\n\n.picker__button--today:hover,\n.picker__button--clear:hover,\n.picker__button--close:hover {\n cursor: pointer;\n color: #000000;\n background: #b1dcfb;\n border-bottom-color: #b1dcfb;\n}\n\n.picker__button--today:focus,\n.picker__button--clear:focus,\n.picker__button--close:focus {\n background: #b1dcfb;\n border-color: rgba(0, 0, 0, 0.05);\n outline: none;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before,\n.picker__button--close:before {\n position: relative;\n display: inline-block;\n height: 0;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before {\n content: \" \";\n margin-right: .45em;\n}\n\n.picker__button--today:before {\n top: -0.05em;\n width: 0;\n border-top: 0.66em solid #0059bc;\n border-left: .66em solid transparent;\n}\n\n.picker__button--clear:before {\n top: -0.25em;\n width: .66em;\n border-top: 3px solid #ee2200;\n}\n\n.picker__button--close:before {\n content: \"\\D7\";\n top: -0.1em;\n vertical-align: top;\n font-size: 1.1em;\n margin-right: .35em;\n color: #777777;\n}\n\n.picker__button--today[disabled],\n.picker__button--today[disabled]:hover {\n background: #f5f5f5;\n border-color: #f5f5f5;\n color: #dddddd;\n cursor: default;\n}\n\n.picker__button--today[disabled]:before {\n border-top-color: #aaaaaa;\n}\n\n/* ==========================================================================\n CUSTOM MATERIALIZE STYLES\n ========================================================================== */\n.picker__box {\n border-radius: 2px;\n overflow: hidden;\n}\n\n.picker__date-display {\n text-align: center;\n background-color: #26a69a;\n color: #fff;\n padding-bottom: 15px;\n font-weight: 300;\n}\n\n.picker__nav--prev:hover,\n.picker__nav--next:hover {\n cursor: pointer;\n color: #000000;\n background: #a1ded8;\n}\n\n.picker__weekday-display {\n background-color: #1f897f;\n padding: 10px;\n font-weight: 200;\n letter-spacing: .5;\n font-size: 1rem;\n margin-bottom: 15px;\n}\n\n.picker__month-display {\n text-transform: uppercase;\n font-size: 2rem;\n}\n\n.picker__day-display {\n font-size: 4.5rem;\n font-weight: 400;\n}\n\n.picker__year-display {\n font-size: 1.8rem;\n color: rgba(255, 255, 255, 0.4);\n}\n\n.picker__box {\n padding: 0;\n}\n\n.picker__calendar-container {\n padding: 0 1rem;\n}\n\n.picker__calendar-container thead {\n border: none;\n}\n\n.picker__table {\n margin-top: 0;\n margin-bottom: .5em;\n}\n\n.picker__day--infocus {\n color: #595959;\n letter-spacing: -.3;\n padding: .75rem 0;\n font-weight: 400;\n border: 1px solid transparent;\n}\n\n.picker__day.picker__day--today {\n color: #26a69a;\n}\n\n.picker__day.picker__day--today.picker__day--selected {\n color: #fff;\n}\n\n.picker__weekday {\n font-size: .9rem;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n border-radius: 50%;\n -webkit-transform: scale(0.9);\n transform: scale(0.9);\n background-color: #26a69a;\n color: #ffffff;\n}\n\n.picker__day--selected.picker__day--outfocus,\n.picker__day--selected:hover.picker__day--outfocus,\n.picker--focused .picker__day--selected.picker__day--outfocus {\n background-color: #a1ded8;\n}\n\n.picker__footer {\n text-align: right;\n padding: 5px 10px;\n}\n\n.picker__close, .picker__today {\n font-size: 1.1rem;\n padding: 0 1rem;\n color: #26a69a;\n}\n\n.picker__nav--prev:before,\n.picker__nav--next:before {\n content: \" \";\n border-top: .5em solid transparent;\n border-bottom: .5em solid transparent;\n border-right: 0.75em solid #676767;\n width: 0;\n height: 0;\n display: block;\n margin: 0 auto;\n}\n\n.picker__nav--next:before {\n border-right: 0;\n border-left: 0.75em solid #676767;\n}\n\nbutton.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {\n background-color: #a1ded8;\n}\n\n/* ==========================================================================\n $BASE-TIME-PICKER\n ========================================================================== */\n/**\n * The list of times.\n */\n.picker__list {\n list-style: none;\n padding: 0.75em 0 4.2em;\n margin: 0;\n}\n\n/**\n * The times on the clock.\n */\n.picker__list-item {\n border-bottom: 1px solid #dddddd;\n border-top: 1px solid #dddddd;\n margin-bottom: -1px;\n position: relative;\n background: #ffffff;\n padding: .75em 1.25em;\n}\n\n@media (min-height: 46.75em) {\n .picker__list-item {\n padding: .5em 1em;\n }\n}\n\n/* Hovered time */\n.picker__list-item:hover {\n cursor: pointer;\n color: #000000;\n background: #b1dcfb;\n border-color: #0089ec;\n z-index: 10;\n}\n\n/* Highlighted and hovered/focused time */\n.picker__list-item--highlighted {\n border-color: #0089ec;\n z-index: 10;\n}\n\n.picker__list-item--highlighted:hover,\n.picker--focused .picker__list-item--highlighted {\n cursor: pointer;\n color: #000000;\n background: #b1dcfb;\n}\n\n/* Selected and hovered/focused time */\n.picker__list-item--selected,\n.picker__list-item--selected:hover,\n.picker--focused .picker__list-item--selected {\n background: #0089ec;\n color: #ffffff;\n z-index: 10;\n}\n\n/* Disabled time */\n.picker__list-item--disabled,\n.picker__list-item--disabled:hover,\n.picker--focused .picker__list-item--disabled {\n background: #f5f5f5;\n border-color: #f5f5f5;\n color: #dddddd;\n cursor: default;\n border-color: #dddddd;\n z-index: auto;\n}\n\n/**\n * The clear button\n */\n.picker--time .picker__button--clear {\n display: block;\n width: 80%;\n margin: 1em auto 0;\n padding: 1em 1.25em;\n background: none;\n border: 0;\n font-weight: 500;\n font-size: .67em;\n text-align: center;\n text-transform: uppercase;\n color: #666;\n}\n\n.picker--time .picker__button--clear:hover,\n.picker--time .picker__button--clear:focus {\n color: #000000;\n background: #b1dcfb;\n background: #ee2200;\n border-color: #ee2200;\n cursor: pointer;\n color: #ffffff;\n outline: none;\n}\n\n.picker--time .picker__button--clear:before {\n top: -0.25em;\n color: #666;\n font-size: 1.25em;\n font-weight: bold;\n}\n\n.picker--time .picker__button--clear:hover:before,\n.picker--time .picker__button--clear:focus:before {\n color: #ffffff;\n}\n\n/* ==========================================================================\n $DEFAULT-TIME-PICKER\n ========================================================================== */\n/**\n * The frame the bounds the time picker.\n */\n.picker--time .picker__frame {\n min-width: 256px;\n max-width: 320px;\n}\n\n/**\n * The picker box.\n */\n.picker--time .picker__box {\n font-size: 1em;\n background: #f2f2f2;\n padding: 0;\n}\n\n@media (min-height: 40.125em) {\n .picker--time .picker__box {\n margin-bottom: 5em;\n }\n}\n","/* Base Reset\n-------------------------------------------------------------------- */\n\n.annotator-notice,\n.annotator-filter *,\n.annotator-widget * {\n\tfont-family: \"Helvetica Neue\", Arial, Helvetica, sans-serif;\n\tfont-weight: normal;\n\ttext-align: left;\n\tmargin: 0;\n\tpadding: 0;\n\tbackground: none;\n\t-webkit-transition: none;\n\t-moz-transition: none;\n\t-o-transition: none;\n\ttransition: none;\n\t-moz-box-shadow: none;\n\t-webkit-box-shadow: none;\n\t-o-box-shadow: none;\n\tbox-shadow: none;\n\tcolor: rgb(144, 144, 144);\n}\n\n/* Images\n-------------------------------------------------------------------- */\n\n.annotator-adder {\n\tbackground-image: url(../img/annotator-icon-sprite.png?embed);\n\tbackground-repeat: no-repeat;\n}\n\n.annotator-resize,\n.annotator-widget:after,\n.annotator-editor a:after,\n.annotator-viewer .annotator-controls button,\n.annotator-viewer .annotator-controls a,\n.annotator-filter .annotator-filter-navigation button:after,\n.annotator-filter .annotator-filter-property .annotator-filter-clear {\n\tbackground-image: url(../img/annotator-glyph-sprite.png?embed);\n\tbackground-repeat: no-repeat;\n}\n\n/* Annotator Highlight\n-------------------------------------------------------------------- */\n\n.annotator-hl {\n\tbackground: #FFFF0A;\n\tbackground: rgba(255, 255, 10, 0.3);\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4DFFFF0A, endColorstr=#4DFFFF0A)\"; /* 0.3 == 4D in MS filters */\n}\n\n.annotator-hl-temporary {\n\tbackground: #007CFF;\n\tbackground: rgba(0, 124, 255, 0.3);\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4D007CFF, endColorstr=#4D007CFF)\"; /* 0.3 == 4D in MS filters */\n}\n\n/* Annotator Wrapper\n-------------------------------------------------------------------- */\n\n.annotator-wrapper {\n\tposition: relative;\n}\n\n/* NB: If you change the list of classes for which z-index is set,\n you should update setupDynamicStyle() in annotator.ui.main */\n.annotator-adder,\n.annotator-outer,\n.annotator-notice {\n\tz-index: 1020;\n}\n\n.annotator-filter {\n\tz-index: 1010;\n}\n\n.annotator-adder,\n.annotator-outer,\n.annotator-widget,\n.annotator-notice {\n\tposition: absolute;\n\tfont-size: 10px;\n\tline-height: 1;\n}\n\n.annotator-hide {\n\tdisplay: none;\n\tvisibility: hidden;\n}\n\n/* Annotator Adder\n-------------------------------------------------------------------- */\n\n.annotator-adder {\n\tmargin-top: -48px;\n\tmargin-left: -24px;\n\twidth: 48px;\n\theight: 48px;\n\tbackground-position: left top;\n}\n\n.annotator-adder:hover {\n\tbackground-position: center top;\n}\n\n.annotator-adder:active {\n\tbackground-position: center right;\n}\n\n.annotator-adder button {\n\tdisplay: block;\n\twidth: 36px;\n\theight: 41px;\n\tmargin: 0 auto;\n\tborder: none;\n\tbackground: none;\n\ttext-indent: -999em;\n\tcursor: pointer;\n}\n\n/* Annotator Widget\n \n This applies to both the Viewer and the Editor\n-------------------------------------------------------------------- */\n\n.annotator-outer {\n\twidth: 0;\n\theight: 0;\n}\n\n.annotator-widget {\n\tmargin: 0;\n\tpadding: 0;\n\tbottom: 15px;\n\tleft: -18px;\n\tmin-width: 265px;\n\tbackground-color: #FBFBFB;\n\tbackground-color: rgba(251, 251, 251, 0.98);\n\tborder: 1px solid #7A7A7A;\n\tborder: 1px solid rgba(122, 122, 122, 0.6);\n\t-webkit-border-radius: 5px;\n\t-moz-border-radius: 5px;\n\tborder-radius: 5px;\n\t-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n\t-o-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n\tbox-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n}\n\n.annotator-invert-x .annotator-widget {\n\tleft: auto;\n\tright: -18px;\n}\n\n.annotator-invert-y .annotator-widget {\n\tbottom: auto;\n\ttop: 8px;\n}\n\n.annotator-widget strong {\n\tfont-weight: bold;\n}\n\n.annotator-widget .annotator-listing,\n.annotator-widget .annotator-item {\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.annotator-widget:after {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 18px;\n\theight: 10px;\n\tbackground-position: 0 0;\n\tposition: absolute;\n\tbottom: -10px;\n\tleft: 8px;\n}\n\n.annotator-invert-x .annotator-widget:after {\n\tleft: auto;\n\tright: 8px;\n}\n\n.annotator-invert-y .annotator-widget:after {\n\tbackground-position: 0 -15px;\n\tbottom: auto;\n\ttop: -9px;\n}\n\n.annotator-widget .annotator-item,\n.annotator-editor .annotator-item input,\n.annotator-editor .annotator-item textarea {\n\tposition: relative;\n\tfont-size: 12px;\n}\n\n.annotator-viewer .annotator-item {\n\tborder-top: 2px solid #7A7A7A;\n\tborder-top: 2px solid rgba(122, 122, 122, 0.2);\n}\n\n.annotator-widget .annotator-item:first-child {\n\tborder-top: none;\n}\n\n.annotator-editor .annotator-item,\n.annotator-viewer div {\n\tborder-top: 1px solid #858585;\n\tborder-top: 1px solid rgba(133, 133, 133, 0.11);\n}\n\n/* Annotator Viewer\n-------------------------------------------------------------------- */\n\n.annotator-viewer div {\n\tpadding: 6px 6px;\n}\n\n.annotator-viewer .annotator-item ol,\n.annotator-viewer .annotator-item ul {\n\tpadding: 4px 16px;\n}\n\n.annotator-viewer .annotator-item li {\n}\n\n.annotator-viewer div:first-of-type,\n.annotator-editor .annotator-item:first-child textarea {\n\tpadding-top: 12px;\n\tpadding-bottom: 12px;\n\tcolor: rgb(60, 60, 60);\n\tfont-size: 13px;\n\tfont-style: italic;\n\tline-height: 1.3;\n\tborder-top: none;\n}\n\n.annotator-viewer .annotator-controls {\n\tposition: relative;\n\ttop: 5px;\n\tright: 5px;\n\tpadding-left: 5px;\n\topacity: 0;\n\t-webkit-transition: opacity 0.2s ease-in;\n\t-moz-transition: opacity 0.2s ease-in;\n\t-o-transition: opacity 0.2s ease-in;\n\ttransition: opacity 0.2s ease-in;\n\tfloat: right;\n}\n\n.annotator-viewer li:hover .annotator-controls,\n.annotator-viewer li .annotator-controls.annotator-visible {\n\topacity: 1;\n}\n\n.annotator-viewer .annotator-controls button,\n.annotator-viewer .annotator-controls a {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\twidth: 13px;\n\theight: 13px;\n\tmargin-left: 2px;\n\tborder: none;\n\topacity: 0.2;\n\ttext-indent: -900em;\n\tbackground-color: transparent;\n\toutline: none;\n}\n\n.annotator-viewer .annotator-controls button:hover,\n.annotator-viewer .annotator-controls button:focus,\n.annotator-viewer .annotator-controls a:hover,\n.annotator-viewer .annotator-controls a:focus {\n\topacity: 0.9;\n}\n\n.annotator-viewer .annotator-controls button:active,\n.annotator-viewer .annotator-controls a:active {\n\topacity: 1;\n}\n\n.annotator-viewer .annotator-controls button[disabled] {\n\tdisplay: none;\n}\n\n.annotator-viewer .annotator-controls .annotator-edit {\n\tbackground-position: 0 -60px;\n}\n\n.annotator-viewer .annotator-controls .annotator-delete {\n\tbackground-position: 0 -75px;\n}\n\n.annotator-viewer .annotator-controls .annotator-link {\n\tbackground-position: 0 -270px;\n}\n\n/* Annotator Editor\n-------------------------------------------------------------------- */\n\n.annotator-editor .annotator-item {\n\tposition: relative;\n}\n\n.annotator-editor .annotator-item label {\n\ttop: 0;\n\tdisplay: inline;\n\tcursor: pointer;\n\tfont-size: 12px;\n}\n\n.annotator-editor .annotator-item input,\n.annotator-editor .annotator-item textarea {\n\tdisplay: block;\n\tmin-width: 100%;\n\tpadding: 10px 8px;\n\tborder: none;\n\tmargin: 0;\n\tcolor: rgb(60, 60, 60);\n\tbackground: none;\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-o-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tresize: none;\n}\n\n.annotator-editor .annotator-item textarea::-webkit-scrollbar {\n\theight: 8px;\n\twidth: 8px;\n}\n\n.annotator-editor .annotator-item textarea::-webkit-scrollbar-track-piece {\n\tmargin: 13px 0 3px;\n\tbackground-color: #e5e5e5;\n\t-webkit-border-radius: 4px;\n}\n\n.annotator-editor .annotator-item textarea::-webkit-scrollbar-thumb:vertical {\n\theight: 25px;\n\tbackground-color: #ccc;\n\t-webkit-border-radius: 4px;\n\t-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n}\n\n.annotator-editor .annotator-item textarea::-webkit-scrollbar-thumb:horizontal {\n\twidth: 25px;\n\tbackground-color: #ccc;\n\t-webkit-border-radius: 4px;\n}\n\n.annotator-editor .annotator-item:first-child textarea {\n\tmin-height: 5.5em;\n\t-webkit-border-radius: 5px 5px 0 0;\n\t-moz-border-radius: 5px 5px 0 0;\n\t-o-border-radius: 5px 5px 0 0;\n\tborder-radius: 5px 5px 0 0;\n}\n\n.annotator-editor .annotator-item input:focus,\n.annotator-editor .annotator-item textarea:focus{\n\tbackground-color: rgb(243, 243, 243);\n\toutline: none;\n}\n\n.annotator-editor .annotator-item input[type=radio],\n.annotator-editor .annotator-item input[type=checkbox] {\n\twidth: auto;\n\tmin-width: 0;\n\tpadding: 0;\n\tdisplay: inline;\n\tmargin: 0 4px 0 0;\n\tcursor: pointer;\n}\n\n.annotator-editor .annotator-checkbox {\n\tpadding: 8px 6px;\n}\n\n.annotator-filter,\n.annotator-filter .annotator-filter-navigation button,\n.annotator-editor .annotator-controls {\n\ttext-align: right;\n\tpadding: 3px;\n\tborder-top: 1px solid rgb(212,212,212);\n\tbackground-color: rgb(212, 212, 212);\n\tbackground-image: -webkit-gradient(\n\t\tlinear, left top, left bottom,\n\t\tfrom(rgb(245, 245, 245)),\n\t\tcolor-stop(0.6, rgb(220, 220, 220)),\n\t\tto(rgb(210, 210, 210))\n\t);\n\tbackground-image: -moz-linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(220, 220, 220) 60%,\n\t rgb(210, 210, 210)\n\t);\n\tbackground-image: -webkit-linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(220, 220, 220) 60%,\n\t rgb(210, 210, 210)\n\t);\n\tbackground-image: linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(220, 220, 220) 60%,\n\t rgb(210, 210, 210)\n\t);\n\t-webkit-box-shadow: \n\t\tinset 1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset -1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset 0 1px 0 rgba(255, 255, 255, 0.7);\n\t-moz-box-shadow: \n\t\tinset 1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset -1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset 0 1px 0 rgba(255, 255, 255, 0.7);\n\t-o-box-shadow: \n\t\tinset 1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset -1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset 0 1px 0 rgba(255, 255, 255, 0.7);\n\tbox-shadow: \n\t\tinset 1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset -1px 0 0 rgba(255, 255, 255, 0.7),\n\t\tinset 0 1px 0 rgba(255, 255, 255, 0.7);\n\t-webkit-border-radius: 0 0 5px 5px;\n\t-moz-border-radius: 0 0 5px 5px;\n\t-o-border-radius: 0 0 5px 5px;\n\tborder-radius: 0 0 5px 5px;\n}\n\n.annotator-editor.annotator-invert-y .annotator-controls {\n\tborder-top: none;\n\tborder-bottom: 1px solid rgb(180, 180, 180);\n\t-webkit-border-radius: 5px 5px 0 0;\n\t-moz-border-radius: 5px 5px 0 0;\n\t-o-border-radius: 5px 5px 0 0;\n\tborder-radius: 5px 5px 0 0;\n}\n\n.annotator-editor a,\n.annotator-filter .annotator-filter-property label {\n\tposition: relative;\n\tdisplay: inline-block;\n\tpadding: 0 6px 0 22px;\n\tcolor: rgb(54, 54, 54);\n\ttext-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);\n\ttext-decoration: none;\n\tline-height: 24px;\n\tfont-size: 12px;\n\tfont-weight: bold;\n\tborder: 1px solid rgb(162, 162, 162);\n\tbackground-color: rgb(212, 212, 212);\n\tbackground-image: -webkit-gradient(\n\t\tlinear, left top, left bottom,\n\t\tfrom(rgb(245, 245, 245)),\n\t\tcolor-stop(0.5, rgb(210, 210, 210)),\n\t\tcolor-stop(0.5, rgb(190, 190, 190)),\n\t\tto(rgb(210, 210, 210))\n\t);\n\tbackground-image: -moz-linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(210, 210, 210) 50%,\n\t rgb(190, 190, 190) 50%,\n\t rgb(210, 210, 210)\n\t);\n\tbackground-image: -webkit-linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(210, 210, 210) 50%,\n\t rgb(190, 190, 190) 50%,\n\t rgb(210, 210, 210)\n\t);\n\tbackground-image: linear-gradient(\n\t to bottom,\n\t rgb(245, 245, 245),\n\t rgb(210, 210, 210) 50%,\n\t rgb(190, 190, 190) 50%,\n\t rgb(210, 210, 210)\n\t);\n\t-webkit-box-shadow: \n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\t-moz-box-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\t-o-box-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\tbox-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\t-webkit-border-radius: 5px;\n\t-moz-border-radius: 5px;\n\t-o-border-radius: 5px;\n\tborder-radius: 5px;\n}\n\n.annotator-editor a:after {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 5px;\n\tdisplay: block;\n\tcontent: \"\";\n\twidth: 15px;\n\theight: 15px;\n\tmargin-top: -7px;\n\tbackground-position: 0 -90px;\n}\n\n.annotator-editor a:hover,\n.annotator-editor a:focus,\n.annotator-editor a.annotator-focus,\n.annotator-filter .annotator-filter-active label,\n.annotator-filter .annotator-filter-navigation button:hover {\n\toutline: none;\n\tborder-color: rgb(67, 90, 160);\n\tbackground-color: rgb(56, 101, 249);\n\tbackground-image: -webkit-gradient(\n\t\tlinear, left top, left bottom,\n\t\tfrom(rgb(118, 145, 251)),\n\t\tcolor-stop(0.5, rgb(80, 117, 251)),\n\t\tcolor-stop(0.5, rgb(56, 101, 249)),\n\t\tto(rgb(54, 101, 250))\n\t);\n\tbackground-image: -moz-linear-gradient(\n\t to bottom,\n\t rgb(118, 145, 251),\n\t rgb(80, 117, 251) 50%,\n\t rgb(56, 101, 249) 50%,\n\t rgb(54, 101, 250)\n\t);\n\tbackground-image: -webkit-linear-gradient(\n\t to bottom,\n\t rgb(118, 145, 251),\n\t rgb(80, 117, 251) 50%,\n\t rgb(56, 101, 249) 50%,\n\t rgb(54, 101, 250)\n\t);\n\tbackground-image: linear-gradient(\n\t to bottom,\n\t rgb(118, 145, 251),\n\t rgb(80, 117, 251) 50%,\n\t rgb(56, 101, 249) 50%,\n\t rgb(54, 101, 250)\n\t);\n\tcolor: rgb(255, 255, 255);\n\ttext-shadow: 0 -1px 0 rgba(0, 0, 0, 0.42);\n}\n\n.annotator-editor a:hover:after,\n.annotator-editor a:focus:after {\n\tmargin-top: -8px;\n\tbackground-position: 0 -105px;\n}\n\n.annotator-editor a:active,\n.annotator-filter .annotator-filter-navigation button:active {\n\tborder-color: rgb(112, 12, 73);\n\tbackground-color: rgb(209, 46, 142);\n\tbackground-image: -webkit-gradient(\n\t\tlinear, left top, left bottom,\n\t\tfrom(rgb(252, 124, 202)),\n\t\tcolor-stop(0.5, rgb(232, 93, 178)),\n\t\tcolor-stop(0.5, rgb(209, 46, 142)),\n\t\tto(rgb(255, 0, 156))\n\t);\n\tbackground-image: -moz-linear-gradient(\n\t to bottom,\n\t rgb(252, 124, 202),\n\t rgb(232, 93, 178) 50%,\n\t rgb(209, 46, 142) 50%,\n\t rgb(255, 0, 156)\n\t);\n\tbackground-image: -webkit-linear-gradient(\n\t to bottom,\n\t rgb(252, 124, 202),\n\t rgb(232, 93, 178) 50%,\n\t rgb(209, 46, 142) 50%,\n\t rgb(255, 0, 156)\n\t);\n\tbackground-image: linear-gradient(\n\t to bottom,\n\t rgb(252, 124, 202),\n\t rgb(232, 93, 178) 50%,\n\t rgb(209, 46, 142) 50%,\n\t rgb(255, 0, 156)\n\t);\n}\n\n.annotator-editor a.annotator-save:after {\n\tbackground-position: 0 -120px;\n}\n\n.annotator-editor a.annotator-save:hover:after,\n.annotator-editor a.annotator-save:focus:after,\n.annotator-editor a.annotator-save.annotator-focus:after {\n\tmargin-top: -8px;\n\tbackground-position: 0 -135px;\n}\n\n.annotator-editor .annotator-widget:after {\n\tbackground-position: 0 -30px;\n}\n\n.annotator-editor.annotator-invert-y .annotator-widget .annotator-controls {\n\tbackground-color: #f2f2f2;\n}\n\n.annotator-editor.annotator-invert-y .annotator-widget:after {\n\tbackground-position: 0 -45px;\n\theight: 11px;\n}\n\n.annotator-resize {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\twidth: 12px;\n\theight: 12px;\n\tbackground-position: 2px -150px;\n}\n\n.annotator-invert-x .annotator-resize {\n\tright: auto;\n\tleft: 0;\n\tbackground-position: 0 -195px;\n}\n\n.annotator-invert-y .annotator-resize {\n\ttop: auto;\n\tbottom: 0;\n\tbackground-position: 2px -165px;\n}\n\n.annotator-invert-y.annotator-invert-x .annotator-resize {\n\tbackground-position: 0 -180px;\n}\n\n/* Annotator Notification\n-------------------------------------------------------------------- */\n\n.annotator-notice {\n\tcolor: #fff;\n\tposition: fixed;\n\ttop: -54px;\n\tleft: 0;\n\twidth: 100%;\n\tfont-size: 14px;\n\tline-height: 50px;\n\ttext-align: center;\n\tbackground: black;\n\tbackground: rgba(0, 0, 0, 0.9);\n\tborder-bottom: 4px solid #d4d4d4;\n\t-webkit-transition: top 0.4s ease-out;\n\t-moz-transition: top 0.4s ease-out;\n\t-o-transition: top 0.4s ease-out;\n\ttransition: top 0.4s ease-out;\n}\n\n.annotator-notice-success {\n\tborder-color: #3665f9;\n}\n\n.annotator-notice-error {\n\tborder-color: #ff7e00;\n}\n\n.annotator-notice p {\n\tmargin: 0;\n}\n\n.annotator-notice a {\n\tcolor: #fff;\n}\n\n.annotator-notice-show {\n\ttop: 0;\n}\n\n/* Annotator Tags\n-------------------------------------------------------------------- */\n\n.annotator-tags {\n\tmargin-bottom: -2px;\n}\n\n.annotator-tags .annotator-tag {\n\tdisplay: inline-block;\n\tpadding: 0 8px;\n\tmargin-bottom: 2px;\n\tline-height: 1.6;\n\tfont-weight: bold;\n\tbackground-color: rgb(230, 230, 230);\n\t-webkit-border-radius: 8px;\n\t-moz-border-radius: 8px;\n\t-o-border-radius: 8px;\n\tborder-radius: 8px;\n}\n\n/* Annotator Filter\n-------------------------------------------------------------------- */\n\n.annotator-filter {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\ttext-align: left;\n\tline-height: 0;\n\tborder: none;\n\tborder-bottom: 1px solid #878787;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n\t-webkit-border-radius: 0;\n\t-moz-border-radius: 0;\n\t-o-border-radius: 0;\n\tborder-radius: 0;\n\t-webkit-box-shadow: \n\t\tinset 0 -1px 0 rgba(255, 255, 255, 0.3);\n\t-moz-box-shadow: \n\t\tinset 0 -1px 0 rgba(255, 255, 255, 0.3);\n\t-o-box-shadow: \n\t\tinset 0 -1px 0 rgba(255, 255, 255, 0.3);\n\tbox-shadow: \n\t\tinset 0 -1px 0 rgba(255, 255, 255, 0.3);\n}\n\n.annotator-filter strong {\n\tfont-size: 12px;\n\tfont-weight: bold;\n\tcolor: #3c3c3c;\n\ttext-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);\n\tposition: relative;\n\ttop: -9px;\n}\n\n\n.annotator-filter .annotator-filter-property,\n.annotator-filter .annotator-filter-navigation {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tline-height: 10px;\n\tpadding: 2px 0;\n\tmargin-right: 8px;\n}\n\n.annotator-filter .annotator-filter-property label,\n.annotator-filter .annotator-filter-navigation button {\n\ttext-align: left;\n\tdisplay: block;\n\tfloat: left;\n\tline-height: 20px;\n\t-webkit-border-radius: 10px 0 0 10px;\n\t-moz-border-radius: 10px 0 0 10px;\n\t-o-border-radius: 10px 0 0 10px;\n\tborder-radius: 10px 0 0 10px;\n}\n\n.annotator-filter .annotator-filter-property label {\n\tpadding-left: 8px;\n}\n\n.annotator-filter .annotator-filter-property input {\n\tdisplay: block;\n\tfloat: right;\n\t-webkit-appearance: none;\n\tbackground-color: #fff;\n\tborder: 1px solid #878787;\n\tborder-left: none;\n\tpadding: 2px 4px;\n\tline-height: 16px;\n\tmin-height: 16px;\n\tfont-size: 12px;\n\twidth: 150px;\n\tcolor: #333;\n\tbackground-color: #f8f8f8;\n\t-webkit-border-radius: 0 10px 10px 0;\n\t-moz-border-radius: 0 10px 10px 0;\n\t-o-border-radius: 0 10px 10px 0;\n\tborder-radius: 0 10px 10px 0;\n\t-webkit-box-shadow: \n\t\tinset 0 1px 1px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: \n\t\tinset 0 1px 1px rgba(0, 0, 0, 0.2);\n\t-o-box-shadow: \n\t\tinset 0 1px 1px rgba(0, 0, 0, 0.2);\n\tbox-shadow: \n\t\tinset 0 1px 1px rgba(0, 0, 0, 0.2);\n\t\n}\n\n.annotator-filter .annotator-filter-property input:focus {\n\toutline: none;\n\tbackground-color: #fff;\n}\n\n.annotator-filter .annotator-filter-clear {\n\tposition: absolute;\n\tright: 3px;\n\ttop: 6px;\n\tborder: none;\n\ttext-indent: -900em;\n\twidth: 15px;\n\theight: 15px;\n\tbackground-position: 0 -90px;\n\topacity: 0.4;\n}\n\n.annotator-filter .annotator-filter-clear:hover,\n.annotator-filter .annotator-filter-clear:focus {\n\topacity: 0.8;\n}\n\n.annotator-filter .annotator-filter-clear:active {\n\topacity: 1;\n}\n\n.annotator-filter .annotator-filter-navigation button {\n\tborder: 1px solid rgb(162, 162, 162);\n\tpadding: 0;\n\ttext-indent: -900px;\n\twidth: 20px;\n\tmin-height: 22px;\n\t-webkit-box-shadow: \n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\t-moz-box-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\t-o-box-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n\tbox-shadow:\n\t\tinset 0 0 5px rgba(255, 255, 255, 0.2),\n\t\tinset 0 0 1px rgba(255, 255, 255, 0.8);\n}\n\n.annotator-filter .annotator-filter-navigation button,\n.annotator-filter .annotator-filter-navigation button:hover,\n.annotator-filter .annotator-filter-navigation button:focus {\n\tcolor: transparent;\n}\n\n.annotator-filter .annotator-filter-navigation button:after {\n\tposition: absolute;\n\ttop: 8px;\n\tleft: 8px;\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 9px;\n\theight: 9px;\n\tbackground-position: 0 -210px;\n}\n\n.annotator-filter .annotator-filter-navigation button:hover:after {\n\tbackground-position: 0 -225px;\n}\n\n.annotator-filter .annotator-filter-navigation .annotator-filter-next {\n\t-webkit-border-radius: 0 10px 10px 0;\n\t-moz-border-radius: 0 10px 10px 0;\n\t-o-border-radius: 0 10px 10px 0;\n\tborder-radius: 0 10px 10px 0;\n\tborder-left: none;\n}\n\n.annotator-filter .annotator-filter-navigation .annotator-filter-next:after {\n\tleft: auto;\n\tright: 7px;\n\tbackground-position: 0 -240px;\n}\n\n.annotator-filter .annotator-filter-navigation .annotator-filter-next:hover:after {\n\tbackground-position: 0 -255px;\n}\n\n.annotator-hl-active {\n\tbackground: #FFFF0A;\n\tbackground: rgba(255, 255, 10, 0.8);\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCFFFF0A, endColorstr=#CCFFFF0A)\"; /* 0.8 == CC in MS filters */\n}\n\n.annotator-hl-filtered {\n\tbackground-color: transparent;\n}\n","@charset \"UTF-8\";\n@font-face {\n font-family: 'Material Icons';\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./fonts/MaterialIcons-Regular.eot\");\n /* For IE6-8 */\n src: local(\"☺\"), url(\"./fonts/MaterialIcons-Regular.woff2\") format(\"woff2\"), url(\"./fonts/MaterialIcons-Regular.woff\") format(\"woff\"), url(\"./fonts/MaterialIcons-Regular.ttf\") format(\"truetype\"); }\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n /* Preferred icon size */\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n /* Respect document layout direction */\n direction: inherit;\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: 'liga'; }\n .material-icons._10k:before {\n content: \"\\e951\"; }\n .material-icons._10mp:before {\n content: \"\\e952\"; }\n .material-icons._11mp:before {\n content: \"\\e953\"; }\n .material-icons._123:before {\n content: \"\\eb8d\"; }\n .material-icons._12mp:before {\n content: \"\\e954\"; }\n .material-icons._13mp:before {\n content: \"\\e955\"; }\n .material-icons._14mp:before {\n content: \"\\e956\"; }\n .material-icons._15mp:before {\n content: \"\\e957\"; }\n .material-icons._16mp:before {\n content: \"\\e958\"; }\n .material-icons._17mp:before {\n content: \"\\e959\"; }\n .material-icons._18_up_rating:before {\n content: \"\\f8fd\"; }\n .material-icons._18mp:before {\n content: \"\\e95a\"; }\n .material-icons._19mp:before {\n content: \"\\e95b\"; }\n .material-icons._1k:before {\n content: \"\\e95c\"; }\n .material-icons._1k_plus:before {\n content: \"\\e95d\"; }\n .material-icons._1x_mobiledata:before {\n content: \"\\efcd\"; }\n .material-icons._20mp:before {\n content: \"\\e95e\"; }\n .material-icons._21mp:before {\n content: \"\\e95f\"; }\n .material-icons._22mp:before {\n content: \"\\e960\"; }\n .material-icons._23mp:before {\n content: \"\\e961\"; }\n .material-icons._24mp:before {\n content: \"\\e962\"; }\n .material-icons._2k:before {\n content: \"\\e963\"; }\n .material-icons._2k_plus:before {\n content: \"\\e964\"; }\n .material-icons._2mp:before {\n content: \"\\e965\"; }\n .material-icons._30fps:before {\n content: \"\\efce\"; }\n .material-icons._30fps_select:before {\n content: \"\\efcf\"; }\n .material-icons._360:before {\n content: \"\\e577\"; }\n .material-icons._3d_rotation:before {\n content: \"\\e84d\"; }\n .material-icons._3g_mobiledata:before {\n content: \"\\efd0\"; }\n .material-icons._3k:before {\n content: \"\\e966\"; }\n .material-icons._3k_plus:before {\n content: \"\\e967\"; }\n .material-icons._3mp:before {\n content: \"\\e968\"; }\n .material-icons._3p:before {\n content: \"\\efd1\"; }\n .material-icons._4g_mobiledata:before {\n content: \"\\efd2\"; }\n .material-icons._4g_plus_mobiledata:before {\n content: \"\\efd3\"; }\n .material-icons._4k:before {\n content: \"\\e072\"; }\n .material-icons._4k_plus:before {\n content: \"\\e969\"; }\n .material-icons._4mp:before {\n content: \"\\e96a\"; }\n .material-icons._5g:before {\n content: \"\\ef38\"; }\n .material-icons._5k:before {\n content: \"\\e96b\"; }\n .material-icons._5k_plus:before {\n content: \"\\e96c\"; }\n .material-icons._5mp:before {\n content: \"\\e96d\"; }\n .material-icons._60fps:before {\n content: \"\\efd4\"; }\n .material-icons._60fps_select:before {\n content: \"\\efd5\"; }\n .material-icons._6_ft_apart:before {\n content: \"\\f21e\"; }\n .material-icons._6k:before {\n content: \"\\e96e\"; }\n .material-icons._6k_plus:before {\n content: \"\\e96f\"; }\n .material-icons._6mp:before {\n content: \"\\e970\"; }\n .material-icons._7k:before {\n content: \"\\e971\"; }\n .material-icons._7k_plus:before {\n content: \"\\e972\"; }\n .material-icons._7mp:before {\n content: \"\\e973\"; }\n .material-icons._8k:before {\n content: \"\\e974\"; }\n .material-icons._8k_plus:before {\n content: \"\\e975\"; }\n .material-icons._8mp:before {\n content: \"\\e976\"; }\n .material-icons._9k:before {\n content: \"\\e977\"; }\n .material-icons._9k_plus:before {\n content: \"\\e978\"; }\n .material-icons._9mp:before {\n content: \"\\e979\"; }\n .material-icons.abc:before {\n content: \"\\eb94\"; }\n .material-icons.ac_unit:before {\n content: \"\\eb3b\"; }\n .material-icons.access_alarm:before {\n content: \"\\e190\"; }\n .material-icons.access_alarms:before {\n content: \"\\e191\"; }\n .material-icons.access_time:before {\n content: \"\\e192\"; }\n .material-icons.access_time_filled:before {\n content: \"\\efd6\"; }\n .material-icons.accessibility:before {\n content: \"\\e84e\"; }\n .material-icons.accessibility_new:before {\n content: \"\\e92c\"; }\n .material-icons.accessible:before {\n content: \"\\e914\"; }\n .material-icons.accessible_forward:before {\n content: \"\\e934\"; }\n .material-icons.account_balance:before {\n content: \"\\e84f\"; }\n .material-icons.account_balance_wallet:before {\n content: \"\\e850\"; }\n .material-icons.account_box:before {\n content: \"\\e851\"; }\n .material-icons.account_circle:before {\n content: \"\\e853\"; }\n .material-icons.account_tree:before {\n content: \"\\e97a\"; }\n .material-icons.ad_units:before {\n content: \"\\ef39\"; }\n .material-icons.adb:before {\n content: \"\\e60e\"; }\n .material-icons.add:before {\n content: \"\\e145\"; }\n .material-icons.add_a_photo:before {\n content: \"\\e439\"; }\n .material-icons.add_alarm:before {\n content: \"\\e193\"; }\n .material-icons.add_alert:before {\n content: \"\\e003\"; }\n .material-icons.add_box:before {\n content: \"\\e146\"; }\n .material-icons.add_business:before {\n content: \"\\e729\"; }\n .material-icons.add_call:before {\n content: \"\\e0e8\"; }\n .material-icons.add_card:before {\n content: \"\\eb86\"; }\n .material-icons.add_chart:before {\n content: \"\\e97b\"; }\n .material-icons.add_circle:before {\n content: \"\\e147\"; }\n .material-icons.add_circle_outline:before {\n content: \"\\e148\"; }\n .material-icons.add_comment:before {\n content: \"\\e266\"; }\n .material-icons.add_home:before {\n content: \"\\f8eb\"; }\n .material-icons.add_home_work:before {\n content: \"\\f8ed\"; }\n .material-icons.add_ic_call:before {\n content: \"\\e97c\"; }\n .material-icons.add_link:before {\n content: \"\\e178\"; }\n .material-icons.add_location:before {\n content: \"\\e567\"; }\n .material-icons.add_location_alt:before {\n content: \"\\ef3a\"; }\n .material-icons.add_moderator:before {\n content: \"\\e97d\"; }\n .material-icons.add_photo_alternate:before {\n content: \"\\e43e\"; }\n .material-icons.add_reaction:before {\n content: \"\\e1d3\"; }\n .material-icons.add_road:before {\n content: \"\\ef3b\"; }\n .material-icons.add_shopping_cart:before {\n content: \"\\e854\"; }\n .material-icons.add_task:before {\n content: \"\\f23a\"; }\n .material-icons.add_to_drive:before {\n content: \"\\e65c\"; }\n .material-icons.add_to_home_screen:before {\n content: \"\\e1fe\"; }\n .material-icons.add_to_photos:before {\n content: \"\\e39d\"; }\n .material-icons.add_to_queue:before {\n content: \"\\e05c\"; }\n .material-icons.addchart:before {\n content: \"\\ef3c\"; }\n .material-icons.adf_scanner:before {\n content: \"\\eada\"; }\n .material-icons.adjust:before {\n content: \"\\e39e\"; }\n .material-icons.admin_panel_settings:before {\n content: \"\\ef3d\"; }\n .material-icons.adobe:before {\n content: \"\\ea96\"; }\n .material-icons.ads_click:before {\n content: \"\\e762\"; }\n .material-icons.agriculture:before {\n content: \"\\ea79\"; }\n .material-icons.air:before {\n content: \"\\efd8\"; }\n .material-icons.airline_seat_flat:before {\n content: \"\\e630\"; }\n .material-icons.airline_seat_flat_angled:before {\n content: \"\\e631\"; }\n .material-icons.airline_seat_individual_suite:before {\n content: \"\\e632\"; }\n .material-icons.airline_seat_legroom_extra:before {\n content: \"\\e633\"; }\n .material-icons.airline_seat_legroom_normal:before {\n content: \"\\e634\"; }\n .material-icons.airline_seat_legroom_reduced:before {\n content: \"\\e635\"; }\n .material-icons.airline_seat_recline_extra:before {\n content: \"\\e636\"; }\n .material-icons.airline_seat_recline_normal:before {\n content: \"\\e637\"; }\n .material-icons.airline_stops:before {\n content: \"\\e7d0\"; }\n .material-icons.airlines:before {\n content: \"\\e7ca\"; }\n .material-icons.airplane_ticket:before {\n content: \"\\efd9\"; }\n .material-icons.airplanemode_active:before {\n content: \"\\e195\"; }\n .material-icons.airplanemode_inactive:before {\n content: \"\\e194\"; }\n .material-icons.airplanemode_off:before {\n content: \"\\e194\"; }\n .material-icons.airplanemode_on:before {\n content: \"\\e195\"; }\n .material-icons.airplay:before {\n content: \"\\e055\"; }\n .material-icons.airport_shuttle:before {\n content: \"\\eb3c\"; }\n .material-icons.alarm:before {\n content: \"\\e855\"; }\n .material-icons.alarm_add:before {\n content: \"\\e856\"; }\n .material-icons.alarm_off:before {\n content: \"\\e857\"; }\n .material-icons.alarm_on:before {\n content: \"\\e858\"; }\n .material-icons.album:before {\n content: \"\\e019\"; }\n .material-icons.align_horizontal_center:before {\n content: \"\\e00f\"; }\n .material-icons.align_horizontal_left:before {\n content: \"\\e00d\"; }\n .material-icons.align_horizontal_right:before {\n content: \"\\e010\"; }\n .material-icons.align_vertical_bottom:before {\n content: \"\\e015\"; }\n .material-icons.align_vertical_center:before {\n content: \"\\e011\"; }\n .material-icons.align_vertical_top:before {\n content: \"\\e00c\"; }\n .material-icons.all_inbox:before {\n content: \"\\e97f\"; }\n .material-icons.all_inclusive:before {\n content: \"\\eb3d\"; }\n .material-icons.all_out:before {\n content: \"\\e90b\"; }\n .material-icons.alt_route:before {\n content: \"\\f184\"; }\n .material-icons.alternate_email:before {\n content: \"\\e0e6\"; }\n .material-icons.amp_stories:before {\n content: \"\\ea13\"; }\n .material-icons.analytics:before {\n content: \"\\ef3e\"; }\n .material-icons.anchor:before {\n content: \"\\f1cd\"; }\n .material-icons.android:before {\n content: \"\\e859\"; }\n .material-icons.animation:before {\n content: \"\\e71c\"; }\n .material-icons.announcement:before {\n content: \"\\e85a\"; }\n .material-icons.aod:before {\n content: \"\\efda\"; }\n .material-icons.apartment:before {\n content: \"\\ea40\"; }\n .material-icons.api:before {\n content: \"\\f1b7\"; }\n .material-icons.app_blocking:before {\n content: \"\\ef3f\"; }\n .material-icons.app_registration:before {\n content: \"\\ef40\"; }\n .material-icons.app_settings_alt:before {\n content: \"\\ef41\"; }\n .material-icons.app_shortcut:before {\n content: \"\\eae4\"; }\n .material-icons.apple:before {\n content: \"\\ea80\"; }\n .material-icons.approval:before {\n content: \"\\e982\"; }\n .material-icons.apps:before {\n content: \"\\e5c3\"; }\n .material-icons.apps_outage:before {\n content: \"\\e7cc\"; }\n .material-icons.architecture:before {\n content: \"\\ea3b\"; }\n .material-icons.archive:before {\n content: \"\\e149\"; }\n .material-icons.area_chart:before {\n content: \"\\e770\"; }\n .material-icons.arrow_back:before {\n content: \"\\e5c4\"; }\n .material-icons.arrow_back_ios:before {\n content: \"\\e5e0\"; }\n .material-icons.arrow_back_ios_new:before {\n content: \"\\e2ea\"; }\n .material-icons.arrow_circle_down:before {\n content: \"\\f181\"; }\n .material-icons.arrow_circle_left:before {\n content: \"\\eaa7\"; }\n .material-icons.arrow_circle_right:before {\n content: \"\\eaaa\"; }\n .material-icons.arrow_circle_up:before {\n content: \"\\f182\"; }\n .material-icons.arrow_downward:before {\n content: \"\\e5db\"; }\n .material-icons.arrow_drop_down:before {\n content: \"\\e5c5\"; }\n .material-icons.arrow_drop_down_circle:before {\n content: \"\\e5c6\"; }\n .material-icons.arrow_drop_up:before {\n content: \"\\e5c7\"; }\n .material-icons.arrow_forward:before {\n content: \"\\e5c8\"; }\n .material-icons.arrow_forward_ios:before {\n content: \"\\e5e1\"; }\n .material-icons.arrow_left:before {\n content: \"\\e5de\"; }\n .material-icons.arrow_right:before {\n content: \"\\e5df\"; }\n .material-icons.arrow_right_alt:before {\n content: \"\\e941\"; }\n .material-icons.arrow_upward:before {\n content: \"\\e5d8\"; }\n .material-icons.art_track:before {\n content: \"\\e060\"; }\n .material-icons.article:before {\n content: \"\\ef42\"; }\n .material-icons.aspect_ratio:before {\n content: \"\\e85b\"; }\n .material-icons.assessment:before {\n content: \"\\e85c\"; }\n .material-icons.assignment:before {\n content: \"\\e85d\"; }\n .material-icons.assignment_ind:before {\n content: \"\\e85e\"; }\n .material-icons.assignment_late:before {\n content: \"\\e85f\"; }\n .material-icons.assignment_return:before {\n content: \"\\e860\"; }\n .material-icons.assignment_returned:before {\n content: \"\\e861\"; }\n .material-icons.assignment_turned_in:before {\n content: \"\\e862\"; }\n .material-icons.assistant:before {\n content: \"\\e39f\"; }\n .material-icons.assistant_direction:before {\n content: \"\\e988\"; }\n .material-icons.assistant_navigation:before {\n content: \"\\e989\"; }\n .material-icons.assistant_photo:before {\n content: \"\\e3a0\"; }\n .material-icons.assured_workload:before {\n content: \"\\eb6f\"; }\n .material-icons.atm:before {\n content: \"\\e573\"; }\n .material-icons.attach_email:before {\n content: \"\\ea5e\"; }\n .material-icons.attach_file:before {\n content: \"\\e226\"; }\n .material-icons.attach_money:before {\n content: \"\\e227\"; }\n .material-icons.attachment:before {\n content: \"\\e2bc\"; }\n .material-icons.attractions:before {\n content: \"\\ea52\"; }\n .material-icons.attribution:before {\n content: \"\\efdb\"; }\n .material-icons.audio_file:before {\n content: \"\\eb82\"; }\n .material-icons.audiotrack:before {\n content: \"\\e3a1\"; }\n .material-icons.auto_awesome:before {\n content: \"\\e65f\"; }\n .material-icons.auto_awesome_mosaic:before {\n content: \"\\e660\"; }\n .material-icons.auto_awesome_motion:before {\n content: \"\\e661\"; }\n .material-icons.auto_delete:before {\n content: \"\\ea4c\"; }\n .material-icons.auto_fix_high:before {\n content: \"\\e663\"; }\n .material-icons.auto_fix_normal:before {\n content: \"\\e664\"; }\n .material-icons.auto_fix_off:before {\n content: \"\\e665\"; }\n .material-icons.auto_graph:before {\n content: \"\\e4fb\"; }\n .material-icons.auto_mode:before {\n content: \"\\ec20\"; }\n .material-icons.auto_stories:before {\n content: \"\\e666\"; }\n .material-icons.autofps_select:before {\n content: \"\\efdc\"; }\n .material-icons.autorenew:before {\n content: \"\\e863\"; }\n .material-icons.av_timer:before {\n content: \"\\e01b\"; }\n .material-icons.baby_changing_station:before {\n content: \"\\f19b\"; }\n .material-icons.back_hand:before {\n content: \"\\e764\"; }\n .material-icons.backpack:before {\n content: \"\\f19c\"; }\n .material-icons.backspace:before {\n content: \"\\e14a\"; }\n .material-icons.backup:before {\n content: \"\\e864\"; }\n .material-icons.backup_table:before {\n content: \"\\ef43\"; }\n .material-icons.badge:before {\n content: \"\\ea67\"; }\n .material-icons.bakery_dining:before {\n content: \"\\ea53\"; }\n .material-icons.balance:before {\n content: \"\\eaf6\"; }\n .material-icons.balcony:before {\n content: \"\\e58f\"; }\n .material-icons.ballot:before {\n content: \"\\e172\"; }\n .material-icons.bar_chart:before {\n content: \"\\e26b\"; }\n .material-icons.batch_prediction:before {\n content: \"\\f0f5\"; }\n .material-icons.bathroom:before {\n content: \"\\efdd\"; }\n .material-icons.bathtub:before {\n content: \"\\ea41\"; }\n .material-icons.battery_0_bar:before {\n content: \"\\ebdc\"; }\n .material-icons.battery_1_bar:before {\n content: \"\\ebd9\"; }\n .material-icons.battery_2_bar:before {\n content: \"\\ebe0\"; }\n .material-icons.battery_3_bar:before {\n content: \"\\ebdd\"; }\n .material-icons.battery_4_bar:before {\n content: \"\\ebe2\"; }\n .material-icons.battery_5_bar:before {\n content: \"\\ebd4\"; }\n .material-icons.battery_6_bar:before {\n content: \"\\ebd2\"; }\n .material-icons.battery_alert:before {\n content: \"\\e19c\"; }\n .material-icons.battery_charging_full:before {\n content: \"\\e1a3\"; }\n .material-icons.battery_full:before {\n content: \"\\e1a4\"; }\n .material-icons.battery_saver:before {\n content: \"\\efde\"; }\n .material-icons.battery_std:before {\n content: \"\\e1a5\"; }\n .material-icons.battery_unknown:before {\n content: \"\\e1a6\"; }\n .material-icons.beach_access:before {\n content: \"\\eb3e\"; }\n .material-icons.bed:before {\n content: \"\\efdf\"; }\n .material-icons.bedroom_baby:before {\n content: \"\\efe0\"; }\n .material-icons.bedroom_child:before {\n content: \"\\efe1\"; }\n .material-icons.bedroom_parent:before {\n content: \"\\efe2\"; }\n .material-icons.bedtime:before {\n content: \"\\ef44\"; }\n .material-icons.bedtime_off:before {\n content: \"\\eb76\"; }\n .material-icons.beenhere:before {\n content: \"\\e52d\"; }\n .material-icons.bento:before {\n content: \"\\f1f4\"; }\n .material-icons.bike_scooter:before {\n content: \"\\ef45\"; }\n .material-icons.biotech:before {\n content: \"\\ea3a\"; }\n .material-icons.blender:before {\n content: \"\\efe3\"; }\n .material-icons.blinds:before {\n content: \"\\e286\"; }\n .material-icons.blinds_closed:before {\n content: \"\\ec1f\"; }\n .material-icons.block:before {\n content: \"\\e14b\"; }\n .material-icons.block_flipped:before {\n content: \"\\ef46\"; }\n .material-icons.bloodtype:before {\n content: \"\\efe4\"; }\n .material-icons.bluetooth:before {\n content: \"\\e1a7\"; }\n .material-icons.bluetooth_audio:before {\n content: \"\\e60f\"; }\n .material-icons.bluetooth_connected:before {\n content: \"\\e1a8\"; }\n .material-icons.bluetooth_disabled:before {\n content: \"\\e1a9\"; }\n .material-icons.bluetooth_drive:before {\n content: \"\\efe5\"; }\n .material-icons.bluetooth_searching:before {\n content: \"\\e1aa\"; }\n .material-icons.blur_circular:before {\n content: \"\\e3a2\"; }\n .material-icons.blur_linear:before {\n content: \"\\e3a3\"; }\n .material-icons.blur_off:before {\n content: \"\\e3a4\"; }\n .material-icons.blur_on:before {\n content: \"\\e3a5\"; }\n .material-icons.bolt:before {\n content: \"\\ea0b\"; }\n .material-icons.book:before {\n content: \"\\e865\"; }\n .material-icons.book_online:before {\n content: \"\\f217\"; }\n .material-icons.bookmark:before {\n content: \"\\e866\"; }\n .material-icons.bookmark_add:before {\n content: \"\\e598\"; }\n .material-icons.bookmark_added:before {\n content: \"\\e599\"; }\n .material-icons.bookmark_border:before {\n content: \"\\e867\"; }\n .material-icons.bookmark_outline:before {\n content: \"\\e867\"; }\n .material-icons.bookmark_remove:before {\n content: \"\\e59a\"; }\n .material-icons.bookmarks:before {\n content: \"\\e98b\"; }\n .material-icons.border_all:before {\n content: \"\\e228\"; }\n .material-icons.border_bottom:before {\n content: \"\\e229\"; }\n .material-icons.border_clear:before {\n content: \"\\e22a\"; }\n .material-icons.border_color:before {\n content: \"\\e22b\"; }\n .material-icons.border_horizontal:before {\n content: \"\\e22c\"; }\n .material-icons.border_inner:before {\n content: \"\\e22d\"; }\n .material-icons.border_left:before {\n content: \"\\e22e\"; }\n .material-icons.border_outer:before {\n content: \"\\e22f\"; }\n .material-icons.border_right:before {\n content: \"\\e230\"; }\n .material-icons.border_style:before {\n content: \"\\e231\"; }\n .material-icons.border_top:before {\n content: \"\\e232\"; }\n .material-icons.border_vertical:before {\n content: \"\\e233\"; }\n .material-icons.boy:before {\n content: \"\\eb67\"; }\n .material-icons.branding_watermark:before {\n content: \"\\e06b\"; }\n .material-icons.breakfast_dining:before {\n content: \"\\ea54\"; }\n .material-icons.brightness_1:before {\n content: \"\\e3a6\"; }\n .material-icons.brightness_2:before {\n content: \"\\e3a7\"; }\n .material-icons.brightness_3:before {\n content: \"\\e3a8\"; }\n .material-icons.brightness_4:before {\n content: \"\\e3a9\"; }\n .material-icons.brightness_5:before {\n content: \"\\e3aa\"; }\n .material-icons.brightness_6:before {\n content: \"\\e3ab\"; }\n .material-icons.brightness_7:before {\n content: \"\\e3ac\"; }\n .material-icons.brightness_auto:before {\n content: \"\\e1ab\"; }\n .material-icons.brightness_high:before {\n content: \"\\e1ac\"; }\n .material-icons.brightness_low:before {\n content: \"\\e1ad\"; }\n .material-icons.brightness_medium:before {\n content: \"\\e1ae\"; }\n .material-icons.broadcast_on_home:before {\n content: \"\\f8f8\"; }\n .material-icons.broadcast_on_personal:before {\n content: \"\\f8f9\"; }\n .material-icons.broken_image:before {\n content: \"\\e3ad\"; }\n .material-icons.browse_gallery:before {\n content: \"\\ebd1\"; }\n .material-icons.browser_not_supported:before {\n content: \"\\ef47\"; }\n .material-icons.browser_updated:before {\n content: \"\\e7cf\"; }\n .material-icons.brunch_dining:before {\n content: \"\\ea73\"; }\n .material-icons.brush:before {\n content: \"\\e3ae\"; }\n .material-icons.bubble_chart:before {\n content: \"\\e6dd\"; }\n .material-icons.bug_report:before {\n content: \"\\e868\"; }\n .material-icons.build:before {\n content: \"\\e869\"; }\n .material-icons.build_circle:before {\n content: \"\\ef48\"; }\n .material-icons.bungalow:before {\n content: \"\\e591\"; }\n .material-icons.burst_mode:before {\n content: \"\\e43c\"; }\n .material-icons.bus_alert:before {\n content: \"\\e98f\"; }\n .material-icons.business:before {\n content: \"\\e0af\"; }\n .material-icons.business_center:before {\n content: \"\\eb3f\"; }\n .material-icons.cabin:before {\n content: \"\\e589\"; }\n .material-icons.cable:before {\n content: \"\\efe6\"; }\n .material-icons.cached:before {\n content: \"\\e86a\"; }\n .material-icons.cake:before {\n content: \"\\e7e9\"; }\n .material-icons.calculate:before {\n content: \"\\ea5f\"; }\n .material-icons.calendar_month:before {\n content: \"\\ebcc\"; }\n .material-icons.calendar_today:before {\n content: \"\\e935\"; }\n .material-icons.calendar_view_day:before {\n content: \"\\e936\"; }\n .material-icons.calendar_view_month:before {\n content: \"\\efe7\"; }\n .material-icons.calendar_view_week:before {\n content: \"\\efe8\"; }\n .material-icons.call:before {\n content: \"\\e0b0\"; }\n .material-icons.call_end:before {\n content: \"\\e0b1\"; }\n .material-icons.call_made:before {\n content: \"\\e0b2\"; }\n .material-icons.call_merge:before {\n content: \"\\e0b3\"; }\n .material-icons.call_missed:before {\n content: \"\\e0b4\"; }\n .material-icons.call_missed_outgoing:before {\n content: \"\\e0e4\"; }\n .material-icons.call_received:before {\n content: \"\\e0b5\"; }\n .material-icons.call_split:before {\n content: \"\\e0b6\"; }\n .material-icons.call_to_action:before {\n content: \"\\e06c\"; }\n .material-icons.camera:before {\n content: \"\\e3af\"; }\n .material-icons.camera_alt:before {\n content: \"\\e3b0\"; }\n .material-icons.camera_enhance:before {\n content: \"\\e8fc\"; }\n .material-icons.camera_front:before {\n content: \"\\e3b1\"; }\n .material-icons.camera_indoor:before {\n content: \"\\efe9\"; }\n .material-icons.camera_outdoor:before {\n content: \"\\efea\"; }\n .material-icons.camera_rear:before {\n content: \"\\e3b2\"; }\n .material-icons.camera_roll:before {\n content: \"\\e3b3\"; }\n .material-icons.cameraswitch:before {\n content: \"\\efeb\"; }\n .material-icons.campaign:before {\n content: \"\\ef49\"; }\n .material-icons.cancel:before {\n content: \"\\e5c9\"; }\n .material-icons.cancel_presentation:before {\n content: \"\\e0e9\"; }\n .material-icons.cancel_schedule_send:before {\n content: \"\\ea39\"; }\n .material-icons.candlestick_chart:before {\n content: \"\\ead4\"; }\n .material-icons.car_crash:before {\n content: \"\\ebf2\"; }\n .material-icons.car_rental:before {\n content: \"\\ea55\"; }\n .material-icons.car_repair:before {\n content: \"\\ea56\"; }\n .material-icons.card_giftcard:before {\n content: \"\\e8f6\"; }\n .material-icons.card_membership:before {\n content: \"\\e8f7\"; }\n .material-icons.card_travel:before {\n content: \"\\e8f8\"; }\n .material-icons.carpenter:before {\n content: \"\\f1f8\"; }\n .material-icons.cases:before {\n content: \"\\e992\"; }\n .material-icons.casino:before {\n content: \"\\eb40\"; }\n .material-icons.cast:before {\n content: \"\\e307\"; }\n .material-icons.cast_connected:before {\n content: \"\\e308\"; }\n .material-icons.cast_for_education:before {\n content: \"\\efec\"; }\n .material-icons.castle:before {\n content: \"\\eab1\"; }\n .material-icons.catching_pokemon:before {\n content: \"\\e508\"; }\n .material-icons.category:before {\n content: \"\\e574\"; }\n .material-icons.celebration:before {\n content: \"\\ea65\"; }\n .material-icons.cell_tower:before {\n content: \"\\ebba\"; }\n .material-icons.cell_wifi:before {\n content: \"\\e0ec\"; }\n .material-icons.center_focus_strong:before {\n content: \"\\e3b4\"; }\n .material-icons.center_focus_weak:before {\n content: \"\\e3b5\"; }\n .material-icons.chair:before {\n content: \"\\efed\"; }\n .material-icons.chair_alt:before {\n content: \"\\efee\"; }\n .material-icons.chalet:before {\n content: \"\\e585\"; }\n .material-icons.change_circle:before {\n content: \"\\e2e7\"; }\n .material-icons.change_history:before {\n content: \"\\e86b\"; }\n .material-icons.charging_station:before {\n content: \"\\f19d\"; }\n .material-icons.chat:before {\n content: \"\\e0b7\"; }\n .material-icons.chat_bubble:before {\n content: \"\\e0ca\"; }\n .material-icons.chat_bubble_outline:before {\n content: \"\\e0cb\"; }\n .material-icons.check:before {\n content: \"\\e5ca\"; }\n .material-icons.check_box:before {\n content: \"\\e834\"; }\n .material-icons.check_box_outline_blank:before {\n content: \"\\e835\"; }\n .material-icons.check_circle:before {\n content: \"\\e86c\"; }\n .material-icons.check_circle_outline:before {\n content: \"\\e92d\"; }\n .material-icons.checklist:before {\n content: \"\\e6b1\"; }\n .material-icons.checklist_rtl:before {\n content: \"\\e6b3\"; }\n .material-icons.checkroom:before {\n content: \"\\f19e\"; }\n .material-icons.chevron_left:before {\n content: \"\\e5cb\"; }\n .material-icons.chevron_right:before {\n content: \"\\e5cc\"; }\n .material-icons.child_care:before {\n content: \"\\eb41\"; }\n .material-icons.child_friendly:before {\n content: \"\\eb42\"; }\n .material-icons.chrome_reader_mode:before {\n content: \"\\e86d\"; }\n .material-icons.church:before {\n content: \"\\eaae\"; }\n .material-icons.circle:before {\n content: \"\\ef4a\"; }\n .material-icons.circle_notifications:before {\n content: \"\\e994\"; }\n .material-icons.class:before {\n content: \"\\e86e\"; }\n .material-icons.clean_hands:before {\n content: \"\\f21f\"; }\n .material-icons.cleaning_services:before {\n content: \"\\f0ff\"; }\n .material-icons.clear:before {\n content: \"\\e14c\"; }\n .material-icons.clear_all:before {\n content: \"\\e0b8\"; }\n .material-icons.close:before {\n content: \"\\e5cd\"; }\n .material-icons.close_fullscreen:before {\n content: \"\\f1cf\"; }\n .material-icons.closed_caption:before {\n content: \"\\e01c\"; }\n .material-icons.closed_caption_disabled:before {\n content: \"\\f1dc\"; }\n .material-icons.closed_caption_off:before {\n content: \"\\e996\"; }\n .material-icons.cloud:before {\n content: \"\\e2bd\"; }\n .material-icons.cloud_circle:before {\n content: \"\\e2be\"; }\n .material-icons.cloud_done:before {\n content: \"\\e2bf\"; }\n .material-icons.cloud_download:before {\n content: \"\\e2c0\"; }\n .material-icons.cloud_off:before {\n content: \"\\e2c1\"; }\n .material-icons.cloud_queue:before {\n content: \"\\e2c2\"; }\n .material-icons.cloud_sync:before {\n content: \"\\eb5a\"; }\n .material-icons.cloud_upload:before {\n content: \"\\e2c3\"; }\n .material-icons.cloudy_snowing:before {\n content: \"\\e810\"; }\n .material-icons.co2:before {\n content: \"\\e7b0\"; }\n .material-icons.co_present:before {\n content: \"\\eaf0\"; }\n .material-icons.code:before {\n content: \"\\e86f\"; }\n .material-icons.code_off:before {\n content: \"\\e4f3\"; }\n .material-icons.coffee:before {\n content: \"\\efef\"; }\n .material-icons.coffee_maker:before {\n content: \"\\eff0\"; }\n .material-icons.collections:before {\n content: \"\\e3b6\"; }\n .material-icons.collections_bookmark:before {\n content: \"\\e431\"; }\n .material-icons.color_lens:before {\n content: \"\\e3b7\"; }\n .material-icons.colorize:before {\n content: \"\\e3b8\"; }\n .material-icons.comment:before {\n content: \"\\e0b9\"; }\n .material-icons.comment_bank:before {\n content: \"\\ea4e\"; }\n .material-icons.comments_disabled:before {\n content: \"\\e7a2\"; }\n .material-icons.commit:before {\n content: \"\\eaf5\"; }\n .material-icons.commute:before {\n content: \"\\e940\"; }\n .material-icons.compare:before {\n content: \"\\e3b9\"; }\n .material-icons.compare_arrows:before {\n content: \"\\e915\"; }\n .material-icons.compass_calibration:before {\n content: \"\\e57c\"; }\n .material-icons.compost:before {\n content: \"\\e761\"; }\n .material-icons.compress:before {\n content: \"\\e94d\"; }\n .material-icons.computer:before {\n content: \"\\e30a\"; }\n .material-icons.confirmation_num:before {\n content: \"\\e638\"; }\n .material-icons.confirmation_number:before {\n content: \"\\e638\"; }\n .material-icons.connect_without_contact:before {\n content: \"\\f223\"; }\n .material-icons.connected_tv:before {\n content: \"\\e998\"; }\n .material-icons.connecting_airports:before {\n content: \"\\e7c9\"; }\n .material-icons.construction:before {\n content: \"\\ea3c\"; }\n .material-icons.contact_mail:before {\n content: \"\\e0d0\"; }\n .material-icons.contact_page:before {\n content: \"\\f22e\"; }\n .material-icons.contact_phone:before {\n content: \"\\e0cf\"; }\n .material-icons.contact_support:before {\n content: \"\\e94c\"; }\n .material-icons.contactless:before {\n content: \"\\ea71\"; }\n .material-icons.contacts:before {\n content: \"\\e0ba\"; }\n .material-icons.content_copy:before {\n content: \"\\e14d\"; }\n .material-icons.content_cut:before {\n content: \"\\e14e\"; }\n .material-icons.content_paste:before {\n content: \"\\e14f\"; }\n .material-icons.content_paste_go:before {\n content: \"\\ea8e\"; }\n .material-icons.content_paste_off:before {\n content: \"\\e4f8\"; }\n .material-icons.content_paste_search:before {\n content: \"\\ea9b\"; }\n .material-icons.contrast:before {\n content: \"\\eb37\"; }\n .material-icons.control_camera:before {\n content: \"\\e074\"; }\n .material-icons.control_point:before {\n content: \"\\e3ba\"; }\n .material-icons.control_point_duplicate:before {\n content: \"\\e3bb\"; }\n .material-icons.cookie:before {\n content: \"\\eaac\"; }\n .material-icons.copy_all:before {\n content: \"\\e2ec\"; }\n .material-icons.copyright:before {\n content: \"\\e90c\"; }\n .material-icons.coronavirus:before {\n content: \"\\f221\"; }\n .material-icons.corporate_fare:before {\n content: \"\\f1d0\"; }\n .material-icons.cottage:before {\n content: \"\\e587\"; }\n .material-icons.countertops:before {\n content: \"\\f1f7\"; }\n .material-icons.create:before {\n content: \"\\e150\"; }\n .material-icons.create_new_folder:before {\n content: \"\\e2cc\"; }\n .material-icons.credit_card:before {\n content: \"\\e870\"; }\n .material-icons.credit_card_off:before {\n content: \"\\e4f4\"; }\n .material-icons.credit_score:before {\n content: \"\\eff1\"; }\n .material-icons.crib:before {\n content: \"\\e588\"; }\n .material-icons.crisis_alert:before {\n content: \"\\ebe9\"; }\n .material-icons.crop:before {\n content: \"\\e3be\"; }\n .material-icons.crop_16_9:before {\n content: \"\\e3bc\"; }\n .material-icons.crop_3_2:before {\n content: \"\\e3bd\"; }\n .material-icons.crop_5_4:before {\n content: \"\\e3bf\"; }\n .material-icons.crop_7_5:before {\n content: \"\\e3c0\"; }\n .material-icons.crop_din:before {\n content: \"\\e3c1\"; }\n .material-icons.crop_free:before {\n content: \"\\e3c2\"; }\n .material-icons.crop_landscape:before {\n content: \"\\e3c3\"; }\n .material-icons.crop_original:before {\n content: \"\\e3c4\"; }\n .material-icons.crop_portrait:before {\n content: \"\\e3c5\"; }\n .material-icons.crop_rotate:before {\n content: \"\\e437\"; }\n .material-icons.crop_square:before {\n content: \"\\e3c6\"; }\n .material-icons.cruelty_free:before {\n content: \"\\e799\"; }\n .material-icons.css:before {\n content: \"\\eb93\"; }\n .material-icons.currency_bitcoin:before {\n content: \"\\ebc5\"; }\n .material-icons.currency_exchange:before {\n content: \"\\eb70\"; }\n .material-icons.currency_franc:before {\n content: \"\\eafa\"; }\n .material-icons.currency_lira:before {\n content: \"\\eaef\"; }\n .material-icons.currency_pound:before {\n content: \"\\eaf1\"; }\n .material-icons.currency_ruble:before {\n content: \"\\eaec\"; }\n .material-icons.currency_rupee:before {\n content: \"\\eaf7\"; }\n .material-icons.currency_yen:before {\n content: \"\\eafb\"; }\n .material-icons.currency_yuan:before {\n content: \"\\eaf9\"; }\n .material-icons.curtains:before {\n content: \"\\ec1e\"; }\n .material-icons.curtains_closed:before {\n content: \"\\ec1d\"; }\n .material-icons.cyclone:before {\n content: \"\\ebd5\"; }\n .material-icons.dangerous:before {\n content: \"\\e99a\"; }\n .material-icons.dark_mode:before {\n content: \"\\e51c\"; }\n .material-icons.dashboard:before {\n content: \"\\e871\"; }\n .material-icons.dashboard_customize:before {\n content: \"\\e99b\"; }\n .material-icons.data_array:before {\n content: \"\\ead1\"; }\n .material-icons.data_exploration:before {\n content: \"\\e76f\"; }\n .material-icons.data_object:before {\n content: \"\\ead3\"; }\n .material-icons.data_saver_off:before {\n content: \"\\eff2\"; }\n .material-icons.data_saver_on:before {\n content: \"\\eff3\"; }\n .material-icons.data_thresholding:before {\n content: \"\\eb9f\"; }\n .material-icons.data_usage:before {\n content: \"\\e1af\"; }\n .material-icons.dataset:before {\n content: \"\\f8ee\"; }\n .material-icons.dataset_linked:before {\n content: \"\\f8ef\"; }\n .material-icons.date_range:before {\n content: \"\\e916\"; }\n .material-icons.deblur:before {\n content: \"\\eb77\"; }\n .material-icons.deck:before {\n content: \"\\ea42\"; }\n .material-icons.dehaze:before {\n content: \"\\e3c7\"; }\n .material-icons.delete:before {\n content: \"\\e872\"; }\n .material-icons.delete_forever:before {\n content: \"\\e92b\"; }\n .material-icons.delete_outline:before {\n content: \"\\e92e\"; }\n .material-icons.delete_sweep:before {\n content: \"\\e16c\"; }\n .material-icons.delivery_dining:before {\n content: \"\\ea72\"; }\n .material-icons.density_large:before {\n content: \"\\eba9\"; }\n .material-icons.density_medium:before {\n content: \"\\eb9e\"; }\n .material-icons.density_small:before {\n content: \"\\eba8\"; }\n .material-icons.departure_board:before {\n content: \"\\e576\"; }\n .material-icons.description:before {\n content: \"\\e873\"; }\n .material-icons.deselect:before {\n content: \"\\ebb6\"; }\n .material-icons.design_services:before {\n content: \"\\f10a\"; }\n .material-icons.desk:before {\n content: \"\\f8f4\"; }\n .material-icons.desktop_access_disabled:before {\n content: \"\\e99d\"; }\n .material-icons.desktop_mac:before {\n content: \"\\e30b\"; }\n .material-icons.desktop_windows:before {\n content: \"\\e30c\"; }\n .material-icons.details:before {\n content: \"\\e3c8\"; }\n .material-icons.developer_board:before {\n content: \"\\e30d\"; }\n .material-icons.developer_board_off:before {\n content: \"\\e4ff\"; }\n .material-icons.developer_mode:before {\n content: \"\\e1b0\"; }\n .material-icons.device_hub:before {\n content: \"\\e335\"; }\n .material-icons.device_thermostat:before {\n content: \"\\e1ff\"; }\n .material-icons.device_unknown:before {\n content: \"\\e339\"; }\n .material-icons.devices:before {\n content: \"\\e1b1\"; }\n .material-icons.devices_fold:before {\n content: \"\\ebde\"; }\n .material-icons.devices_other:before {\n content: \"\\e337\"; }\n .material-icons.dialer_sip:before {\n content: \"\\e0bb\"; }\n .material-icons.dialpad:before {\n content: \"\\e0bc\"; }\n .material-icons.diamond:before {\n content: \"\\ead5\"; }\n .material-icons.difference:before {\n content: \"\\eb7d\"; }\n .material-icons.dining:before {\n content: \"\\eff4\"; }\n .material-icons.dinner_dining:before {\n content: \"\\ea57\"; }\n .material-icons.directions:before {\n content: \"\\e52e\"; }\n .material-icons.directions_bike:before {\n content: \"\\e52f\"; }\n .material-icons.directions_boat:before {\n content: \"\\e532\"; }\n .material-icons.directions_boat_filled:before {\n content: \"\\eff5\"; }\n .material-icons.directions_bus:before {\n content: \"\\e530\"; }\n .material-icons.directions_bus_filled:before {\n content: \"\\eff6\"; }\n .material-icons.directions_car:before {\n content: \"\\e531\"; }\n .material-icons.directions_car_filled:before {\n content: \"\\eff7\"; }\n .material-icons.directions_ferry:before {\n content: \"\\e532\"; }\n .material-icons.directions_off:before {\n content: \"\\f10f\"; }\n .material-icons.directions_railway:before {\n content: \"\\e534\"; }\n .material-icons.directions_railway_filled:before {\n content: \"\\eff8\"; }\n .material-icons.directions_run:before {\n content: \"\\e566\"; }\n .material-icons.directions_subway:before {\n content: \"\\e533\"; }\n .material-icons.directions_subway_filled:before {\n content: \"\\eff9\"; }\n .material-icons.directions_train:before {\n content: \"\\e534\"; }\n .material-icons.directions_transit:before {\n content: \"\\e535\"; }\n .material-icons.directions_transit_filled:before {\n content: \"\\effa\"; }\n .material-icons.directions_walk:before {\n content: \"\\e536\"; }\n .material-icons.dirty_lens:before {\n content: \"\\ef4b\"; }\n .material-icons.disabled_by_default:before {\n content: \"\\f230\"; }\n .material-icons.disabled_visible:before {\n content: \"\\e76e\"; }\n .material-icons.disc_full:before {\n content: \"\\e610\"; }\n .material-icons.discord:before {\n content: \"\\ea6c\"; }\n .material-icons.discount:before {\n content: \"\\ebc9\"; }\n .material-icons.display_settings:before {\n content: \"\\eb97\"; }\n .material-icons.dnd_forwardslash:before {\n content: \"\\e611\"; }\n .material-icons.dns:before {\n content: \"\\e875\"; }\n .material-icons.do_disturb:before {\n content: \"\\f08c\"; }\n .material-icons.do_disturb_alt:before {\n content: \"\\f08d\"; }\n .material-icons.do_disturb_off:before {\n content: \"\\f08e\"; }\n .material-icons.do_disturb_on:before {\n content: \"\\f08f\"; }\n .material-icons.do_not_disturb:before {\n content: \"\\e612\"; }\n .material-icons.do_not_disturb_alt:before {\n content: \"\\e611\"; }\n .material-icons.do_not_disturb_off:before {\n content: \"\\e643\"; }\n .material-icons.do_not_disturb_on:before {\n content: \"\\e644\"; }\n .material-icons.do_not_disturb_on_total_silence:before {\n content: \"\\effb\"; }\n .material-icons.do_not_step:before {\n content: \"\\f19f\"; }\n .material-icons.do_not_touch:before {\n content: \"\\f1b0\"; }\n .material-icons.dock:before {\n content: \"\\e30e\"; }\n .material-icons.document_scanner:before {\n content: \"\\e5fa\"; }\n .material-icons.domain:before {\n content: \"\\e7ee\"; }\n .material-icons.domain_add:before {\n content: \"\\eb62\"; }\n .material-icons.domain_disabled:before {\n content: \"\\e0ef\"; }\n .material-icons.domain_verification:before {\n content: \"\\ef4c\"; }\n .material-icons.done:before {\n content: \"\\e876\"; }\n .material-icons.done_all:before {\n content: \"\\e877\"; }\n .material-icons.done_outline:before {\n content: \"\\e92f\"; }\n .material-icons.donut_large:before {\n content: \"\\e917\"; }\n .material-icons.donut_small:before {\n content: \"\\e918\"; }\n .material-icons.door_back:before {\n content: \"\\effc\"; }\n .material-icons.door_front:before {\n content: \"\\effd\"; }\n .material-icons.door_sliding:before {\n content: \"\\effe\"; }\n .material-icons.doorbell:before {\n content: \"\\efff\"; }\n .material-icons.double_arrow:before {\n content: \"\\ea50\"; }\n .material-icons.downhill_skiing:before {\n content: \"\\e509\"; }\n .material-icons.download:before {\n content: \"\\f090\"; }\n .material-icons.download_done:before {\n content: \"\\f091\"; }\n .material-icons.download_for_offline:before {\n content: \"\\f000\"; }\n .material-icons.downloading:before {\n content: \"\\f001\"; }\n .material-icons.drafts:before {\n content: \"\\e151\"; }\n .material-icons.drag_handle:before {\n content: \"\\e25d\"; }\n .material-icons.drag_indicator:before {\n content: \"\\e945\"; }\n .material-icons.draw:before {\n content: \"\\e746\"; }\n .material-icons.drive_eta:before {\n content: \"\\e613\"; }\n .material-icons.drive_file_move:before {\n content: \"\\e675\"; }\n .material-icons.drive_file_move_outline:before {\n content: \"\\e9a1\"; }\n .material-icons.drive_file_move_rtl:before {\n content: \"\\e76d\"; }\n .material-icons.drive_file_rename_outline:before {\n content: \"\\e9a2\"; }\n .material-icons.drive_folder_upload:before {\n content: \"\\e9a3\"; }\n .material-icons.dry:before {\n content: \"\\f1b3\"; }\n .material-icons.dry_cleaning:before {\n content: \"\\ea58\"; }\n .material-icons.duo:before {\n content: \"\\e9a5\"; }\n .material-icons.dvr:before {\n content: \"\\e1b2\"; }\n .material-icons.dynamic_feed:before {\n content: \"\\ea14\"; }\n .material-icons.dynamic_form:before {\n content: \"\\f1bf\"; }\n .material-icons.e_mobiledata:before {\n content: \"\\f002\"; }\n .material-icons.earbuds:before {\n content: \"\\f003\"; }\n .material-icons.earbuds_battery:before {\n content: \"\\f004\"; }\n .material-icons.east:before {\n content: \"\\f1df\"; }\n .material-icons.eco:before {\n content: \"\\ea35\"; }\n .material-icons.edgesensor_high:before {\n content: \"\\f005\"; }\n .material-icons.edgesensor_low:before {\n content: \"\\f006\"; }\n .material-icons.edit:before {\n content: \"\\e3c9\"; }\n .material-icons.edit_attributes:before {\n content: \"\\e578\"; }\n .material-icons.edit_calendar:before {\n content: \"\\e742\"; }\n .material-icons.edit_location:before {\n content: \"\\e568\"; }\n .material-icons.edit_location_alt:before {\n content: \"\\e1c5\"; }\n .material-icons.edit_note:before {\n content: \"\\e745\"; }\n .material-icons.edit_notifications:before {\n content: \"\\e525\"; }\n .material-icons.edit_off:before {\n content: \"\\e950\"; }\n .material-icons.edit_road:before {\n content: \"\\ef4d\"; }\n .material-icons.egg:before {\n content: \"\\eacc\"; }\n .material-icons.egg_alt:before {\n content: \"\\eac8\"; }\n .material-icons.eject:before {\n content: \"\\e8fb\"; }\n .material-icons.elderly:before {\n content: \"\\f21a\"; }\n .material-icons.elderly_woman:before {\n content: \"\\eb69\"; }\n .material-icons.electric_bike:before {\n content: \"\\eb1b\"; }\n .material-icons.electric_bolt:before {\n content: \"\\ec1c\"; }\n .material-icons.electric_car:before {\n content: \"\\eb1c\"; }\n .material-icons.electric_meter:before {\n content: \"\\ec1b\"; }\n .material-icons.electric_moped:before {\n content: \"\\eb1d\"; }\n .material-icons.electric_rickshaw:before {\n content: \"\\eb1e\"; }\n .material-icons.electric_scooter:before {\n content: \"\\eb1f\"; }\n .material-icons.electrical_services:before {\n content: \"\\f102\"; }\n .material-icons.elevator:before {\n content: \"\\f1a0\"; }\n .material-icons.email:before {\n content: \"\\e0be\"; }\n .material-icons.emergency:before {\n content: \"\\e1eb\"; }\n .material-icons.emergency_recording:before {\n content: \"\\ebf4\"; }\n .material-icons.emergency_share:before {\n content: \"\\ebf6\"; }\n .material-icons.emoji_emotions:before {\n content: \"\\ea22\"; }\n .material-icons.emoji_events:before {\n content: \"\\ea23\"; }\n .material-icons.emoji_flags:before {\n content: \"\\ea1a\"; }\n .material-icons.emoji_food_beverage:before {\n content: \"\\ea1b\"; }\n .material-icons.emoji_nature:before {\n content: \"\\ea1c\"; }\n .material-icons.emoji_objects:before {\n content: \"\\ea24\"; }\n .material-icons.emoji_people:before {\n content: \"\\ea1d\"; }\n .material-icons.emoji_symbols:before {\n content: \"\\ea1e\"; }\n .material-icons.emoji_transportation:before {\n content: \"\\ea1f\"; }\n .material-icons.energy_savings_leaf:before {\n content: \"\\ec1a\"; }\n .material-icons.engineering:before {\n content: \"\\ea3d\"; }\n .material-icons.enhance_photo_translate:before {\n content: \"\\e8fc\"; }\n .material-icons.enhanced_encryption:before {\n content: \"\\e63f\"; }\n .material-icons.equalizer:before {\n content: \"\\e01d\"; }\n .material-icons.error:before {\n content: \"\\e000\"; }\n .material-icons.error_outline:before {\n content: \"\\e001\"; }\n .material-icons.escalator:before {\n content: \"\\f1a1\"; }\n .material-icons.escalator_warning:before {\n content: \"\\f1ac\"; }\n .material-icons.euro:before {\n content: \"\\ea15\"; }\n .material-icons.euro_symbol:before {\n content: \"\\e926\"; }\n .material-icons.ev_station:before {\n content: \"\\e56d\"; }\n .material-icons.event:before {\n content: \"\\e878\"; }\n .material-icons.event_available:before {\n content: \"\\e614\"; }\n .material-icons.event_busy:before {\n content: \"\\e615\"; }\n .material-icons.event_note:before {\n content: \"\\e616\"; }\n .material-icons.event_repeat:before {\n content: \"\\eb7b\"; }\n .material-icons.event_seat:before {\n content: \"\\e903\"; }\n .material-icons.exit_to_app:before {\n content: \"\\e879\"; }\n .material-icons.expand:before {\n content: \"\\e94f\"; }\n .material-icons.expand_circle_down:before {\n content: \"\\e7cd\"; }\n .material-icons.expand_less:before {\n content: \"\\e5ce\"; }\n .material-icons.expand_more:before {\n content: \"\\e5cf\"; }\n .material-icons.explicit:before {\n content: \"\\e01e\"; }\n .material-icons.explore:before {\n content: \"\\e87a\"; }\n .material-icons.explore_off:before {\n content: \"\\e9a8\"; }\n .material-icons.exposure:before {\n content: \"\\e3ca\"; }\n .material-icons.exposure_minus_1:before {\n content: \"\\e3cb\"; }\n .material-icons.exposure_minus_2:before {\n content: \"\\e3cc\"; }\n .material-icons.exposure_neg_1:before {\n content: \"\\e3cb\"; }\n .material-icons.exposure_neg_2:before {\n content: \"\\e3cc\"; }\n .material-icons.exposure_plus_1:before {\n content: \"\\e3cd\"; }\n .material-icons.exposure_plus_2:before {\n content: \"\\e3ce\"; }\n .material-icons.exposure_zero:before {\n content: \"\\e3cf\"; }\n .material-icons.extension:before {\n content: \"\\e87b\"; }\n .material-icons.extension_off:before {\n content: \"\\e4f5\"; }\n .material-icons.face:before {\n content: \"\\e87c\"; }\n .material-icons.face_retouching_natural:before {\n content: \"\\ef4e\"; }\n .material-icons.face_retouching_off:before {\n content: \"\\f007\"; }\n .material-icons.facebook:before {\n content: \"\\f234\"; }\n .material-icons.fact_check:before {\n content: \"\\f0c5\"; }\n .material-icons.factory:before {\n content: \"\\ebbc\"; }\n .material-icons.family_restroom:before {\n content: \"\\f1a2\"; }\n .material-icons.fast_forward:before {\n content: \"\\e01f\"; }\n .material-icons.fast_rewind:before {\n content: \"\\e020\"; }\n .material-icons.fastfood:before {\n content: \"\\e57a\"; }\n .material-icons.favorite:before {\n content: \"\\e87d\"; }\n .material-icons.favorite_border:before {\n content: \"\\e87e\"; }\n .material-icons.favorite_outline:before {\n content: \"\\e87e\"; }\n .material-icons.fax:before {\n content: \"\\ead8\"; }\n .material-icons.featured_play_list:before {\n content: \"\\e06d\"; }\n .material-icons.featured_video:before {\n content: \"\\e06e\"; }\n .material-icons.feed:before {\n content: \"\\f009\"; }\n .material-icons.feedback:before {\n content: \"\\e87f\"; }\n .material-icons.female:before {\n content: \"\\e590\"; }\n .material-icons.fence:before {\n content: \"\\f1f6\"; }\n .material-icons.festival:before {\n content: \"\\ea68\"; }\n .material-icons.fiber_dvr:before {\n content: \"\\e05d\"; }\n .material-icons.fiber_manual_record:before {\n content: \"\\e061\"; }\n .material-icons.fiber_new:before {\n content: \"\\e05e\"; }\n .material-icons.fiber_pin:before {\n content: \"\\e06a\"; }\n .material-icons.fiber_smart_record:before {\n content: \"\\e062\"; }\n .material-icons.file_copy:before {\n content: \"\\e173\"; }\n .material-icons.file_download:before {\n content: \"\\e2c4\"; }\n .material-icons.file_download_done:before {\n content: \"\\e9aa\"; }\n .material-icons.file_download_off:before {\n content: \"\\e4fe\"; }\n .material-icons.file_open:before {\n content: \"\\eaf3\"; }\n .material-icons.file_present:before {\n content: \"\\ea0e\"; }\n .material-icons.file_upload:before {\n content: \"\\e2c6\"; }\n .material-icons.filter:before {\n content: \"\\e3d3\"; }\n .material-icons.filter_1:before {\n content: \"\\e3d0\"; }\n .material-icons.filter_2:before {\n content: \"\\e3d1\"; }\n .material-icons.filter_3:before {\n content: \"\\e3d2\"; }\n .material-icons.filter_4:before {\n content: \"\\e3d4\"; }\n .material-icons.filter_5:before {\n content: \"\\e3d5\"; }\n .material-icons.filter_6:before {\n content: \"\\e3d6\"; }\n .material-icons.filter_7:before {\n content: \"\\e3d7\"; }\n .material-icons.filter_8:before {\n content: \"\\e3d8\"; }\n .material-icons.filter_9:before {\n content: \"\\e3d9\"; }\n .material-icons.filter_9_plus:before {\n content: \"\\e3da\"; }\n .material-icons.filter_alt:before {\n content: \"\\ef4f\"; }\n .material-icons.filter_alt_off:before {\n content: \"\\eb32\"; }\n .material-icons.filter_b_and_w:before {\n content: \"\\e3db\"; }\n .material-icons.filter_center_focus:before {\n content: \"\\e3dc\"; }\n .material-icons.filter_drama:before {\n content: \"\\e3dd\"; }\n .material-icons.filter_frames:before {\n content: \"\\e3de\"; }\n .material-icons.filter_hdr:before {\n content: \"\\e3df\"; }\n .material-icons.filter_list:before {\n content: \"\\e152\"; }\n .material-icons.filter_list_alt:before {\n content: \"\\e94e\"; }\n .material-icons.filter_list_off:before {\n content: \"\\eb57\"; }\n .material-icons.filter_none:before {\n content: \"\\e3e0\"; }\n .material-icons.filter_tilt_shift:before {\n content: \"\\e3e2\"; }\n .material-icons.filter_vintage:before {\n content: \"\\e3e3\"; }\n .material-icons.find_in_page:before {\n content: \"\\e880\"; }\n .material-icons.find_replace:before {\n content: \"\\e881\"; }\n .material-icons.fingerprint:before {\n content: \"\\e90d\"; }\n .material-icons.fire_extinguisher:before {\n content: \"\\f1d8\"; }\n .material-icons.fire_hydrant:before {\n content: \"\\f1a3\"; }\n .material-icons.fire_hydrant_alt:before {\n content: \"\\f8f1\"; }\n .material-icons.fire_truck:before {\n content: \"\\f8f2\"; }\n .material-icons.fireplace:before {\n content: \"\\ea43\"; }\n .material-icons.first_page:before {\n content: \"\\e5dc\"; }\n .material-icons.fit_screen:before {\n content: \"\\ea10\"; }\n .material-icons.fitbit:before {\n content: \"\\e82b\"; }\n .material-icons.fitness_center:before {\n content: \"\\eb43\"; }\n .material-icons.flag:before {\n content: \"\\e153\"; }\n .material-icons.flag_circle:before {\n content: \"\\eaf8\"; }\n .material-icons.flaky:before {\n content: \"\\ef50\"; }\n .material-icons.flare:before {\n content: \"\\e3e4\"; }\n .material-icons.flash_auto:before {\n content: \"\\e3e5\"; }\n .material-icons.flash_off:before {\n content: \"\\e3e6\"; }\n .material-icons.flash_on:before {\n content: \"\\e3e7\"; }\n .material-icons.flashlight_off:before {\n content: \"\\f00a\"; }\n .material-icons.flashlight_on:before {\n content: \"\\f00b\"; }\n .material-icons.flatware:before {\n content: \"\\f00c\"; }\n .material-icons.flight:before {\n content: \"\\e539\"; }\n .material-icons.flight_class:before {\n content: \"\\e7cb\"; }\n .material-icons.flight_land:before {\n content: \"\\e904\"; }\n .material-icons.flight_takeoff:before {\n content: \"\\e905\"; }\n .material-icons.flip:before {\n content: \"\\e3e8\"; }\n .material-icons.flip_camera_android:before {\n content: \"\\ea37\"; }\n .material-icons.flip_camera_ios:before {\n content: \"\\ea38\"; }\n .material-icons.flip_to_back:before {\n content: \"\\e882\"; }\n .material-icons.flip_to_front:before {\n content: \"\\e883\"; }\n .material-icons.flood:before {\n content: \"\\ebe6\"; }\n .material-icons.flourescent:before {\n content: \"\\f00d\"; }\n .material-icons.flutter_dash:before {\n content: \"\\e00b\"; }\n .material-icons.fmd_bad:before {\n content: \"\\f00e\"; }\n .material-icons.fmd_good:before {\n content: \"\\f00f\"; }\n .material-icons.foggy:before {\n content: \"\\e818\"; }\n .material-icons.folder:before {\n content: \"\\e2c7\"; }\n .material-icons.folder_copy:before {\n content: \"\\ebbd\"; }\n .material-icons.folder_delete:before {\n content: \"\\eb34\"; }\n .material-icons.folder_off:before {\n content: \"\\eb83\"; }\n .material-icons.folder_open:before {\n content: \"\\e2c8\"; }\n .material-icons.folder_shared:before {\n content: \"\\e2c9\"; }\n .material-icons.folder_special:before {\n content: \"\\e617\"; }\n .material-icons.folder_zip:before {\n content: \"\\eb2c\"; }\n .material-icons.follow_the_signs:before {\n content: \"\\f222\"; }\n .material-icons.font_download:before {\n content: \"\\e167\"; }\n .material-icons.font_download_off:before {\n content: \"\\e4f9\"; }\n .material-icons.food_bank:before {\n content: \"\\f1f2\"; }\n .material-icons.forest:before {\n content: \"\\ea99\"; }\n .material-icons.fork_left:before {\n content: \"\\eba0\"; }\n .material-icons.fork_right:before {\n content: \"\\ebac\"; }\n .material-icons.format_align_center:before {\n content: \"\\e234\"; }\n .material-icons.format_align_justify:before {\n content: \"\\e235\"; }\n .material-icons.format_align_left:before {\n content: \"\\e236\"; }\n .material-icons.format_align_right:before {\n content: \"\\e237\"; }\n .material-icons.format_bold:before {\n content: \"\\e238\"; }\n .material-icons.format_clear:before {\n content: \"\\e239\"; }\n .material-icons.format_color_fill:before {\n content: \"\\e23a\"; }\n .material-icons.format_color_reset:before {\n content: \"\\e23b\"; }\n .material-icons.format_color_text:before {\n content: \"\\e23c\"; }\n .material-icons.format_indent_decrease:before {\n content: \"\\e23d\"; }\n .material-icons.format_indent_increase:before {\n content: \"\\e23e\"; }\n .material-icons.format_italic:before {\n content: \"\\e23f\"; }\n .material-icons.format_line_spacing:before {\n content: \"\\e240\"; }\n .material-icons.format_list_bulleted:before {\n content: \"\\e241\"; }\n .material-icons.format_list_numbered:before {\n content: \"\\e242\"; }\n .material-icons.format_list_numbered_rtl:before {\n content: \"\\e267\"; }\n .material-icons.format_overline:before {\n content: \"\\eb65\"; }\n .material-icons.format_paint:before {\n content: \"\\e243\"; }\n .material-icons.format_quote:before {\n content: \"\\e244\"; }\n .material-icons.format_shapes:before {\n content: \"\\e25e\"; }\n .material-icons.format_size:before {\n content: \"\\e245\"; }\n .material-icons.format_strikethrough:before {\n content: \"\\e246\"; }\n .material-icons.format_textdirection_l_to_r:before {\n content: \"\\e247\"; }\n .material-icons.format_textdirection_r_to_l:before {\n content: \"\\e248\"; }\n .material-icons.format_underline:before {\n content: \"\\e249\"; }\n .material-icons.format_underlined:before {\n content: \"\\e249\"; }\n .material-icons.fort:before {\n content: \"\\eaad\"; }\n .material-icons.forum:before {\n content: \"\\e0bf\"; }\n .material-icons.forward:before {\n content: \"\\e154\"; }\n .material-icons.forward_10:before {\n content: \"\\e056\"; }\n .material-icons.forward_30:before {\n content: \"\\e057\"; }\n .material-icons.forward_5:before {\n content: \"\\e058\"; }\n .material-icons.forward_to_inbox:before {\n content: \"\\f187\"; }\n .material-icons.foundation:before {\n content: \"\\f200\"; }\n .material-icons.free_breakfast:before {\n content: \"\\eb44\"; }\n .material-icons.free_cancellation:before {\n content: \"\\e748\"; }\n .material-icons.front_hand:before {\n content: \"\\e769\"; }\n .material-icons.fullscreen:before {\n content: \"\\e5d0\"; }\n .material-icons.fullscreen_exit:before {\n content: \"\\e5d1\"; }\n .material-icons.functions:before {\n content: \"\\e24a\"; }\n .material-icons.g_mobiledata:before {\n content: \"\\f010\"; }\n .material-icons.g_translate:before {\n content: \"\\e927\"; }\n .material-icons.gamepad:before {\n content: \"\\e30f\"; }\n .material-icons.games:before {\n content: \"\\e021\"; }\n .material-icons.garage:before {\n content: \"\\f011\"; }\n .material-icons.gas_meter:before {\n content: \"\\ec19\"; }\n .material-icons.gavel:before {\n content: \"\\e90e\"; }\n .material-icons.generating_tokens:before {\n content: \"\\e749\"; }\n .material-icons.gesture:before {\n content: \"\\e155\"; }\n .material-icons.get_app:before {\n content: \"\\e884\"; }\n .material-icons.gif:before {\n content: \"\\e908\"; }\n .material-icons.gif_box:before {\n content: \"\\e7a3\"; }\n .material-icons.girl:before {\n content: \"\\eb68\"; }\n .material-icons.gite:before {\n content: \"\\e58b\"; }\n .material-icons.goat:before {\n content: \"\\ebff\"; }\n .material-icons.golf_course:before {\n content: \"\\eb45\"; }\n .material-icons.gpp_bad:before {\n content: \"\\f012\"; }\n .material-icons.gpp_good:before {\n content: \"\\f013\"; }\n .material-icons.gpp_maybe:before {\n content: \"\\f014\"; }\n .material-icons.gps_fixed:before {\n content: \"\\e1b3\"; }\n .material-icons.gps_not_fixed:before {\n content: \"\\e1b4\"; }\n .material-icons.gps_off:before {\n content: \"\\e1b5\"; }\n .material-icons.grade:before {\n content: \"\\e885\"; }\n .material-icons.gradient:before {\n content: \"\\e3e9\"; }\n .material-icons.grading:before {\n content: \"\\ea4f\"; }\n .material-icons.grain:before {\n content: \"\\e3ea\"; }\n .material-icons.graphic_eq:before {\n content: \"\\e1b8\"; }\n .material-icons.grass:before {\n content: \"\\f205\"; }\n .material-icons.grid_3x3:before {\n content: \"\\f015\"; }\n .material-icons.grid_4x4:before {\n content: \"\\f016\"; }\n .material-icons.grid_goldenratio:before {\n content: \"\\f017\"; }\n .material-icons.grid_off:before {\n content: \"\\e3eb\"; }\n .material-icons.grid_on:before {\n content: \"\\e3ec\"; }\n .material-icons.grid_view:before {\n content: \"\\e9b0\"; }\n .material-icons.group:before {\n content: \"\\e7ef\"; }\n .material-icons.group_add:before {\n content: \"\\e7f0\"; }\n .material-icons.group_off:before {\n content: \"\\e747\"; }\n .material-icons.group_remove:before {\n content: \"\\e7ad\"; }\n .material-icons.group_work:before {\n content: \"\\e886\"; }\n .material-icons.groups:before {\n content: \"\\f233\"; }\n .material-icons.h_mobiledata:before {\n content: \"\\f018\"; }\n .material-icons.h_plus_mobiledata:before {\n content: \"\\f019\"; }\n .material-icons.hail:before {\n content: \"\\e9b1\"; }\n .material-icons.handshake:before {\n content: \"\\ebcb\"; }\n .material-icons.handyman:before {\n content: \"\\f10b\"; }\n .material-icons.hardware:before {\n content: \"\\ea59\"; }\n .material-icons.hd:before {\n content: \"\\e052\"; }\n .material-icons.hdr_auto:before {\n content: \"\\f01a\"; }\n .material-icons.hdr_auto_select:before {\n content: \"\\f01b\"; }\n .material-icons.hdr_enhanced_select:before {\n content: \"\\ef51\"; }\n .material-icons.hdr_off:before {\n content: \"\\e3ed\"; }\n .material-icons.hdr_off_select:before {\n content: \"\\f01c\"; }\n .material-icons.hdr_on:before {\n content: \"\\e3ee\"; }\n .material-icons.hdr_on_select:before {\n content: \"\\f01d\"; }\n .material-icons.hdr_plus:before {\n content: \"\\f01e\"; }\n .material-icons.hdr_strong:before {\n content: \"\\e3f1\"; }\n .material-icons.hdr_weak:before {\n content: \"\\e3f2\"; }\n .material-icons.headphones:before {\n content: \"\\f01f\"; }\n .material-icons.headphones_battery:before {\n content: \"\\f020\"; }\n .material-icons.headset:before {\n content: \"\\e310\"; }\n .material-icons.headset_mic:before {\n content: \"\\e311\"; }\n .material-icons.headset_off:before {\n content: \"\\e33a\"; }\n .material-icons.healing:before {\n content: \"\\e3f3\"; }\n .material-icons.health_and_safety:before {\n content: \"\\e1d5\"; }\n .material-icons.hearing:before {\n content: \"\\e023\"; }\n .material-icons.hearing_disabled:before {\n content: \"\\f104\"; }\n .material-icons.heart_broken:before {\n content: \"\\eac2\"; }\n .material-icons.heat_pump:before {\n content: \"\\ec18\"; }\n .material-icons.height:before {\n content: \"\\ea16\"; }\n .material-icons.help:before {\n content: \"\\e887\"; }\n .material-icons.help_center:before {\n content: \"\\f1c0\"; }\n .material-icons.help_outline:before {\n content: \"\\e8fd\"; }\n .material-icons.hevc:before {\n content: \"\\f021\"; }\n .material-icons.hexagon:before {\n content: \"\\eb39\"; }\n .material-icons.hide_image:before {\n content: \"\\f022\"; }\n .material-icons.hide_source:before {\n content: \"\\f023\"; }\n .material-icons.high_quality:before {\n content: \"\\e024\"; }\n .material-icons.highlight:before {\n content: \"\\e25f\"; }\n .material-icons.highlight_alt:before {\n content: \"\\ef52\"; }\n .material-icons.highlight_off:before {\n content: \"\\e888\"; }\n .material-icons.highlight_remove:before {\n content: \"\\e888\"; }\n .material-icons.hiking:before {\n content: \"\\e50a\"; }\n .material-icons.history:before {\n content: \"\\e889\"; }\n .material-icons.history_edu:before {\n content: \"\\ea3e\"; }\n .material-icons.history_toggle_off:before {\n content: \"\\f17d\"; }\n .material-icons.hive:before {\n content: \"\\eaa6\"; }\n .material-icons.hls:before {\n content: \"\\eb8a\"; }\n .material-icons.hls_off:before {\n content: \"\\eb8c\"; }\n .material-icons.holiday_village:before {\n content: \"\\e58a\"; }\n .material-icons.home:before {\n content: \"\\e88a\"; }\n .material-icons.home_filled:before {\n content: \"\\e9b2\"; }\n .material-icons.home_max:before {\n content: \"\\f024\"; }\n .material-icons.home_mini:before {\n content: \"\\f025\"; }\n .material-icons.home_repair_service:before {\n content: \"\\f100\"; }\n .material-icons.home_work:before {\n content: \"\\ea09\"; }\n .material-icons.horizontal_distribute:before {\n content: \"\\e014\"; }\n .material-icons.horizontal_rule:before {\n content: \"\\f108\"; }\n .material-icons.horizontal_split:before {\n content: \"\\e947\"; }\n .material-icons.hot_tub:before {\n content: \"\\eb46\"; }\n .material-icons.hotel:before {\n content: \"\\e53a\"; }\n .material-icons.hotel_class:before {\n content: \"\\e743\"; }\n .material-icons.hourglass_bottom:before {\n content: \"\\ea5c\"; }\n .material-icons.hourglass_disabled:before {\n content: \"\\ef53\"; }\n .material-icons.hourglass_empty:before {\n content: \"\\e88b\"; }\n .material-icons.hourglass_full:before {\n content: \"\\e88c\"; }\n .material-icons.hourglass_top:before {\n content: \"\\ea5b\"; }\n .material-icons.house:before {\n content: \"\\ea44\"; }\n .material-icons.house_siding:before {\n content: \"\\f202\"; }\n .material-icons.houseboat:before {\n content: \"\\e584\"; }\n .material-icons.how_to_reg:before {\n content: \"\\e174\"; }\n .material-icons.how_to_vote:before {\n content: \"\\e175\"; }\n .material-icons.html:before {\n content: \"\\eb7e\"; }\n .material-icons.http:before {\n content: \"\\e902\"; }\n .material-icons.https:before {\n content: \"\\e88d\"; }\n .material-icons.hub:before {\n content: \"\\e9f4\"; }\n .material-icons.hvac:before {\n content: \"\\f10e\"; }\n .material-icons.ice_skating:before {\n content: \"\\e50b\"; }\n .material-icons.icecream:before {\n content: \"\\ea69\"; }\n .material-icons.image:before {\n content: \"\\e3f4\"; }\n .material-icons.image_aspect_ratio:before {\n content: \"\\e3f5\"; }\n .material-icons.image_not_supported:before {\n content: \"\\f116\"; }\n .material-icons.image_search:before {\n content: \"\\e43f\"; }\n .material-icons.imagesearch_roller:before {\n content: \"\\e9b4\"; }\n .material-icons.import_contacts:before {\n content: \"\\e0e0\"; }\n .material-icons.import_export:before {\n content: \"\\e0c3\"; }\n .material-icons.important_devices:before {\n content: \"\\e912\"; }\n .material-icons.inbox:before {\n content: \"\\e156\"; }\n .material-icons.incomplete_circle:before {\n content: \"\\e79b\"; }\n .material-icons.indeterminate_check_box:before {\n content: \"\\e909\"; }\n .material-icons.info:before {\n content: \"\\e88e\"; }\n .material-icons.info_outline:before {\n content: \"\\e88f\"; }\n .material-icons.input:before {\n content: \"\\e890\"; }\n .material-icons.insert_chart:before {\n content: \"\\e24b\"; }\n .material-icons.insert_chart_outlined:before {\n content: \"\\e26a\"; }\n .material-icons.insert_comment:before {\n content: \"\\e24c\"; }\n .material-icons.insert_drive_file:before {\n content: \"\\e24d\"; }\n .material-icons.insert_emoticon:before {\n content: \"\\e24e\"; }\n .material-icons.insert_invitation:before {\n content: \"\\e24f\"; }\n .material-icons.insert_link:before {\n content: \"\\e250\"; }\n .material-icons.insert_page_break:before {\n content: \"\\eaca\"; }\n .material-icons.insert_photo:before {\n content: \"\\e251\"; }\n .material-icons.insights:before {\n content: \"\\f092\"; }\n .material-icons.install_desktop:before {\n content: \"\\eb71\"; }\n .material-icons.install_mobile:before {\n content: \"\\eb72\"; }\n .material-icons.integration_instructions:before {\n content: \"\\ef54\"; }\n .material-icons.interests:before {\n content: \"\\e7c8\"; }\n .material-icons.interpreter_mode:before {\n content: \"\\e83b\"; }\n .material-icons.inventory:before {\n content: \"\\e179\"; }\n .material-icons.inventory_2:before {\n content: \"\\e1a1\"; }\n .material-icons.invert_colors:before {\n content: \"\\e891\"; }\n .material-icons.invert_colors_off:before {\n content: \"\\e0c4\"; }\n .material-icons.invert_colors_on:before {\n content: \"\\e891\"; }\n .material-icons.ios_share:before {\n content: \"\\e6b8\"; }\n .material-icons.iron:before {\n content: \"\\e583\"; }\n .material-icons.iso:before {\n content: \"\\e3f6\"; }\n .material-icons.javascript:before {\n content: \"\\eb7c\"; }\n .material-icons.join_full:before {\n content: \"\\eaeb\"; }\n .material-icons.join_inner:before {\n content: \"\\eaf4\"; }\n .material-icons.join_left:before {\n content: \"\\eaf2\"; }\n .material-icons.join_right:before {\n content: \"\\eaea\"; }\n .material-icons.kayaking:before {\n content: \"\\e50c\"; }\n .material-icons.kebab_dining:before {\n content: \"\\e842\"; }\n .material-icons.key:before {\n content: \"\\e73c\"; }\n .material-icons.key_off:before {\n content: \"\\eb84\"; }\n .material-icons.keyboard:before {\n content: \"\\e312\"; }\n .material-icons.keyboard_alt:before {\n content: \"\\f028\"; }\n .material-icons.keyboard_arrow_down:before {\n content: \"\\e313\"; }\n .material-icons.keyboard_arrow_left:before {\n content: \"\\e314\"; }\n .material-icons.keyboard_arrow_right:before {\n content: \"\\e315\"; }\n .material-icons.keyboard_arrow_up:before {\n content: \"\\e316\"; }\n .material-icons.keyboard_backspace:before {\n content: \"\\e317\"; }\n .material-icons.keyboard_capslock:before {\n content: \"\\e318\"; }\n .material-icons.keyboard_command:before {\n content: \"\\eae0\"; }\n .material-icons.keyboard_command_key:before {\n content: \"\\eae7\"; }\n .material-icons.keyboard_control:before {\n content: \"\\e5d3\"; }\n .material-icons.keyboard_control_key:before {\n content: \"\\eae6\"; }\n .material-icons.keyboard_double_arrow_down:before {\n content: \"\\ead0\"; }\n .material-icons.keyboard_double_arrow_left:before {\n content: \"\\eac3\"; }\n .material-icons.keyboard_double_arrow_right:before {\n content: \"\\eac9\"; }\n .material-icons.keyboard_double_arrow_up:before {\n content: \"\\eacf\"; }\n .material-icons.keyboard_hide:before {\n content: \"\\e31a\"; }\n .material-icons.keyboard_option:before {\n content: \"\\eadf\"; }\n .material-icons.keyboard_option_key:before {\n content: \"\\eae8\"; }\n .material-icons.keyboard_return:before {\n content: \"\\e31b\"; }\n .material-icons.keyboard_tab:before {\n content: \"\\e31c\"; }\n .material-icons.keyboard_voice:before {\n content: \"\\e31d\"; }\n .material-icons.king_bed:before {\n content: \"\\ea45\"; }\n .material-icons.kitchen:before {\n content: \"\\eb47\"; }\n .material-icons.kitesurfing:before {\n content: \"\\e50d\"; }\n .material-icons.label:before {\n content: \"\\e892\"; }\n .material-icons.label_important:before {\n content: \"\\e937\"; }\n .material-icons.label_important_outline:before {\n content: \"\\e948\"; }\n .material-icons.label_off:before {\n content: \"\\e9b6\"; }\n .material-icons.label_outline:before {\n content: \"\\e893\"; }\n .material-icons.lan:before {\n content: \"\\eb2f\"; }\n .material-icons.landscape:before {\n content: \"\\e3f7\"; }\n .material-icons.landslide:before {\n content: \"\\ebd7\"; }\n .material-icons.language:before {\n content: \"\\e894\"; }\n .material-icons.laptop:before {\n content: \"\\e31e\"; }\n .material-icons.laptop_chromebook:before {\n content: \"\\e31f\"; }\n .material-icons.laptop_mac:before {\n content: \"\\e320\"; }\n .material-icons.laptop_windows:before {\n content: \"\\e321\"; }\n .material-icons.last_page:before {\n content: \"\\e5dd\"; }\n .material-icons.launch:before {\n content: \"\\e895\"; }\n .material-icons.layers:before {\n content: \"\\e53b\"; }\n .material-icons.layers_clear:before {\n content: \"\\e53c\"; }\n .material-icons.leaderboard:before {\n content: \"\\f20c\"; }\n .material-icons.leak_add:before {\n content: \"\\e3f8\"; }\n .material-icons.leak_remove:before {\n content: \"\\e3f9\"; }\n .material-icons.leave_bags_at_home:before {\n content: \"\\f21b\"; }\n .material-icons.legend_toggle:before {\n content: \"\\f11b\"; }\n .material-icons.lens:before {\n content: \"\\e3fa\"; }\n .material-icons.lens_blur:before {\n content: \"\\f029\"; }\n .material-icons.library_add:before {\n content: \"\\e02e\"; }\n .material-icons.library_add_check:before {\n content: \"\\e9b7\"; }\n .material-icons.library_books:before {\n content: \"\\e02f\"; }\n .material-icons.library_music:before {\n content: \"\\e030\"; }\n .material-icons.light:before {\n content: \"\\f02a\"; }\n .material-icons.light_mode:before {\n content: \"\\e518\"; }\n .material-icons.lightbulb:before {\n content: \"\\e0f0\"; }\n .material-icons.lightbulb_circle:before {\n content: \"\\ebfe\"; }\n .material-icons.lightbulb_outline:before {\n content: \"\\e90f\"; }\n .material-icons.line_axis:before {\n content: \"\\ea9a\"; }\n .material-icons.line_style:before {\n content: \"\\e919\"; }\n .material-icons.line_weight:before {\n content: \"\\e91a\"; }\n .material-icons.linear_scale:before {\n content: \"\\e260\"; }\n .material-icons.link:before {\n content: \"\\e157\"; }\n .material-icons.link_off:before {\n content: \"\\e16f\"; }\n .material-icons.linked_camera:before {\n content: \"\\e438\"; }\n .material-icons.liquor:before {\n content: \"\\ea60\"; }\n .material-icons.list:before {\n content: \"\\e896\"; }\n .material-icons.list_alt:before {\n content: \"\\e0ee\"; }\n .material-icons.live_help:before {\n content: \"\\e0c6\"; }\n .material-icons.live_tv:before {\n content: \"\\e639\"; }\n .material-icons.living:before {\n content: \"\\f02b\"; }\n .material-icons.local_activity:before {\n content: \"\\e53f\"; }\n .material-icons.local_airport:before {\n content: \"\\e53d\"; }\n .material-icons.local_atm:before {\n content: \"\\e53e\"; }\n .material-icons.local_attraction:before {\n content: \"\\e53f\"; }\n .material-icons.local_bar:before {\n content: \"\\e540\"; }\n .material-icons.local_cafe:before {\n content: \"\\e541\"; }\n .material-icons.local_car_wash:before {\n content: \"\\e542\"; }\n .material-icons.local_convenience_store:before {\n content: \"\\e543\"; }\n .material-icons.local_dining:before {\n content: \"\\e556\"; }\n .material-icons.local_drink:before {\n content: \"\\e544\"; }\n .material-icons.local_fire_department:before {\n content: \"\\ef55\"; }\n .material-icons.local_florist:before {\n content: \"\\e545\"; }\n .material-icons.local_gas_station:before {\n content: \"\\e546\"; }\n .material-icons.local_grocery_store:before {\n content: \"\\e547\"; }\n .material-icons.local_hospital:before {\n content: \"\\e548\"; }\n .material-icons.local_hotel:before {\n content: \"\\e549\"; }\n .material-icons.local_laundry_service:before {\n content: \"\\e54a\"; }\n .material-icons.local_library:before {\n content: \"\\e54b\"; }\n .material-icons.local_mall:before {\n content: \"\\e54c\"; }\n .material-icons.local_movies:before {\n content: \"\\e54d\"; }\n .material-icons.local_offer:before {\n content: \"\\e54e\"; }\n .material-icons.local_parking:before {\n content: \"\\e54f\"; }\n .material-icons.local_pharmacy:before {\n content: \"\\e550\"; }\n .material-icons.local_phone:before {\n content: \"\\e551\"; }\n .material-icons.local_pizza:before {\n content: \"\\e552\"; }\n .material-icons.local_play:before {\n content: \"\\e553\"; }\n .material-icons.local_police:before {\n content: \"\\ef56\"; }\n .material-icons.local_post_office:before {\n content: \"\\e554\"; }\n .material-icons.local_print_shop:before {\n content: \"\\e555\"; }\n .material-icons.local_printshop:before {\n content: \"\\e555\"; }\n .material-icons.local_restaurant:before {\n content: \"\\e556\"; }\n .material-icons.local_see:before {\n content: \"\\e557\"; }\n .material-icons.local_shipping:before {\n content: \"\\e558\"; }\n .material-icons.local_taxi:before {\n content: \"\\e559\"; }\n .material-icons.location_city:before {\n content: \"\\e7f1\"; }\n .material-icons.location_disabled:before {\n content: \"\\e1b6\"; }\n .material-icons.location_history:before {\n content: \"\\e55a\"; }\n .material-icons.location_off:before {\n content: \"\\e0c7\"; }\n .material-icons.location_on:before {\n content: \"\\e0c8\"; }\n .material-icons.location_pin:before {\n content: \"\\f1db\"; }\n .material-icons.location_searching:before {\n content: \"\\e1b7\"; }\n .material-icons.lock:before {\n content: \"\\e897\"; }\n .material-icons.lock_clock:before {\n content: \"\\ef57\"; }\n .material-icons.lock_open:before {\n content: \"\\e898\"; }\n .material-icons.lock_outline:before {\n content: \"\\e899\"; }\n .material-icons.lock_person:before {\n content: \"\\f8f3\"; }\n .material-icons.lock_reset:before {\n content: \"\\eade\"; }\n .material-icons.login:before {\n content: \"\\ea77\"; }\n .material-icons.logo_dev:before {\n content: \"\\ead6\"; }\n .material-icons.logout:before {\n content: \"\\e9ba\"; }\n .material-icons.looks:before {\n content: \"\\e3fc\"; }\n .material-icons.looks_3:before {\n content: \"\\e3fb\"; }\n .material-icons.looks_4:before {\n content: \"\\e3fd\"; }\n .material-icons.looks_5:before {\n content: \"\\e3fe\"; }\n .material-icons.looks_6:before {\n content: \"\\e3ff\"; }\n .material-icons.looks_one:before {\n content: \"\\e400\"; }\n .material-icons.looks_two:before {\n content: \"\\e401\"; }\n .material-icons.loop:before {\n content: \"\\e028\"; }\n .material-icons.loupe:before {\n content: \"\\e402\"; }\n .material-icons.low_priority:before {\n content: \"\\e16d\"; }\n .material-icons.loyalty:before {\n content: \"\\e89a\"; }\n .material-icons.lte_mobiledata:before {\n content: \"\\f02c\"; }\n .material-icons.lte_plus_mobiledata:before {\n content: \"\\f02d\"; }\n .material-icons.luggage:before {\n content: \"\\f235\"; }\n .material-icons.lunch_dining:before {\n content: \"\\ea61\"; }\n .material-icons.lyrics:before {\n content: \"\\ec0b\"; }\n .material-icons.mail:before {\n content: \"\\e158\"; }\n .material-icons.mail_lock:before {\n content: \"\\ec0a\"; }\n .material-icons.mail_outline:before {\n content: \"\\e0e1\"; }\n .material-icons.male:before {\n content: \"\\e58e\"; }\n .material-icons.man:before {\n content: \"\\e4eb\"; }\n .material-icons.manage_accounts:before {\n content: \"\\f02e\"; }\n .material-icons.manage_history:before {\n content: \"\\ebe7\"; }\n .material-icons.manage_search:before {\n content: \"\\f02f\"; }\n .material-icons.map:before {\n content: \"\\e55b\"; }\n .material-icons.maps_home_work:before {\n content: \"\\f030\"; }\n .material-icons.maps_ugc:before {\n content: \"\\ef58\"; }\n .material-icons.margin:before {\n content: \"\\e9bb\"; }\n .material-icons.mark_as_unread:before {\n content: \"\\e9bc\"; }\n .material-icons.mark_chat_read:before {\n content: \"\\f18b\"; }\n .material-icons.mark_chat_unread:before {\n content: \"\\f189\"; }\n .material-icons.mark_email_read:before {\n content: \"\\f18c\"; }\n .material-icons.mark_email_unread:before {\n content: \"\\f18a\"; }\n .material-icons.mark_unread_chat_alt:before {\n content: \"\\eb9d\"; }\n .material-icons.markunread:before {\n content: \"\\e159\"; }\n .material-icons.markunread_mailbox:before {\n content: \"\\e89b\"; }\n .material-icons.masks:before {\n content: \"\\f218\"; }\n .material-icons.maximize:before {\n content: \"\\e930\"; }\n .material-icons.media_bluetooth_off:before {\n content: \"\\f031\"; }\n .material-icons.media_bluetooth_on:before {\n content: \"\\f032\"; }\n .material-icons.mediation:before {\n content: \"\\efa7\"; }\n .material-icons.medical_information:before {\n content: \"\\ebed\"; }\n .material-icons.medical_services:before {\n content: \"\\f109\"; }\n .material-icons.medication:before {\n content: \"\\f033\"; }\n .material-icons.medication_liquid:before {\n content: \"\\ea87\"; }\n .material-icons.meeting_room:before {\n content: \"\\eb4f\"; }\n .material-icons.memory:before {\n content: \"\\e322\"; }\n .material-icons.menu:before {\n content: \"\\e5d2\"; }\n .material-icons.menu_book:before {\n content: \"\\ea19\"; }\n .material-icons.menu_open:before {\n content: \"\\e9bd\"; }\n .material-icons.merge:before {\n content: \"\\eb98\"; }\n .material-icons.merge_type:before {\n content: \"\\e252\"; }\n .material-icons.message:before {\n content: \"\\e0c9\"; }\n .material-icons.messenger:before {\n content: \"\\e0ca\"; }\n .material-icons.messenger_outline:before {\n content: \"\\e0cb\"; }\n .material-icons.mic:before {\n content: \"\\e029\"; }\n .material-icons.mic_external_off:before {\n content: \"\\ef59\"; }\n .material-icons.mic_external_on:before {\n content: \"\\ef5a\"; }\n .material-icons.mic_none:before {\n content: \"\\e02a\"; }\n .material-icons.mic_off:before {\n content: \"\\e02b\"; }\n .material-icons.microwave:before {\n content: \"\\f204\"; }\n .material-icons.military_tech:before {\n content: \"\\ea3f\"; }\n .material-icons.minimize:before {\n content: \"\\e931\"; }\n .material-icons.minor_crash:before {\n content: \"\\ebf1\"; }\n .material-icons.miscellaneous_services:before {\n content: \"\\f10c\"; }\n .material-icons.missed_video_call:before {\n content: \"\\e073\"; }\n .material-icons.mms:before {\n content: \"\\e618\"; }\n .material-icons.mobile_friendly:before {\n content: \"\\e200\"; }\n .material-icons.mobile_off:before {\n content: \"\\e201\"; }\n .material-icons.mobile_screen_share:before {\n content: \"\\e0e7\"; }\n .material-icons.mobiledata_off:before {\n content: \"\\f034\"; }\n .material-icons.mode:before {\n content: \"\\f097\"; }\n .material-icons.mode_comment:before {\n content: \"\\e253\"; }\n .material-icons.mode_edit:before {\n content: \"\\e254\"; }\n .material-icons.mode_edit_outline:before {\n content: \"\\f035\"; }\n .material-icons.mode_fan_off:before {\n content: \"\\ec17\"; }\n .material-icons.mode_night:before {\n content: \"\\f036\"; }\n .material-icons.mode_of_travel:before {\n content: \"\\e7ce\"; }\n .material-icons.mode_standby:before {\n content: \"\\f037\"; }\n .material-icons.model_training:before {\n content: \"\\f0cf\"; }\n .material-icons.monetization_on:before {\n content: \"\\e263\"; }\n .material-icons.money:before {\n content: \"\\e57d\"; }\n .material-icons.money_off:before {\n content: \"\\e25c\"; }\n .material-icons.money_off_csred:before {\n content: \"\\f038\"; }\n .material-icons.monitor:before {\n content: \"\\ef5b\"; }\n .material-icons.monitor_heart:before {\n content: \"\\eaa2\"; }\n .material-icons.monitor_weight:before {\n content: \"\\f039\"; }\n .material-icons.monochrome_photos:before {\n content: \"\\e403\"; }\n .material-icons.mood:before {\n content: \"\\e7f2\"; }\n .material-icons.mood_bad:before {\n content: \"\\e7f3\"; }\n .material-icons.moped:before {\n content: \"\\eb28\"; }\n .material-icons.more:before {\n content: \"\\e619\"; }\n .material-icons.more_horiz:before {\n content: \"\\e5d3\"; }\n .material-icons.more_time:before {\n content: \"\\ea5d\"; }\n .material-icons.more_vert:before {\n content: \"\\e5d4\"; }\n .material-icons.mosque:before {\n content: \"\\eab2\"; }\n .material-icons.motion_photos_auto:before {\n content: \"\\f03a\"; }\n .material-icons.motion_photos_off:before {\n content: \"\\e9c0\"; }\n .material-icons.motion_photos_on:before {\n content: \"\\e9c1\"; }\n .material-icons.motion_photos_pause:before {\n content: \"\\f227\"; }\n .material-icons.motion_photos_paused:before {\n content: \"\\e9c2\"; }\n .material-icons.motorcycle:before {\n content: \"\\e91b\"; }\n .material-icons.mouse:before {\n content: \"\\e323\"; }\n .material-icons.move_down:before {\n content: \"\\eb61\"; }\n .material-icons.move_to_inbox:before {\n content: \"\\e168\"; }\n .material-icons.move_up:before {\n content: \"\\eb64\"; }\n .material-icons.movie:before {\n content: \"\\e02c\"; }\n .material-icons.movie_creation:before {\n content: \"\\e404\"; }\n .material-icons.movie_filter:before {\n content: \"\\e43a\"; }\n .material-icons.moving:before {\n content: \"\\e501\"; }\n .material-icons.mp:before {\n content: \"\\e9c3\"; }\n .material-icons.multiline_chart:before {\n content: \"\\e6df\"; }\n .material-icons.multiple_stop:before {\n content: \"\\f1b9\"; }\n .material-icons.multitrack_audio:before {\n content: \"\\e1b8\"; }\n .material-icons.museum:before {\n content: \"\\ea36\"; }\n .material-icons.music_note:before {\n content: \"\\e405\"; }\n .material-icons.music_off:before {\n content: \"\\e440\"; }\n .material-icons.music_video:before {\n content: \"\\e063\"; }\n .material-icons.my_library_add:before {\n content: \"\\e02e\"; }\n .material-icons.my_library_books:before {\n content: \"\\e02f\"; }\n .material-icons.my_library_music:before {\n content: \"\\e030\"; }\n .material-icons.my_location:before {\n content: \"\\e55c\"; }\n .material-icons.nat:before {\n content: \"\\ef5c\"; }\n .material-icons.nature:before {\n content: \"\\e406\"; }\n .material-icons.nature_people:before {\n content: \"\\e407\"; }\n .material-icons.navigate_before:before {\n content: \"\\e408\"; }\n .material-icons.navigate_next:before {\n content: \"\\e409\"; }\n .material-icons.navigation:before {\n content: \"\\e55d\"; }\n .material-icons.near_me:before {\n content: \"\\e569\"; }\n .material-icons.near_me_disabled:before {\n content: \"\\f1ef\"; }\n .material-icons.nearby_error:before {\n content: \"\\f03b\"; }\n .material-icons.nearby_off:before {\n content: \"\\f03c\"; }\n .material-icons.nest_cam_wired_stand:before {\n content: \"\\ec16\"; }\n .material-icons.network_cell:before {\n content: \"\\e1b9\"; }\n .material-icons.network_check:before {\n content: \"\\e640\"; }\n .material-icons.network_locked:before {\n content: \"\\e61a\"; }\n .material-icons.network_ping:before {\n content: \"\\ebca\"; }\n .material-icons.network_wifi:before {\n content: \"\\e1ba\"; }\n .material-icons.network_wifi_1_bar:before {\n content: \"\\ebe4\"; }\n .material-icons.network_wifi_2_bar:before {\n content: \"\\ebd6\"; }\n .material-icons.network_wifi_3_bar:before {\n content: \"\\ebe1\"; }\n .material-icons.new_label:before {\n content: \"\\e609\"; }\n .material-icons.new_releases:before {\n content: \"\\e031\"; }\n .material-icons.newspaper:before {\n content: \"\\eb81\"; }\n .material-icons.next_plan:before {\n content: \"\\ef5d\"; }\n .material-icons.next_week:before {\n content: \"\\e16a\"; }\n .material-icons.nfc:before {\n content: \"\\e1bb\"; }\n .material-icons.night_shelter:before {\n content: \"\\f1f1\"; }\n .material-icons.nightlife:before {\n content: \"\\ea62\"; }\n .material-icons.nightlight:before {\n content: \"\\f03d\"; }\n .material-icons.nightlight_round:before {\n content: \"\\ef5e\"; }\n .material-icons.nights_stay:before {\n content: \"\\ea46\"; }\n .material-icons.no_accounts:before {\n content: \"\\f03e\"; }\n .material-icons.no_adult_content:before {\n content: \"\\f8fe\"; }\n .material-icons.no_backpack:before {\n content: \"\\f237\"; }\n .material-icons.no_cell:before {\n content: \"\\f1a4\"; }\n .material-icons.no_crash:before {\n content: \"\\ebf0\"; }\n .material-icons.no_drinks:before {\n content: \"\\f1a5\"; }\n .material-icons.no_encryption:before {\n content: \"\\e641\"; }\n .material-icons.no_encryption_gmailerrorred:before {\n content: \"\\f03f\"; }\n .material-icons.no_flash:before {\n content: \"\\f1a6\"; }\n .material-icons.no_food:before {\n content: \"\\f1a7\"; }\n .material-icons.no_luggage:before {\n content: \"\\f23b\"; }\n .material-icons.no_meals:before {\n content: \"\\f1d6\"; }\n .material-icons.no_meals_ouline:before {\n content: \"\\f229\"; }\n .material-icons.no_meeting_room:before {\n content: \"\\eb4e\"; }\n .material-icons.no_photography:before {\n content: \"\\f1a8\"; }\n .material-icons.no_sim:before {\n content: \"\\e0cc\"; }\n .material-icons.no_stroller:before {\n content: \"\\f1af\"; }\n .material-icons.no_transfer:before {\n content: \"\\f1d5\"; }\n .material-icons.noise_aware:before {\n content: \"\\ebec\"; }\n .material-icons.noise_control_off:before {\n content: \"\\ebf3\"; }\n .material-icons.nordic_walking:before {\n content: \"\\e50e\"; }\n .material-icons.north:before {\n content: \"\\f1e0\"; }\n .material-icons.north_east:before {\n content: \"\\f1e1\"; }\n .material-icons.north_west:before {\n content: \"\\f1e2\"; }\n .material-icons.not_accessible:before {\n content: \"\\f0fe\"; }\n .material-icons.not_interested:before {\n content: \"\\e033\"; }\n .material-icons.not_listed_location:before {\n content: \"\\e575\"; }\n .material-icons.not_started:before {\n content: \"\\f0d1\"; }\n .material-icons.note:before {\n content: \"\\e06f\"; }\n .material-icons.note_add:before {\n content: \"\\e89c\"; }\n .material-icons.note_alt:before {\n content: \"\\f040\"; }\n .material-icons.notes:before {\n content: \"\\e26c\"; }\n .material-icons.notification_add:before {\n content: \"\\e399\"; }\n .material-icons.notification_important:before {\n content: \"\\e004\"; }\n .material-icons.notifications:before {\n content: \"\\e7f4\"; }\n .material-icons.notifications_active:before {\n content: \"\\e7f7\"; }\n .material-icons.notifications_none:before {\n content: \"\\e7f5\"; }\n .material-icons.notifications_off:before {\n content: \"\\e7f6\"; }\n .material-icons.notifications_on:before {\n content: \"\\e7f7\"; }\n .material-icons.notifications_paused:before {\n content: \"\\e7f8\"; }\n .material-icons.now_wallpaper:before {\n content: \"\\e1bc\"; }\n .material-icons.now_widgets:before {\n content: \"\\e1bd\"; }\n .material-icons.numbers:before {\n content: \"\\eac7\"; }\n .material-icons.offline_bolt:before {\n content: \"\\e932\"; }\n .material-icons.offline_pin:before {\n content: \"\\e90a\"; }\n .material-icons.offline_share:before {\n content: \"\\e9c5\"; }\n .material-icons.oil_barrel:before {\n content: \"\\ec15\"; }\n .material-icons.on_device_training:before {\n content: \"\\ebfd\"; }\n .material-icons.ondemand_video:before {\n content: \"\\e63a\"; }\n .material-icons.online_prediction:before {\n content: \"\\f0eb\"; }\n .material-icons.opacity:before {\n content: \"\\e91c\"; }\n .material-icons.open_in_browser:before {\n content: \"\\e89d\"; }\n .material-icons.open_in_full:before {\n content: \"\\f1ce\"; }\n .material-icons.open_in_new:before {\n content: \"\\e89e\"; }\n .material-icons.open_in_new_off:before {\n content: \"\\e4f6\"; }\n .material-icons.open_with:before {\n content: \"\\e89f\"; }\n .material-icons.other_houses:before {\n content: \"\\e58c\"; }\n .material-icons.outbond:before {\n content: \"\\f228\"; }\n .material-icons.outbound:before {\n content: \"\\e1ca\"; }\n .material-icons.outbox:before {\n content: \"\\ef5f\"; }\n .material-icons.outdoor_grill:before {\n content: \"\\ea47\"; }\n .material-icons.outgoing_mail:before {\n content: \"\\f0d2\"; }\n .material-icons.outlet:before {\n content: \"\\f1d4\"; }\n .material-icons.outlined_flag:before {\n content: \"\\e16e\"; }\n .material-icons.output:before {\n content: \"\\ebbe\"; }\n .material-icons.padding:before {\n content: \"\\e9c8\"; }\n .material-icons.pages:before {\n content: \"\\e7f9\"; }\n .material-icons.pageview:before {\n content: \"\\e8a0\"; }\n .material-icons.paid:before {\n content: \"\\f041\"; }\n .material-icons.palette:before {\n content: \"\\e40a\"; }\n .material-icons.pan_tool:before {\n content: \"\\e925\"; }\n .material-icons.pan_tool_alt:before {\n content: \"\\ebb9\"; }\n .material-icons.panorama:before {\n content: \"\\e40b\"; }\n .material-icons.panorama_fish_eye:before {\n content: \"\\e40c\"; }\n .material-icons.panorama_fisheye:before {\n content: \"\\e40c\"; }\n .material-icons.panorama_horizontal:before {\n content: \"\\e40d\"; }\n .material-icons.panorama_horizontal_select:before {\n content: \"\\ef60\"; }\n .material-icons.panorama_photosphere:before {\n content: \"\\e9c9\"; }\n .material-icons.panorama_photosphere_select:before {\n content: \"\\e9ca\"; }\n .material-icons.panorama_vertical:before {\n content: \"\\e40e\"; }\n .material-icons.panorama_vertical_select:before {\n content: \"\\ef61\"; }\n .material-icons.panorama_wide_angle:before {\n content: \"\\e40f\"; }\n .material-icons.panorama_wide_angle_select:before {\n content: \"\\ef62\"; }\n .material-icons.paragliding:before {\n content: \"\\e50f\"; }\n .material-icons.park:before {\n content: \"\\ea63\"; }\n .material-icons.party_mode:before {\n content: \"\\e7fa\"; }\n .material-icons.password:before {\n content: \"\\f042\"; }\n .material-icons.pattern:before {\n content: \"\\f043\"; }\n .material-icons.pause:before {\n content: \"\\e034\"; }\n .material-icons.pause_circle:before {\n content: \"\\e1a2\"; }\n .material-icons.pause_circle_filled:before {\n content: \"\\e035\"; }\n .material-icons.pause_circle_outline:before {\n content: \"\\e036\"; }\n .material-icons.pause_presentation:before {\n content: \"\\e0ea\"; }\n .material-icons.payment:before {\n content: \"\\e8a1\"; }\n .material-icons.payments:before {\n content: \"\\ef63\"; }\n .material-icons.paypal:before {\n content: \"\\ea8d\"; }\n .material-icons.pedal_bike:before {\n content: \"\\eb29\"; }\n .material-icons.pending:before {\n content: \"\\ef64\"; }\n .material-icons.pending_actions:before {\n content: \"\\f1bb\"; }\n .material-icons.pentagon:before {\n content: \"\\eb50\"; }\n .material-icons.people:before {\n content: \"\\e7fb\"; }\n .material-icons.people_alt:before {\n content: \"\\ea21\"; }\n .material-icons.people_outline:before {\n content: \"\\e7fc\"; }\n .material-icons.percent:before {\n content: \"\\eb58\"; }\n .material-icons.perm_camera_mic:before {\n content: \"\\e8a2\"; }\n .material-icons.perm_contact_cal:before {\n content: \"\\e8a3\"; }\n .material-icons.perm_contact_calendar:before {\n content: \"\\e8a3\"; }\n .material-icons.perm_data_setting:before {\n content: \"\\e8a4\"; }\n .material-icons.perm_device_info:before {\n content: \"\\e8a5\"; }\n .material-icons.perm_device_information:before {\n content: \"\\e8a5\"; }\n .material-icons.perm_identity:before {\n content: \"\\e8a6\"; }\n .material-icons.perm_media:before {\n content: \"\\e8a7\"; }\n .material-icons.perm_phone_msg:before {\n content: \"\\e8a8\"; }\n .material-icons.perm_scan_wifi:before {\n content: \"\\e8a9\"; }\n .material-icons.person:before {\n content: \"\\e7fd\"; }\n .material-icons.person_add:before {\n content: \"\\e7fe\"; }\n .material-icons.person_add_alt:before {\n content: \"\\ea4d\"; }\n .material-icons.person_add_alt_1:before {\n content: \"\\ef65\"; }\n .material-icons.person_add_disabled:before {\n content: \"\\e9cb\"; }\n .material-icons.person_off:before {\n content: \"\\e510\"; }\n .material-icons.person_outline:before {\n content: \"\\e7ff\"; }\n .material-icons.person_pin:before {\n content: \"\\e55a\"; }\n .material-icons.person_pin_circle:before {\n content: \"\\e56a\"; }\n .material-icons.person_remove:before {\n content: \"\\ef66\"; }\n .material-icons.person_remove_alt_1:before {\n content: \"\\ef67\"; }\n .material-icons.person_search:before {\n content: \"\\f106\"; }\n .material-icons.personal_injury:before {\n content: \"\\e6da\"; }\n .material-icons.personal_video:before {\n content: \"\\e63b\"; }\n .material-icons.pest_control:before {\n content: \"\\f0fa\"; }\n .material-icons.pest_control_rodent:before {\n content: \"\\f0fd\"; }\n .material-icons.pets:before {\n content: \"\\e91d\"; }\n .material-icons.phishing:before {\n content: \"\\ead7\"; }\n .material-icons.phone:before {\n content: \"\\e0cd\"; }\n .material-icons.phone_android:before {\n content: \"\\e324\"; }\n .material-icons.phone_bluetooth_speaker:before {\n content: \"\\e61b\"; }\n .material-icons.phone_callback:before {\n content: \"\\e649\"; }\n .material-icons.phone_disabled:before {\n content: \"\\e9cc\"; }\n .material-icons.phone_enabled:before {\n content: \"\\e9cd\"; }\n .material-icons.phone_forwarded:before {\n content: \"\\e61c\"; }\n .material-icons.phone_in_talk:before {\n content: \"\\e61d\"; }\n .material-icons.phone_iphone:before {\n content: \"\\e325\"; }\n .material-icons.phone_locked:before {\n content: \"\\e61e\"; }\n .material-icons.phone_missed:before {\n content: \"\\e61f\"; }\n .material-icons.phone_paused:before {\n content: \"\\e620\"; }\n .material-icons.phonelink:before {\n content: \"\\e326\"; }\n .material-icons.phonelink_erase:before {\n content: \"\\e0db\"; }\n .material-icons.phonelink_lock:before {\n content: \"\\e0dc\"; }\n .material-icons.phonelink_off:before {\n content: \"\\e327\"; }\n .material-icons.phonelink_ring:before {\n content: \"\\e0dd\"; }\n .material-icons.phonelink_setup:before {\n content: \"\\e0de\"; }\n .material-icons.photo:before {\n content: \"\\e410\"; }\n .material-icons.photo_album:before {\n content: \"\\e411\"; }\n .material-icons.photo_camera:before {\n content: \"\\e412\"; }\n .material-icons.photo_camera_back:before {\n content: \"\\ef68\"; }\n .material-icons.photo_camera_front:before {\n content: \"\\ef69\"; }\n .material-icons.photo_filter:before {\n content: \"\\e43b\"; }\n .material-icons.photo_library:before {\n content: \"\\e413\"; }\n .material-icons.photo_size_select_actual:before {\n content: \"\\e432\"; }\n .material-icons.photo_size_select_large:before {\n content: \"\\e433\"; }\n .material-icons.photo_size_select_small:before {\n content: \"\\e434\"; }\n .material-icons.php:before {\n content: \"\\eb8f\"; }\n .material-icons.piano:before {\n content: \"\\e521\"; }\n .material-icons.piano_off:before {\n content: \"\\e520\"; }\n .material-icons.picture_as_pdf:before {\n content: \"\\e415\"; }\n .material-icons.picture_in_picture:before {\n content: \"\\e8aa\"; }\n .material-icons.picture_in_picture_alt:before {\n content: \"\\e911\"; }\n .material-icons.pie_chart:before {\n content: \"\\e6c4\"; }\n .material-icons.pie_chart_outline:before {\n content: \"\\f044\"; }\n .material-icons.pie_chart_outlined:before {\n content: \"\\e6c5\"; }\n .material-icons.pin:before {\n content: \"\\f045\"; }\n .material-icons.pin_drop:before {\n content: \"\\e55e\"; }\n .material-icons.pin_end:before {\n content: \"\\e767\"; }\n .material-icons.pin_invoke:before {\n content: \"\\e763\"; }\n .material-icons.pinch:before {\n content: \"\\eb38\"; }\n .material-icons.pivot_table_chart:before {\n content: \"\\e9ce\"; }\n .material-icons.pix:before {\n content: \"\\eaa3\"; }\n .material-icons.place:before {\n content: \"\\e55f\"; }\n .material-icons.plagiarism:before {\n content: \"\\ea5a\"; }\n .material-icons.play_arrow:before {\n content: \"\\e037\"; }\n .material-icons.play_circle:before {\n content: \"\\e1c4\"; }\n .material-icons.play_circle_fill:before {\n content: \"\\e038\"; }\n .material-icons.play_circle_filled:before {\n content: \"\\e038\"; }\n .material-icons.play_circle_outline:before {\n content: \"\\e039\"; }\n .material-icons.play_disabled:before {\n content: \"\\ef6a\"; }\n .material-icons.play_for_work:before {\n content: \"\\e906\"; }\n .material-icons.play_lesson:before {\n content: \"\\f047\"; }\n .material-icons.playlist_add:before {\n content: \"\\e03b\"; }\n .material-icons.playlist_add_check:before {\n content: \"\\e065\"; }\n .material-icons.playlist_add_check_circle:before {\n content: \"\\e7e6\"; }\n .material-icons.playlist_add_circle:before {\n content: \"\\e7e5\"; }\n .material-icons.playlist_play:before {\n content: \"\\e05f\"; }\n .material-icons.playlist_remove:before {\n content: \"\\eb80\"; }\n .material-icons.plumbing:before {\n content: \"\\f107\"; }\n .material-icons.plus_one:before {\n content: \"\\e800\"; }\n .material-icons.podcasts:before {\n content: \"\\f048\"; }\n .material-icons.point_of_sale:before {\n content: \"\\f17e\"; }\n .material-icons.policy:before {\n content: \"\\ea17\"; }\n .material-icons.poll:before {\n content: \"\\e801\"; }\n .material-icons.polyline:before {\n content: \"\\ebbb\"; }\n .material-icons.polymer:before {\n content: \"\\e8ab\"; }\n .material-icons.pool:before {\n content: \"\\eb48\"; }\n .material-icons.portable_wifi_off:before {\n content: \"\\e0ce\"; }\n .material-icons.portrait:before {\n content: \"\\e416\"; }\n .material-icons.post_add:before {\n content: \"\\ea20\"; }\n .material-icons.power:before {\n content: \"\\e63c\"; }\n .material-icons.power_input:before {\n content: \"\\e336\"; }\n .material-icons.power_off:before {\n content: \"\\e646\"; }\n .material-icons.power_settings_new:before {\n content: \"\\e8ac\"; }\n .material-icons.precision_manufacturing:before {\n content: \"\\f049\"; }\n .material-icons.pregnant_woman:before {\n content: \"\\e91e\"; }\n .material-icons.present_to_all:before {\n content: \"\\e0df\"; }\n .material-icons.preview:before {\n content: \"\\f1c5\"; }\n .material-icons.price_change:before {\n content: \"\\f04a\"; }\n .material-icons.price_check:before {\n content: \"\\f04b\"; }\n .material-icons.print:before {\n content: \"\\e8ad\"; }\n .material-icons.print_disabled:before {\n content: \"\\e9cf\"; }\n .material-icons.priority_high:before {\n content: \"\\e645\"; }\n .material-icons.privacy_tip:before {\n content: \"\\f0dc\"; }\n .material-icons.private_connectivity:before {\n content: \"\\e744\"; }\n .material-icons.production_quantity_limits:before {\n content: \"\\e1d1\"; }\n .material-icons.propane:before {\n content: \"\\ec14\"; }\n .material-icons.propane_tank:before {\n content: \"\\ec13\"; }\n .material-icons.psychology:before {\n content: \"\\ea4a\"; }\n .material-icons.psychology_alt:before {\n content: \"\\f8ea\"; }\n .material-icons.public:before {\n content: \"\\e80b\"; }\n .material-icons.public_off:before {\n content: \"\\f1ca\"; }\n .material-icons.publish:before {\n content: \"\\e255\"; }\n .material-icons.published_with_changes:before {\n content: \"\\f232\"; }\n .material-icons.punch_clock:before {\n content: \"\\eaa8\"; }\n .material-icons.push_pin:before {\n content: \"\\f10d\"; }\n .material-icons.qr_code:before {\n content: \"\\ef6b\"; }\n .material-icons.qr_code_2:before {\n content: \"\\e00a\"; }\n .material-icons.qr_code_scanner:before {\n content: \"\\f206\"; }\n .material-icons.query_builder:before {\n content: \"\\e8ae\"; }\n .material-icons.query_stats:before {\n content: \"\\e4fc\"; }\n .material-icons.question_answer:before {\n content: \"\\e8af\"; }\n .material-icons.question_mark:before {\n content: \"\\eb8b\"; }\n .material-icons.queue:before {\n content: \"\\e03c\"; }\n .material-icons.queue_music:before {\n content: \"\\e03d\"; }\n .material-icons.queue_play_next:before {\n content: \"\\e066\"; }\n .material-icons.quick_contacts_dialer:before {\n content: \"\\e0cf\"; }\n .material-icons.quick_contacts_mail:before {\n content: \"\\e0d0\"; }\n .material-icons.quickreply:before {\n content: \"\\ef6c\"; }\n .material-icons.quiz:before {\n content: \"\\f04c\"; }\n .material-icons.quora:before {\n content: \"\\ea98\"; }\n .material-icons.r_mobiledata:before {\n content: \"\\f04d\"; }\n .material-icons.radar:before {\n content: \"\\f04e\"; }\n .material-icons.radio:before {\n content: \"\\e03e\"; }\n .material-icons.radio_button_checked:before {\n content: \"\\e837\"; }\n .material-icons.radio_button_off:before {\n content: \"\\e836\"; }\n .material-icons.radio_button_on:before {\n content: \"\\e837\"; }\n .material-icons.radio_button_unchecked:before {\n content: \"\\e836\"; }\n .material-icons.railway_alert:before {\n content: \"\\e9d1\"; }\n .material-icons.ramen_dining:before {\n content: \"\\ea64\"; }\n .material-icons.ramp_left:before {\n content: \"\\eb9c\"; }\n .material-icons.ramp_right:before {\n content: \"\\eb96\"; }\n .material-icons.rate_review:before {\n content: \"\\e560\"; }\n .material-icons.raw_off:before {\n content: \"\\f04f\"; }\n .material-icons.raw_on:before {\n content: \"\\f050\"; }\n .material-icons.read_more:before {\n content: \"\\ef6d\"; }\n .material-icons.real_estate_agent:before {\n content: \"\\e73a\"; }\n .material-icons.receipt:before {\n content: \"\\e8b0\"; }\n .material-icons.receipt_long:before {\n content: \"\\ef6e\"; }\n .material-icons.recent_actors:before {\n content: \"\\e03f\"; }\n .material-icons.recommend:before {\n content: \"\\e9d2\"; }\n .material-icons.record_voice_over:before {\n content: \"\\e91f\"; }\n .material-icons.rectangle:before {\n content: \"\\eb54\"; }\n .material-icons.recycling:before {\n content: \"\\e760\"; }\n .material-icons.reddit:before {\n content: \"\\eaa0\"; }\n .material-icons.redeem:before {\n content: \"\\e8b1\"; }\n .material-icons.redo:before {\n content: \"\\e15a\"; }\n .material-icons.reduce_capacity:before {\n content: \"\\f21c\"; }\n .material-icons.refresh:before {\n content: \"\\e5d5\"; }\n .material-icons.remember_me:before {\n content: \"\\f051\"; }\n .material-icons.remove:before {\n content: \"\\e15b\"; }\n .material-icons.remove_circle:before {\n content: \"\\e15c\"; }\n .material-icons.remove_circle_outline:before {\n content: \"\\e15d\"; }\n .material-icons.remove_done:before {\n content: \"\\e9d3\"; }\n .material-icons.remove_from_queue:before {\n content: \"\\e067\"; }\n .material-icons.remove_moderator:before {\n content: \"\\e9d4\"; }\n .material-icons.remove_red_eye:before {\n content: \"\\e417\"; }\n .material-icons.remove_road:before {\n content: \"\\ebfc\"; }\n .material-icons.remove_shopping_cart:before {\n content: \"\\e928\"; }\n .material-icons.reorder:before {\n content: \"\\e8fe\"; }\n .material-icons.repartition:before {\n content: \"\\f8e8\"; }\n .material-icons.repeat:before {\n content: \"\\e040\"; }\n .material-icons.repeat_on:before {\n content: \"\\e9d6\"; }\n .material-icons.repeat_one:before {\n content: \"\\e041\"; }\n .material-icons.repeat_one_on:before {\n content: \"\\e9d7\"; }\n .material-icons.replay:before {\n content: \"\\e042\"; }\n .material-icons.replay_10:before {\n content: \"\\e059\"; }\n .material-icons.replay_30:before {\n content: \"\\e05a\"; }\n .material-icons.replay_5:before {\n content: \"\\e05b\"; }\n .material-icons.replay_circle_filled:before {\n content: \"\\e9d8\"; }\n .material-icons.reply:before {\n content: \"\\e15e\"; }\n .material-icons.reply_all:before {\n content: \"\\e15f\"; }\n .material-icons.report:before {\n content: \"\\e160\"; }\n .material-icons.report_gmailerrorred:before {\n content: \"\\f052\"; }\n .material-icons.report_off:before {\n content: \"\\e170\"; }\n .material-icons.report_problem:before {\n content: \"\\e8b2\"; }\n .material-icons.request_page:before {\n content: \"\\f22c\"; }\n .material-icons.request_quote:before {\n content: \"\\f1b6\"; }\n .material-icons.reset_tv:before {\n content: \"\\e9d9\"; }\n .material-icons.restart_alt:before {\n content: \"\\f053\"; }\n .material-icons.restaurant:before {\n content: \"\\e56c\"; }\n .material-icons.restaurant_menu:before {\n content: \"\\e561\"; }\n .material-icons.restore:before {\n content: \"\\e8b3\"; }\n .material-icons.restore_from_trash:before {\n content: \"\\e938\"; }\n .material-icons.restore_page:before {\n content: \"\\e929\"; }\n .material-icons.reviews:before {\n content: \"\\f054\"; }\n .material-icons.rice_bowl:before {\n content: \"\\f1f5\"; }\n .material-icons.ring_volume:before {\n content: \"\\e0d1\"; }\n .material-icons.rocket:before {\n content: \"\\eba5\"; }\n .material-icons.rocket_launch:before {\n content: \"\\eb9b\"; }\n .material-icons.roller_shades:before {\n content: \"\\ec12\"; }\n .material-icons.roller_shades_closed:before {\n content: \"\\ec11\"; }\n .material-icons.roller_skating:before {\n content: \"\\ebcd\"; }\n .material-icons.roofing:before {\n content: \"\\f201\"; }\n .material-icons.room:before {\n content: \"\\e8b4\"; }\n .material-icons.room_preferences:before {\n content: \"\\f1b8\"; }\n .material-icons.room_service:before {\n content: \"\\eb49\"; }\n .material-icons.rotate_90_degrees_ccw:before {\n content: \"\\e418\"; }\n .material-icons.rotate_90_degrees_cw:before {\n content: \"\\eaab\"; }\n .material-icons.rotate_left:before {\n content: \"\\e419\"; }\n .material-icons.rotate_right:before {\n content: \"\\e41a\"; }\n .material-icons.roundabout_left:before {\n content: \"\\eb99\"; }\n .material-icons.roundabout_right:before {\n content: \"\\eba3\"; }\n .material-icons.rounded_corner:before {\n content: \"\\e920\"; }\n .material-icons.route:before {\n content: \"\\eacd\"; }\n .material-icons.router:before {\n content: \"\\e328\"; }\n .material-icons.rowing:before {\n content: \"\\e921\"; }\n .material-icons.rss_feed:before {\n content: \"\\e0e5\"; }\n .material-icons.rsvp:before {\n content: \"\\f055\"; }\n .material-icons.rtt:before {\n content: \"\\e9ad\"; }\n .material-icons.rule:before {\n content: \"\\f1c2\"; }\n .material-icons.rule_folder:before {\n content: \"\\f1c9\"; }\n .material-icons.run_circle:before {\n content: \"\\ef6f\"; }\n .material-icons.running_with_errors:before {\n content: \"\\e51d\"; }\n .material-icons.rv_hookup:before {\n content: \"\\e642\"; }\n .material-icons.safety_check:before {\n content: \"\\ebef\"; }\n .material-icons.safety_divider:before {\n content: \"\\e1cc\"; }\n .material-icons.sailing:before {\n content: \"\\e502\"; }\n .material-icons.sanitizer:before {\n content: \"\\f21d\"; }\n .material-icons.satellite:before {\n content: \"\\e562\"; }\n .material-icons.satellite_alt:before {\n content: \"\\eb3a\"; }\n .material-icons.save:before {\n content: \"\\e161\"; }\n .material-icons.save_alt:before {\n content: \"\\e171\"; }\n .material-icons.save_as:before {\n content: \"\\eb60\"; }\n .material-icons.saved_search:before {\n content: \"\\ea11\"; }\n .material-icons.savings:before {\n content: \"\\e2eb\"; }\n .material-icons.scale:before {\n content: \"\\eb5f\"; }\n .material-icons.scanner:before {\n content: \"\\e329\"; }\n .material-icons.scatter_plot:before {\n content: \"\\e268\"; }\n .material-icons.schedule:before {\n content: \"\\e8b5\"; }\n .material-icons.schedule_send:before {\n content: \"\\ea0a\"; }\n .material-icons.schema:before {\n content: \"\\e4fd\"; }\n .material-icons.school:before {\n content: \"\\e80c\"; }\n .material-icons.science:before {\n content: \"\\ea4b\"; }\n .material-icons.score:before {\n content: \"\\e269\"; }\n .material-icons.scoreboard:before {\n content: \"\\ebd0\"; }\n .material-icons.screen_lock_landscape:before {\n content: \"\\e1be\"; }\n .material-icons.screen_lock_portrait:before {\n content: \"\\e1bf\"; }\n .material-icons.screen_lock_rotation:before {\n content: \"\\e1c0\"; }\n .material-icons.screen_rotation:before {\n content: \"\\e1c1\"; }\n .material-icons.screen_rotation_alt:before {\n content: \"\\ebee\"; }\n .material-icons.screen_search_desktop:before {\n content: \"\\ef70\"; }\n .material-icons.screen_share:before {\n content: \"\\e0e2\"; }\n .material-icons.screenshot:before {\n content: \"\\f056\"; }\n .material-icons.screenshot_monitor:before {\n content: \"\\ec08\"; }\n .material-icons.scuba_diving:before {\n content: \"\\ebce\"; }\n .material-icons.sd:before {\n content: \"\\e9dd\"; }\n .material-icons.sd_card:before {\n content: \"\\e623\"; }\n .material-icons.sd_card_alert:before {\n content: \"\\f057\"; }\n .material-icons.sd_storage:before {\n content: \"\\e1c2\"; }\n .material-icons.search:before {\n content: \"\\e8b6\"; }\n .material-icons.search_off:before {\n content: \"\\ea76\"; }\n .material-icons.security:before {\n content: \"\\e32a\"; }\n .material-icons.security_update:before {\n content: \"\\f058\"; }\n .material-icons.security_update_good:before {\n content: \"\\f059\"; }\n .material-icons.security_update_warning:before {\n content: \"\\f05a\"; }\n .material-icons.segment:before {\n content: \"\\e94b\"; }\n .material-icons.select_all:before {\n content: \"\\e162\"; }\n .material-icons.self_improvement:before {\n content: \"\\ea78\"; }\n .material-icons.sell:before {\n content: \"\\f05b\"; }\n .material-icons.send:before {\n content: \"\\e163\"; }\n .material-icons.send_and_archive:before {\n content: \"\\ea0c\"; }\n .material-icons.send_time_extension:before {\n content: \"\\eadb\"; }\n .material-icons.send_to_mobile:before {\n content: \"\\f05c\"; }\n .material-icons.sensor_door:before {\n content: \"\\f1b5\"; }\n .material-icons.sensor_occupied:before {\n content: \"\\ec10\"; }\n .material-icons.sensor_window:before {\n content: \"\\f1b4\"; }\n .material-icons.sensors:before {\n content: \"\\e51e\"; }\n .material-icons.sensors_off:before {\n content: \"\\e51f\"; }\n .material-icons.sentiment_dissatisfied:before {\n content: \"\\e811\"; }\n .material-icons.sentiment_neutral:before {\n content: \"\\e812\"; }\n .material-icons.sentiment_satisfied:before {\n content: \"\\e813\"; }\n .material-icons.sentiment_satisfied_alt:before {\n content: \"\\e0ed\"; }\n .material-icons.sentiment_very_dissatisfied:before {\n content: \"\\e814\"; }\n .material-icons.sentiment_very_satisfied:before {\n content: \"\\e815\"; }\n .material-icons.set_meal:before {\n content: \"\\f1ea\"; }\n .material-icons.settings:before {\n content: \"\\e8b8\"; }\n .material-icons.settings_accessibility:before {\n content: \"\\f05d\"; }\n .material-icons.settings_applications:before {\n content: \"\\e8b9\"; }\n .material-icons.settings_backup_restore:before {\n content: \"\\e8ba\"; }\n .material-icons.settings_bluetooth:before {\n content: \"\\e8bb\"; }\n .material-icons.settings_brightness:before {\n content: \"\\e8bd\"; }\n .material-icons.settings_cell:before {\n content: \"\\e8bc\"; }\n .material-icons.settings_display:before {\n content: \"\\e8bd\"; }\n .material-icons.settings_ethernet:before {\n content: \"\\e8be\"; }\n .material-icons.settings_input_antenna:before {\n content: \"\\e8bf\"; }\n .material-icons.settings_input_component:before {\n content: \"\\e8c0\"; }\n .material-icons.settings_input_composite:before {\n content: \"\\e8c1\"; }\n .material-icons.settings_input_hdmi:before {\n content: \"\\e8c2\"; }\n .material-icons.settings_input_svideo:before {\n content: \"\\e8c3\"; }\n .material-icons.settings_overscan:before {\n content: \"\\e8c4\"; }\n .material-icons.settings_phone:before {\n content: \"\\e8c5\"; }\n .material-icons.settings_power:before {\n content: \"\\e8c6\"; }\n .material-icons.settings_remote:before {\n content: \"\\e8c7\"; }\n .material-icons.settings_suggest:before {\n content: \"\\f05e\"; }\n .material-icons.settings_system_daydream:before {\n content: \"\\e1c3\"; }\n .material-icons.settings_voice:before {\n content: \"\\e8c8\"; }\n .material-icons.severe_cold:before {\n content: \"\\ebd3\"; }\n .material-icons.share:before {\n content: \"\\e80d\"; }\n .material-icons.share_arrival_time:before {\n content: \"\\e524\"; }\n .material-icons.share_location:before {\n content: \"\\f05f\"; }\n .material-icons.shield:before {\n content: \"\\e9e0\"; }\n .material-icons.shield_moon:before {\n content: \"\\eaa9\"; }\n .material-icons.shop:before {\n content: \"\\e8c9\"; }\n .material-icons.shop_2:before {\n content: \"\\e19e\"; }\n .material-icons.shop_two:before {\n content: \"\\e8ca\"; }\n .material-icons.shopify:before {\n content: \"\\ea9d\"; }\n .material-icons.shopping_bag:before {\n content: \"\\f1cc\"; }\n .material-icons.shopping_basket:before {\n content: \"\\e8cb\"; }\n .material-icons.shopping_cart:before {\n content: \"\\e8cc\"; }\n .material-icons.shopping_cart_checkout:before {\n content: \"\\eb88\"; }\n .material-icons.short_text:before {\n content: \"\\e261\"; }\n .material-icons.shortcut:before {\n content: \"\\f060\"; }\n .material-icons.show_chart:before {\n content: \"\\e6e1\"; }\n .material-icons.shower:before {\n content: \"\\f061\"; }\n .material-icons.shuffle:before {\n content: \"\\e043\"; }\n .material-icons.shuffle_on:before {\n content: \"\\e9e1\"; }\n .material-icons.shutter_speed:before {\n content: \"\\e43d\"; }\n .material-icons.sick:before {\n content: \"\\f220\"; }\n .material-icons.sign_language:before {\n content: \"\\ebe5\"; }\n .material-icons.signal_cellular_0_bar:before {\n content: \"\\f0a8\"; }\n .material-icons.signal_cellular_4_bar:before {\n content: \"\\e1c8\"; }\n .material-icons.signal_cellular_alt:before {\n content: \"\\e202\"; }\n .material-icons.signal_cellular_alt_1_bar:before {\n content: \"\\ebdf\"; }\n .material-icons.signal_cellular_alt_2_bar:before {\n content: \"\\ebe3\"; }\n .material-icons.signal_cellular_connected_no_internet_0_bar:before {\n content: \"\\f0ac\"; }\n .material-icons.signal_cellular_connected_no_internet_4_bar:before {\n content: \"\\e1cd\"; }\n .material-icons.signal_cellular_no_sim:before {\n content: \"\\e1ce\"; }\n .material-icons.signal_cellular_nodata:before {\n content: \"\\f062\"; }\n .material-icons.signal_cellular_null:before {\n content: \"\\e1cf\"; }\n .material-icons.signal_cellular_off:before {\n content: \"\\e1d0\"; }\n .material-icons.signal_wifi_0_bar:before {\n content: \"\\f0b0\"; }\n .material-icons.signal_wifi_4_bar:before {\n content: \"\\e1d8\"; }\n .material-icons.signal_wifi_4_bar_lock:before {\n content: \"\\e1d9\"; }\n .material-icons.signal_wifi_bad:before {\n content: \"\\f063\"; }\n .material-icons.signal_wifi_connected_no_internet_4:before {\n content: \"\\f064\"; }\n .material-icons.signal_wifi_off:before {\n content: \"\\e1da\"; }\n .material-icons.signal_wifi_statusbar_4_bar:before {\n content: \"\\f065\"; }\n .material-icons.signal_wifi_statusbar_connected_no_internet_4:before {\n content: \"\\f066\"; }\n .material-icons.signal_wifi_statusbar_null:before {\n content: \"\\f067\"; }\n .material-icons.signpost:before {\n content: \"\\eb91\"; }\n .material-icons.sim_card:before {\n content: \"\\e32b\"; }\n .material-icons.sim_card_alert:before {\n content: \"\\e624\"; }\n .material-icons.sim_card_download:before {\n content: \"\\f068\"; }\n .material-icons.single_bed:before {\n content: \"\\ea48\"; }\n .material-icons.sip:before {\n content: \"\\f069\"; }\n .material-icons.skateboarding:before {\n content: \"\\e511\"; }\n .material-icons.skip_next:before {\n content: \"\\e044\"; }\n .material-icons.skip_previous:before {\n content: \"\\e045\"; }\n .material-icons.sledding:before {\n content: \"\\e512\"; }\n .material-icons.slideshow:before {\n content: \"\\e41b\"; }\n .material-icons.slow_motion_video:before {\n content: \"\\e068\"; }\n .material-icons.smart_button:before {\n content: \"\\f1c1\"; }\n .material-icons.smart_display:before {\n content: \"\\f06a\"; }\n .material-icons.smart_screen:before {\n content: \"\\f06b\"; }\n .material-icons.smart_toy:before {\n content: \"\\f06c\"; }\n .material-icons.smartphone:before {\n content: \"\\e32c\"; }\n .material-icons.smoke_free:before {\n content: \"\\eb4a\"; }\n .material-icons.smoking_rooms:before {\n content: \"\\eb4b\"; }\n .material-icons.sms:before {\n content: \"\\e625\"; }\n .material-icons.sms_failed:before {\n content: \"\\e626\"; }\n .material-icons.snapchat:before {\n content: \"\\ea6e\"; }\n .material-icons.snippet_folder:before {\n content: \"\\f1c7\"; }\n .material-icons.snooze:before {\n content: \"\\e046\"; }\n .material-icons.snowboarding:before {\n content: \"\\e513\"; }\n .material-icons.snowing:before {\n content: \"\\e80f\"; }\n .material-icons.snowmobile:before {\n content: \"\\e503\"; }\n .material-icons.snowshoeing:before {\n content: \"\\e514\"; }\n .material-icons.soap:before {\n content: \"\\f1b2\"; }\n .material-icons.social_distance:before {\n content: \"\\e1cb\"; }\n .material-icons.solar_power:before {\n content: \"\\ec0f\"; }\n .material-icons.sort:before {\n content: \"\\e164\"; }\n .material-icons.sort_by_alpha:before {\n content: \"\\e053\"; }\n .material-icons.sos:before {\n content: \"\\ebf7\"; }\n .material-icons.soup_kitchen:before {\n content: \"\\e7d3\"; }\n .material-icons.source:before {\n content: \"\\f1c4\"; }\n .material-icons.south:before {\n content: \"\\f1e3\"; }\n .material-icons.south_america:before {\n content: \"\\e7e4\"; }\n .material-icons.south_east:before {\n content: \"\\f1e4\"; }\n .material-icons.south_west:before {\n content: \"\\f1e5\"; }\n .material-icons.spa:before {\n content: \"\\eb4c\"; }\n .material-icons.space_bar:before {\n content: \"\\e256\"; }\n .material-icons.space_dashboard:before {\n content: \"\\e66b\"; }\n .material-icons.spatial_audio:before {\n content: \"\\ebeb\"; }\n .material-icons.spatial_audio_off:before {\n content: \"\\ebe8\"; }\n .material-icons.spatial_tracking:before {\n content: \"\\ebea\"; }\n .material-icons.speaker:before {\n content: \"\\e32d\"; }\n .material-icons.speaker_group:before {\n content: \"\\e32e\"; }\n .material-icons.speaker_notes:before {\n content: \"\\e8cd\"; }\n .material-icons.speaker_notes_off:before {\n content: \"\\e92a\"; }\n .material-icons.speaker_phone:before {\n content: \"\\e0d2\"; }\n .material-icons.speed:before {\n content: \"\\e9e4\"; }\n .material-icons.spellcheck:before {\n content: \"\\e8ce\"; }\n .material-icons.splitscreen:before {\n content: \"\\f06d\"; }\n .material-icons.spoke:before {\n content: \"\\e9a7\"; }\n .material-icons.sports:before {\n content: \"\\ea30\"; }\n .material-icons.sports_bar:before {\n content: \"\\f1f3\"; }\n .material-icons.sports_baseball:before {\n content: \"\\ea51\"; }\n .material-icons.sports_basketball:before {\n content: \"\\ea26\"; }\n .material-icons.sports_cricket:before {\n content: \"\\ea27\"; }\n .material-icons.sports_esports:before {\n content: \"\\ea28\"; }\n .material-icons.sports_football:before {\n content: \"\\ea29\"; }\n .material-icons.sports_golf:before {\n content: \"\\ea2a\"; }\n .material-icons.sports_gymnastics:before {\n content: \"\\ebc4\"; }\n .material-icons.sports_handball:before {\n content: \"\\ea33\"; }\n .material-icons.sports_hockey:before {\n content: \"\\ea2b\"; }\n .material-icons.sports_kabaddi:before {\n content: \"\\ea34\"; }\n .material-icons.sports_martial_arts:before {\n content: \"\\eae9\"; }\n .material-icons.sports_mma:before {\n content: \"\\ea2c\"; }\n .material-icons.sports_motorsports:before {\n content: \"\\ea2d\"; }\n .material-icons.sports_rugby:before {\n content: \"\\ea2e\"; }\n .material-icons.sports_score:before {\n content: \"\\f06e\"; }\n .material-icons.sports_soccer:before {\n content: \"\\ea2f\"; }\n .material-icons.sports_tennis:before {\n content: \"\\ea32\"; }\n .material-icons.sports_volleyball:before {\n content: \"\\ea31\"; }\n .material-icons.square:before {\n content: \"\\eb36\"; }\n .material-icons.square_foot:before {\n content: \"\\ea49\"; }\n .material-icons.ssid_chart:before {\n content: \"\\eb66\"; }\n .material-icons.stacked_bar_chart:before {\n content: \"\\e9e6\"; }\n .material-icons.stacked_line_chart:before {\n content: \"\\f22b\"; }\n .material-icons.stadium:before {\n content: \"\\eb90\"; }\n .material-icons.stairs:before {\n content: \"\\f1a9\"; }\n .material-icons.star:before {\n content: \"\\e838\"; }\n .material-icons.star_border:before {\n content: \"\\e83a\"; }\n .material-icons.star_border_purple500:before {\n content: \"\\f099\"; }\n .material-icons.star_half:before {\n content: \"\\e839\"; }\n .material-icons.star_outline:before {\n content: \"\\f06f\"; }\n .material-icons.star_purple500:before {\n content: \"\\f09a\"; }\n .material-icons.star_rate:before {\n content: \"\\f0ec\"; }\n .material-icons.stars:before {\n content: \"\\e8d0\"; }\n .material-icons.start:before {\n content: \"\\e089\"; }\n .material-icons.stay_current_landscape:before {\n content: \"\\e0d3\"; }\n .material-icons.stay_current_portrait:before {\n content: \"\\e0d4\"; }\n .material-icons.stay_primary_landscape:before {\n content: \"\\e0d5\"; }\n .material-icons.stay_primary_portrait:before {\n content: \"\\e0d6\"; }\n .material-icons.sticky_note_2:before {\n content: \"\\f1fc\"; }\n .material-icons.stop:before {\n content: \"\\e047\"; }\n .material-icons.stop_circle:before {\n content: \"\\ef71\"; }\n .material-icons.stop_screen_share:before {\n content: \"\\e0e3\"; }\n .material-icons.storage:before {\n content: \"\\e1db\"; }\n .material-icons.store:before {\n content: \"\\e8d1\"; }\n .material-icons.store_mall_directory:before {\n content: \"\\e563\"; }\n .material-icons.storefront:before {\n content: \"\\ea12\"; }\n .material-icons.storm:before {\n content: \"\\f070\"; }\n .material-icons.straight:before {\n content: \"\\eb95\"; }\n .material-icons.straighten:before {\n content: \"\\e41c\"; }\n .material-icons.stream:before {\n content: \"\\e9e9\"; }\n .material-icons.streetview:before {\n content: \"\\e56e\"; }\n .material-icons.strikethrough_s:before {\n content: \"\\e257\"; }\n .material-icons.stroller:before {\n content: \"\\f1ae\"; }\n .material-icons.style:before {\n content: \"\\e41d\"; }\n .material-icons.subdirectory_arrow_left:before {\n content: \"\\e5d9\"; }\n .material-icons.subdirectory_arrow_right:before {\n content: \"\\e5da\"; }\n .material-icons.subject:before {\n content: \"\\e8d2\"; }\n .material-icons.subscript:before {\n content: \"\\f111\"; }\n .material-icons.subscriptions:before {\n content: \"\\e064\"; }\n .material-icons.subtitles:before {\n content: \"\\e048\"; }\n .material-icons.subtitles_off:before {\n content: \"\\ef72\"; }\n .material-icons.subway:before {\n content: \"\\e56f\"; }\n .material-icons.summarize:before {\n content: \"\\f071\"; }\n .material-icons.sunny:before {\n content: \"\\e81a\"; }\n .material-icons.sunny_snowing:before {\n content: \"\\e819\"; }\n .material-icons.superscript:before {\n content: \"\\f112\"; }\n .material-icons.supervised_user_circle:before {\n content: \"\\e939\"; }\n .material-icons.supervisor_account:before {\n content: \"\\e8d3\"; }\n .material-icons.support:before {\n content: \"\\ef73\"; }\n .material-icons.support_agent:before {\n content: \"\\f0e2\"; }\n .material-icons.surfing:before {\n content: \"\\e515\"; }\n .material-icons.surround_sound:before {\n content: \"\\e049\"; }\n .material-icons.swap_calls:before {\n content: \"\\e0d7\"; }\n .material-icons.swap_horiz:before {\n content: \"\\e8d4\"; }\n .material-icons.swap_horizontal_circle:before {\n content: \"\\e933\"; }\n .material-icons.swap_vert:before {\n content: \"\\e8d5\"; }\n .material-icons.swap_vert_circle:before {\n content: \"\\e8d6\"; }\n .material-icons.swap_vertical_circle:before {\n content: \"\\e8d6\"; }\n .material-icons.swipe:before {\n content: \"\\e9ec\"; }\n .material-icons.swipe_down:before {\n content: \"\\eb53\"; }\n .material-icons.swipe_down_alt:before {\n content: \"\\eb30\"; }\n .material-icons.swipe_left:before {\n content: \"\\eb59\"; }\n .material-icons.swipe_left_alt:before {\n content: \"\\eb33\"; }\n .material-icons.swipe_right:before {\n content: \"\\eb52\"; }\n .material-icons.swipe_right_alt:before {\n content: \"\\eb56\"; }\n .material-icons.swipe_up:before {\n content: \"\\eb2e\"; }\n .material-icons.swipe_up_alt:before {\n content: \"\\eb35\"; }\n .material-icons.swipe_vertical:before {\n content: \"\\eb51\"; }\n .material-icons.switch_access_shortcut:before {\n content: \"\\e7e1\"; }\n .material-icons.switch_access_shortcut_add:before {\n content: \"\\e7e2\"; }\n .material-icons.switch_account:before {\n content: \"\\e9ed\"; }\n .material-icons.switch_camera:before {\n content: \"\\e41e\"; }\n .material-icons.switch_left:before {\n content: \"\\f1d1\"; }\n .material-icons.switch_right:before {\n content: \"\\f1d2\"; }\n .material-icons.switch_video:before {\n content: \"\\e41f\"; }\n .material-icons.synagogue:before {\n content: \"\\eab0\"; }\n .material-icons.sync:before {\n content: \"\\e627\"; }\n .material-icons.sync_alt:before {\n content: \"\\ea18\"; }\n .material-icons.sync_disabled:before {\n content: \"\\e628\"; }\n .material-icons.sync_lock:before {\n content: \"\\eaee\"; }\n .material-icons.sync_problem:before {\n content: \"\\e629\"; }\n .material-icons.system_security_update:before {\n content: \"\\f072\"; }\n .material-icons.system_security_update_good:before {\n content: \"\\f073\"; }\n .material-icons.system_security_update_warning:before {\n content: \"\\f074\"; }\n .material-icons.system_update:before {\n content: \"\\e62a\"; }\n .material-icons.system_update_alt:before {\n content: \"\\e8d7\"; }\n .material-icons.system_update_tv:before {\n content: \"\\e8d7\"; }\n .material-icons.tab:before {\n content: \"\\e8d8\"; }\n .material-icons.tab_unselected:before {\n content: \"\\e8d9\"; }\n .material-icons.table_bar:before {\n content: \"\\ead2\"; }\n .material-icons.table_chart:before {\n content: \"\\e265\"; }\n .material-icons.table_restaurant:before {\n content: \"\\eac6\"; }\n .material-icons.table_rows:before {\n content: \"\\f101\"; }\n .material-icons.table_view:before {\n content: \"\\f1be\"; }\n .material-icons.tablet:before {\n content: \"\\e32f\"; }\n .material-icons.tablet_android:before {\n content: \"\\e330\"; }\n .material-icons.tablet_mac:before {\n content: \"\\e331\"; }\n .material-icons.tag:before {\n content: \"\\e9ef\"; }\n .material-icons.tag_faces:before {\n content: \"\\e420\"; }\n .material-icons.takeout_dining:before {\n content: \"\\ea74\"; }\n .material-icons.tap_and_play:before {\n content: \"\\e62b\"; }\n .material-icons.tapas:before {\n content: \"\\f1e9\"; }\n .material-icons.task:before {\n content: \"\\f075\"; }\n .material-icons.task_alt:before {\n content: \"\\e2e6\"; }\n .material-icons.taxi_alert:before {\n content: \"\\ef74\"; }\n .material-icons.telegram:before {\n content: \"\\ea6b\"; }\n .material-icons.temple_buddhist:before {\n content: \"\\eab3\"; }\n .material-icons.temple_hindu:before {\n content: \"\\eaaf\"; }\n .material-icons.terminal:before {\n content: \"\\eb8e\"; }\n .material-icons.terrain:before {\n content: \"\\e564\"; }\n .material-icons.text_decrease:before {\n content: \"\\eadd\"; }\n .material-icons.text_fields:before {\n content: \"\\e262\"; }\n .material-icons.text_format:before {\n content: \"\\e165\"; }\n .material-icons.text_increase:before {\n content: \"\\eae2\"; }\n .material-icons.text_rotate_up:before {\n content: \"\\e93a\"; }\n .material-icons.text_rotate_vertical:before {\n content: \"\\e93b\"; }\n .material-icons.text_rotation_angledown:before {\n content: \"\\e93c\"; }\n .material-icons.text_rotation_angleup:before {\n content: \"\\e93d\"; }\n .material-icons.text_rotation_down:before {\n content: \"\\e93e\"; }\n .material-icons.text_rotation_none:before {\n content: \"\\e93f\"; }\n .material-icons.text_snippet:before {\n content: \"\\f1c6\"; }\n .material-icons.textsms:before {\n content: \"\\e0d8\"; }\n .material-icons.texture:before {\n content: \"\\e421\"; }\n .material-icons.theater_comedy:before {\n content: \"\\ea66\"; }\n .material-icons.theaters:before {\n content: \"\\e8da\"; }\n .material-icons.thermostat:before {\n content: \"\\f076\"; }\n .material-icons.thermostat_auto:before {\n content: \"\\f077\"; }\n .material-icons.thumb_down:before {\n content: \"\\e8db\"; }\n .material-icons.thumb_down_alt:before {\n content: \"\\e816\"; }\n .material-icons.thumb_down_off_alt:before {\n content: \"\\e9f2\"; }\n .material-icons.thumb_up:before {\n content: \"\\e8dc\"; }\n .material-icons.thumb_up_alt:before {\n content: \"\\e817\"; }\n .material-icons.thumb_up_off_alt:before {\n content: \"\\e9f3\"; }\n .material-icons.thumbs_up_down:before {\n content: \"\\e8dd\"; }\n .material-icons.thunderstorm:before {\n content: \"\\ebdb\"; }\n .material-icons.tiktok:before {\n content: \"\\ea7e\"; }\n .material-icons.time_to_leave:before {\n content: \"\\e62c\"; }\n .material-icons.timelapse:before {\n content: \"\\e422\"; }\n .material-icons.timeline:before {\n content: \"\\e922\"; }\n .material-icons.timer:before {\n content: \"\\e425\"; }\n .material-icons.timer_10:before {\n content: \"\\e423\"; }\n .material-icons.timer_10_select:before {\n content: \"\\f07a\"; }\n .material-icons.timer_3:before {\n content: \"\\e424\"; }\n .material-icons.timer_3_select:before {\n content: \"\\f07b\"; }\n .material-icons.timer_off:before {\n content: \"\\e426\"; }\n .material-icons.tips_and_updates:before {\n content: \"\\e79a\"; }\n .material-icons.tire_repair:before {\n content: \"\\ebc8\"; }\n .material-icons.title:before {\n content: \"\\e264\"; }\n .material-icons.toc:before {\n content: \"\\e8de\"; }\n .material-icons.today:before {\n content: \"\\e8df\"; }\n .material-icons.toggle_off:before {\n content: \"\\e9f5\"; }\n .material-icons.toggle_on:before {\n content: \"\\e9f6\"; }\n .material-icons.token:before {\n content: \"\\ea25\"; }\n .material-icons.toll:before {\n content: \"\\e8e0\"; }\n .material-icons.tonality:before {\n content: \"\\e427\"; }\n .material-icons.topic:before {\n content: \"\\f1c8\"; }\n .material-icons.tornado:before {\n content: \"\\e199\"; }\n .material-icons.touch_app:before {\n content: \"\\e913\"; }\n .material-icons.tour:before {\n content: \"\\ef75\"; }\n .material-icons.toys:before {\n content: \"\\e332\"; }\n .material-icons.track_changes:before {\n content: \"\\e8e1\"; }\n .material-icons.traffic:before {\n content: \"\\e565\"; }\n .material-icons.train:before {\n content: \"\\e570\"; }\n .material-icons.tram:before {\n content: \"\\e571\"; }\n .material-icons.transcribe:before {\n content: \"\\f8ec\"; }\n .material-icons.transfer_within_a_station:before {\n content: \"\\e572\"; }\n .material-icons.transform:before {\n content: \"\\e428\"; }\n .material-icons.transgender:before {\n content: \"\\e58d\"; }\n .material-icons.transit_enterexit:before {\n content: \"\\e579\"; }\n .material-icons.translate:before {\n content: \"\\e8e2\"; }\n .material-icons.travel_explore:before {\n content: \"\\e2db\"; }\n .material-icons.trending_down:before {\n content: \"\\e8e3\"; }\n .material-icons.trending_flat:before {\n content: \"\\e8e4\"; }\n .material-icons.trending_neutral:before {\n content: \"\\e8e4\"; }\n .material-icons.trending_up:before {\n content: \"\\e8e5\"; }\n .material-icons.trip_origin:before {\n content: \"\\e57b\"; }\n .material-icons.troubleshoot:before {\n content: \"\\e1d2\"; }\n .material-icons.try:before {\n content: \"\\f07c\"; }\n .material-icons.tsunami:before {\n content: \"\\ebd8\"; }\n .material-icons.tty:before {\n content: \"\\f1aa\"; }\n .material-icons.tune:before {\n content: \"\\e429\"; }\n .material-icons.tungsten:before {\n content: \"\\f07d\"; }\n .material-icons.turn_left:before {\n content: \"\\eba6\"; }\n .material-icons.turn_right:before {\n content: \"\\ebab\"; }\n .material-icons.turn_sharp_left:before {\n content: \"\\eba7\"; }\n .material-icons.turn_sharp_right:before {\n content: \"\\ebaa\"; }\n .material-icons.turn_slight_left:before {\n content: \"\\eba4\"; }\n .material-icons.turn_slight_right:before {\n content: \"\\eb9a\"; }\n .material-icons.turned_in:before {\n content: \"\\e8e6\"; }\n .material-icons.turned_in_not:before {\n content: \"\\e8e7\"; }\n .material-icons.tv:before {\n content: \"\\e333\"; }\n .material-icons.tv_off:before {\n content: \"\\e647\"; }\n .material-icons.two_wheeler:before {\n content: \"\\e9f9\"; }\n .material-icons.type_specimen:before {\n content: \"\\f8f0\"; }\n .material-icons.u_turn_left:before {\n content: \"\\eba1\"; }\n .material-icons.u_turn_right:before {\n content: \"\\eba2\"; }\n .material-icons.umbrella:before {\n content: \"\\f1ad\"; }\n .material-icons.unarchive:before {\n content: \"\\e169\"; }\n .material-icons.undo:before {\n content: \"\\e166\"; }\n .material-icons.unfold_less:before {\n content: \"\\e5d6\"; }\n .material-icons.unfold_more:before {\n content: \"\\e5d7\"; }\n .material-icons.unpublished:before {\n content: \"\\f236\"; }\n .material-icons.unsubscribe:before {\n content: \"\\e0eb\"; }\n .material-icons.upcoming:before {\n content: \"\\f07e\"; }\n .material-icons.update:before {\n content: \"\\e923\"; }\n .material-icons.update_disabled:before {\n content: \"\\e075\"; }\n .material-icons.upgrade:before {\n content: \"\\f0fb\"; }\n .material-icons.upload:before {\n content: \"\\f09b\"; }\n .material-icons.upload_file:before {\n content: \"\\e9fc\"; }\n .material-icons.usb:before {\n content: \"\\e1e0\"; }\n .material-icons.usb_off:before {\n content: \"\\e4fa\"; }\n .material-icons.vaccines:before {\n content: \"\\e138\"; }\n .material-icons.vape_free:before {\n content: \"\\ebc6\"; }\n .material-icons.vaping_rooms:before {\n content: \"\\ebcf\"; }\n .material-icons.verified:before {\n content: \"\\ef76\"; }\n .material-icons.verified_user:before {\n content: \"\\e8e8\"; }\n .material-icons.vertical_align_bottom:before {\n content: \"\\e258\"; }\n .material-icons.vertical_align_center:before {\n content: \"\\e259\"; }\n .material-icons.vertical_align_top:before {\n content: \"\\e25a\"; }\n .material-icons.vertical_distribute:before {\n content: \"\\e076\"; }\n .material-icons.vertical_shades:before {\n content: \"\\ec0e\"; }\n .material-icons.vertical_shades_closed:before {\n content: \"\\ec0d\"; }\n .material-icons.vertical_split:before {\n content: \"\\e949\"; }\n .material-icons.vibration:before {\n content: \"\\e62d\"; }\n .material-icons.video_call:before {\n content: \"\\e070\"; }\n .material-icons.video_camera_back:before {\n content: \"\\f07f\"; }\n .material-icons.video_camera_front:before {\n content: \"\\f080\"; }\n .material-icons.video_collection:before {\n content: \"\\e04a\"; }\n .material-icons.video_file:before {\n content: \"\\eb87\"; }\n .material-icons.video_label:before {\n content: \"\\e071\"; }\n .material-icons.video_library:before {\n content: \"\\e04a\"; }\n .material-icons.video_settings:before {\n content: \"\\ea75\"; }\n .material-icons.video_stable:before {\n content: \"\\f081\"; }\n .material-icons.videocam:before {\n content: \"\\e04b\"; }\n .material-icons.videocam_off:before {\n content: \"\\e04c\"; }\n .material-icons.videogame_asset:before {\n content: \"\\e338\"; }\n .material-icons.videogame_asset_off:before {\n content: \"\\e500\"; }\n .material-icons.view_agenda:before {\n content: \"\\e8e9\"; }\n .material-icons.view_array:before {\n content: \"\\e8ea\"; }\n .material-icons.view_carousel:before {\n content: \"\\e8eb\"; }\n .material-icons.view_column:before {\n content: \"\\e8ec\"; }\n .material-icons.view_comfortable:before {\n content: \"\\e42a\"; }\n .material-icons.view_comfy:before {\n content: \"\\e42a\"; }\n .material-icons.view_comfy_alt:before {\n content: \"\\eb73\"; }\n .material-icons.view_compact:before {\n content: \"\\e42b\"; }\n .material-icons.view_compact_alt:before {\n content: \"\\eb74\"; }\n .material-icons.view_cozy:before {\n content: \"\\eb75\"; }\n .material-icons.view_day:before {\n content: \"\\e8ed\"; }\n .material-icons.view_headline:before {\n content: \"\\e8ee\"; }\n .material-icons.view_in_ar:before {\n content: \"\\e9fe\"; }\n .material-icons.view_kanban:before {\n content: \"\\eb7f\"; }\n .material-icons.view_list:before {\n content: \"\\e8ef\"; }\n .material-icons.view_module:before {\n content: \"\\e8f0\"; }\n .material-icons.view_quilt:before {\n content: \"\\e8f1\"; }\n .material-icons.view_sidebar:before {\n content: \"\\f114\"; }\n .material-icons.view_stream:before {\n content: \"\\e8f2\"; }\n .material-icons.view_timeline:before {\n content: \"\\eb85\"; }\n .material-icons.view_week:before {\n content: \"\\e8f3\"; }\n .material-icons.vignette:before {\n content: \"\\e435\"; }\n .material-icons.villa:before {\n content: \"\\e586\"; }\n .material-icons.visibility:before {\n content: \"\\e8f4\"; }\n .material-icons.visibility_off:before {\n content: \"\\e8f5\"; }\n .material-icons.voice_chat:before {\n content: \"\\e62e\"; }\n .material-icons.voice_over_off:before {\n content: \"\\e94a\"; }\n .material-icons.voicemail:before {\n content: \"\\e0d9\"; }\n .material-icons.volcano:before {\n content: \"\\ebda\"; }\n .material-icons.volume_down:before {\n content: \"\\e04d\"; }\n .material-icons.volume_down_alt:before {\n content: \"\\e79c\"; }\n .material-icons.volume_mute:before {\n content: \"\\e04e\"; }\n .material-icons.volume_off:before {\n content: \"\\e04f\"; }\n .material-icons.volume_up:before {\n content: \"\\e050\"; }\n .material-icons.volunteer_activism:before {\n content: \"\\ea70\"; }\n .material-icons.vpn_key:before {\n content: \"\\e0da\"; }\n .material-icons.vpn_key_off:before {\n content: \"\\eb7a\"; }\n .material-icons.vpn_lock:before {\n content: \"\\e62f\"; }\n .material-icons.vrpano:before {\n content: \"\\f082\"; }\n .material-icons.wallet:before {\n content: \"\\f8ff\"; }\n .material-icons.wallet_giftcard:before {\n content: \"\\e8f6\"; }\n .material-icons.wallet_membership:before {\n content: \"\\e8f7\"; }\n .material-icons.wallet_travel:before {\n content: \"\\e8f8\"; }\n .material-icons.wallpaper:before {\n content: \"\\e1bc\"; }\n .material-icons.warehouse:before {\n content: \"\\ebb8\"; }\n .material-icons.warning:before {\n content: \"\\e002\"; }\n .material-icons.warning_amber:before {\n content: \"\\f083\"; }\n .material-icons.wash:before {\n content: \"\\f1b1\"; }\n .material-icons.watch:before {\n content: \"\\e334\"; }\n .material-icons.watch_later:before {\n content: \"\\e924\"; }\n .material-icons.watch_off:before {\n content: \"\\eae3\"; }\n .material-icons.water:before {\n content: \"\\f084\"; }\n .material-icons.water_damage:before {\n content: \"\\f203\"; }\n .material-icons.water_drop:before {\n content: \"\\e798\"; }\n .material-icons.waterfall_chart:before {\n content: \"\\ea00\"; }\n .material-icons.waves:before {\n content: \"\\e176\"; }\n .material-icons.waving_hand:before {\n content: \"\\e766\"; }\n .material-icons.wb_auto:before {\n content: \"\\e42c\"; }\n .material-icons.wb_cloudy:before {\n content: \"\\e42d\"; }\n .material-icons.wb_incandescent:before {\n content: \"\\e42e\"; }\n .material-icons.wb_iridescent:before {\n content: \"\\e436\"; }\n .material-icons.wb_shade:before {\n content: \"\\ea01\"; }\n .material-icons.wb_sunny:before {\n content: \"\\e430\"; }\n .material-icons.wb_twighlight:before {\n content: \"\\ea02\"; }\n .material-icons.wb_twilight:before {\n content: \"\\e1c6\"; }\n .material-icons.wc:before {\n content: \"\\e63d\"; }\n .material-icons.web:before {\n content: \"\\e051\"; }\n .material-icons.web_asset:before {\n content: \"\\e069\"; }\n .material-icons.web_asset_off:before {\n content: \"\\e4f7\"; }\n .material-icons.web_stories:before {\n content: \"\\e595\"; }\n .material-icons.webhook:before {\n content: \"\\eb92\"; }\n .material-icons.wechat:before {\n content: \"\\ea81\"; }\n .material-icons.weekend:before {\n content: \"\\e16b\"; }\n .material-icons.west:before {\n content: \"\\f1e6\"; }\n .material-icons.whatsapp:before {\n content: \"\\ea9c\"; }\n .material-icons.whatshot:before {\n content: \"\\e80e\"; }\n .material-icons.wheelchair_pickup:before {\n content: \"\\f1ab\"; }\n .material-icons.where_to_vote:before {\n content: \"\\e177\"; }\n .material-icons.widgets:before {\n content: \"\\e1bd\"; }\n .material-icons.width_full:before {\n content: \"\\f8f5\"; }\n .material-icons.width_normal:before {\n content: \"\\f8f6\"; }\n .material-icons.width_wide:before {\n content: \"\\f8f7\"; }\n .material-icons.wifi:before {\n content: \"\\e63e\"; }\n .material-icons.wifi_1_bar:before {\n content: \"\\e4ca\"; }\n .material-icons.wifi_2_bar:before {\n content: \"\\e4d9\"; }\n .material-icons.wifi_calling:before {\n content: \"\\ef77\"; }\n .material-icons.wifi_calling_3:before {\n content: \"\\f085\"; }\n .material-icons.wifi_channel:before {\n content: \"\\eb6a\"; }\n .material-icons.wifi_find:before {\n content: \"\\eb31\"; }\n .material-icons.wifi_lock:before {\n content: \"\\e1e1\"; }\n .material-icons.wifi_off:before {\n content: \"\\e648\"; }\n .material-icons.wifi_password:before {\n content: \"\\eb6b\"; }\n .material-icons.wifi_protected_setup:before {\n content: \"\\f0fc\"; }\n .material-icons.wifi_tethering:before {\n content: \"\\e1e2\"; }\n .material-icons.wifi_tethering_error:before {\n content: \"\\ead9\"; }\n .material-icons.wifi_tethering_error_rounded:before {\n content: \"\\f086\"; }\n .material-icons.wifi_tethering_off:before {\n content: \"\\f087\"; }\n .material-icons.wind_power:before {\n content: \"\\ec0c\"; }\n .material-icons.window:before {\n content: \"\\f088\"; }\n .material-icons.wine_bar:before {\n content: \"\\f1e8\"; }\n .material-icons.woman:before {\n content: \"\\e13e\"; }\n .material-icons.woo_commerce:before {\n content: \"\\ea6d\"; }\n .material-icons.wordpress:before {\n content: \"\\ea9f\"; }\n .material-icons.work:before {\n content: \"\\e8f9\"; }\n .material-icons.work_history:before {\n content: \"\\ec09\"; }\n .material-icons.work_off:before {\n content: \"\\e942\"; }\n .material-icons.work_outline:before {\n content: \"\\e943\"; }\n .material-icons.workspace_premium:before {\n content: \"\\e7af\"; }\n .material-icons.workspaces:before {\n content: \"\\e1a0\"; }\n .material-icons.workspaces_filled:before {\n content: \"\\ea0d\"; }\n .material-icons.workspaces_outline:before {\n content: \"\\ea0f\"; }\n .material-icons.wrap_text:before {\n content: \"\\e25b\"; }\n .material-icons.wrong_location:before {\n content: \"\\ef78\"; }\n .material-icons.wysiwyg:before {\n content: \"\\f1c3\"; }\n .material-icons.yard:before {\n content: \"\\f089\"; }\n .material-icons.youtube_searched_for:before {\n content: \"\\e8fa\"; }\n .material-icons.zoom_in:before {\n content: \"\\e8ff\"; }\n .material-icons.zoom_in_map:before {\n content: \"\\eb2d\"; }\n .material-icons.zoom_out:before {\n content: \"\\e900\"; }\n .material-icons.zoom_out_map:before {\n content: \"\\e56b\"; }\n\n/*# sourceMappingURL=material-design-icons.css.map */","/*!\n\tLato font.\n*/\n/* Lato (hairline, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 100;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-hairline/lato-hairline.woff2\") format(\"woff2\"), url(\"../fonts/lato-hairline/lato-hairline.woff\") format(\"woff\");\n}\n/* Lato (hairline, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 100;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-hairline-italic/lato-hairline-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-hairline-italic/lato-hairline-italic.woff\") format(\"woff\");\n}\n/* Lato (thin, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 200;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-thin/lato-thin.woff2\") format(\"woff2\"), url(\"../fonts/lato-thin/lato-thin.woff\") format(\"woff\");\n}\n/* Lato (thin, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 200;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-thin-italic/lato-thin-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-thin-italic/lato-thin-italic.woff\") format(\"woff\");\n}\n/* Lato (light, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 300;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-light/lato-light.woff2\") format(\"woff2\"), url(\"../fonts/lato-light/lato-light.woff\") format(\"woff\");\n}\n/* Lato (light, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 300;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-light-italic/lato-light-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-light-italic/lato-light-italic.woff\") format(\"woff\");\n}\n/* Lato (normal, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 400;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-normal/lato-normal.woff2\") format(\"woff2\"), url(\"../fonts/lato-normal/lato-normal.woff\") format(\"woff\");\n}\n/* Lato (normal, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 400;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-normal-italic/lato-normal-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-normal-italic/lato-normal-italic.woff\") format(\"woff\");\n}\n/* Lato (medium, regular) */\n@font-face {\n font-family: \"Lato Medium\";\n font-weight: 400;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-medium/lato-medium.woff2\") format(\"woff2\"), url(\"../fonts/lato-medium/lato-medium.woff\") format(\"woff\");\n}\n/* Lato (medium, italic) */\n@font-face {\n font-family: \"Lato Medium\";\n font-weight: 400;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-medium-italic/lato-medium-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-medium-italic/lato-medium-italic.woff\") format(\"woff\");\n}\n/* Lato (semibold, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 500;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-semibold/lato-semibold.woff2\") format(\"woff2\"), url(\"../fonts/lato-semibold/lato-semibold.woff\") format(\"woff\");\n}\n/* Lato (semibold, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 500;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-semibold-italic/lato-semibold-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-semibold-italic/lato-semibold-italic.woff\") format(\"woff\");\n}\n/* Lato (bold, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 600;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-bold/lato-bold.woff2\") format(\"woff2\"), url(\"../fonts/lato-bold/lato-bold.woff\") format(\"woff\");\n}\n/* Lato (bold, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 600;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-bold-italic/lato-bold-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-bold-italic/lato-bold-italic.woff\") format(\"woff\");\n}\n/* Lato (heavy, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 800;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-heavy/lato-heavy.woff2\") format(\"woff2\"), url(\"../fonts/lato-heavy/lato-heavy.woff\") format(\"woff\");\n}\n/* Lato (heavy, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 800;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-heavy-italic/lato-heavy-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-heavy-italic/lato-heavy-italic.woff\") format(\"woff\");\n}\n/* Lato (black, regular) */\n@font-face {\n font-family: Lato;\n font-weight: 900;\n font-style: normal;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-black/lato-black.woff2\") format(\"woff2\"), url(\"../fonts/lato-black/lato-black.woff\") format(\"woff\");\n}\n/* Lato (black, italic) */\n@font-face {\n font-family: Lato;\n font-weight: 900;\n font-style: italic;\n text-rendering: optimizeLegibility;\n src: url(\"../fonts/lato-black-italic/lato-black-italic.woff2\") format(\"woff2\"), url(\"../fonts/lato-black-italic/lato-black-italic.woff\") format(\"woff\");\n}\n","/* Rules for sizing the icon. */\n.material-icons.md-18 { font-size: 18px; }\n.material-icons.md-24 { font-size: 24px; }\n.material-icons.md-36 { font-size: 36px; }\n.material-icons.md-48 { font-size: 48px; }\n\n/* Rules for using icons as black on a light background. */\n.material-icons.md-dark { color: rgb(0 0 0 / 54%); }\n.material-icons.md-dark.md-inactive { color: rgb(0 0 0 / 26%); }\n\n/* Rules for using icons as white on a dark background. */\n.material-icons.md-light { color: rgb(255 255 255 / 100%); }\n.material-icons.md-light.md-inactive { color: rgb(255 255 255 / 30%); }\n","pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}","#article{font-size:20px;margin:0 auto;max-width:45em;padding:5px 20px;background-color:#fff;box-shadow:0 0 10px #ccc}#article article{color:#424242;font-size:18px;line-height:1.7em;overflow-wrap:break-word}#article article h1,#article article h2,#article article h3,#article article h4,#article article h5,#article article h6{color:#212121}#article article h1 strong,#article article h2 strong,#article article h3 strong,#article article h4 strong,#article article h5 strong,#article article h6 strong{font-weight:500}#article article h6{font-size:1.2rem}#article article h5{font-size:1.6rem}#article article h4{font-size:1.9rem}#article article h3{font-size:2.2rem}#article article h2{font-size:2.5rem}#article article h1{font-size:2.7rem}#article article a{border-bottom:1px dotted #00acc1;text-decoration:none}#article article a:hover{border-bottom-style:solid}#article article ul{padding-left:30px}#article article ul,#article article ul li{list-style-type:disc}#article article blockquote{font-style:italic}#article article strong{font-weight:bold}#article img,#article figure{max-width:100%;height:auto}#article pre{box-sizing:border-box;margin:0 0 1.75em;border:#e3f2fd 1px solid;width:100%;padding:10px;font-family:monospace;font-size:.8em;white-space:pre;overflow:auto;background:#f5f5f5;border-radius:3px}#article>header>h1{font-size:2em;margin:2.1rem 0 .68rem}#article aside .tools{display:flex;flex-flow:row wrap}#article aside .tools .stats{font-size:.7em;margin:8px 5px 5px}#article aside .tools .stats li{display:inline-flex;vertical-align:middle;margin:3px 5px}#article aside .tools .stats li i.material-icons{color:#3e3e3e;margin-right:3px;font-size:18px}#article aside .tools .stats a{color:#000;text-decoration:none}#article aside .tools .tags{float:right;margin:5px 15px 10px}#article aside .chip{background-color:#9e9e9e;padding:0 15px 0 10px;margin:auto 2px;border-radius:6px;height:18px;line-height:18px}#article aside .chip a,#article aside .chip i{color:#fff}#article aside .chip i.material-icons{float:right;font-size:16px;line-height:18px;padding-left:8px}.reader-mode{width:70px !important;transition:width .2s ease}.reader-mode .collapsible-body{height:0;overflow:hidden}.reader-mode span{opacity:0;transition:opacity .2s ease}.reader-mode:hover{width:260px !important}.reader-mode:hover span{opacity:1}.reader-mode .collapsible-body{height:auto}.reader-mode .collapsible-body li a i.material-icons{margin:auto 5px auto -8px}.progress{position:fixed;top:0;width:100%;height:3px;margin:0;z-index:9999}main #content{padding:0 .5rem}.card .card-content{padding-bottom:12px;flex-grow:1}.card .card-content .card-title,.card .card-reveal .card-title{line-height:22.8px;max-height:80px;font-size:19px;font-family:roberto,\"Helvetica Neue\",Helvetica,Arial,sans-serif}.card .card-stacked .card-content .card-title{display:inline-block}.card .card-content .activator,.card .card-reveal .activator{cursor:pointer;font-family:\"Material Icons\"}.card .card-content i.right,.card .card-reveal i.right{margin-left:0}.card .card-content .original{line-height:24px;font-size:15px}.card .card-entry-labels{position:absolute;top:10px;z-index:90;max-width:50%}.card .card-entry-labels-hidden{margin:2.5px auto}.card .card-entry-labels-hidden li{display:inline-block;background-color:#00acc1;margin:0 5px;padding:5px 12px;border-radius:3px;color:#fff;max-height:2em;max-width:calc(100% - 15px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .card-content .estimatedTime{margin-bottom:10px}.card .card-action{padding:10px 10px 10px 15px}.card .card-action ul.links{margin:0;font-size:24px;line-height:24px}.card .card-action a{color:#fff;margin:0}.card .card-action a:hover{color:#fff}.card .card-action .tool{display:flex;margin-right:0 !important}.card .card-action .reading-time{display:inline-flex;vertical-align:middle}.card .card-action .reading-time .card-reading-time,.card .card-action .reading-time .card-created-at{display:inline-flex}.card .card-action .reading-time span{margin-right:5px}.card .card-image{height:10em}.card .card-fullimage{height:13.5em}.card.sw{max-width:370px;margin-left:auto;margin-right:auto}.card-body{display:flex;flex-grow:1;flex-direction:column}a.original:not(.waves-effect){text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.card .card-image .preview,.card .card-fullimage .preview,.card-stacked .preview{height:100%;background:no-repeat 50%/cover;background-color:#efefef;display:block}.card .card-image .preview--default,.card .card-fullimage .preview--default,.card-stacked .preview--default{background-size:contain}.card-entry-labels li,.card-tag-labels li{margin:10px 10px 10px auto;padding:5px 12px 5px 16px !important;background-color:#00acc1;border-radius:3px;color:#fff;cursor:default;line-height:20px}.card-entry-labels li{text-overflow:ellipsis;white-space:nowrap;border-radius:0 3px 3px 0;overflow:hidden}.card-tag-labels li{display:flex}.card-entry-tags a,.card-entry-labels a,.card-tag-labels a,.card-entry-labels-hidden a,#list .chip a{text-decoration:none;font-weight:normal;color:#fff}.card-tag-link{width:calc(100% - 24px);line-height:1.3;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-tag-form{display:flex;min-width:100px;flex-grow:1}.card-tag-form input{margin-bottom:0;height:1.8rem}.card-tag-icon{display:flex}.card-tag-delete{margin-left:10px}.card-tag-labels{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr))}.card-tag-labels li{margin:10px;align-items:center}.card-stacked{display:flex;flex-flow:row wrap}.card-stacked:hover ul.tools-list{display:inline;text-align:right}.card-stacked .card-preview{max-width:100px;max-height:50px;margin-right:10px;flex:1}.card-stacked div.metadata{overflow:hidden;height:1.5em;display:flex}.card-stacked div.metadata ul.tags{margin-left:4px}.card-stacked div.metadata .chip{background-color:#00acc1;padding:0 7px;margin:auto 1px;border-radius:6px;line-height:22px;height:22px}.card-stacked div.metadata .chip a,.card-stacked div.metadata .chip i{color:#fff}.card-stacked div.metadata .chip i.material-icons{float:right;font-size:20px;line-height:32px;padding-left:8px}.card-stacked div.metadata .reading-time{display:inline-flex;vertical-align:middle;padding:0 5px;flex-wrap:wrap;margin-left:auto}.card-stacked div.metadata .reading-time .card-reading-time,.card-stacked div.metadata .reading-time .card-created-at{display:inline-flex}.card-stacked div.metadata .reading-time span{margin-right:5px}.card-stacked div.metadata .reading-time i.material-icons{font-size:20px}.card-stacked div.card-content{flex:4}.card-stacked ul.tools-list{flex:1;display:none;flex-basis:5em;align-self:flex-end;float:right;max-width:8em}.card-stacked .tags{display:inline-block}.card.archived,.card-stacked.archived{opacity:.5}#content .collection .collection-item{min-height:65px;height:auto}.quickstart .card .card-action a,.quickstart .card .card-action a:hover{color:#fff !important}.settings .div_tabs{padding-bottom:15px}.entries-row{display:grid;margin:.4rem 0 0;padding:0 .75rem;gap:20px}.entry-card{display:flex;margin:0;height:100%;flex-direction:column}.tools{display:flex;gap:10px}.mass-buttons{margin:10px 5px 10px 20px}.mass-buttons #selectAll{position:relative;opacity:initial;left:0}.mass-buttons span{padding:3px}.mass-buttons button{height:24px;line-height:24px;padding:0 .5rem;margin-right:.75rem}.mass-buttons button i{font-size:15px}.card-stacked input[type=checkbox]{position:relative;opacity:initial;left:0}.card-stacked .entry-checkbox{margin-right:10px}.entries{list-style:none}.collection{margin:5px 15px 0;padding:0}.collection .collection-item{padding:7px;height:65px}.results{display:flex;padding:1rem 1rem 0;flex-wrap:wrap;justify-content:space-between}.results .nb-results{display:inline-flex}.results a{color:#444}.pagination ul{display:flex;margin:0;flex-wrap:wrap;justify-content:space-around}.pagination ul .prev.disabled,.pagination ul .next.disabled{display:none}.pagination li{padding:0}.pagination li:not(.active) a:hover,.pagination li:not(.active) a:active,.pagination li:not(.active) a:focus{background-color:#e6e6e6}.pagination li:not(:last-of-type){margin-right:10px}.pagination span,.pagination a{padding:0 10px;height:30px;display:block;line-height:30px}.pagination .disabled{margin-right:10px;margin-left:10px}.pagination li.active span{padding:0 10px;height:30px;display:block;color:#fff}.footer-text{margin:.7rem .5rem}.hidden{display:none}.picker__date-display{display:none}footer.page-footer{margin-top:10px;padding-top:0}footer .row{margin-bottom:10px}#filters button{padding:0;width:100%}#filters div.with-checkbox{height:3rem;margin-top:0}body{display:flex;min-height:100vh;flex-direction:column;background:#fafafa}body.login main{padding:0;min-height:100vh}.border-bottom{border-bottom:1px solid #ddd}a{color:#00acc1}main,#content,.valign-wrapper{height:100%}.typo-logo{max-width:150px}#main{flex:1 0 auto}#main .logo a{height:100pt}#main .logo img{height:100pt;width:100pt}#main .logo:hover{background:rgba(0,0,0,0)}nav{height:auto;line-height:initial}nav input{color:#aaa}nav ul a:hover{background-color:initial}.nav-panel-item .button-collapse{margin-left:0;margin-right:.5rem;padding-left:.5rem;padding-right:.5rem;height:auto;line-height:1;background-color:rgba(0,0,0,0);border:none}.nav-panel-item{display:flex;padding:.6rem .4rem .6rem .75rem;flex-wrap:wrap;justify-content:space-between;align-items:center}.nav-panel-item a{padding:10px 15px}.nav-panel-item .material-icons{height:auto;line-height:1}.nav-input{display:none}.nav-panel-buttom{display:flex;flex-grow:1;justify-content:flex-end}.nav-panel-item .add,.nav-panel-item .search,.nav-panels .close{color:#444 !important}.nav-panels{transition:background .2s ease}.nav-panels .action{margin:0;font-size:2.1rem}.nav-panels .input-field input{display:block;line-height:inherit;height:3rem}.nav-panels .input-field input:focus{border:0;box-shadow:none;color:#444}.nav-panel-top{display:flex;align-items:center}.input-field.nav-panel-item label{left:1rem}.input-field.nav-panel-item .close{color:rgba(0,0,0,0);cursor:pointer;font-size:2rem;transition:.3s color}.input-field.nav-panel-item{display:flex;flex:1;flex-wrap:nowrap;align-items:center}.input-field.nav-panel-add.disabled,.input-field.nav-panel-add.disabled input{background-color:#f5f5f5}.nav-panel-add,.nav-panel-search{background-color:#fff}.nav-form-button{padding:0;background-color:rgba(0,0,0,0);border:none}.nav-form-button:focus{background-color:inherit}.nav-form-button,.nav-panel-item .close{margin:0 1%}#button_filters{display:none}#button_export{display:none}.entry-nav-top--sticky{position:sticky;top:0}.dropdown-content{width:100%}.dropdown-content li{min-height:auto;padding-right:15px}.dropdown-content li>a{display:flex;padding:14px 10px;align-items:center;white-space:initial}@media(min-width: 993px){.button-collapse{display:none}.dropdown-content{min-width:300px;width:initial}}.side-nav{width:240px}.side-nav li{padding:0}.side-nav li.logo>a:hover{background:initial}.side-nav li>a>i.material-icons.theme-toggle-icon{float:none;margin-left:0}.side-nav a{margin:0}.side-nav.fixed a{font-size:13px;line-height:44px;height:44px}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{height:45px;line-height:44px;padding:0 20px}.side-nav>li.logo{line-height:0;text-align:center}.bold>a{font-weight:bold}span.numberItems{float:right}div.settings div.file-field div,div.settings div.file-field ul{margin-top:40px}div.settings div.file-field div{margin-top:inherit}.input-field label.active{font-size:1rem}nav .input-field input{margin:0;padding-left:.5rem}.tabs{display:flex}.tab{flex:1}.dark-theme body,.dark-theme main #content,.dark-theme #article,.dark-theme .card,.dark-theme .card-panel,.dark-theme .card .card-reveal,.dark-theme .card-stacked .preview:not(.preview--default),.dark-theme .card .preview:not(.preview--default),.dark-theme .collapsible-header,.dark-theme .collection,.dark-theme .dropdown-content,.dark-theme .nav-panel-add,.dark-theme .nav-panel-search,.dark-theme .side-nav,.dark-theme .side-nav .collapsible-body,.dark-theme .side-nav.fixed .collapsible-body,.dark-theme .tabs{background-color:#121212}.dark-theme table.striped>tbody>tr:nth-child(2n+1),.dark-theme .dropdown-content li{background-color:#232323}.dark-theme .dropdown-content li:hover,.dark-theme .dropdown-content li.active,.dark-theme .dropdown-content li.selected,.dark-theme .pagination li:not(.active) a:hover,.dark-theme .pagination li:not(.active) a:active,.dark-theme .pagination li:not(.active) a:focus{background-color:#2c2c2c}.dark-theme .dropdown-content .divider{background-color:#383838}.dark-theme .collection{border-color:rgba(0,0,0,0)}.dark-theme .collection .collection-item{border-color:#121212}.dark-theme .card:hover,.dark-theme .collection .collection-item:hover{background-color:#272727}.dark-theme main #content,.dark-theme #article article,.dark-theme #article article h1,.dark-theme #article article h2,.dark-theme #article article h3,.dark-theme #article article h4,.dark-theme #article article h5,.dark-theme #article article h6,.dark-theme .dropdown-content li>a,.dark-theme .results a,.dark-theme .side-nav li>a,.dark-theme .side-nav li>a>i.material-icons{color:#dfdfdf}.dark-theme .cyan,.dark-theme .cyan.darken-1,.dark-theme .cyan.darken-2{background-color:#1d1d1d !important}.dark-theme .grey-text.text-darken-4{color:#dfdfdf !important}.dark-theme #article .chip{background-color:#373737}.dark-theme .side-nav li.active{background-color:#2f2f2f}.dark-theme .side-nav li:not(.logo)>a:hover,.dark-theme .side-nav .collapsible-header:hover,.dark-theme .side-nav.fixed .collapsible-header:hover{background-color:#1d1d1d}.dark-theme #article{box-shadow:0 0 10px #1d1d1d}.dark-theme .card,.dark-theme .collection .collection-item{background-color:#1d1d1d}.dark-theme .card-action{background-color:rgba(0,0,0,0)}.dark-theme .logo img,.dark-theme .preview.preview--default,.dark-theme .typo-logo{filter:invert(100%)}.dark-theme .border-bottom,.dark-theme .collapsible,.dark-theme .collapsible-body,.dark-theme .collapsible-header{border-color:#222}.dark-theme .pagination li.active{background-color:#666}.dark-theme .hljs,.dark-theme #article pre.hljs{color:#abb2bf;background-color:#282c34}@media only screen and (min-width: 992px){.dark-theme #article{background-color:#101010}}@font-face{font-family:icomoon;src:url(\"~icomoon-free-npm/Font/IcoMoon-Free.ttf\");font-weight:normal;font-style:normal}.material-icons{font-family:\"Material Icons\";font-weight:normal;font-style:normal;font-size:24px;width:1em;height:1em;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}.material-icons .md-18{font-size:18px}.material-icons .md-24{font-size:24px}.material-icons .md-36{font-size:36px}.material-icons .md-48{font-size:48px}.material-icons .md-dark{color:rgba(0,0,0,.54)}.material-icons .md-dark .md-inactive{color:rgba(0,0,0,.26)}.material-icons .md-light{color:#fff}.material-icons .md-light .md-inactive{color:rgba(255,255,255,.3)}[class^=icon-]::before,[class*=\" icon-\"]::before{font-family:icomoon;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;background-size:24px;letter-spacing:0;font-feature-settings:\"liga\"}.icon-eye::before{content:\"\"}.icon-no-eye::before{content:\"\"}.icon-calendar::before{content:\"\"}.icon-mail::before{content:\"\"}.icon-time::before{content:\"\"}a.icon-image{background-repeat:no-repeat;padding-right:.4em !important;padding-left:0 !important;margin-left:25px}a.icon-image::before{content:\"\";display:block;width:24px;height:24px;float:left;margin:7px 1.5px 0 0}a.icon-image.diaspora::before{background:url(\"../../_global/img/icons/diaspora-icon--black.png\") no-repeat center/80%}a.icon-image.unmark::before{background:url(\"../../_global/img/icons/unmark-icon--black.png\") no-repeat center/80%}a.icon-image.shaarli::before{background:url(\"../../_global/img/icons/shaarli.png\") no-repeat center/80%}a.icon-image.scuttle::before{background:url(\"../../_global/img/icons/scuttle.png\") no-repeat center/80%}.icon-google-plus2::before{content:\"\"}.icon-facebook2::before{content:\"\"}.icon-twitter::before{content:\"\"}.icon-apple::before{content:\"\"}.icon-android::before{content:\"\"}.icon-chrome::before{content:\"\"}.icon-firefox::before{content:\"\"}.icon-link::before{content:\"\"}footer [class^=icon-],footer [class*=\" icon-\"]{font-size:2em;transition:text-shadow .2s ease;padding-right:10px}footer [class^=icon-]:hover,footer [class*=\" icon-\"]:hover{text-shadow:0 0 10px rgba(0,0,0,.3)}@media print{body{font-family:serif;background-color:#fff}@page{margin:1cm}img{max-width:100% !important}body>header,#article_toolbar,#links,#sort,body>footer,.top_link,div.tools,header div,.messages,.entry+.results,#slide-out,.progress,.hide-on-large-only,#article>aside,#article .mbm a{display:none !important}main{padding-left:0 !important}#article{margin:inherit !important}article{border:none !important}.vieworiginal a::after{content:\" (\" attr(href) \")\"}abbr[title]::after{content:\" (\" attr(title) \")\"}.pagination span.current{border-style:dashed}#main{width:100%;margin:0;padding:0}#article{width:100%}}@media only screen and (min-width: 450px){.entries-row{grid-template-columns:repeat(auto-fill, minmax(340px, 1fr))}}@media only screen and (min-width: 992px){nav,body:not(.entry):not(.login) main,footer{padding-left:240px}.pagination{margin-left:auto}}@media screen and (min-width: 993px){.entry #content{padding-left:70px}}@media only screen and (max-width: 992px){header,main,footer,nav{padding-left:0}table{display:block;overflow:auto}iframe{max-width:100%;height:auto}.nav-panels .action{padding-right:.75rem}.nav-panel-top{padding:6px 0}.nav-panel-buttom{justify-content:space-between}#article{max-width:35em;margin-left:auto;margin-right:auto;padding-bottom:100px;font-size:18px}#article>header>h1{font-size:1.33em}.reader-mode{width:240px !important}.reader-mode span{opacity:1}.tabs{display:inline-block;height:auto}.tab{min-width:100%}.indicator{display:none}.pagination li{margin-bottom:.5rem}.pagination li.prev,.pagination li.next{width:auto}.drag-target+.drag-target{height:50%}.drag-target+.drag-target+.drag-target{top:50%}}@media only screen and (min-width: 1200px)and (max-width: 1650px){.row .col.l3{width:33.3333%;margin-left:0}}@media only screen and (min-width: 993px)and (max-width: 1200px){.row .col.l1{width:25%;margin-left:0}.row .col.l2{width:33.3333%;margin-left:0}.row .col.l3{width:41.6667%;margin-left:0}.row .col.l4{width:50%;margin-left:0}.row .col.l5{width:58.333%;margin-left:0}.row .col.l6{width:66.6667%;margin-left:0}.row .col.l7{width:75%;margin-left:0}.row .col.l8{width:83.3333%;margin-left:0}.row .col.l9{width:91.6667%;margin-left:0}.row .col.l10{width:100%;margin-left:0}}@media only screen and (max-width: 350px){.nb-results{display:none}main ul.row{padding:0}.row .col{padding:0}.card-stacked div.metadata .reading-time{display:none}}@media only print{body{display:block}}","/* ==========================================================================\n Article\n ========================================================================== */\n\n#article {\n font-size: 20px;\n margin: 0 auto;\n max-width: 45em;\n padding: 5px 20px;\n background-color: #fff;\n box-shadow: 0 0 10px #ccc;\n\n article {\n color: #424242;\n font-size: 18px;\n line-height: 1.7em;\n overflow-wrap: break-word;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: #212121;\n\n strong {\n font-weight: 500;\n }\n }\n\n h6 {\n font-size: 1.2rem;\n }\n\n h5 {\n font-size: 1.6rem;\n }\n\n h4 {\n font-size: 1.9rem;\n }\n\n h3 {\n font-size: 2.2rem;\n }\n\n h2 {\n font-size: 2.5rem;\n }\n\n h1 {\n font-size: 2.7rem;\n }\n\n a {\n border-bottom: 1px dotted $blueAccentColor;\n text-decoration: none;\n }\n\n a:hover {\n border-bottom-style: solid;\n }\n\n ul {\n padding-left: 30px;\n }\n\n ul,\n ul li {\n list-style-type: disc;\n }\n\n blockquote {\n font-style: italic;\n }\n\n strong {\n font-weight: bold;\n }\n }\n\n img,\n figure {\n max-width: 100%;\n height: auto;\n }\n\n pre {\n box-sizing: border-box;\n margin: 0 0 1.75em;\n border: #e3f2fd 1px solid;\n width: 100%;\n padding: 10px;\n font-family: monospace;\n font-size: 0.8em;\n white-space: pre;\n overflow: auto;\n background: #f5f5f5;\n border-radius: 3px;\n }\n\n > header > h1 {\n font-size: 2em;\n margin: 2.1rem 0 0.68rem;\n }\n\n aside {\n .tools {\n display: flex;\n flex-flow: row wrap;\n\n .stats {\n font-size: 0.7em;\n margin: 8px 5px 5px;\n\n li {\n display: inline-flex;\n vertical-align: middle;\n margin: 3px 5px;\n\n i.material-icons {\n color: #3e3e3e;\n margin-right: 3px;\n font-size: 18px;\n }\n }\n\n a {\n color: #000;\n text-decoration: none;\n }\n }\n\n .tags {\n float: right;\n margin: 5px 15px 10px;\n }\n }\n\n .chip {\n background-color: #9e9e9e;\n padding: 0 15px 0 10px;\n margin: auto 2px;\n border-radius: 6px;\n height: 18px;\n line-height: 18px;\n\n a,\n i {\n color: #fff;\n }\n\n i.material-icons {\n float: right;\n font-size: 16px;\n line-height: 18px;\n padding-left: 8px;\n }\n }\n }\n}\n\n.reader-mode {\n width: 70px !important;\n transition: width 0.2s ease;\n\n .collapsible-body {\n height: 0;\n overflow: hidden;\n }\n\n span {\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n &:hover {\n width: 260px !important;\n\n span {\n opacity: 1;\n }\n }\n\n .collapsible-body {\n height: auto;\n\n li a i.material-icons {\n margin: auto 5px auto -8px;\n }\n }\n}\n\n.progress {\n position: fixed;\n top: 0;\n width: 100%;\n height: 3px;\n margin: 0;\n z-index: 9999;\n}\n","/* ==========================================================================\n Cards\n ========================================================================== */\n\nmain {\n #content {\n padding: 0 0.5rem;\n }\n}\n\n@mixin mixin-reading-time {\n .reading-time {\n display: inline-flex;\n vertical-align: middle;\n\n .card-reading-time,\n .card-created-at {\n display: inline-flex;\n }\n\n span {\n margin-right: 5px;\n }\n\n @content;\n }\n}\n\n.card {\n .card-content {\n padding-bottom: 12px;\n flex-grow: 1;\n }\n\n .card-content .card-title,\n .card-reveal .card-title {\n line-height: 22.8px;\n max-height: 80px;\n font-size: 19px;\n font-family: roberto, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n }\n\n .card-stacked .card-content .card-title {\n display: inline-block;\n }\n\n .card-content .activator,\n .card-reveal .activator {\n cursor: pointer;\n font-family: \"Material Icons\";\n }\n\n .card-content i.right,\n .card-reveal i.right {\n margin-left: 0;\n }\n\n .card-content .original {\n line-height: 24px;\n font-size: 15px;\n }\n\n .card-entry-labels {\n position: absolute;\n top: 10px;\n z-index: 90;\n max-width: 50%;\n }\n\n .card-entry-labels-hidden {\n margin: 2.5px auto;\n }\n\n .card-entry-labels-hidden li {\n display: inline-block;\n background-color: $blueAccentColor;\n margin: 0 5px;\n padding: 5px 12px;\n border-radius: 3px;\n color: #fff;\n max-height: 2em;\n max-width: calc(100% - 15px);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .card-content .estimatedTime {\n margin-bottom: 10px;\n }\n\n .card-action {\n padding: 10px 10px 10px 15px;\n\n ul.links {\n margin: 0;\n font-size: 24px;\n line-height: 24px;\n }\n\n a {\n color: #fff;\n margin: 0;\n }\n\n a:hover {\n color: #fff;\n }\n\n .tool {\n display: flex;\n margin-right: 0 !important;\n }\n\n @include mixin-reading-time;\n }\n\n .card-image {\n height: 10em;\n }\n\n .card-fullimage {\n height: 13.5em;\n }\n\n &.sw {\n max-width: 370px;\n margin-left: auto;\n margin-right: auto;\n }\n}\n\n.card-body {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n\na.original:not(.waves-effect) {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n}\n\n.card .card-image .preview,\n.card .card-fullimage .preview,\n.card-stacked .preview {\n height: 100%;\n background: no-repeat 50%/cover;\n background-color: #efefef;\n display: block;\n\n &--default {\n background-size: contain;\n }\n}\n\n.card-entry-labels li,\n.card-tag-labels li {\n margin: 10px 10px 10px auto;\n padding: 5px 12px 5px 16px !important;\n background-color: $blueAccentColor;\n border-radius: 3px;\n color: #fff;\n cursor: default;\n line-height: 20px;\n}\n\n.card-entry-labels li {\n text-overflow: ellipsis;\n white-space: nowrap;\n border-radius: 0 3px 3px 0;\n overflow: hidden;\n}\n\n.card-tag-labels li {\n display: flex;\n}\n\n.card-entry-tags a,\n.card-entry-labels a,\n.card-tag-labels a,\n.card-entry-labels-hidden a,\n#list .chip a {\n text-decoration: none;\n font-weight: normal;\n color: #fff;\n}\n\n.card-tag-link {\n width: calc(100% - 24px);\n line-height: 1.3;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.card-tag-form {\n display: flex;\n min-width: 100px;\n flex-grow: 1;\n}\n\n.card-tag-form input {\n margin-bottom: 0;\n height: 1.8rem;\n}\n\n.card-tag-icon {\n display: flex;\n}\n\n.card-tag-delete {\n margin-left: 10px;\n}\n\n.card-tag-labels {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n}\n\n.card-tag-labels li {\n margin: 10px;\n align-items: center;\n}\n\n.card-stacked {\n display: flex;\n flex-flow: row wrap;\n\n &:hover ul.tools-list {\n display: inline;\n text-align: right;\n }\n\n .card-preview {\n max-width: 100px;\n max-height: 50px;\n margin-right: 10px;\n flex: 1;\n }\n\n div.metadata {\n overflow: hidden;\n height: 1.5em;\n display: flex;\n\n ul.tags {\n margin-left: 4px;\n }\n\n .chip {\n background-color: $blueAccentColor;\n padding: 0 7px;\n margin: auto 1px;\n border-radius: 6px;\n line-height: 22px;\n height: 22px;\n\n a,\n i {\n color: #fff;\n }\n\n i.material-icons {\n float: right;\n font-size: 20px;\n line-height: 32px;\n padding-left: 8px;\n }\n }\n\n @include mixin-reading-time {\n padding: 0 5px;\n flex-wrap: wrap;\n margin-left: auto;\n\n i.material-icons {\n font-size: 20px;\n }\n }\n }\n\n div.card-content {\n flex: 4;\n }\n\n ul.tools-list {\n flex: 1;\n display: none;\n flex-basis: 5em;\n align-self: flex-end;\n float: right;\n max-width: 8em;\n }\n\n .tags {\n display: inline-block;\n }\n}\n\n.card.archived,\n.card-stacked.archived {\n opacity: 0.5;\n}\n\n#content .collection .collection-item {\n min-height: 65px;\n height: auto;\n}\n\n.quickstart .card .card-action a,\n.quickstart .card .card-action a:hover {\n color: #fff !important;\n}\n\n.settings .div_tabs {\n padding-bottom: 15px;\n}\n\n.entries-row {\n display: grid;\n margin: 0.4rem 0 0;\n padding: 0 0.75rem;\n gap: 20px;\n}\n\n.entry-card {\n display: flex;\n margin: 0;\n height: 100%;\n flex-direction: column;\n}\n\n\n.tools {\n display: flex;\n gap: 10px;\n}\n","/* ==========================================================================\n Variables\n ========================================================================== */\n\n$blueAccentColor: #00acc1;\n","/* ==========================================================================\n * Entries\n * ========================================================================== */\n\n.mass-buttons {\n margin: 10px 5px 10px 20px;\n\n #selectAll {\n position: relative;\n opacity: initial;\n left: 0;\n }\n\n span {\n padding: 3px;\n }\n\n button {\n i {\n font-size: 15px;\n }\n\n height: 24px;\n line-height: 24px;\n padding: 0 0.5rem;\n margin-right: 0.75rem;\n }\n}\n\n.card-stacked {\n input[type=\"checkbox\"] {\n position: relative;\n opacity: initial;\n left: 0;\n }\n\n .entry-checkbox {\n margin-right: 10px;\n }\n}\n\n.entries {\n list-style: none;\n}\n\n.collection {\n margin: 5px 15px 0;\n padding: 0;\n\n .collection-item {\n padding: 7px;\n height: 65px;\n }\n}\n\n.results {\n display: flex;\n padding: 1rem 1rem 0;\n flex-wrap: wrap;\n justify-content: space-between;\n\n .nb-results {\n display: inline-flex;\n }\n\n a {\n color: #444;\n }\n}\n\n.pagination {\n ul {\n display: flex;\n margin: 0;\n flex-wrap: wrap;\n justify-content: space-around;\n\n .prev.disabled,\n .next.disabled {\n display: none;\n }\n }\n\n li {\n padding: 0;\n\n &:not(.active) a:hover,\n &:not(.active) a:active,\n &:not(.active) a:focus {\n background-color: #e6e6e6;\n }\n\n &:not(:last-of-type) {\n margin-right: 10px;\n }\n }\n\n span,\n a {\n padding: 0 10px;\n height: 30px;\n display: block;\n line-height: 30px;\n }\n\n .disabled {\n margin-right: 10px;\n margin-left: 10px;\n }\n\n li.active span {\n padding: 0 10px;\n height: 30px;\n display: block;\n color: #fff;\n }\n}\n\n.footer-text {\n margin: 0.7rem 0.5rem;\n}\n\n.hidden {\n display: none;\n}\n\n.picker__date-display {\n display: none;\n}\n\nfooter {\n &.page-footer {\n margin-top: 10px;\n padding-top: 0;\n }\n\n .row {\n margin-bottom: 10px;\n }\n}\n","/* ==========================================================================\n * Filters slider\n * ========================================================================== */\n\n#filters {\n button {\n padding: 0;\n width: 100%;\n }\n\n div.with-checkbox {\n height: 3rem;\n margin-top: 0;\n }\n}\n","/* ==========================================================================\n Layout\n ========================================================================== */\n\nbody {\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n background: #fafafa;\n\n &.login main {\n padding: 0;\n min-height: 100vh;\n }\n}\n\n.border-bottom {\n border-bottom: 1px solid #ddd;\n}\n\na {\n color: $blueAccentColor;\n}\n\nmain,\n#content,\n.valign-wrapper {\n height: 100%;\n}\n\n.typo-logo {\n max-width: 150px;\n}\n\n#main {\n flex: 1 0 auto;\n\n .logo {\n a {\n height: 100pt;\n }\n\n img {\n height: 100pt;\n width: 100pt;\n }\n\n &:hover {\n background: transparent;\n }\n }\n}\n","/* ==========================================================================\n Nav\n ========================================================================== */\nnav {\n height: auto;\n line-height: initial;\n}\n\nnav {\n input {\n color: #aaa;\n }\n\n ul a:hover {\n background-color: initial;\n }\n}\n\n.nav-panel-item .button-collapse {\n margin-left: 0;\n margin-right: 0.5rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n height: auto;\n line-height: 1;\n background-color: transparent;\n border: none;\n}\n\n.nav-panel-item {\n display: flex;\n padding: 0.6rem 0.4rem 0.6rem 0.75rem;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: center;\n\n a {\n padding: 10px 15px;\n }\n}\n\n.nav-panel-item .material-icons {\n height: auto;\n line-height: 1;\n}\n\n.nav-input {\n display: none;\n}\n\n.nav-panel-buttom {\n display: flex;\n flex-grow: 1;\n justify-content: flex-end;\n}\n\n.nav-panel-item .add,\n.nav-panel-item .search,\n.nav-panels .close {\n color: #444 !important;\n}\n\n.nav-panels {\n transition: background 0.2s ease;\n\n .action {\n margin: 0;\n font-size: 2.1rem;\n }\n\n .input-field input {\n display: block;\n line-height: inherit;\n height: 3rem;\n }\n\n .input-field input:focus {\n border: 0;\n box-shadow: none;\n color: #444;\n }\n}\n\n.nav-panel-top {\n display: flex;\n align-items: center;\n}\n\n.input-field {\n &.nav-panel-item label {\n left: 1rem;\n }\n\n &.nav-panel-item .close {\n color: transparent;\n cursor: pointer;\n font-size: 2rem;\n transition: 0.3s color;\n }\n\n &.nav-panel-item {\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n align-items: center;\n }\n\n &.nav-panel-add.disabled,\n &.nav-panel-add.disabled input {\n background-color: whitesmoke;\n }\n}\n\n.nav-panel-add,\n.nav-panel-search {\n background-color: white;\n}\n\n.nav-form-button {\n padding: 0;\n background-color: transparent;\n border: none;\n\n &:focus {\n background-color: inherit;\n }\n}\n\n.nav-form-button,\n.nav-panel-item .close {\n margin: 0 1%;\n}\n\n#button_filters {\n display: none;\n}\n\n#button_export {\n display: none;\n}\n\n.entry-nav-top--sticky {\n position: sticky;\n top: 0;\n}\n\n.dropdown-content {\n width: 100%;\n\n li {\n min-height: auto;\n padding-right: 15px;\n }\n\n li > a {\n display: flex;\n padding: 14px 10px;\n align-items: center;\n white-space: initial;\n }\n}\n\n@media (min-width: 993px) {\n .button-collapse {\n display: none;\n }\n\n .dropdown-content {\n min-width: 300px;\n width: initial;\n }\n}\n","/* ==========================================================================\n Side-nav\n ========================================================================== */\n\n.side-nav {\n width: 240px;\n\n li {\n padding: 0;\n\n &.logo > a:hover {\n background: initial;\n }\n\n & > a > i.material-icons.theme-toggle-icon {\n float: none;\n margin-left: 0;\n }\n }\n\n a {\n margin: 0;\n }\n\n &.fixed a {\n font-size: 13px;\n line-height: 44px;\n height: 44px;\n }\n\n .collapsible-header,\n &.fixed .collapsible-header {\n height: 45px;\n line-height: 44px;\n padding: 0 20px;\n }\n\n > li.logo {\n line-height: 0;\n text-align: center;\n }\n}\n\n.bold > a {\n font-weight: bold;\n}\n\nspan.numberItems {\n float: right;\n}\n","/* ==========================================================================\n * Various\n * ========================================================================== */\n\ndiv.settings div.file-field {\n /* force height on non-input field in the settings page */\n div,\n ul {\n margin-top: 40px;\n }\n\n /* but avoid to kill all file input */\n div {\n margin-top: inherit;\n }\n}\n\n.input-field label.active {\n font-size: 1rem;\n}\n\nnav .input-field input {\n margin: 0;\n padding-left: 0.5rem;\n}\n\n.tabs {\n display: flex;\n}\n\n.tab {\n flex: 1;\n}\n",".dark-theme {\n body,\n main #content,\n #article,\n .card,\n .card-panel,\n .card .card-reveal,\n .card-stacked .preview:not(.preview--default),\n .card .preview:not(.preview--default),\n .collapsible-header,\n .collection,\n .dropdown-content,\n .nav-panel-add,\n .nav-panel-search,\n .side-nav,\n .side-nav .collapsible-body,\n .side-nav.fixed .collapsible-body,\n .tabs {\n background-color: #121212;\n }\n\n table.striped > tbody > tr:nth-child(2n+1),\n .dropdown-content li {\n background-color: #232323;\n }\n\n .dropdown-content li:hover,\n .dropdown-content li.active,\n .dropdown-content li.selected,\n .pagination li:not(.active) a:hover,\n .pagination li:not(.active) a:active,\n .pagination li:not(.active) a:focus {\n background-color: #2c2c2c;\n }\n\n .dropdown-content .divider {\n background-color: #383838;\n }\n\n .collection {\n border-color: transparent;\n }\n\n .collection .collection-item {\n border-color: #121212;\n }\n\n .card:hover,\n .collection .collection-item:hover {\n background-color: #272727;\n }\n\n main #content,\n #article article,\n #article article h1,\n #article article h2,\n #article article h3,\n #article article h4,\n #article article h5,\n #article article h6,\n .dropdown-content li > a,\n .results a,\n .side-nav li > a,\n .side-nav li > a > i.material-icons {\n color: #dfdfdf;\n }\n\n .cyan,\n .cyan.darken-1,\n .cyan.darken-2 {\n background-color: #1d1d1d !important;\n }\n\n .grey-text.text-darken-4 {\n color: #dfdfdf !important;\n }\n\n #article .chip {\n background-color: #373737;\n }\n\n .side-nav li.active {\n background-color: #2f2f2f;\n }\n\n .side-nav li:not(.logo) > a:hover,\n .side-nav .collapsible-header:hover,\n .side-nav.fixed .collapsible-header:hover {\n background-color: #1d1d1d;\n }\n\n #article {\n box-shadow: 0 0 10px #1d1d1d;\n }\n\n .card,\n .collection .collection-item {\n background-color: #1d1d1d;\n }\n\n .card-action {\n background-color: transparent;\n }\n\n .logo img,\n .preview.preview--default,\n .typo-logo {\n filter: invert(100%);\n }\n\n .border-bottom,\n .collapsible,\n .collapsible-body,\n .collapsible-header {\n border-color: #222;\n }\n\n .pagination li.active {\n background-color: #666;\n }\n\n .hljs,\n #article pre.hljs {\n color: #abb2bf;\n background-color: #282c34;\n }\n\n @media only screen and (min-width: 992px) {\n #article {\n background-color: #101010;\n }\n }\n}\n","/* ==========================================================================\n * Fonts\n * ========================================================================== */\n\n/**\n * Icomoon\n */\n@font-face {\n font-family: icomoon;\n src: url(\"~icomoon-free-npm/Font/IcoMoon-Free.ttf\");\n font-weight: normal;\n font-style: normal;\n}\n","/* ==========================================================================\n * Icons\n * ========================================================================== */\n\n/**\n *\n * Material icons\n *\n */\n.material-icons {\n font-family: \"Material Icons\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px; /* Preferred icon size */\n width: 1em;\n height: 1em;\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: \"liga\";\n\n .md-18 {\n font-size: 18px;\n }\n\n .md-24 {\n font-size: 24px;\n }\n\n .md-36 {\n font-size: 36px;\n }\n\n .md-48 {\n font-size: 48px;\n }\n\n .md-dark {\n color: rgb(0 0 0 / 54%);\n\n .md-inactive {\n color: rgb(0 0 0 / 26%);\n }\n }\n\n .md-light {\n color: rgb(255 255 255 / 100%);\n\n .md-inactive {\n color: rgb(255 255 255 / 30%);\n }\n }\n}\n\n/**\n *\n * Icomoon icons\n *\n */\n[class^=\"icon-\"]::before,\n[class*=\" icon-\"]::before {\n font-family: icomoon;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n background-size: 24px;\n\n /* Enable Ligatures ================ */\n letter-spacing: 0;\n font-feature-settings: \"liga\";\n}\n\n.icon-eye::before {\n content: \"\\e9ce\";\n}\n\n.icon-no-eye::before {\n content: \"\\e9d1\";\n}\n\n.icon-calendar::before {\n content: \"\\e953\";\n}\n\n.icon-mail::before {\n content: \"\\ea86\";\n}\n\n.icon-time::before {\n content: \"\\e952\";\n}\n\na.icon-image {\n background-repeat: no-repeat;\n padding-right: 0.4em !important;\n padding-left: 0 !important;\n margin-left: 25px;\n\n &::before {\n content: \"\";\n display: block;\n width: 24px;\n height: 24px;\n float: left;\n margin: 7px 1.5px 0 0;\n }\n\n &.diaspora::before {\n background: url(\"../../_global/img/icons/diaspora-icon--black.png\") no-repeat center/80%;\n }\n\n &.unmark::before {\n background: url(\"../../_global/img/icons/unmark-icon--black.png\") no-repeat center/80%;\n }\n\n &.shaarli::before {\n background: url(\"../../_global/img/icons/shaarli.png\") no-repeat center/80%;\n }\n\n &.scuttle::before {\n background: url(\"../../_global/img/icons/scuttle.png\") no-repeat center/80%;\n }\n}\n\n.icon-google-plus2::before {\n content: \"\\ea89\";\n}\n\n.icon-facebook2::before {\n content: \"\\ea8d\";\n}\n\n.icon-twitter::before {\n content: \"\\ea96\";\n}\n\n.icon-apple::before {\n content: \"\\eabf\";\n}\n\n.icon-android::before {\n content: \"\\eac1\";\n}\n\n.icon-chrome::before {\n content: \"\\eae5\";\n}\n\n.icon-firefox::before {\n content: \"\\eae6\";\n}\n\n.icon-link::before {\n content: \"\\e9cb\";\n}\n\nfooter [class^=\"icon-\"],\nfooter [class*=\" icon-\"] {\n font-size: 2em;\n transition: text-shadow 0.2s ease;\n padding-right: 10px;\n}\n\nfooter [class^=\"icon-\"]:hover,\nfooter [class*=\" icon-\"]:hover {\n text-shadow: 0 0 10px rgb(0 0 0 / 30%);\n}\n","@media print {\n /* ### Layout ### */\n\n body {\n font-family: serif;\n background-color: #fff;\n }\n\n @page {\n margin: 1cm;\n }\n\n img {\n max-width: 100% !important;\n }\n\n /* ### Content ### */\n\n /* Hide useless blocks */\n body > header,\n #article_toolbar,\n #links,\n #sort,\n body > footer,\n .top_link,\n div.tools,\n header div,\n .messages,\n .entry + .results,\n #slide-out,\n .progress,\n .hide-on-large-only,\n #article > aside,\n #article .mbm a {\n display: none !important;\n }\n\n main {\n padding-left: 0 !important;\n }\n\n #article {\n margin: inherit !important;\n }\n\n article {\n border: none !important;\n }\n\n /* Add URL after links */\n .vieworiginal a::after {\n content: \" (\" attr(href) \")\";\n }\n\n /* Add explanation after abbr */\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n /* Change border on current pager item */\n .pagination span.current {\n border-style: dashed;\n }\n\n #main {\n width: 100%;\n margin: 0;\n padding: 0;\n }\n\n #article {\n width: 100%;\n }\n}\n","/* ==========================================================================\n Media queries\n ========================================================================== */\n\n@media only screen and (min-width: 450px) {\n .entries-row {\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n }\n}\n\n@media only screen and (min-width: 992px) {\n nav,\n body:not(.entry):not(.login) main,\n footer {\n padding-left: 240px;\n }\n\n .pagination {\n margin-left: auto;\n }\n}\n\n@media screen and (min-width: 993px) {\n .entry #content {\n padding-left: 70px;\n }\n}\n\n@media only screen and (max-width: 992px) {\n header,\n main,\n footer,\n nav {\n padding-left: 0;\n }\n\n table {\n display: block;\n overflow: auto;\n }\n\n iframe {\n max-width: 100%;\n height: auto;\n }\n\n .nav-panels .action {\n padding-right: 0.75rem;\n }\n\n .nav-panel-top {\n padding: 6px 0;\n }\n\n .nav-panel-buttom {\n justify-content: space-between;\n }\n\n #article {\n max-width: 35em;\n margin-left: auto;\n margin-right: auto;\n padding-bottom: 100px;\n font-size: 18px;\n\n > header > h1 {\n font-size: 1.33em;\n }\n }\n\n .reader-mode {\n width: 240px !important;\n\n span {\n opacity: 1;\n }\n }\n\n .tabs {\n display: inline-block;\n height: auto;\n }\n\n .tab {\n min-width: 100%;\n }\n\n .indicator {\n display: none;\n }\n\n .pagination li {\n margin-bottom: 0.5rem;\n\n &.prev,\n &.next {\n width: auto;\n }\n }\n\n .drag-target + .drag-target {\n height: 50%;\n }\n\n .drag-target + .drag-target + .drag-target {\n top: 50%;\n }\n}\n\n@media only screen and (min-width: 1200px) and (max-width: 1650px) {\n .row .col.l3 {\n width: 33.3333%;\n margin-left: 0;\n }\n}\n\n@media only screen and (min-width: 993px) and (max-width: 1200px) {\n .row {\n .col.l1 {\n width: 25%;\n margin-left: 0;\n }\n\n .col.l2 {\n width: 33.3333%;\n margin-left: 0;\n }\n\n .col.l3 {\n width: 41.6667%;\n margin-left: 0;\n }\n\n .col.l4 {\n width: 50%;\n margin-left: 0;\n }\n\n .col.l5 {\n width: 58.333%;\n margin-left: 0;\n }\n\n .col.l6 {\n width: 66.6667%;\n margin-left: 0;\n }\n\n .col.l7 {\n width: 75%;\n margin-left: 0;\n }\n\n .col.l8 {\n width: 83.3333%;\n margin-left: 0;\n }\n\n .col.l9 {\n width: 91.6667%;\n margin-left: 0;\n }\n\n .col.l10 {\n width: 100%;\n margin-left: 0;\n }\n }\n}\n\n@media only screen and (max-width: 350px) {\n .nb-results {\n display: none;\n }\n\n main ul.row {\n padding: 0;\n }\n\n .row .col {\n padding: 0;\n }\n\n .card-stacked div.metadata .reading-time {\n display: none;\n }\n}\n\n@media only print {\n body {\n display: block;\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/wallassets/material.js b/public/wallassets/material.js
similarity index 100%
rename from web/wallassets/material.js
rename to public/wallassets/material.js
diff --git a/web/wallassets/material.js.map b/public/wallassets/material.js.map
similarity index 100%
rename from web/wallassets/material.js.map
rename to public/wallassets/material.js.map
diff --git a/web/wallassets/public.css b/public/wallassets/public.css
similarity index 100%
rename from web/wallassets/public.css
rename to public/wallassets/public.css
diff --git a/public/wallassets/public.css.map b/public/wallassets/public.css.map
new file mode 100644
index 000000000..700939532
--- /dev/null
+++ b/public/wallassets/public.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"public.css","mappings":"AAAA,2YAEA,QA8EE,UACA,SACA,eACA,wBACA,+EAGF,aAWE,MAGF,aACE,cAGF,WAEE,yDAGF,UAIE,aACA,OAGF,wBACE,iBACA,MAKF,qBACE,WACA,oBACA,gBACA,yBACA,mBACA,mBAGF,eAME,cACA,mEAGF,eAME,gBACA,IAGF,eACE,IAGF,eACE,OAGF,eAEE,OAGF,eAEE,GAGF,mBACE,UAGF,gBAEE,MAGF,iBAEE,GAGF,UACE,0BACA,kBAGF,SAEE,YAGF,iBAIE,OAGF,mBAEE,IAGF,mBACE,gBACA,kCAGF,oBAEE,mCAGF,gBAEE,cAGF,cAEE,YACA,MAGF,cACE,QAGF,oBACE,YAGF,iBACE,6BACA,kBACA,kBACA,mBACA,gBACA,iBAGF,wBACE,eACA,kBACA,yBAGF,WACE,kBACA,KAGF,aACE,YACA,mBACA,eACA,QAGF,QACE,mBAGF,aACE,gBACA,kBACA,eACA,QAGF,uBACE,IAGF,aACE,WACA,kBACA,qBACA,eACA,UACA,OAGF,cACE,IAGF,cACE,OAGF,UACE,cACA,gBACA,WACA,iBACA,uBACA,mBACA,iBACA,kBACA,OAGF,kBACE,kBACA,KAGF,qBACE,aACA,6BACA,WACA,YACA,+BACA,gBACA,cACA,UAGF,cACE,kBACA,qBACA,yBACA,YACA,UACA,uBACA,MAGF,qBACE,cACA,+BACA,eACA,gBACA,yBACA,cACA,aAGF,iBAEE,kBAGF,eAEE,WACA,CANA,iBAGF,eAEE,WACA,OAGF,wBACE,kBACA,WACA,OAGF,aAEE,gBACA,UAGF,wBACE,gBACA,mBACA,kCACA,gBACA,0BAGF,yBACE,OAGF,iBACE,mBACA,QAGF,iBACE,UAGF,aACE,QAGF,iBACE,YAGF,iBACE,0BAKF,+BACE,aAEE,2BAIJ,WACE,qBACE,oBACA,QAGF,eACE,QAGF,gBACE,kBACA,kBACA,iBACA,E","sources":["webpack://wallabag/./assets/themes/_global/share.scss"],"sourcesContent":["/* -------------------------- Reset ------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nb,\nu,\ni,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n vertical-align: baseline;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote::before,\nblockquote::after,\nq::before,\nq::after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n/* -------------------------- General properties ------------------- */\n\nbody {\n background-color: white;\n color: #444;\n font-family: Georgia;\n line-height: 1.7;\n -ms-content-zooming: none;\n margin-bottom: 64px;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 600;\n margin: 0.2em 0;\n}\n\narticle h1,\narticle h2,\narticle h3,\narticle h4,\narticle h5,\narticle h6 {\n text-align: left;\n line-height: 1.3;\n}\n\nh1 {\n font-size: 1.4em;\n}\n\nh2 {\n font-size: 1.3em;\n}\n\nh3,\nh4 {\n font-size: 1.2em;\n}\n\nh5,\nh6 {\n font-size: 1.1em;\n}\n\np {\n margin-bottom: 0.75em;\n}\n\nb,\nstrong {\n font-weight: bold;\n}\n\ni,\nem {\n font-style: italic;\n}\n\na {\n color: #444;\n text-decoration: underline;\n}\n\na:active,\na:hover {\n outline: 0;\n}\n\np,\nul,\nol,\ndl {\n margin: 0 0 1.75em;\n}\n\nul,\nol {\n padding-left: 1.25em;\n}\n\nli {\n padding-bottom: 0.2em;\n line-height: 1.6;\n}\n\nli p:last-child,\nli li:last-child {\n margin-bottom: -0.2em;\n}\n\nul li:last-child,\nol li:last-child {\n padding-bottom: 0;\n}\n\niframe,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\nmark {\n padding: 0 0.2em;\n}\n\nmark a {\n text-decoration: none;\n}\n\nblockquote {\n font-style: italic;\n border-left: 0.25em solid black;\n margin-left: -20px;\n padding-left: 17px;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n\nblockquote cite {\n text-transform: uppercase;\n font-size: 0.8em;\n font-style: normal;\n}\n\nblockquote cite::before {\n content: \"—\";\n margin-right: 0.5em;\n}\n\nimg {\n display: block;\n height: auto;\n margin-bottom: 0.5em;\n max-width: 100%;\n}\n\nfigure {\n margin: 0;\n}\n\nfigure figcaption {\n display: block;\n margin-top: 0.3em;\n font-style: italic;\n font-size: 0.8em;\n}\n\nbutton {\n display: none !important;\n}\n\nhr {\n display: block;\n height: 1px;\n border: solid #666;\n border-width: 1px 0 0;\n margin: 1.6em 0;\n padding: 0;\n}\n\nsmall {\n font-size: 0.7em;\n}\n\ndl {\n margin: 1.6em 0;\n}\n\ndl dt {\n float: left;\n width: 11.25em;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n margin-bottom: 1em;\n}\n\ndl dd {\n margin-left: 12.5em;\n margin-bottom: 1em;\n}\n\npre {\n box-sizing: border-box;\n margin: 4em 0;\n border: 0.0625em solid #efefef;\n width: 100%;\n padding: 1em;\n font-family: Consolas, monospace;\n white-space: pre;\n overflow: auto;\n}\n\npre code {\n font-size: 0.8em;\n line-height: 1.6em;\n white-space: pre-wrap;\n background: transparent;\n border: none;\n padding: 0;\n vertical-align: inherit;\n}\n\ncode {\n padding: 0.125em 0.375em;\n margin: 0 0.2em;\n font-family: Consolas, monospace;\n font-size: 0.8em;\n white-space: pre;\n border: 1px solid lightgray;\n overflow: auto;\n}\n\naudio,\nvideo {\n max-width: 43.75em;\n}\n\n::selection,\nmark {\n background: #666;\n color: white;\n}\n\ntable {\n border-collapse: collapse;\n margin-bottom: 2em;\n width: 100%;\n}\n\nth,\ntd {\n padding: 0.25em;\n text-align: left;\n}\n\nthead tr {\n text-transform: uppercase;\n font-size: 0.85em;\n letter-spacing: 1px;\n font-family: \"Segoe UI\", sans-serif;\n font-weight: 600;\n}\n\ntbody tr:nth-child(2n+1) {\n background: rgb(0 0 0 / 10%);\n}\n\ntbody {\n border: solid #999;\n border-width: 1px 0;\n}\n\nfigure {\n text-align: center;\n}\n\nfigure > * {\n margin: 0 auto;\n}\n\nheader {\n text-align: center;\n}\n\n.shared-by {\n margin-bottom: 1em;\n}\n\n/* --------------------- Responsive design ------------------------- */\n\n@media (max-width: 719px) {\n header > *:not(.preview),\n article {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 720px) {\n blockquote {\n margin-left: -1.4375em;\n padding-left: 1.25em;\n }\n\n header {\n margin-top: 32px;\n }\n\n .block {\n margin-left: auto;\n margin-right: auto;\n max-width: 43.75em;\n padding: 0 1.25em;\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/wallassets/public.js b/public/wallassets/public.js
similarity index 100%
rename from web/wallassets/public.js
rename to public/wallassets/public.js
diff --git a/web/wallassets/themes/_global/img/appicon/favicon.ico b/public/wallassets/themes/_global/img/appicon/favicon.ico
similarity index 100%
rename from web/wallassets/themes/_global/img/appicon/favicon.ico
rename to public/wallassets/themes/_global/img/appicon/favicon.ico
diff --git a/web/wallassets/themes/_global/img/bg-select.png b/public/wallassets/themes/_global/img/bg-select.png
similarity index 100%
rename from web/wallassets/themes/_global/img/bg-select.png
rename to public/wallassets/themes/_global/img/bg-select.png
diff --git a/web/wallassets/themes/_global/img/icons/Diaspora-asterisk.svg b/public/wallassets/themes/_global/img/icons/Diaspora-asterisk.svg
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/Diaspora-asterisk.svg
rename to public/wallassets/themes/_global/img/icons/Diaspora-asterisk.svg
diff --git a/web/wallassets/themes/_global/img/icons/carrot-icon--black.png b/public/wallassets/themes/_global/img/icons/carrot-icon--black.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/carrot-icon--black.png
rename to public/wallassets/themes/_global/img/icons/carrot-icon--black.png
diff --git a/web/wallassets/themes/_global/img/icons/carrot-icon--white.png b/public/wallassets/themes/_global/img/icons/carrot-icon--white.png
similarity index 100%
rename from web/wallassets/themes/_global/img/icons/carrot-icon--white.png
rename to public/wallassets/themes/_global/img/icons/carrot-icon--white.png
diff --git a/public/wallassets/themes/_global/img/icons/diaspora-icon--black.png b/public/wallassets/themes/_global/img/icons/diaspora-icon--black.png
new file mode 100644
index 000000000..c48a832a9
Binary files /dev/null and b/public/wallassets/themes/_global/img/icons/diaspora-icon--black.png differ
diff --git a/public/wallassets/themes/_global/img/icons/scuttle.png b/public/wallassets/themes/_global/img/icons/scuttle.png
new file mode 100644
index 000000000..24aabfbd7
Binary files /dev/null and b/public/wallassets/themes/_global/img/icons/scuttle.png differ
diff --git a/public/wallassets/themes/_global/img/icons/shaarli.png b/public/wallassets/themes/_global/img/icons/shaarli.png
new file mode 100644
index 000000000..1921c5303
Binary files /dev/null and b/public/wallassets/themes/_global/img/icons/shaarli.png differ
diff --git a/public/wallassets/themes/_global/img/icons/unmark-icon--black.png b/public/wallassets/themes/_global/img/icons/unmark-icon--black.png
new file mode 100644
index 000000000..6d0efc5b2
Binary files /dev/null and b/public/wallassets/themes/_global/img/icons/unmark-icon--black.png differ
diff --git a/web/wallassets/themes/_global/img/list.png b/public/wallassets/themes/_global/img/list.png
similarity index 100%
rename from web/wallassets/themes/_global/img/list.png
rename to public/wallassets/themes/_global/img/list.png
diff --git a/web/wallassets/themes/_global/img/table.png b/public/wallassets/themes/_global/img/table.png
similarity index 100%
rename from web/wallassets/themes/_global/img/table.png
rename to public/wallassets/themes/_global/img/table.png
diff --git a/app/config/webpack/common.js b/scripts/webpack/common.js
similarity index 67%
rename from app/config/webpack/common.js
rename to scripts/webpack/common.js
index cc16bafc3..bb93ac2ce 100644
--- a/app/config/webpack/common.js
+++ b/scripts/webpack/common.js
@@ -2,16 +2,16 @@ const path = require('path');
const webpack = require('webpack');
const StyleLintPlugin = require('stylelint-webpack-plugin');
-const rootDir = path.resolve(__dirname, '../../../');
+const rootDir = path.resolve(__dirname, '../../');
module.exports = {
entry: {
- material: path.join(rootDir, './app/Resources/static/themes/material/index.js'),
- public: path.join(rootDir, './app/Resources/static/themes/_global/share.js'),
+ material: path.join(rootDir, './assets/themes/material/index.js'),
+ public: path.join(rootDir, './assets/themes/_global/share.js'),
},
output: {
filename: '[name].js',
- path: path.resolve(rootDir, 'web/wallassets'),
+ path: path.resolve(rootDir, 'public/wallassets'),
publicPath: '',
},
plugins: [
@@ -25,7 +25,7 @@ module.exports = {
configFile: 'stylelint.config.js',
failOnError: false,
quiet: false,
- context: 'app/Resources/static/themes',
+ context: 'assets/themes',
files: '**/*.scss',
}),
],
diff --git a/app/config/webpack/dev.js b/scripts/webpack/dev.js
similarity index 97%
rename from app/config/webpack/dev.js
rename to scripts/webpack/dev.js
index 1c614f1a0..125a2c256 100644
--- a/app/config/webpack/dev.js
+++ b/scripts/webpack/dev.js
@@ -10,7 +10,7 @@ module.exports = merge(commonConfig, {
mode: 'development',
devServer: {
static: {
- directory: './web',
+ directory: './public',
},
},
plugins: [
diff --git a/app/config/webpack/prod.js b/scripts/webpack/prod.js
similarity index 100%
rename from app/config/webpack/prod.js
rename to scripts/webpack/prod.js
diff --git a/src/Wallabag/CoreBundle/Command/CleanDownloadedImagesCommand.php b/src/Command/CleanDownloadedImagesCommand.php
similarity index 96%
rename from src/Wallabag/CoreBundle/Command/CleanDownloadedImagesCommand.php
rename to src/Command/CleanDownloadedImagesCommand.php
index fe4f77a70..b6678362f 100644
--- a/src/Wallabag/CoreBundle/Command/CleanDownloadedImagesCommand.php
+++ b/src/Command/CleanDownloadedImagesCommand.php
@@ -1,15 +1,15 @@
entityManager = $entityManager;
$this->dispatcher = $dispatcher;
$this->userManager = $userManager;
- $this->databaseDriver = $databaseDriver;
- $this->databaseName = $databaseName;
$this->defaultSettings = $defaultSettings;
$this->defaultIgnoreOriginInstanceRules = $defaultIgnoreOriginInstanceRules;
+ // var_dump($entityManager); die();
+
parent::__construct();
}
@@ -96,6 +94,10 @@ class InstallCommand extends Command
{
$this->io->section('Step 1 of 4: Checking system requirements.');
+ $conn = $this->entityManager->getConnection();
+ $databaseDriver = $conn->getParams()['driver'];
+ $databaseName = $conn->getParams()['dbname'] ?? $conn->getParams()['path'];
+
$rows = [];
// testing if database driver exists
@@ -104,26 +106,24 @@ class InstallCommand extends Command
$status = 'OK! ';
$help = '';
- if (!\extension_loaded($this->databaseDriver)) {
+ if (!\extension_loaded($databaseDriver)) {
$fulfilled = false;
$status = 'ERROR! ';
- $help = 'Database driver "' . $this->databaseDriver . '" is not installed.';
+ $help = 'Database driver "' . $databaseDriver . '" is not installed.';
}
- $rows[] = [sprintf($label, $this->databaseDriver), $status, $help];
+ $rows[] = [sprintf($label, $databaseDriver), $status, $help];
// testing if connection to the database can be etablished
$label = 'Database connection ';
$status = 'OK! ';
$help = '';
- $conn = $this->entityManager->getConnection();
-
try {
$conn->connect();
} catch (\Exception $e) {
if (false === strpos($e->getMessage(), 'Unknown database')
- && false === strpos($e->getMessage(), 'database "' . $this->databaseName . '" does not exist')) {
+ && false === strpos($e->getMessage(), 'database "' . $databaseName . '" does not exist')) {
$fulfilled = false;
$status = 'ERROR! ';
$help = 'Can\'t connect to the database: ' . $e->getMessage();
@@ -295,8 +295,8 @@ class InstallCommand extends Command
$this->io->section('Step 4 of 4: Config setup.');
// cleanup before insert new stuff
- $this->entityManager->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\InternalSetting')->execute();
- $this->entityManager->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\IgnoreOriginInstanceRule')->execute();
+ $this->entityManager->createQuery('DELETE FROM App\Entity\InternalSetting')->execute();
+ $this->entityManager->createQuery('DELETE FROM App\Entity\IgnoreOriginInstanceRule')->execute();
foreach ($this->defaultSettings as $setting) {
$newSetting = new InternalSetting();
diff --git a/src/Wallabag/CoreBundle/Command/ListUserCommand.php b/src/Command/ListUserCommand.php
similarity index 95%
rename from src/Wallabag/CoreBundle/Command/ListUserCommand.php
rename to src/Command/ListUserCommand.php
index f4898c48c..5bda4a1dc 100644
--- a/src/Wallabag/CoreBundle/Command/ListUserCommand.php
+++ b/src/Command/ListUserCommand.php
@@ -1,14 +1,14 @@
validateAuthentication();
- return $this->forward('Wallabag\AnnotationBundle\Controller\WallabagAnnotationController::getAnnotationsAction', [
+ return $this->forward('App\Controller\WallabagAnnotationController::getAnnotationsAction', [
'entry' => $entry,
]);
}
@@ -108,7 +108,7 @@ class AnnotationRestController extends WallabagRestController
{
$this->validateAuthentication();
- return $this->forward('Wallabag\AnnotationBundle\Controller\WallabagAnnotationController::postAnnotationAction', [
+ return $this->forward('App\Controller\WallabagAnnotationController::postAnnotationAction', [
'request' => $request,
'entry' => $entry,
]);
@@ -144,7 +144,7 @@ class AnnotationRestController extends WallabagRestController
{
$this->validateAuthentication();
- return $this->forward('Wallabag\AnnotationBundle\Controller\WallabagAnnotationController::putAnnotationAction', [
+ return $this->forward('App\Controller\WallabagAnnotationController::putAnnotationAction', [
'annotation' => $annotation,
'request' => $request,
]);
@@ -180,7 +180,7 @@ class AnnotationRestController extends WallabagRestController
{
$this->validateAuthentication();
- return $this->forward('Wallabag\AnnotationBundle\Controller\WallabagAnnotationController::deleteAnnotationAction', [
+ return $this->forward('App\Controller\WallabagAnnotationController::deleteAnnotationAction', [
'annotation' => $annotation,
]);
}
diff --git a/src/Wallabag/ApiBundle/Controller/ConfigRestController.php b/src/Controller/Api/ConfigRestController.php
similarity index 96%
rename from src/Wallabag/ApiBundle/Controller/ConfigRestController.php
rename to src/Controller/Api/ConfigRestController.php
index 6539291ff..8bbfee3a9 100644
--- a/src/Wallabag/ApiBundle/Controller/ConfigRestController.php
+++ b/src/Controller/Api/ConfigRestController.php
@@ -1,6 +1,6 @@
query->get('urls', []));
- $limit = $this->getParameter('wallabag_core.api_limit_mass_actions');
+ $limit = $this->getParameter('wallabag.api_limit_mass_actions');
if (\count($urls) > $limit) {
throw new HttpException(400, 'API limit reached');
@@ -1030,7 +1030,7 @@ class EntryRestController extends WallabagRestController
}
// if refreshing entry failed, don't save it
- if ($this->getParameter('wallabag_core.fetching_error_message') === $entry->getContent()) {
+ if ($this->getParameter('wallabag.fetching_error_message') === $entry->getContent()) {
return new JsonResponse([], 304);
}
diff --git a/src/Wallabag/ApiBundle/Controller/SearchRestController.php b/src/Controller/Api/SearchRestController.php
similarity index 96%
rename from src/Wallabag/ApiBundle/Controller/SearchRestController.php
rename to src/Controller/Api/SearchRestController.php
index cd71c83f1..a33bd904c 100644
--- a/src/Wallabag/ApiBundle/Controller/SearchRestController.php
+++ b/src/Controller/Api/SearchRestController.php
@@ -1,7 +1,8 @@
getParameter('wallabag_core.version');
+ $version = $this->getParameter('wallabag.version');
$json = $this->serializer->serialize($version, 'json');
return (new JsonResponse())->setJson($json);
@@ -85,7 +85,7 @@ class WallabagRestController extends AbstractFOSRestController
public function getInfoAction(Config $craueConfig)
{
$info = new ApplicationInfo(
- $this->getParameter('wallabag_core.version'),
+ $this->getParameter('wallabag.version'),
$this->getParameter('fosuser_registration') && $craueConfig->get('api_user_registration'),
);
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Controller/ConfigController.php
similarity index 95%
rename from src/Wallabag/CoreBundle/Controller/ConfigController.php
rename to src/Controller/ConfigController.php
index 9adc4c29b..3c645afa6 100644
--- a/src/Wallabag/CoreBundle/Controller/ConfigController.php
+++ b/src/Controller/ConfigController.php
@@ -1,7 +1,26 @@
redirect($this->generateUrl('config') . '#set6');
}
- return $this->render('@WallabagCore/Config/index.html.twig', [
+ return $this->render('Config/index.html.twig', [
'form' => [
'config' => $configForm->createView(),
'feed' => $feedForm->createView(),
@@ -346,7 +346,7 @@ class ConfigController extends AbstractController
'flashes.config.notice.otp_enabled'
);
- return $this->render('@WallabagCore/Config/otp_app.html.twig', [
+ return $this->render('Config/otp_app.html.twig', [
'backupCodes' => $backupCodes,
'qr_code' => $googleAuthenticator->getQRContent($user),
'secret' => $secret,
diff --git a/src/Wallabag/ApiBundle/Controller/DeveloperController.php b/src/Controller/DeveloperController.php
similarity index 77%
rename from src/Wallabag/ApiBundle/Controller/DeveloperController.php
rename to src/Controller/DeveloperController.php
index 052bda99d..111cf8394 100644
--- a/src/Wallabag/ApiBundle/Controller/DeveloperController.php
+++ b/src/Controller/DeveloperController.php
@@ -1,7 +1,10 @@
findByUser($this->getUser()->getId());
- return $this->render('@WallabagCore/Developer/index.html.twig', [
+ return $this->render('Developer/index.html.twig', [
'clients' => $clients,
]);
}
@@ -34,7 +37,7 @@ class DeveloperController extends AbstractController
/**
* Create a client (an app).
*
- * @Route("/developer/client/create", name="developer_create_client")
+ * @Route("/client/create", name="developer_create_client")
*
* @return Response
*/
@@ -54,14 +57,14 @@ class DeveloperController extends AbstractController
$translator->trans('flashes.developer.notice.client_created', ['%name%' => $client->getName()])
);
- return $this->render('@WallabagCore/Developer/client_parameters.html.twig', [
+ return $this->render('Developer/client_parameters.html.twig', [
'client_id' => $client->getPublicId(),
'client_secret' => $client->getSecret(),
'client_name' => $client->getName(),
]);
}
- return $this->render('@WallabagCore/Developer/client.html.twig', [
+ return $this->render('Developer/client.html.twig', [
'form' => $clientForm->createView(),
]);
}
@@ -69,7 +72,7 @@ class DeveloperController extends AbstractController
/**
* Remove a client.
*
- * @Route("/developer/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client")
+ * @Route("/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client")
*
* @return RedirectResponse
*/
@@ -93,12 +96,12 @@ class DeveloperController extends AbstractController
/**
* Display developer how to use an existing app.
*
- * @Route("/developer/howto/first-app", name="developer_howto_firstapp")
+ * @Route("/howto/first-app", name="developer_howto_firstapp")
*
* @return Response
*/
public function howtoFirstAppAction()
{
- return $this->render('@WallabagCore/Developer/howto_app.html.twig');
+ return $this->render('Developer/howto_app.html.twig');
}
}
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Controller/EntryController.php
similarity index 95%
rename from src/Wallabag/CoreBundle/Controller/EntryController.php
rename to src/Controller/EntryController.php
index f26fe1b48..ae8c97913 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Controller/EntryController.php
@@ -1,7 +1,20 @@
showEntries('search', $request, $page);
}
- return $this->render('@WallabagCore/Entry/search_form.html.twig', [
+ return $this->render('Entry/search_form.html.twig', [
'form' => $form->createView(),
'currentRoute' => $currentRoute,
]);
@@ -200,7 +200,7 @@ class EntryController extends AbstractController
return $this->redirect($this->generateUrl('homepage'));
}
- return $this->render('@WallabagCore/Entry/new_form.html.twig', [
+ return $this->render('Entry/new_form.html.twig', [
'form' => $form->createView(),
]);
}
@@ -235,7 +235,7 @@ class EntryController extends AbstractController
*/
public function addEntryAction()
{
- return $this->render('@WallabagCore/Entry/new.html.twig');
+ return $this->render('Entry/new.html.twig');
}
/**
@@ -265,7 +265,7 @@ class EntryController extends AbstractController
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
- return $this->render('@WallabagCore/Entry/edit.html.twig', [
+ return $this->render('Entry/edit.html.twig', [
'form' => $form->createView(),
]);
}
@@ -392,7 +392,7 @@ class EntryController extends AbstractController
$this->checkUserAction($entry);
return $this->render(
- '@WallabagCore/Entry/entry.html.twig',
+ 'Entry/entry.html.twig',
['entry' => $entry]
);
}
@@ -412,7 +412,7 @@ class EntryController extends AbstractController
$this->updateEntry($entry, 'entry_reloaded');
// if refreshing entry failed, don't save it
- if ($this->getParameter('wallabag_core.fetching_error_message') === $entry->getContent()) {
+ if ($this->getParameter('wallabag.fetching_error_message') === $entry->getContent()) {
$this->addFlash('notice', 'flashes.entry.notice.entry_reloaded_failed');
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
@@ -584,7 +584,7 @@ class EntryController extends AbstractController
}
return $this->render(
- '@WallabagCore/Entry/share.html.twig',
+ 'Entry/share.html.twig',
['entry' => $entry]
);
}
@@ -677,7 +677,7 @@ class EntryController extends AbstractController
->countUntaggedEntriesByUser($this->getUser()->getId());
return $this->render(
- '@WallabagCore/Entry/entries.html.twig', [
+ 'Entry/entries.html.twig', [
'form' => $form->createView(),
'entries' => $entries,
'currentPage' => $page,
diff --git a/src/Wallabag/CoreBundle/Controller/ExceptionController.php b/src/Controller/ExceptionController.php
similarity index 90%
rename from src/Wallabag/CoreBundle/Controller/ExceptionController.php
rename to src/Controller/ExceptionController.php
index ffff3c85f..d532ea820 100644
--- a/src/Wallabag/CoreBundle/Controller/ExceptionController.php
+++ b/src/Controller/ExceptionController.php
@@ -1,6 +1,6 @@
templateExists($template)) {
return $template;
}
diff --git a/src/Wallabag/CoreBundle/Controller/ExportController.php b/src/Controller/ExportController.php
similarity index 92%
rename from src/Wallabag/CoreBundle/Controller/ExportController.php
rename to src/Controller/ExportController.php
index c958a382c..11a4c3abd 100644
--- a/src/Wallabag/CoreBundle/Controller/ExportController.php
+++ b/src/Controller/ExportController.php
@@ -1,26 +1,29 @@
getConfig()->getFeedLimit() ?: $this->getParameter('wallabag_core.feed_limit');
+ $perPage = $user->getConfig()->getFeedLimit() ?: $this->getParameter('wallabag.feed_limit');
$entries->setMaxPerPage($perPage);
if (null === $entries) {
@@ -151,14 +154,14 @@ class FeedController extends AbstractController
}
return $this->render(
- '@WallabagCore/Entry/entries.xml.twig',
+ 'Entry/entries.xml.twig',
[
'type' => 'tag',
'url' => $url,
'entries' => $entries,
'user' => $user->getUsername(),
'domainName' => $this->getParameter('domain_name'),
- 'version' => $this->getParameter('wallabag_core.version'),
+ 'version' => $this->getParameter('wallabag.version'),
'tag' => $tag->getSlug(),
'updated' => $this->prepareFeedUpdatedDate($entries, $sort),
],
@@ -213,7 +216,7 @@ class FeedController extends AbstractController
$pagerAdapter = new DoctrineORMAdapter($qb->getQuery(), true, false);
$entries = new Pagerfanta($pagerAdapter);
- $perPage = $user->getConfig()->getFeedLimit() ?: $this->getParameter('wallabag_core.feed_limit');
+ $perPage = $user->getConfig()->getFeedLimit() ?: $this->getParameter('wallabag.feed_limit');
$entries->setMaxPerPage($perPage);
$url = $this->generateUrl(
@@ -233,13 +236,13 @@ class FeedController extends AbstractController
}
}
- return $this->render('@WallabagCore/Entry/entries.xml.twig', [
+ return $this->render('Entry/entries.xml.twig', [
'type' => $type,
'url' => $url,
'entries' => $entries,
'user' => $user->getUsername(),
'domainName' => $this->getParameter('domain_name'),
- 'version' => $this->getParameter('wallabag_core.version'),
+ 'version' => $this->getParameter('wallabag.version'),
'updated' => $this->prepareFeedUpdatedDate($entries),
],
new Response('', 200, ['Content-Type' => 'application/atom+xml'])
diff --git a/src/Wallabag/CoreBundle/Controller/IgnoreOriginInstanceRuleController.php b/src/Controller/IgnoreOriginInstanceRuleController.php
similarity index 89%
rename from src/Wallabag/CoreBundle/Controller/IgnoreOriginInstanceRuleController.php
rename to src/Controller/IgnoreOriginInstanceRuleController.php
index 941fc9275..c8436caf6 100644
--- a/src/Wallabag/CoreBundle/Controller/IgnoreOriginInstanceRuleController.php
+++ b/src/Controller/IgnoreOriginInstanceRuleController.php
@@ -1,7 +1,10 @@
findAll();
- return $this->render('@WallabagCore/IgnoreOriginInstanceRule/index.html.twig', [
+ return $this->render('IgnoreOriginInstanceRule/index.html.twig', [
'rules' => $rules,
]);
}
@@ -70,7 +68,7 @@ class IgnoreOriginInstanceRuleController extends AbstractController
return $this->redirectToRoute('ignore_origin_instance_rules_index');
}
- return $this->render('@WallabagCore/IgnoreOriginInstanceRule/new.html.twig', [
+ return $this->render('IgnoreOriginInstanceRule/new.html.twig', [
'rule' => $ignoreOriginInstanceRule,
'form' => $form->createView(),
]);
@@ -101,7 +99,7 @@ class IgnoreOriginInstanceRuleController extends AbstractController
return $this->redirectToRoute('ignore_origin_instance_rules_index');
}
- return $this->render('@WallabagCore/IgnoreOriginInstanceRule/edit.html.twig', [
+ return $this->render('IgnoreOriginInstanceRule/edit.html.twig', [
'rule' => $ignoreOriginInstanceRule,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
diff --git a/src/Wallabag/ImportBundle/Controller/BrowserController.php b/src/Controller/Import/BrowserController.php
similarity index 84%
rename from src/Wallabag/ImportBundle/Controller/BrowserController.php
rename to src/Controller/Import/BrowserController.php
index 326ae7279..25cb2e700 100644
--- a/src/Wallabag/ImportBundle/Controller/BrowserController.php
+++ b/src/Controller/Import/BrowserController.php
@@ -1,19 +1,19 @@
get('mark_as_read')->getData();
$name = $this->getUser()->getId() . '.json';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $wallabag
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -51,7 +51,7 @@ abstract class BrowserController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
diff --git a/src/Wallabag/ImportBundle/Controller/ChromeController.php b/src/Controller/Import/ChromeController.php
similarity index 85%
rename from src/Wallabag/ImportBundle/Controller/ChromeController.php
rename to src/Controller/Import/ChromeController.php
index c4c3f3a5c..5177fa3ec 100644
--- a/src/Wallabag/ImportBundle/Controller/ChromeController.php
+++ b/src/Controller/Import/ChromeController.php
@@ -1,14 +1,14 @@
get('mark_as_read')->getData();
$name = 'delicious_' . $this->getUser()->getId() . '.json';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $delicious
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -65,7 +65,7 @@ class DeliciousController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
@@ -76,7 +76,7 @@ class DeliciousController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
- return $this->render('@WallabagImport/Delicious/index.html.twig', [
+ return $this->render('Import/delicious.html.twig', [
'form' => $form->createView(),
'import' => $delicious,
]);
diff --git a/src/Wallabag/ImportBundle/Controller/ElcuratorController.php b/src/Controller/Import/ElcuratorController.php
similarity index 85%
rename from src/Wallabag/ImportBundle/Controller/ElcuratorController.php
rename to src/Controller/Import/ElcuratorController.php
index 990334cc2..35a181e3d 100644
--- a/src/Wallabag/ImportBundle/Controller/ElcuratorController.php
+++ b/src/Controller/Import/ElcuratorController.php
@@ -1,14 +1,14 @@
render('@WallabagImport/Import/index.html.twig', [
+ return $this->render('Import/index.html.twig', [
'imports' => $importChain->getAll(),
]);
}
@@ -41,7 +41,7 @@ class ImportController extends Controller
$rabbitNotInstalled = false;
if (!$authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
- return $this->render('@WallabagImport/Import/check_queue.html.twig');
+ return $this->render('Import/check_queue.html.twig');
}
if ($craueConfig->get('import_with_rabbitmq')) {
@@ -81,7 +81,7 @@ class ImportController extends Controller
}
}
- return $this->render('@WallabagImport/Import/check_queue.html.twig', [
+ return $this->render('Import/check_queue.html.twig', [
'nbRedisMessages' => $nbRedisMessages,
'nbRabbitMessages' => $nbRabbitMessages,
'redisNotInstalled' => $redisNotInstalled,
diff --git a/src/Wallabag/ImportBundle/Controller/InstapaperController.php b/src/Controller/Import/InstapaperController.php
similarity index 82%
rename from src/Wallabag/ImportBundle/Controller/InstapaperController.php
rename to src/Controller/Import/InstapaperController.php
index 03d562916..5cbca3c69 100644
--- a/src/Wallabag/ImportBundle/Controller/InstapaperController.php
+++ b/src/Controller/Import/InstapaperController.php
@@ -1,16 +1,16 @@
get('mark_as_read')->getData();
$name = 'instapaper_' . $this->getUser()->getId() . '.csv';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $instapaper
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -65,7 +65,7 @@ class InstapaperController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
@@ -76,7 +76,7 @@ class InstapaperController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
- return $this->render('@WallabagImport/Instapaper/index.html.twig', [
+ return $this->render('Import/instapaper.html.twig', [
'form' => $form->createView(),
'import' => $instapaper,
]);
diff --git a/src/Wallabag/ImportBundle/Controller/PinboardController.php b/src/Controller/Import/PinboardController.php
similarity index 82%
rename from src/Wallabag/ImportBundle/Controller/PinboardController.php
rename to src/Controller/Import/PinboardController.php
index 6c81e8eb6..c21298dc0 100644
--- a/src/Wallabag/ImportBundle/Controller/PinboardController.php
+++ b/src/Controller/Import/PinboardController.php
@@ -1,16 +1,16 @@
get('mark_as_read')->getData();
$name = 'pinboard_' . $this->getUser()->getId() . '.json';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $pinboard
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -65,7 +65,7 @@ class PinboardController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
@@ -76,7 +76,7 @@ class PinboardController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
- return $this->render('@WallabagImport/Pinboard/index.html.twig', [
+ return $this->render('Import/pinboard.html.twig', [
'form' => $form->createView(),
'import' => $pinboard,
]);
diff --git a/src/Wallabag/ImportBundle/Controller/PocketController.php b/src/Controller/Import/PocketController.php
similarity index 92%
rename from src/Wallabag/ImportBundle/Controller/PocketController.php
rename to src/Controller/Import/PocketController.php
index 2ca509bc1..4595e9b3e 100644
--- a/src/Wallabag/ImportBundle/Controller/PocketController.php
+++ b/src/Controller/Import/PocketController.php
@@ -1,7 +1,9 @@
getForm();
- return $this->render('@WallabagImport/Pocket/index.html.twig', [
+ return $this->render('Import/pocket.html.twig', [
'import' => $pocket,
'has_consumer_key' => '' === trim($this->getUser()->getConfig()->getPocketConsumerKey()) ? false : true,
'form' => $form->createView(),
@@ -51,7 +51,7 @@ class PocketController extends AbstractController
}
/**
- * @Route("/pocket/auth", name="import_pocket_auth")
+ * @Route("/import/pocket/auth", name="import_pocket_auth")
*/
public function authAction(Request $request, PocketImport $pocketImport)
{
@@ -81,7 +81,7 @@ class PocketController extends AbstractController
}
/**
- * @Route("/pocket/callback", name="import_pocket_callback")
+ * @Route("/import/pocket/callback", name="import_pocket_callback")
*/
public function callbackAction(PocketImport $pocketImport, TranslatorInterface $translator)
{
diff --git a/src/Wallabag/ImportBundle/Controller/ReadabilityController.php b/src/Controller/Import/ReadabilityController.php
similarity index 82%
rename from src/Wallabag/ImportBundle/Controller/ReadabilityController.php
rename to src/Controller/Import/ReadabilityController.php
index fb2c22262..b7f377890 100644
--- a/src/Wallabag/ImportBundle/Controller/ReadabilityController.php
+++ b/src/Controller/Import/ReadabilityController.php
@@ -1,16 +1,16 @@
get('mark_as_read')->getData();
$name = 'readability_' . $this->getUser()->getId() . '.json';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $readability
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -65,7 +65,7 @@ class ReadabilityController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
@@ -76,7 +76,7 @@ class ReadabilityController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
- return $this->render('@WallabagImport/Readability/index.html.twig', [
+ return $this->render('Import/readability.html.twig', [
'form' => $form->createView(),
'import' => $readability,
]);
diff --git a/src/Wallabag/ImportBundle/Controller/WallabagController.php b/src/Controller/Import/WallabagController.php
similarity index 86%
rename from src/Wallabag/ImportBundle/Controller/WallabagController.php
rename to src/Controller/Import/WallabagController.php
index fd22c8eec..9bdeff1d4 100644
--- a/src/Wallabag/ImportBundle/Controller/WallabagController.php
+++ b/src/Controller/Import/WallabagController.php
@@ -1,14 +1,14 @@
get('mark_as_read')->getData();
$name = $this->getUser()->getId() . '.json';
- if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+ if (null !== $file && \in_array($file->getClientMimeType(), $this->getParameter('wallabag.import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag.import.resource_dir'), $name)) {
$res = $wallabag
- ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
+ ->setFilepath($this->getParameter('wallabag.import.resource_dir') . '/' . $name)
->setMarkAsRead($markAsRead)
->import();
@@ -54,7 +54,7 @@ abstract class WallabagController extends AbstractController
]);
}
- unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
+ unlink($this->getParameter('wallabag.import.resource_dir') . '/' . $name);
}
$this->addFlash('notice', $message);
diff --git a/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php b/src/Controller/Import/WallabagV1Controller.php
similarity index 84%
rename from src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php
rename to src/Controller/Import/WallabagV1Controller.php
index c5257fc3f..b79781592 100644
--- a/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php
+++ b/src/Controller/Import/WallabagV1Controller.php
@@ -1,14 +1,14 @@
findByUser($this->getUser());
- return $this->render('@WallabagCore/SiteCredential/index.html.twig', [
+ return $this->render('SiteCredential/index.html.twig', [
'credentials' => $credentials,
]);
}
@@ -84,7 +82,7 @@ class SiteCredentialController extends AbstractController
return $this->redirectToRoute('site_credentials_index');
}
- return $this->render('@WallabagCore/SiteCredential/new.html.twig', [
+ return $this->render('SiteCredential/new.html.twig', [
'credential' => $credential,
'form' => $form->createView(),
]);
@@ -122,7 +120,7 @@ class SiteCredentialController extends AbstractController
return $this->redirectToRoute('site_credentials_index');
}
- return $this->render('@WallabagCore/SiteCredential/edit.html.twig', [
+ return $this->render('SiteCredential/edit.html.twig', [
'credential' => $siteCredential,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
diff --git a/src/Wallabag/CoreBundle/Controller/StaticController.php b/src/Controller/StaticController.php
similarity index 68%
rename from src/Wallabag/CoreBundle/Controller/StaticController.php
rename to src/Controller/StaticController.php
index 1814976db..e454ddbf5 100644
--- a/src/Wallabag/CoreBundle/Controller/StaticController.php
+++ b/src/Controller/StaticController.php
@@ -1,6 +1,6 @@
getParameter('addons_url');
return $this->render(
- '@WallabagCore/Static/howto.html.twig',
+ 'Static/howto.html.twig',
[
'addonsUrl' => $addonsUrl,
]
@@ -28,10 +28,10 @@ class StaticController extends AbstractController
public function aboutAction()
{
return $this->render(
- '@WallabagCore/Static/about.html.twig',
+ 'Static/about.html.twig',
[
- 'version' => $this->getParameter('wallabag_core.version'),
- 'paypal_url' => $this->getParameter('wallabag_core.paypal_url'),
+ 'version' => $this->getParameter('wallabag.version'),
+ 'paypal_url' => $this->getParameter('wallabag.paypal_url'),
]
);
}
@@ -42,7 +42,7 @@ class StaticController extends AbstractController
public function quickstartAction()
{
return $this->render(
- '@WallabagCore/Static/quickstart.html.twig'
+ 'Static/quickstart.html.twig'
);
}
}
diff --git a/src/Wallabag/CoreBundle/Controller/TagController.php b/src/Controller/TagController.php
similarity index 93%
rename from src/Wallabag/CoreBundle/Controller/TagController.php
rename to src/Controller/TagController.php
index c15b6947d..0b445b691 100644
--- a/src/Wallabag/CoreBundle/Controller/TagController.php
+++ b/src/Controller/TagController.php
@@ -1,7 +1,16 @@
redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
- return $this->render('@WallabagCore/Tag/new_form.html.twig', [
+ return $this->render('Tag/new_form.html.twig', [
'form' => $form->createView(),
'entry' => $entry,
]);
@@ -126,7 +126,7 @@ class TagController extends AbstractController
$renameForms[$tag['id']] = $this->createForm(RenameTagType::class, new Tag())->createView();
}
- return $this->render('@WallabagCore/Tag/tags.html.twig', [
+ return $this->render('Tag/tags.html.twig', [
'tags' => $tags,
'renameForms' => $renameForms,
'nbEntriesUntagged' => $nbEntriesUntagged,
@@ -163,7 +163,7 @@ class TagController extends AbstractController
}
}
- return $this->render('@WallabagCore/Entry/entries.html.twig', [
+ return $this->render('Entry/entries.html.twig', [
'form' => null,
'entries' => $entries,
'currentPage' => $page,
diff --git a/src/Wallabag/UserBundle/Controller/ManageController.php b/src/Controller/UserController.php
similarity index 92%
rename from src/Wallabag/UserBundle/Controller/ManageController.php
rename to src/Controller/UserController.php
index fb7b5b2e5..667f3fa34 100644
--- a/src/Wallabag/UserBundle/Controller/ManageController.php
+++ b/src/Controller/UserController.php
@@ -1,7 +1,12 @@
redirectToRoute('user_edit', ['id' => $user->getId()]);
}
- return $this->render('@WallabagUser/Manage/new.html.twig', [
+ return $this->render('User/new.html.twig', [
'user' => $user,
'form' => $form->createView(),
]);
@@ -108,7 +108,7 @@ class ManageController extends AbstractController
return $this->redirectToRoute('user_edit', ['id' => $user->getId()]);
}
- return $this->render('@WallabagUser/Manage/edit.html.twig', [
+ return $this->render('User/edit.html.twig', [
'user' => $user,
'edit_form' => $form->createView(),
'delete_form' => $deleteForm->createView(),
@@ -173,7 +173,7 @@ class ManageController extends AbstractController
}
}
- return $this->render('@WallabagUser/Manage/index.html.twig', [
+ return $this->render('User/index.html.twig', [
'searchForm' => $form->createView(),
'users' => $pagerFanta,
]);
diff --git a/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php b/src/Controller/WallabagAnnotationController.php
similarity index 89%
rename from src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
rename to src/Controller/WallabagAnnotationController.php
index 704cc9a90..0601cd717 100644
--- a/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
+++ b/src/Controller/WallabagAnnotationController.php
@@ -1,7 +1,12 @@
persist($product);
+
+ $manager->flush();
+ }
+}
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ConfigFixtures.php b/src/DataFixtures/ConfigFixtures.php
similarity index 93%
rename from src/Wallabag/CoreBundle/DataFixtures/ConfigFixtures.php
rename to src/DataFixtures/ConfigFixtures.php
index 77809f95b..519566ec9 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ConfigFixtures.php
+++ b/src/DataFixtures/ConfigFixtures.php
@@ -1,12 +1,11 @@
container->getParameter('wallabag_core.default_ignore_origin_instance_rules') as $ignore_origin_instance_rule) {
+ foreach ($this->container->getParameter('wallabag.default_ignore_origin_instance_rules') as $ignore_origin_instance_rule) {
$newIgnoreOriginInstanceRule = new IgnoreOriginInstanceRule();
$newIgnoreOriginInstanceRule->setRule($ignore_origin_instance_rule['rule']);
$manager->persist($newIgnoreOriginInstanceRule);
diff --git a/src/Wallabag/CoreBundle/DataFixtures/IgnoreOriginUserRuleFixtures.php b/src/DataFixtures/IgnoreOriginUserRuleFixtures.php
similarity index 83%
rename from src/Wallabag/CoreBundle/DataFixtures/IgnoreOriginUserRuleFixtures.php
rename to src/DataFixtures/IgnoreOriginUserRuleFixtures.php
index fbacef901..490700f63 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/IgnoreOriginUserRuleFixtures.php
+++ b/src/DataFixtures/IgnoreOriginUserRuleFixtures.php
@@ -1,12 +1,11 @@
container->getParameter('wallabag_core.default_internal_settings') as $setting) {
+ foreach ($this->container->getParameter('wallabag.default_internal_settings') as $setting) {
$newSetting = new InternalSetting();
$newSetting->setName($setting['name']);
$newSetting->setValue($setting['value']);
diff --git a/src/Wallabag/CoreBundle/DataFixtures/SiteCredentialFixtures.php b/src/DataFixtures/SiteCredentialFixtures.php
similarity index 89%
rename from src/Wallabag/CoreBundle/DataFixtures/SiteCredentialFixtures.php
rename to src/DataFixtures/SiteCredentialFixtures.php
index 68cbe2182..b24fe8e05 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/SiteCredentialFixtures.php
+++ b/src/DataFixtures/SiteCredentialFixtures.php
@@ -1,15 +1,14 @@
getRootNode();
$rootNode
@@ -72,7 +72,15 @@ class Configuration implements ConfigurationInterface
->end()
->end()
->end()
- ->end()
+ ->arrayNode('import')
+ ->children()
+ ->arrayNode('allow_mimetypes')
+ ->prototype('scalar')->end()
+ ->end()
+ ->scalarNode('resource_dir')
+ ->end()
+ ->end()
+ ->end()
;
return $treeBuilder;
diff --git a/src/DependencyInjection/WallabagExtension.php b/src/DependencyInjection/WallabagExtension.php
new file mode 100644
index 000000000..f26287b50
--- /dev/null
+++ b/src/DependencyInjection/WallabagExtension.php
@@ -0,0 +1,40 @@
+processConfiguration($configuration, $configs);
+
+ $container->setParameter('wallabag.languages', $config['languages']);
+ $container->setParameter('wallabag.items_on_page', $config['items_on_page']);
+ $container->setParameter('wallabag.language', $config['language']);
+ $container->setParameter('wallabag.feed_limit', $config['rss_limit']);
+ $container->setParameter('wallabag.reading_speed', $config['reading_speed']);
+ $container->setParameter('wallabag.version', $config['version']);
+ $container->setParameter('wallabag.paypal_url', $config['paypal_url']);
+ $container->setParameter('wallabag.cache_lifetime', $config['cache_lifetime']);
+ $container->setParameter('wallabag.action_mark_as_read', $config['action_mark_as_read']);
+ $container->setParameter('wallabag.list_mode', $config['list_mode']);
+ $container->setParameter('wallabag.fetching_error_message', $config['fetching_error_message']);
+ $container->setParameter('wallabag.fetching_error_message_title', $config['fetching_error_message_title']);
+ $container->setParameter('wallabag.api_limit_mass_actions', $config['api_limit_mass_actions']);
+ $container->setParameter('wallabag.default_internal_settings', $config['default_internal_settings']);
+ $container->setParameter('wallabag.site_credentials.encryption_key_path', $config['encryption_key_path']);
+ $container->setParameter('wallabag.default_ignore_origin_instance_rules', $config['default_ignore_origin_instance_rules']);
+
+ $container->setParameter('wallabag.import.allow_mimetypes', $config['import']['allow_mimetypes']);
+ $container->setParameter('wallabag.import.resource_dir', $config['import']['resource_dir']);
+ }
+
+ public function getAlias()
+ {
+ return 'wallabag';
+ }
+}
diff --git a/src/Wallabag/CoreBundle/Doctrine/JsonArrayType.php b/src/Doctrine/JsonArrayType.php
similarity index 100%
rename from src/Wallabag/CoreBundle/Doctrine/JsonArrayType.php
rename to src/Doctrine/JsonArrayType.php
diff --git a/src/Wallabag/CoreBundle/Doctrine/WallabagMigration.php b/src/Doctrine/WallabagMigration.php
similarity index 97%
rename from src/Wallabag/CoreBundle/Doctrine/WallabagMigration.php
rename to src/Doctrine/WallabagMigration.php
index b9685df55..abaad89dc 100644
--- a/src/Wallabag/CoreBundle/Doctrine/WallabagMigration.php
+++ b/src/Doctrine/WallabagMigration.php
@@ -1,6 +1,6 @@
getProjectDir() . '/config/bundles.php';
+ foreach ($contents as $class => $envs) {
+ if ($envs[$this->environment] ?? $envs['all'] ?? false) {
+ yield new $class();
+ }
+ }
+ }
+
+ public function getProjectDir(): string
+ {
+ return \dirname(__DIR__);
+ }
+
+ protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
+ {
+ $container->addResource(new FileResource($this->getProjectDir() . '/config/bundles.php'));
+ $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
+ $container->setParameter('container.dumper.inline_factories', true);
+ $confDir = $this->getProjectDir() . '/config';
+
+ $loader->load($confDir . '/{packages}/*' . self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir . '/{packages}/' . $this->environment . '/*' . self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir . '/{services}' . self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir . '/{services}_' . $this->environment . self::CONFIG_EXTS, 'glob');
+
+ // register wallabag extension to custom load `wallabag.yaml`
+ $container->registerExtension(new WallabagExtension());
+
+ $loader = new YamlFileLoader($container, new FileLocator($this->getProjectDir() . '/config'));
+ $loader->load('wallabag.yaml');
+ }
+
+ protected function configureRoutes(RouteCollectionBuilder $routes): void
+ {
+ $confDir = $this->getProjectDir() . '/config';
+
+ $routes->import($confDir . '/{routes}/' . $this->environment . '/*' . self::CONFIG_EXTS, '/', 'glob');
+ $routes->import($confDir . '/{routes}/*' . self::CONFIG_EXTS, '/', 'glob');
+ $routes->import($confDir . '/{routes}' . self::CONFIG_EXTS, '/', 'glob');
+ }
+
+ protected function build(ContainerBuilder $container): void
+ {
+ $container->addCompilerPass(new ImportCompilerPass());
+ }
+}
diff --git a/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php b/src/Mailer/AuthCodeMailer.php
similarity index 95%
rename from src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php
rename to src/Mailer/AuthCodeMailer.php
index 7e355effe..1dd06804b 100644
--- a/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php
+++ b/src/Mailer/AuthCodeMailer.php
@@ -1,6 +1,6 @@
twig->load('@WallabagUser/TwoFactor/email_auth_code.html.twig');
+ $template = $this->twig->load('TwoFactor/email_auth_code.html.twig');
$subject = $template->renderBlock('subject', []);
$bodyHtml = $template->renderBlock('body_html', [
diff --git a/src/Wallabag/UserBundle/Mailer/UserMailer.php b/src/Mailer/UserMailer.php
similarity index 98%
rename from src/Wallabag/UserBundle/Mailer/UserMailer.php
rename to src/Mailer/UserMailer.php
index 34f13e0c4..de17a8d73 100644
--- a/src/Wallabag/UserBundle/Mailer/UserMailer.php
+++ b/src/Mailer/UserMailer.php
@@ -1,6 +1,6 @@
registry->getManagerForClass($configuration->getClass());
// Check, if class name is what we need
- if (null !== $em && 'Wallabag\UserBundle\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) {
+ if (null !== $em && 'App\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) {
return false;
}
diff --git a/src/Wallabag/ImportBundle/Redis/Producer.php b/src/Redis/Producer.php
similarity index 96%
rename from src/Wallabag/ImportBundle/Redis/Producer.php
rename to src/Redis/Producer.php
index c77b51747..c9c75ae52 100644
--- a/src/Wallabag/ImportBundle/Redis/Producer.php
+++ b/src/Redis/Producer.php
@@ -1,6 +1,6 @@
getEntityManager()
- ->createQuery('DELETE FROM Wallabag\AnnotationBundle\Entity\Annotation a WHERE a.user = :userId')
+ ->createQuery('DELETE FROM App\Entity\Annotation a WHERE a.user = :userId')
->setParameter('userId', $userId)
->execute();
}
diff --git a/src/Wallabag/ApiBundle/Repository/ClientRepository.php b/src/Repository/ClientRepository.php
similarity index 90%
rename from src/Wallabag/ApiBundle/Repository/ClientRepository.php
rename to src/Repository/ClientRepository.php
index 0c0b79786..964cc085e 100644
--- a/src/Wallabag/ApiBundle/Repository/ClientRepository.php
+++ b/src/Repository/ClientRepository.php
@@ -1,10 +1,10 @@
getEntityManager()
- ->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.user = :userId')
+ ->createQuery('DELETE FROM App\Entity\Entry e WHERE e.user = :userId')
->setParameter('userId', $userId)
->execute();
}
@@ -528,7 +528,7 @@ class EntryRepository extends ServiceEntityRepository
public function removeArchivedByUserId($userId)
{
$this->getEntityManager()
- ->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.user = :userId AND e.isArchived = TRUE')
+ ->createQuery('DELETE FROM App\Entity\Entry e WHERE e.user = :userId AND e.isArchived = TRUE')
->setParameter('userId', $userId)
->execute();
}
diff --git a/src/Wallabag/CoreBundle/Repository/IgnoreOriginInstanceRuleRepository.php b/src/Repository/IgnoreOriginInstanceRuleRepository.php
similarity index 77%
rename from src/Wallabag/CoreBundle/Repository/IgnoreOriginInstanceRuleRepository.php
rename to src/Repository/IgnoreOriginInstanceRuleRepository.php
index ccf321174..f0cd611f3 100644
--- a/src/Wallabag/CoreBundle/Repository/IgnoreOriginInstanceRuleRepository.php
+++ b/src/Repository/IgnoreOriginInstanceRuleRepository.php
@@ -1,10 +1,10 @@
processConfiguration($configuration, $configs);
- }
-}
diff --git a/src/Wallabag/AnnotationBundle/WallabagAnnotationBundle.php b/src/Wallabag/AnnotationBundle/WallabagAnnotationBundle.php
deleted file mode 100644
index b64920a33..000000000
--- a/src/Wallabag/AnnotationBundle/WallabagAnnotationBundle.php
+++ /dev/null
@@ -1,9 +0,0 @@
-processConfiguration($configuration, $configs);
- }
-
- public function getAlias()
- {
- return 'wallabag_api';
- }
-}
diff --git a/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml b/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml
deleted file mode 100644
index de592c217..000000000
--- a/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-entry:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\EntryRestController'
- name_prefix: api_
-
-search:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\SearchRestController'
- name_prefix: api_
-
-tag:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\TagRestController'
- name_prefix: api_
-
-tagging_rule:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\TaggingRuleRestController'
- name_prefix: api_
-
-annotation:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\AnnotationRestController'
- name_prefix: api_
-
-misc:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\WallabagRestController'
- name_prefix: api_
-
-user:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\UserRestController'
- name_prefix: api_
-
-config:
- type: rest
- resource: 'Wallabag\ApiBundle\Controller\ConfigRestController'
- name_prefix: api_
diff --git a/src/Wallabag/ApiBundle/WallabagApiBundle.php b/src/Wallabag/ApiBundle/WallabagApiBundle.php
deleted file mode 100644
index 19d887aba..000000000
--- a/src/Wallabag/ApiBundle/WallabagApiBundle.php
+++ /dev/null
@@ -1,9 +0,0 @@
-getRootNode();
-
- $rootNode
- ->children()
- ->arrayNode('allow_mimetypes')
- ->prototype('scalar')->end()
- ->end()
- ->scalarNode('resource_dir')
- ->end()
- ->end()
- ;
-
- return $treeBuilder;
- }
-}
diff --git a/src/Wallabag/ImportBundle/DependencyInjection/WallabagImportExtension.php b/src/Wallabag/ImportBundle/DependencyInjection/WallabagImportExtension.php
deleted file mode 100644
index 2aa7d26fa..000000000
--- a/src/Wallabag/ImportBundle/DependencyInjection/WallabagImportExtension.php
+++ /dev/null
@@ -1,22 +0,0 @@
-processConfiguration($configuration, $configs);
- $container->setParameter('wallabag_import.allow_mimetypes', $config['allow_mimetypes']);
- $container->setParameter('wallabag_import.resource_dir', $config['resource_dir']);
- }
-
- public function getAlias()
- {
- return 'wallabag_import';
- }
-}
diff --git a/src/Wallabag/ImportBundle/WallabagImportBundle.php b/src/Wallabag/ImportBundle/WallabagImportBundle.php
deleted file mode 100644
index 98c2f97b4..000000000
--- a/src/Wallabag/ImportBundle/WallabagImportBundle.php
+++ /dev/null
@@ -1,17 +0,0 @@
-addCompilerPass(new ImportCompilerPass());
- }
-}
diff --git a/src/Wallabag/UserBundle/DependencyInjection/Configuration.php b/src/Wallabag/UserBundle/DependencyInjection/Configuration.php
deleted file mode 100644
index e5f785368..000000000
--- a/src/Wallabag/UserBundle/DependencyInjection/Configuration.php
+++ /dev/null
@@ -1,14 +0,0 @@
-processConfiguration($configuration, $configs);
- }
-
- public function getAlias()
- {
- return 'wallabag_user';
- }
-}
diff --git a/src/Wallabag/UserBundle/WallabagUserBundle.php b/src/Wallabag/UserBundle/WallabagUserBundle.php
deleted file mode 100644
index e6e650423..000000000
--- a/src/Wallabag/UserBundle/WallabagUserBundle.php
+++ /dev/null
@@ -1,9 +0,0 @@
- {{ 'config.otp.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Developer/client.html.twig b/templates/Developer/client.html.twig
similarity index 96%
rename from src/Wallabag/CoreBundle/Resources/views/Developer/client.html.twig
rename to templates/Developer/client.html.twig
index 2911f6a4e..bcfdc9ee5 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Developer/client.html.twig
+++ b/templates/Developer/client.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Developer/client_parameters.html.twig b/templates/Developer/client_parameters.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/Developer/client_parameters.html.twig
rename to templates/Developer/client_parameters.html.twig
index 59412a708..b17d3ea34 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Developer/client_parameters.html.twig
+++ b/templates/Developer/client_parameters.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Developer/howto_app.html.twig b/templates/Developer/howto_app.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/Developer/howto_app.html.twig
rename to templates/Developer/howto_app.html.twig
index 5027de938..ec32d6fef 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Developer/howto_app.html.twig
+++ b/templates/Developer/howto_app.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Developer/index.html.twig b/templates/Developer/index.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/Developer/index.html.twig
rename to templates/Developer/index.html.twig
index 2093227d0..e6d14ff05 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Developer/index.html.twig
+++ b/templates/Developer/index.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/Card/_content.html.twig b/templates/Entry/Card/_content.html.twig
similarity index 72%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/Card/_content.html.twig
rename to templates/Entry/Card/_content.html.twig
index 34bf483d7..39bb8447c 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/Card/_content.html.twig
+++ b/templates/Entry/Card/_content.html.twig
@@ -9,9 +9,9 @@
{{ entry.domainName|removeWww }}
{% if withMetadata is defined %}
- {% include "@WallabagCore/Entry/_tags.html.twig" with {'tags': entry.tags|slice(0, 3), 'entryId': entry.id, 'listClass': ' hide-on-med-and-down'} only %}
+ {% include "Entry/_tags.html.twig" with {'tags': entry.tags|slice(0, 3), 'entryId': entry.id, 'listClass': ' hide-on-med-and-down'} only %}
-
{% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}
+
{% include "Entry/_reading_time.html.twig" with {'entry': entry} only %}
{% endif %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/Card/_mass_checkbox.html.twig b/templates/Entry/Card/_mass_checkbox.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/Card/_mass_checkbox.html.twig
rename to templates/Entry/Card/_mass_checkbox.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_actions.html.twig b/templates/Entry/_card_actions.html.twig
similarity index 92%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_card_actions.html.twig
rename to templates/Entry/_card_actions.html.twig
index 26e78215b..38726374e 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_actions.html.twig
+++ b/templates/Entry/_card_actions.html.twig
@@ -1,6 +1,6 @@
-
{% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}
+
{% include "Entry/_reading_time.html.twig" with {'entry': entry} only %}
today
{{ entry.createdAt|date('Y-m-d') }}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_full_image.html.twig b/templates/Entry/_card_full_image.html.twig
similarity index 79%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_card_full_image.html.twig
rename to templates/Entry/_card_full_image.html.twig
index 2624ae451..e4d79ed30 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_full_image.html.twig
+++ b/templates/Entry/_card_full_image.html.twig
@@ -12,8 +12,8 @@
{% endif %}
- {% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry} only %}
+ {% include "Entry/Card/_content.html.twig" with {'entry': entry} only %}
- {% include "@WallabagCore/Entry/_card_actions.html.twig" with {'entry': entry} only %}
+ {% include "Entry/_card_actions.html.twig" with {'entry': entry} only %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_list.html.twig b/templates/Entry/_card_list.html.twig
similarity index 86%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_card_list.html.twig
rename to templates/Entry/_card_list.html.twig
index 78e97ea37..5575f5ad2 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/_card_list.html.twig
+++ b/templates/Entry/_card_list.html.twig
@@ -1,5 +1,5 @@
- {% include "@WallabagCore/Entry/Card/_mass_checkbox.html.twig" with {'entry': entry} only %}
+ {% include "Entry/Card/_mass_checkbox.html.twig" with {'entry': entry} only %}
{% if app.user.config.displayThumbnails %}
{% endif %}
- {% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry, 'withMetadata': true, 'subClass': 'metadata'} only %}
+ {% include "Entry/Card/_content.html.twig" with {'entry': entry, 'withMetadata': true, 'subClass': 'metadata'} only %}
- {% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry, 'withPreview': true} only %}
+ {% include "Entry/Card/_content.html.twig" with {'entry': entry, 'withPreview': true} only %}
@@ -34,5 +34,5 @@
- {% include "@WallabagCore/Entry/_card_actions.html.twig" with {'entry': entry} only %}
+ {% include "Entry/_card_actions.html.twig" with {'entry': entry} only %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_feed_link.html.twig b/templates/Entry/_feed_link.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_feed_link.html.twig
rename to templates/Entry/_feed_link.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_reading_time.html.twig b/templates/Entry/_reading_time.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_reading_time.html.twig
rename to templates/Entry/_reading_time.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_tags.html.twig b/templates/Entry/_tags.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_tags.html.twig
rename to templates/Entry/_tags.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/_title.html.twig b/templates/Entry/_title.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/_title.html.twig
rename to templates/Entry/_title.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/edit.html.twig b/templates/Entry/edit.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/edit.html.twig
rename to templates/Entry/edit.html.twig
index a775d7107..c4e1cad00 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/edit.html.twig
+++ b/templates/Entry/edit.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig b/templates/Entry/entries.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig
rename to templates/Entry/entries.html.twig
index 443e4fb64..1a1d5376c 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig
+++ b/templates/Entry/entries.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block head %}
{{ parent() }}
@@ -15,7 +15,7 @@
{% if searchTerm is defined and searchTerm is not empty %}
{% set filter = searchTerm %}
{% endif %}
- {% include "@WallabagCore/Entry/_title.html.twig" with {'filter': filter} %}
+ {% include "Entry/_title.html.twig" with {'filter': filter} %}
{% endblock %}
{% block content %}
@@ -36,7 +36,7 @@
library_add_check
{% endif %}
{% if app.user.config.feedToken %}
- {% include "@WallabagCore/Entry/_feed_link.html.twig" %}
+ {% include "Entry/_feed_link.html.twig" %}
{% endif %}
{% if current_route == 'search' %}{% endif %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig b/templates/Entry/entries.xml.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig
rename to templates/Entry/entries.xml.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig b/templates/Entry/entry.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig
rename to templates/Entry/entry.html.twig
index 59a3cf62e..c90df307a 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig
+++ b/templates/Entry/entry.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ entry.title|striptags|default('entry.default_title'|trans)|raw }} ({{ entry.domainName|removeWww }}){% endblock %}
@@ -240,7 +240,7 @@
- {% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}
+ {% include "Entry/_reading_time.html.twig" with {'entry': entry} only %}
today
@@ -281,11 +281,11 @@
{% endif %}
- {% include "@WallabagCore/Entry/_tags.html.twig" with {'tags': entry.tags, 'entryId': entry.id, 'withRemove': true} only %}
+ {% include "Entry/_tags.html.twig" with {'tags': entry.tags, 'entryId': entry.id, 'withRemove': true} only %}
- {{ render(controller('Wallabag\\CoreBundle\\Controller\\TagController::addTagFormAction', {'id': entry.id})) }}
+ {{ render(controller('App\\Controller\\TagController::addTagFormAction', {'id': entry.id})) }}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig b/templates/Entry/new.html.twig
similarity index 68%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig
rename to templates/Entry/new.html.twig
index 0eff3a11d..af5666a06 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig
+++ b/templates/Entry/new.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/new_form.html.twig b/templates/Entry/new_form.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/new_form.html.twig
rename to templates/Entry/new_form.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/search_form.html.twig b/templates/Entry/search_form.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/search_form.html.twig
rename to templates/Entry/search_form.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/share.html.twig b/templates/Entry/share.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Entry/share.html.twig
rename to templates/Entry/share.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Exception/error.html.twig b/templates/Exception/error.html.twig
similarity index 95%
rename from src/Wallabag/CoreBundle/Resources/views/Exception/error.html.twig
rename to templates/Exception/error.html.twig
index 3155e0057..bbda97737 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Exception/error.html.twig
+++ b/templates/Exception/error.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'error.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/edit.html.twig b/templates/IgnoreOriginInstanceRule/edit.html.twig
similarity index 99%
rename from src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/edit.html.twig
rename to templates/IgnoreOriginInstanceRule/edit.html.twig
index 1380bb90f..8b2183652 100644
--- a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/edit.html.twig
+++ b/templates/IgnoreOriginInstanceRule/edit.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/index.html.twig b/templates/IgnoreOriginInstanceRule/index.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/index.html.twig
rename to templates/IgnoreOriginInstanceRule/index.html.twig
index 420a3793a..4e5f7187e 100644
--- a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/index.html.twig
+++ b/templates/IgnoreOriginInstanceRule/index.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/new.html.twig b/templates/IgnoreOriginInstanceRule/new.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/new.html.twig
rename to templates/IgnoreOriginInstanceRule/new.html.twig
index b33e04195..f30672853 100644
--- a/src/Wallabag/CoreBundle/Resources/views/IgnoreOriginInstanceRule/new.html.twig
+++ b/templates/IgnoreOriginInstanceRule/new.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/_information.html.twig b/templates/Import/_information.html.twig
similarity index 100%
rename from src/Wallabag/ImportBundle/Resources/views/Import/_information.html.twig
rename to templates/Import/_information.html.twig
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig b/templates/Import/check_queue.html.twig
similarity index 100%
rename from src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig
rename to templates/Import/check_queue.html.twig
diff --git a/src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig b/templates/Import/chrome.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig
rename to templates/Import/chrome.html.twig
index 331251046..f97aff670 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig
+++ b/templates/Import/chrome.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.chrome.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans|raw }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Delicious/index.html.twig b/templates/Import/delicious.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Delicious/index.html.twig
rename to templates/Import/delicious.html.twig
index 8e5741c45..445e1aa6e 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Delicious/index.html.twig
+++ b/templates/Import/delicious.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.delicious.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Elcurator/index.html.twig b/templates/Import/elcurator.html.twig
similarity index 55%
rename from src/Wallabag/ImportBundle/Resources/views/Elcurator/index.html.twig
rename to templates/Import/elcurator.html.twig
index 2d950c95c..ccd287787 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Elcurator/index.html.twig
+++ b/templates/Import/elcurator.html.twig
@@ -1,3 +1,3 @@
-{% extends "@WallabagImport/WallabagV1/index.html.twig" %}
+{% extends "Import/wallabagV1.html.twig" %}
{% block title %}{{ 'import.elcurator.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig b/templates/Import/firefox.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig
rename to templates/Import/firefox.html.twig
index e262da8a6..f16604fe3 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig
+++ b/templates/Import/firefox.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.firefox.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans|raw }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig b/templates/Import/index.html.twig
similarity index 77%
rename from src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig
rename to templates/Import/index.html.twig
index 6903a5fd4..a82e30a4b 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig
+++ b/templates/Import/index.html.twig
@@ -1,9 +1,9 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.page_title'|trans }}{% endblock %}
{% block messages %}
- {{ render(controller('Wallabag\\ImportBundle\\Controller\\ImportController::checkQueueAction')) }}
+ {{ render(controller('App\\Controller\\Import\\ImportController::checkQueueAction')) }}
{{ parent() }}
{% endblock %}
@@ -12,7 +12,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ 'import.page_description'|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig b/templates/Import/instapaper.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig
rename to templates/Import/instapaper.html.twig
index 38f5eeda6..4fdc5ed96 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig
+++ b/templates/Import/instapaper.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.instapaper.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Pinboard/index.html.twig b/templates/Import/pinboard.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Pinboard/index.html.twig
rename to templates/Import/pinboard.html.twig
index 9c79e088c..458a089f4 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Pinboard/index.html.twig
+++ b/templates/Import/pinboard.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.pinboard.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig b/templates/Import/pocket.html.twig
similarity index 92%
rename from src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig
rename to templates/Import/pocket.html.twig
index 781b873e1..11eda98a9 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig
+++ b/templates/Import/pocket.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.pocket.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{% if not has_consumer_key %}
diff --git a/src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig b/templates/Import/readability.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig
rename to templates/Import/readability.html.twig
index 70eceb103..12831e1bf 100644
--- a/src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig
+++ b/templates/Import/readability.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.readability.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig b/templates/Import/wallabagV1.html.twig
similarity index 93%
rename from src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig
rename to templates/Import/wallabagV1.html.twig
index 6e0598afa..d9a87a73c 100644
--- a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig
+++ b/templates/Import/wallabagV1.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'import.wallabag_v1.page_title'|trans }}{% endblock %}
@@ -6,7 +6,7 @@
- {% include '@WallabagImport/Import/_information.html.twig' %}
+ {% include 'Import/_information.html.twig' %}
{{ import.description|trans }}
diff --git a/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig b/templates/Import/wallabagV2.html.twig
similarity index 56%
rename from src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig
rename to templates/Import/wallabagV2.html.twig
index 2521578c8..3faa42eff 100644
--- a/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig
+++ b/templates/Import/wallabagV2.html.twig
@@ -1,3 +1,3 @@
-{% extends "@WallabagImport/WallabagV1/index.html.twig" %}
+{% extends "Import/wallabagV1.html.twig" %}
{% block title %}{{ 'import.wallabag_v2.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Mail/forgotPassword.txt.twig b/templates/Mail/forgotPassword.txt.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Mail/forgotPassword.txt.twig
rename to templates/Mail/forgotPassword.txt.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/README.md b/templates/README.md
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/README.md
rename to templates/README.md
diff --git a/src/Wallabag/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig b/templates/Resetting/passwordAlreadyRequested.html.twig
similarity index 100%
rename from src/Wallabag/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig
rename to templates/Resetting/passwordAlreadyRequested.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/edit.html.twig b/templates/SiteCredential/edit.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/SiteCredential/edit.html.twig
rename to templates/SiteCredential/edit.html.twig
index cd9352c07..aec6f9480 100644
--- a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/edit.html.twig
+++ b/templates/SiteCredential/edit.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/index.html.twig b/templates/SiteCredential/index.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/SiteCredential/index.html.twig
rename to templates/SiteCredential/index.html.twig
index f3925f47e..a85118a5a 100644
--- a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/index.html.twig
+++ b/templates/SiteCredential/index.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/new.html.twig b/templates/SiteCredential/new.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/SiteCredential/new.html.twig
rename to templates/SiteCredential/new.html.twig
index 5d2db1653..6e92e8053 100644
--- a/src/Wallabag/CoreBundle/Resources/views/SiteCredential/new.html.twig
+++ b/templates/SiteCredential/new.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Static/_bookmarklet.html.twig b/templates/Static/_bookmarklet.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Static/_bookmarklet.html.twig
rename to templates/Static/_bookmarklet.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig b/templates/Static/about.html.twig
similarity index 99%
rename from src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig
rename to templates/Static/about.html.twig
index 2e2e987c7..d3ce774a9 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig
+++ b/templates/Static/about.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'about.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Static/howto.html.twig b/templates/Static/howto.html.twig
similarity index 98%
rename from src/Wallabag/CoreBundle/Resources/views/Static/howto.html.twig
rename to templates/Static/howto.html.twig
index 5b53aa0c8..c86578076 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Static/howto.html.twig
+++ b/templates/Static/howto.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'howto.page_title'|trans }}{% endblock %}
@@ -46,7 +46,7 @@
{{ 'howto.top_menu.bookmarklet'|trans }}
{{ 'howto.bookmarklet.description'|trans }}
- {% include '@WallabagCore/Static/_bookmarklet.html.twig' %}
+ {% include 'Static/_bookmarklet.html.twig' %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Static/quickstart.html.twig b/templates/Static/quickstart.html.twig
similarity index 99%
rename from src/Wallabag/CoreBundle/Resources/views/Static/quickstart.html.twig
rename to templates/Static/quickstart.html.twig
index 44bc4ede7..bc8f4c402 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Static/quickstart.html.twig
+++ b/templates/Static/quickstart.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Tag/new_form.html.twig b/templates/Tag/new_form.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/Tag/new_form.html.twig
rename to templates/Tag/new_form.html.twig
diff --git a/src/Wallabag/CoreBundle/Resources/views/Tag/tags.html.twig b/templates/Tag/tags.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/Tag/tags.html.twig
rename to templates/Tag/tags.html.twig
index ce4101ec7..85c9633e0 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Tag/tags.html.twig
+++ b/templates/Tag/tags.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'tag.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig b/templates/TwoFactor/email_auth_code.html.twig
similarity index 100%
rename from src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig
rename to templates/TwoFactor/email_auth_code.html.twig
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig b/templates/User/edit.html.twig
similarity index 98%
rename from src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig
rename to templates/User/edit.html.twig
index 07d99e766..1181c60bc 100644
--- a/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig
+++ b/templates/User/edit.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig b/templates/User/index.html.twig
similarity index 98%
rename from src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig
rename to templates/User/index.html.twig
index 434cc04ea..91ab41abd 100644
--- a/src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig
+++ b/templates/User/index.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig b/templates/User/new.html.twig
similarity index 98%
rename from src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig
rename to templates/User/new.html.twig
index 5915e8d3b..b997e67ae 100644
--- a/src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig
+++ b/templates/User/new.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/base.html.twig b/templates/base.html.twig
similarity index 99%
rename from src/Wallabag/CoreBundle/Resources/views/base.html.twig
rename to templates/base.html.twig
index 00e66482f..ec4fcf88c 100644
--- a/src/Wallabag/CoreBundle/Resources/views/base.html.twig
+++ b/templates/base.html.twig
@@ -48,7 +48,7 @@
{% endif %}
{% block scripts %}
-
+
{% endblock %}
diff --git a/templates/bundles/CraueConfigBundle/Settings/modify.html.twig b/templates/bundles/CraueConfigBundle/Settings/modify.html.twig
index b4f8a32d3..809c6dff1 100644
--- a/templates/bundles/CraueConfigBundle/Settings/modify.html.twig
+++ b/templates/bundles/CraueConfigBundle/Settings/modify.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'menu.left.internal_settings'|trans }}{% endblock %}
diff --git a/templates/bundles/FOSUserBundle/layout.html.twig b/templates/bundles/FOSUserBundle/layout.html.twig
index 937fd5cb0..c424f42ea 100644
--- a/templates/bundles/FOSUserBundle/layout.html.twig
+++ b/templates/bundles/FOSUserBundle/layout.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'security.login.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/layout.html.twig b/templates/layout.html.twig
similarity index 97%
rename from src/Wallabag/CoreBundle/Resources/views/layout.html.twig
rename to templates/layout.html.twig
index f1565f17b..fc3944006 100644
--- a/src/Wallabag/CoreBundle/Resources/views/layout.html.twig
+++ b/templates/layout.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/base.html.twig" %}
+{% extends "base.html.twig" %}
{% block css %}
{{ parent() }}
@@ -156,8 +156,8 @@
- {{ render(controller('Wallabag\\CoreBundle\\Controller\\EntryController::searchFormAction', {'currentRoute': current_route})) }}
- {{ render(controller('Wallabag\\CoreBundle\\Controller\\EntryController::addEntryFormAction')) }}
+ {{ render(controller('App\\Controller\\EntryController::searchFormAction', {'currentRoute': current_route})) }}
+ {{ render(controller('App\\Controller\\EntryController::addEntryFormAction')) }}
{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/manage.html.twig b/templates/manage.html.twig
similarity index 97%
rename from src/Wallabag/UserBundle/Resources/views/manage.html.twig
rename to templates/manage.html.twig
index 981e19aaa..74b8fd92b 100644
--- a/src/Wallabag/UserBundle/Resources/views/manage.html.twig
+++ b/templates/manage.html.twig
@@ -1,4 +1,4 @@
-{% extends "@WallabagCore/layout.html.twig" %}
+{% extends "layout.html.twig" %}
{% block title %}{{ 'user.manage.page_title'|trans }}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/screenshot.jpg b/templates/screenshot.jpg
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/screenshot.jpg
rename to templates/screenshot.jpg
diff --git a/tests/Wallabag/CoreBundle/Command/CleanDuplicatesCommandTest.php b/tests/Command/CleanDuplicatesCommandTest.php
similarity index 92%
rename from tests/Wallabag/CoreBundle/Command/CleanDuplicatesCommandTest.php
rename to tests/Command/CleanDuplicatesCommandTest.php
index d70466818..e4ea47504 100644
--- a/tests/Wallabag/CoreBundle/Command/CleanDuplicatesCommandTest.php
+++ b/tests/Command/CleanDuplicatesCommandTest.php
@@ -1,13 +1,13 @@
getRepository(Entry::class)->findAllByUrlAndUserId($url, $this->getLoggedInUserId());
$this->assertCount(1, $nbEntries);
- $query = $em->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.url = :url');
+ $query = $em->createQuery('DELETE FROM App\Entity\Entry e WHERE e.url = :url');
$query->setParameter('url', $url);
$query->execute();
}
diff --git a/tests/Wallabag/CoreBundle/Command/ExportCommandTest.php b/tests/Command/ExportCommandTest.php
similarity index 95%
rename from tests/Wallabag/CoreBundle/Command/ExportCommandTest.php
rename to tests/Command/ExportCommandTest.php
index abad7cf74..9a465bcb3 100644
--- a/tests/Wallabag/CoreBundle/Command/ExportCommandTest.php
+++ b/tests/Command/ExportCommandTest.php
@@ -1,11 +1,11 @@
assertSame($entry->getHashedUrl(), hash('sha1', $url));
- $query = $em->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.url = :url');
+ $query = $em->createQuery('DELETE FROM App\Entity\Entry e WHERE e.url = :url');
$query->setParameter('url', $url);
$query->execute();
}
diff --git a/tests/Wallabag/ImportBundle/Command/ImportCommandTest.php b/tests/Command/ImportCommandTest.php
similarity index 90%
rename from tests/Wallabag/ImportBundle/Command/ImportCommandTest.php
rename to tests/Command/ImportCommandTest.php
index a58abce9d..6eb2b3db7 100644
--- a/tests/Wallabag/ImportBundle/Command/ImportCommandTest.php
+++ b/tests/Command/ImportCommandTest.php
@@ -1,13 +1,13 @@
execute([
'username' => 'admin',
- 'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/Wallabag/ImportBundle/fixtures/wallabag-v2-read.json',
+ 'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/fixtures/wallabag-v2-read.json',
'--importer' => 'v2',
]);
@@ -83,7 +83,7 @@ class ImportCommandTest extends WallabagCoreTestCase
$tester = new CommandTester($command);
$tester->execute([
'username' => $this->getLoggedInUserId(),
- 'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/Wallabag/ImportBundle/fixtures/wallabag-v2-read.json',
+ 'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/fixtures/wallabag-v2-read.json',
'--useUserId' => true,
'--importer' => 'v2',
]);
diff --git a/tests/Wallabag/CoreBundle/Command/InstallCommandTest.php b/tests/Command/InstallCommandTest.php
similarity index 98%
rename from tests/Wallabag/CoreBundle/Command/InstallCommandTest.php
rename to tests/Command/InstallCommandTest.php
index 79487d6c1..3d024abdb 100644
--- a/tests/Wallabag/CoreBundle/Command/InstallCommandTest.php
+++ b/tests/Command/InstallCommandTest.php
@@ -1,7 +1,9 @@
getResponse()->getContent(), true);
- $this->assertSame($client->getContainer()->getParameter('wallabag_core.version'), $content);
+ $this->assertSame($client->getContainer()->getParameter('wallabag.version'), $content);
}
public function testGetInfo()
diff --git a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php b/tests/Controller/ConfigControllerTest.php
similarity index 99%
rename from tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php
rename to tests/Controller/ConfigControllerTest.php
index 03a7485df..be9f8709e 100644
--- a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php
+++ b/tests/Controller/ConfigControllerTest.php
@@ -1,20 +1,20 @@
getRepository(Entry::class)
->find($entry->getId());
- $this->assertNotSame($client->getContainer()->getParameter('wallabag_core.fetching_error_message'), $newContent->getContent());
+ $this->assertNotSame($client->getContainer()->getParameter('wallabag.fetching_error_message'), $newContent->getContent());
}
public function testEdit()
diff --git a/tests/Wallabag/CoreBundle/Controller/ExportControllerTest.php b/tests/Controller/ExportControllerTest.php
similarity index 99%
rename from tests/Wallabag/CoreBundle/Controller/ExportControllerTest.php
rename to tests/Controller/ExportControllerTest.php
index 8ed942020..d9d821bc4 100644
--- a/tests/Wallabag/CoreBundle/Controller/ExportControllerTest.php
+++ b/tests/Controller/ExportControllerTest.php
@@ -1,10 +1,10 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/chrome-bookmarks', 'Bookmarks');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/chrome-bookmarks', 'Bookmarks');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class ChromeControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/chrome');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/chrome-bookmarks', 'Bookmarks');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/chrome-bookmarks', 'Bookmarks');
$data = [
'upload_import_file[file]' => $file,
@@ -140,7 +140,7 @@ class ChromeControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/chrome');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/DeliciousControllerTest.php b/tests/Controller/Import/DeliciousControllerTest.php
similarity index 92%
rename from tests/Wallabag/ImportBundle/Controller/DeliciousControllerTest.php
rename to tests/Controller/Import/DeliciousControllerTest.php
index 1aa4d90af..9bf592470 100644
--- a/tests/Wallabag/ImportBundle/Controller/DeliciousControllerTest.php
+++ b/tests/Controller/Import/DeliciousControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious.json');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class DeliciousControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/delicious');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious.json');
$data = [
'upload_import_file[file]' => $file,
@@ -140,7 +140,7 @@ class DeliciousControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/delicious');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious-read.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/delicious_export.2021.02.06_21.10.json', 'delicious-read.json');
$data = [
'upload_import_file[file]' => $file,
@@ -185,7 +185,7 @@ class DeliciousControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/delicious');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/ElcuratorControllerTest.php b/tests/Controller/Import/ElcuratorControllerTest.php
similarity index 93%
rename from tests/Wallabag/ImportBundle/Controller/ElcuratorControllerTest.php
rename to tests/Controller/Import/ElcuratorControllerTest.php
index 38c872774..b7f36ba7d 100644
--- a/tests/Wallabag/ImportBundle/Controller/ElcuratorControllerTest.php
+++ b/tests/Controller/Import/ElcuratorControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/elcurator.json', 'elcurator.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/elcurator.json', 'elcurator.json');
$data = [
'upload_import_file[file]' => $file,
@@ -100,7 +100,7 @@ class ElcuratorControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/elcurator');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/elcurator.json', 'elcurator.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/elcurator.json', 'elcurator.json');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php b/tests/Controller/Import/FirefoxControllerTest.php
similarity index 93%
rename from tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
rename to tests/Controller/Import/FirefoxControllerTest.php
index 1c30d6b0a..08fa01eab 100644
--- a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
+++ b/tests/Controller/Import/FirefoxControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/firefox-bookmarks.json', 'Bookmarks');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/firefox-bookmarks.json', 'Bookmarks');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/firefox');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/firefox-bookmarks.json', 'Bookmarks');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/firefox-bookmarks.json', 'Bookmarks');
$data = [
'upload_import_file[file]' => $file,
@@ -154,7 +154,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/firefox');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/ImportControllerTest.php b/tests/Controller/Import/ImportControllerTest.php
similarity index 74%
rename from tests/Wallabag/ImportBundle/Controller/ImportControllerTest.php
rename to tests/Controller/Import/ImportControllerTest.php
index 06a2a2e21..009328cdf 100644
--- a/tests/Wallabag/ImportBundle/Controller/ImportControllerTest.php
+++ b/tests/Controller/Import/ImportControllerTest.php
@@ -1,8 +1,8 @@
getTestClient();
- $client->request('GET', '/import/');
+ $client->request('GET', '/import');
$this->assertSame(302, $client->getResponse()->getStatusCode());
$this->assertStringContainsString('login', $client->getResponse()->headers->get('location'));
@@ -21,7 +21,7 @@ class ImportControllerTest extends WallabagCoreTestCase
$this->logInAs('admin');
$client = $this->getTestClient();
- $crawler = $client->request('GET', '/import/');
+ $crawler = $client->request('GET', '/import');
$this->assertSame(200, $client->getResponse()->getStatusCode());
$this->assertSame(10, $crawler->filter('blockquote')->count());
diff --git a/tests/Wallabag/ImportBundle/Controller/InstapaperControllerTest.php b/tests/Controller/Import/InstapaperControllerTest.php
similarity index 93%
rename from tests/Wallabag/ImportBundle/Controller/InstapaperControllerTest.php
rename to tests/Controller/Import/InstapaperControllerTest.php
index c96941252..02d163dbf 100644
--- a/tests/Wallabag/ImportBundle/Controller/InstapaperControllerTest.php
+++ b/tests/Controller/Import/InstapaperControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/instapaper-export.csv', 'instapaper.csv');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/instapaper-export.csv', 'instapaper.csv');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class InstapaperControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/instapaper');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/instapaper-export.csv', 'instapaper.csv');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/instapaper-export.csv', 'instapaper.csv');
$data = [
'upload_import_file[file]' => $file,
@@ -153,7 +153,7 @@ class InstapaperControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/instapaper');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/instapaper-export.csv', 'instapaper-read.csv');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/instapaper-export.csv', 'instapaper-read.csv');
$data = [
'upload_import_file[file]' => $file,
@@ -198,7 +198,7 @@ class InstapaperControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/instapaper');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php b/tests/Controller/Import/PinboardControllerTest.php
similarity index 93%
rename from tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
rename to tests/Controller/Import/PinboardControllerTest.php
index 833061fe8..fb9768647 100644
--- a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
+++ b/tests/Controller/Import/PinboardControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/pinboard_export', 'pinboard.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/pinboard_export', 'pinboard.json');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/pinboard');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/pinboard_export', 'pinboard.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/pinboard_export', 'pinboard.json');
$data = [
'upload_import_file[file]' => $file,
@@ -145,7 +145,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/pinboard');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/pinboard_export', 'pinboard-read.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/pinboard_export', 'pinboard-read.json');
$data = [
'upload_import_file[file]' => $file,
@@ -192,7 +192,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/pinboard');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/PocketControllerTest.php b/tests/Controller/Import/PocketControllerTest.php
similarity index 96%
rename from tests/Wallabag/ImportBundle/Controller/PocketControllerTest.php
rename to tests/Controller/Import/PocketControllerTest.php
index 858689ddd..d77837e7f 100644
--- a/tests/Wallabag/ImportBundle/Controller/PocketControllerTest.php
+++ b/tests/Controller/Import/PocketControllerTest.php
@@ -1,11 +1,11 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/readability.json', 'readability.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/readability.json', 'readability.json');
$data = [
'upload_import_file[file]' => $file,
@@ -99,7 +99,7 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/readability');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/readability.json', 'readability.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/readability.json', 'readability.json');
$data = [
'upload_import_file[file]' => $file,
@@ -143,7 +143,7 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/readability');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/readability-read.json', 'readability-read.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/readability-read.json', 'readability-read.json');
$data = [
'upload_import_file[file]' => $file,
@@ -190,7 +190,7 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/readability');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php b/tests/Controller/Import/WallabagV1ControllerTest.php
similarity index 93%
rename from tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
rename to tests/Controller/Import/WallabagV1ControllerTest.php
index 328cbc71c..fea6202f2 100644
--- a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
+++ b/tests/Controller/Import/WallabagV1ControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/wallabag-v1.json', 'wallabag-v1.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/wallabag-v1.json', 'wallabag-v1.json');
$data = [
'upload_import_file[file]' => $file,
@@ -100,7 +100,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/wallabag-v1');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/wallabag-v1.json', 'wallabag-v1.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/wallabag-v1.json', 'wallabag-v1.json');
$data = [
'upload_import_file[file]' => $file,
@@ -144,7 +144,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/wallabag-v1');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/wallabag-v1-read.json', 'wallabag-v1-read.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/wallabag-v1-read.json', 'wallabag-v1-read.json');
$data = [
'upload_import_file[file]' => $file,
@@ -191,7 +191,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/wallabag-v1');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php b/tests/Controller/Import/WallabagV2ControllerTest.php
similarity index 94%
rename from tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
rename to tests/Controller/Import/WallabagV2ControllerTest.php
index c12b0b3e9..47107ad14 100644
--- a/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
+++ b/tests/Controller/Import/WallabagV2ControllerTest.php
@@ -1,13 +1,13 @@
filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/wallabag-v2.json', 'wallabag-v2.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/wallabag-v2.json', 'wallabag-v2.json');
$data = [
'upload_import_file[file]' => $file,
@@ -100,7 +100,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/wallabag-v2');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/wallabag-v2.json', 'wallabag-v2.json');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/wallabag-v2.json', 'wallabag-v2.json');
$data = [
'upload_import_file[file]' => $file,
@@ -166,7 +166,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
$crawler = $client->request('GET', '/import/wallabag-v2');
$form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
- $file = new UploadedFile(__DIR__ . '/../fixtures/test.txt', 'test.txt');
+ $file = new UploadedFile(__DIR__ . '/../../fixtures/test.txt', 'test.txt');
$data = [
'upload_import_file[file]' => $file,
diff --git a/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php b/tests/Controller/SecurityControllerTest.php
similarity index 95%
rename from tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
rename to tests/Controller/SecurityControllerTest.php
index cb33df278..63dc3f79b 100644
--- a/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
+++ b/tests/Controller/SecurityControllerTest.php
@@ -1,10 +1,10 @@
setPrimaryTable(['name' => 'entry']);
$metaClass->mapManyToMany([
'fieldName' => 'tags',
diff --git a/tests/Wallabag/UserBundle/EventListener/AuthenticationFailureListenerTest.php b/tests/EventListener/AuthenticationFailureListenerTest.php
similarity index 94%
rename from tests/Wallabag/UserBundle/EventListener/AuthenticationFailureListenerTest.php
rename to tests/EventListener/AuthenticationFailureListenerTest.php
index 519039faf..5127a6375 100644
--- a/tests/Wallabag/UserBundle/EventListener/AuthenticationFailureListenerTest.php
+++ b/tests/EventListener/AuthenticationFailureListenerTest.php
@@ -1,7 +1,8 @@
twig = new Environment(new ArrayLoader(['@WallabagUser/TwoFactor/email_auth_code.html.twig' => $twigTemplate]));
+ $this->twig = new Environment(new ArrayLoader(['TwoFactor/email_auth_code.html.twig' => $twigTemplate]));
}
public function testSendEmail()
diff --git a/tests/Wallabag/CoreBundle/ParamConverter/UsernameFeedTokenConverterTest.php b/tests/ParamConverter/UsernameFeedTokenConverterTest.php
similarity index 97%
rename from tests/Wallabag/CoreBundle/ParamConverter/UsernameFeedTokenConverterTest.php
rename to tests/ParamConverter/UsernameFeedTokenConverterTest.php
index 9c7a41731..924b8fea0 100644
--- a/tests/Wallabag/CoreBundle/ParamConverter/UsernameFeedTokenConverterTest.php
+++ b/tests/ParamConverter/UsernameFeedTokenConverterTest.php
@@ -1,7 +1,10 @@
handle($request);
-$response->send();
-$kernel->terminate($request, $response);
diff --git a/web/app_dev.php b/web/app_dev.php
deleted file mode 100644
index 57e1a433f..000000000
--- a/web/app_dev.php
+++ /dev/null
@@ -1,28 +0,0 @@
-handle($request);
-$response->send();
-$kernel->terminate($request, $response);
diff --git a/web/wallassets/public.css.map b/web/wallassets/public.css.map
deleted file mode 100644
index f8ba6c149..000000000
--- a/web/wallassets/public.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"public.css","mappings":"AAAA,2YAEA,QA8EE,UACA,SACA,eACA,wBACA,+EAGF,aAWE,MAGF,aACE,cAGF,WAEE,yDAGF,UAIE,aACA,OAGF,wBACE,iBACA,MAKF,qBACE,WACA,oBACA,gBACA,yBACA,mBACA,mBAGF,eAME,cACA,mEAGF,eAME,gBACA,IAGF,eACE,IAGF,eACE,OAGF,eAEE,OAGF,eAEE,GAGF,mBACE,UAGF,gBAEE,MAGF,iBAEE,GAGF,UACE,0BACA,kBAGF,SAEE,YAGF,iBAIE,OAGF,mBAEE,IAGF,mBACE,gBACA,kCAGF,oBAEE,mCAGF,gBAEE,cAGF,cAEE,YACA,MAGF,cACE,QAGF,oBACE,YAGF,iBACE,6BACA,kBACA,kBACA,mBACA,gBACA,iBAGF,wBACE,eACA,kBACA,yBAGF,WACE,kBACA,KAGF,aACE,YACA,mBACA,eACA,QAGF,QACE,mBAGF,aACE,gBACA,kBACA,eACA,QAGF,uBACE,IAGF,aACE,WACA,kBACA,qBACA,eACA,UACA,OAGF,cACE,IAGF,cACE,OAGF,UACE,cACA,gBACA,WACA,iBACA,uBACA,mBACA,iBACA,kBACA,OAGF,kBACE,kBACA,KAGF,qBACE,aACA,6BACA,WACA,YACA,+BACA,gBACA,cACA,UAGF,cACE,kBACA,qBACA,yBACA,YACA,UACA,uBACA,MAGF,qBACE,cACA,+BACA,eACA,gBACA,yBACA,cACA,aAGF,iBAEE,kBAGF,eAEE,WACA,CANA,iBAGF,eAEE,WACA,OAGF,wBACE,kBACA,WACA,OAGF,aAEE,gBACA,UAGF,wBACE,gBACA,mBACA,kCACA,gBACA,0BAGF,yBACE,OAGF,iBACE,mBACA,QAGF,iBACE,UAGF,aACE,QAGF,iBACE,YAGF,iBACE,0BAKF,+BACE,aAEE,2BAIJ,WACE,qBACE,oBACA,QAGF,eACE,QAGF,gBACE,kBACA,kBACA,iBACA,E","sources":["webpack://wallabag/./app/Resources/static/themes/_global/share.scss"],"sourcesContent":["/* -------------------------- Reset ------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nb,\nu,\ni,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n vertical-align: baseline;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote::before,\nblockquote::after,\nq::before,\nq::after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n/* -------------------------- General properties ------------------- */\n\nbody {\n background-color: white;\n color: #444;\n font-family: Georgia;\n line-height: 1.7;\n -ms-content-zooming: none;\n margin-bottom: 64px;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 600;\n margin: 0.2em 0;\n}\n\narticle h1,\narticle h2,\narticle h3,\narticle h4,\narticle h5,\narticle h6 {\n text-align: left;\n line-height: 1.3;\n}\n\nh1 {\n font-size: 1.4em;\n}\n\nh2 {\n font-size: 1.3em;\n}\n\nh3,\nh4 {\n font-size: 1.2em;\n}\n\nh5,\nh6 {\n font-size: 1.1em;\n}\n\np {\n margin-bottom: 0.75em;\n}\n\nb,\nstrong {\n font-weight: bold;\n}\n\ni,\nem {\n font-style: italic;\n}\n\na {\n color: #444;\n text-decoration: underline;\n}\n\na:active,\na:hover {\n outline: 0;\n}\n\np,\nul,\nol,\ndl {\n margin: 0 0 1.75em;\n}\n\nul,\nol {\n padding-left: 1.25em;\n}\n\nli {\n padding-bottom: 0.2em;\n line-height: 1.6;\n}\n\nli p:last-child,\nli li:last-child {\n margin-bottom: -0.2em;\n}\n\nul li:last-child,\nol li:last-child {\n padding-bottom: 0;\n}\n\niframe,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\nmark {\n padding: 0 0.2em;\n}\n\nmark a {\n text-decoration: none;\n}\n\nblockquote {\n font-style: italic;\n border-left: 0.25em solid black;\n margin-left: -20px;\n padding-left: 17px;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n\nblockquote cite {\n text-transform: uppercase;\n font-size: 0.8em;\n font-style: normal;\n}\n\nblockquote cite::before {\n content: \"—\";\n margin-right: 0.5em;\n}\n\nimg {\n display: block;\n height: auto;\n margin-bottom: 0.5em;\n max-width: 100%;\n}\n\nfigure {\n margin: 0;\n}\n\nfigure figcaption {\n display: block;\n margin-top: 0.3em;\n font-style: italic;\n font-size: 0.8em;\n}\n\nbutton {\n display: none !important;\n}\n\nhr {\n display: block;\n height: 1px;\n border: solid #666;\n border-width: 1px 0 0;\n margin: 1.6em 0;\n padding: 0;\n}\n\nsmall {\n font-size: 0.7em;\n}\n\ndl {\n margin: 1.6em 0;\n}\n\ndl dt {\n float: left;\n width: 11.25em;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n margin-bottom: 1em;\n}\n\ndl dd {\n margin-left: 12.5em;\n margin-bottom: 1em;\n}\n\npre {\n box-sizing: border-box;\n margin: 4em 0;\n border: 0.0625em solid #efefef;\n width: 100%;\n padding: 1em;\n font-family: Consolas, monospace;\n white-space: pre;\n overflow: auto;\n}\n\npre code {\n font-size: 0.8em;\n line-height: 1.6em;\n white-space: pre-wrap;\n background: transparent;\n border: none;\n padding: 0;\n vertical-align: inherit;\n}\n\ncode {\n padding: 0.125em 0.375em;\n margin: 0 0.2em;\n font-family: Consolas, monospace;\n font-size: 0.8em;\n white-space: pre;\n border: 1px solid lightgray;\n overflow: auto;\n}\n\naudio,\nvideo {\n max-width: 43.75em;\n}\n\n::selection,\nmark {\n background: #666;\n color: white;\n}\n\ntable {\n border-collapse: collapse;\n margin-bottom: 2em;\n width: 100%;\n}\n\nth,\ntd {\n padding: 0.25em;\n text-align: left;\n}\n\nthead tr {\n text-transform: uppercase;\n font-size: 0.85em;\n letter-spacing: 1px;\n font-family: \"Segoe UI\", sans-serif;\n font-weight: 600;\n}\n\ntbody tr:nth-child(2n+1) {\n background: rgb(0 0 0 / 10%);\n}\n\ntbody {\n border: solid #999;\n border-width: 1px 0;\n}\n\nfigure {\n text-align: center;\n}\n\nfigure > * {\n margin: 0 auto;\n}\n\nheader {\n text-align: center;\n}\n\n.shared-by {\n margin-bottom: 1em;\n}\n\n/* --------------------- Responsive design ------------------------- */\n\n@media (max-width: 719px) {\n header > *:not(.preview),\n article {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 720px) {\n blockquote {\n margin-left: -1.4375em;\n padding-left: 1.25em;\n }\n\n header {\n margin-top: 32px;\n }\n\n .block {\n margin-left: auto;\n margin-right: auto;\n max-width: 43.75em;\n padding: 0 1.25em;\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index 47f4551e1..7948a1a08 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -2,7 +2,7 @@ const path = require('path');
function buildConfig(options) {
const env = options.prod ? 'prod' : 'dev';
- return require(path.resolve(__dirname, `app/config/webpack/${env}.js`));
+ return require(path.resolve(__dirname, `scripts/webpack/${env}.js`));
}
module.exports = buildConfig;