diff --git a/.gitignore b/.gitignore index 3584996..f1799c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ resources/ -.hugo_build.lock \ No newline at end of file +.hugo_build.lock +public/ \ No newline at end of file diff --git a/public/Mieten/index.html b/public/Mieten/index.html deleted file mode 100644 index a56d175..0000000 --- a/public/Mieten/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/products/ - - - - - - diff --git a/public/Verleih/index.html b/public/Verleih/index.html deleted file mode 100644 index a56d175..0000000 --- a/public/Verleih/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/products/ - - - - - - diff --git a/public/about-hugo/index.html b/public/about-hugo/index.html deleted file mode 100644 index e24beba..0000000 --- a/public/about-hugo/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/about/ - - - - - - diff --git a/public/about-us/index.html b/public/about-us/index.html deleted file mode 100644 index 5ad23f4..0000000 --- a/public/about-us/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/about/ - - - - - - diff --git a/public/about/index.html b/public/about/index.html deleted file mode 100644 index 73e2fe3..0000000 --- a/public/about/index.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Über mich - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Über mich

-
-
-
- - Fabian Ecke - -

Hi,

-ich bin Fabian Ecke und meine Leidenschaft ist es tolle Events mit passender Musik und professionellem Service für Sie zum Leben zu erwecken. -
-

Mein Weg

-Die Begeisterung für Musik und Technik liegt in meiner Familie. -Mein Vater ist schon seit vielen Jahren selbst als DJ und Veranstaltungsdienstleister unterwegs und hat mich zum ein oder anderen Aufbau mitgenommen. So habe ich als Kind schon mit dem Lichtpult gespielt oder Techniker vor Ort über ihren Job ausgefragt.
-Mit 12 Jahren habe ich angefangen im kleinen Rahmen bei Freunden oder Familienfeiern selbst aufzulegen und Technik (mit Unterstützung) aufzubauen. Bei diesen Feiern lernte ich viele Genres kennen, entwickelte ein Gefühl für der Stimmung angepasste Musikauswahl und auch, dass keine Feier wie die andere ist. Nicht nur eine volle Tanzfläche ist wichtig, sondern auch ein schöner technischer Aufbau und die Zufriedenheit derjenigen, die auch nur zuhören, anstatt zu tanzen. -Mit der Zeit erhielt ich auch Anfragen, die über den Bekanntenkreis hinaus gingen. So fing ich mit 18 Jahren an mich weiter zu entwickeln und gründete mein eigenes Gewerbe. Mittlerweile begleite ich nun eigenständig unterschiedlichste Events, wie Vereinsfeiern, Hochzeiten oder Abschlussbälle. Weiterhin arbeite ich auch bei größeren Veranstaltungen, wie dem jährlichen Pfingsttanz in Ahlsdorf vor ca. 1000 Gästen, mit meinem Vater zusammen, um einen gelungenen Abend zu gestalten. -

Zum aktuellen Zeitpunkt

-Aktuell studiere ich Elektrotechnik in Jena. Gleichzeitig habe ich aber auch ein großes Interesse an Themen wie Brandschutz und bin deshalb in einer Freiwilligen Feuerwehr aktiv. Dies hilft mir dabei auch eigenständig private oder größere Veranstaltungen zu betreuen. Dabei werden meine technischen Aufbauten anspruchsvoller, aber auch gezielt schlicht, wenn es so gewollt ist. -

Mein Interesse an Veranstaltungstechnik und die Leidenschaft für Musik treiben mich weiterhin an, für Sie ein gelungenes Event zu ermöglichen.

-
-
-
- -
- - - \ No newline at end of file diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png deleted file mode 100644 index ceda9ff..0000000 Binary files a/public/android-chrome-192x192.png and /dev/null differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png deleted file mode 100644 index e95b543..0000000 Binary files a/public/android-chrome-512x512.png and /dev/null differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png deleted file mode 100644 index 0373301..0000000 Binary files a/public/apple-touch-icon.png and /dev/null differ diff --git a/public/articles/index.html b/public/articles/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/articles/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/blog/abiballmlg26-kopie/1.jpg b/public/blog/abiballmlg26-kopie/1.jpg deleted file mode 100644 index c7fd567..0000000 Binary files a/public/blog/abiballmlg26-kopie/1.jpg and /dev/null differ diff --git a/public/blog/abiballmlg26-kopie/2.mp4 b/public/blog/abiballmlg26-kopie/2.mp4 deleted file mode 100644 index 5e08b53..0000000 Binary files a/public/blog/abiballmlg26-kopie/2.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26-kopie/3.mp4 b/public/blog/abiballmlg26-kopie/3.mp4 deleted file mode 100644 index cb9e4d0..0000000 Binary files a/public/blog/abiballmlg26-kopie/3.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26-kopie/4.mp4 b/public/blog/abiballmlg26-kopie/4.mp4 deleted file mode 100644 index 20130c9..0000000 Binary files a/public/blog/abiballmlg26-kopie/4.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26-kopie/index.html b/public/blog/abiballmlg26-kopie/index.html deleted file mode 100644 index 733e48f..0000000 --- a/public/blog/abiballmlg26-kopie/index.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Abiball Martin-Luther-Gymnasium 2026 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Abiball Martin-Luther-Gymnasium 2026

-
-
-
-

- 04.07.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

🎉 Direkt zum Start in die Sommerferien durften wir den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleiten 🎉
-Dabei im Einsatz:

-
    -
  • -6x 7R Beams
  • -
  • -16x LED Spots
  • -
  • -2x 40m LED Lichterkette als Ambiente-Beleuchtung
  • -
  • -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals -…und weitere Technik
  • -
-

Hier ein paar Eindrücke von der Veranstaltung: -Sicht von der Bühne - - -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/abiballmlg26-kopie/thumb.webp b/public/blog/abiballmlg26-kopie/thumb.webp deleted file mode 100644 index 32186e8..0000000 Binary files a/public/blog/abiballmlg26-kopie/thumb.webp and /dev/null differ diff --git a/public/blog/abiballmlg26/1.jpg b/public/blog/abiballmlg26/1.jpg deleted file mode 100644 index c7fd567..0000000 Binary files a/public/blog/abiballmlg26/1.jpg and /dev/null differ diff --git a/public/blog/abiballmlg26/2.jpg b/public/blog/abiballmlg26/2.jpg deleted file mode 100644 index 124d469..0000000 Binary files a/public/blog/abiballmlg26/2.jpg and /dev/null differ diff --git a/public/blog/abiballmlg26/2.mp4 b/public/blog/abiballmlg26/2.mp4 deleted file mode 100644 index 5e08b53..0000000 Binary files a/public/blog/abiballmlg26/2.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26/3.mp4 b/public/blog/abiballmlg26/3.mp4 deleted file mode 100644 index cb9e4d0..0000000 Binary files a/public/blog/abiballmlg26/3.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26/4.mp4 b/public/blog/abiballmlg26/4.mp4 deleted file mode 100644 index 20130c9..0000000 Binary files a/public/blog/abiballmlg26/4.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26/freed-from-desire.mp4 b/public/blog/abiballmlg26/freed-from-desire.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/abiballmlg26/freed-from-desire.mp4 and /dev/null differ diff --git a/public/blog/abiballmlg26/index.html b/public/blog/abiballmlg26/index.html deleted file mode 100644 index bed080c..0000000 --- a/public/blog/abiballmlg26/index.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Abiball Martin-Luther-Gymnasium 2026 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Abiball Martin-Luther-Gymnasium 2026

-
-
-
-

- 04.07.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

🎉 Direkt zum Start in die Sommerferien dufte ich mit DJ Ecke den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleiten 🎉

-
-

Dabei im Einsatz:

-
    -
  • -6x Beam 7R Moving Heads
  • -
  • -16x LED Spots
  • -
  • -2x 40m LED Lichterkette als Ambiente-Beleuchtung
  • -
  • -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals
  • -
  • …und weitere Technik
  • -
-
-

Hier ein paar Eindrücke von der Veranstaltung: -Sicht von der Bühne - - -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/abiballmlg26/thumb.webp b/public/blog/abiballmlg26/thumb.webp deleted file mode 100644 index 32186e8..0000000 Binary files a/public/blog/abiballmlg26/thumb.webp and /dev/null differ diff --git a/public/blog/articles/index.html b/public/blog/articles/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/articles/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/blog/index.html b/public/blog/blog/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/blog/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/docs/index.html b/public/blog/docs/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/docs/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/emoji-support/index.html b/public/blog/emoji-support/index.html deleted file mode 100644 index a32a511..0000000 --- a/public/blog/emoji-support/index.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf mit DJ Ecke 2.0 wieder ordentliche Partystimmung auf🥳
-Dabei im Einsatz:

-
    -
  • -6x 7R Beams
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior -…und weitere Technik
  • -
-

So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung:

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/events/abiballmlg26/1.jpg b/public/blog/events/abiballmlg26/1.jpg deleted file mode 100644 index c7fd567..0000000 Binary files a/public/blog/events/abiballmlg26/1.jpg and /dev/null differ diff --git a/public/blog/events/abiballmlg26/2.mp4 b/public/blog/events/abiballmlg26/2.mp4 deleted file mode 100644 index 5e08b53..0000000 Binary files a/public/blog/events/abiballmlg26/2.mp4 and /dev/null differ diff --git a/public/blog/events/abiballmlg26/3.mp4 b/public/blog/events/abiballmlg26/3.mp4 deleted file mode 100644 index cb9e4d0..0000000 Binary files a/public/blog/events/abiballmlg26/3.mp4 and /dev/null differ diff --git a/public/blog/events/abiballmlg26/4.mp4 b/public/blog/events/abiballmlg26/4.mp4 deleted file mode 100644 index 20130c9..0000000 Binary files a/public/blog/events/abiballmlg26/4.mp4 and /dev/null differ diff --git a/public/blog/events/abiballmlg26/index.html b/public/blog/events/abiballmlg26/index.html deleted file mode 100644 index fa09cab..0000000 --- a/public/blog/events/abiballmlg26/index.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Abiball Martin-Luther-Gymnasium 2026 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Abiball Martin-Luther-Gymnasium 2026

-
-
-
-

- 04.07.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

🎉 Direkt zum Start in die Sommerferien haben DJ Torsten Ecke und ich (DJ und Eventservice Fabian Ecke) den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleitet 🎉

-
-

Dabei im Einsatz:

-
    -
  • -6x Beam 7R Moving Heads
  • -
  • -2x Stairville Hazer
  • -
  • -16x LED Spots
  • -
  • -2x 40m LED Lichterkette als Ambiente-Beleuchtung
  • -
  • -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals
  • -
  • …und weitere Technik
  • -
-
-

Hier ein paar Eindrücke von der Veranstaltung: -Sicht von der Bühne - - -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/events/abiballmlg26/thumb.webp b/public/blog/events/abiballmlg26/thumb.webp deleted file mode 100644 index 32186e8..0000000 Binary files a/public/blog/events/abiballmlg26/thumb.webp and /dev/null differ diff --git a/public/blog/events/index.html b/public/blog/events/index.html deleted file mode 100644 index 7b15aef..0000000 --- a/public/blog/events/index.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Beiträge - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
- - - -
- -
- - - \ No newline at end of file diff --git a/public/blog/events/index.xml b/public/blog/events/index.xml deleted file mode 100644 index be2f3fd..0000000 --- a/public/blog/events/index.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - Beiträge on DJ & Eventservice Fabian Ecke - http://localhost:1313/blog/events/ - Recent content in Beiträge on DJ & Eventservice Fabian Ecke - Hugo - de - Sat, 11 Jul 2026 00:00:00 +0000 - - - Reit- und Springturnier Klosterrode 2026 - http://localhost:1313/blog/events/springreitenklosterrode26/ - Sat, 11 Jul 2026 00:00:00 +0000 - http://localhost:1313/blog/events/springreitenklosterrode26/ - Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇 Dabei im Einsatz: -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer -1x Shure Beta 58A -1x Yamaha MG16/6FX Mischpult -1x dbx 166XL Gate & Kompressor für das Mikrofon …und weitere Technik Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. - - - Abiball Martin-Luther-Gymnasium 2026 - http://localhost:1313/blog/events/abiballmlg26/ - Sat, 04 Jul 2026 00:00:00 +0000 - http://localhost:1313/blog/events/abiballmlg26/ - 🎉 Direkt zum Start in die Sommerferien dufte ich mit DJ Ecke den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleiten 🎉 Dabei im Einsatz: -6x Beam 7R Moving Heads -16x LED Spots -2x 40m LED Lichterkette als Ambiente-Beleuchtung -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals …und weitere Technik Hier ein paar Eindrücke von der Veranstaltung: - - - Pfingstsonntag 2026 in Ahlsdorf - http://localhost:1313/blog/events/pfingsten26ahlsdorf/ - Sun, 24 May 2026 00:00:00 +0000 - http://localhost:1313/blog/events/pfingsten26ahlsdorf/ - Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder ordentliche Partystimmung auf🥳 Wir als DJ Ecke 2.0 - DJ Fabian Ecke (Junior) und DJ Ecke hatten viel Spaß dabei die Stimmung anzuheizen🔥 Dabei im Einsatz: -6x Beam 7R Moving Heads -2x GLP Wash Moving Heads -der neue Controller (Denon Prime 4+) von DJ Ecke Junior …und weitere Technik So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten. - - - diff --git a/public/blog/events/page/1/index.html b/public/blog/events/page/1/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/events/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/events/pfingsten26ahlsdorf/1.jpg b/public/blog/events/pfingsten26ahlsdorf/1.jpg deleted file mode 100644 index 4020a96..0000000 Binary files a/public/blog/events/pfingsten26ahlsdorf/1.jpg and /dev/null differ diff --git a/public/blog/events/pfingsten26ahlsdorf/2.jpg b/public/blog/events/pfingsten26ahlsdorf/2.jpg deleted file mode 100644 index 124d469..0000000 Binary files a/public/blog/events/pfingsten26ahlsdorf/2.jpg and /dev/null differ diff --git a/public/blog/events/pfingsten26ahlsdorf/freed-from-desire.mp4 b/public/blog/events/pfingsten26ahlsdorf/freed-from-desire.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/events/pfingsten26ahlsdorf/freed-from-desire.mp4 and /dev/null differ diff --git a/public/blog/events/pfingsten26ahlsdorf/index.html b/public/blog/events/pfingsten26ahlsdorf/index.html deleted file mode 100644 index 7668740..0000000 --- a/public/blog/events/pfingsten26ahlsdorf/index.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder Partystimmung auf🥳 -In Zusammenarbeit mit DJ Torsten Ecke konnten wir die Stimmung ordentlich aufheizen.

-
-

Dabei im Einsatz:

-
    -
  • -6x Beam 7R Moving Heads
  • -
  • -8x LED Spots
  • -
  • -2x Stairville Hazer
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior
  • -
  • …und weitere Technik
  • -
-
-

So konnten wir mit passender Musikauswahl und angepasster Beleuchtungstechnik unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung: -Sicht von der Bühne
-Showeinlage der Pfingsburschen -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/events/pfingsten26ahlsdorf/thumb.webp b/public/blog/events/pfingsten26ahlsdorf/thumb.webp deleted file mode 100644 index c88eae8..0000000 Binary files a/public/blog/events/pfingsten26ahlsdorf/thumb.webp and /dev/null differ diff --git a/public/blog/events/springreitenklosterrode26/1.webp b/public/blog/events/springreitenklosterrode26/1.webp deleted file mode 100644 index 57b2f64..0000000 Binary files a/public/blog/events/springreitenklosterrode26/1.webp and /dev/null differ diff --git a/public/blog/events/springreitenklosterrode26/2.webp b/public/blog/events/springreitenklosterrode26/2.webp deleted file mode 100644 index 3cbfe45..0000000 Binary files a/public/blog/events/springreitenklosterrode26/2.webp and /dev/null differ diff --git a/public/blog/events/springreitenklosterrode26/index.html b/public/blog/events/springreitenklosterrode26/index.html deleted file mode 100644 index 593d91a..0000000 --- a/public/blog/events/springreitenklosterrode26/index.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Reit- und Springturnier Klosterrode 2026 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Reit- und Springturnier Klosterrode 2026

-
-
-
-

- 11.07.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇

-
-

Dabei im Einsatz:

-
    -
  • -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes
  • -
  • -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer
  • -
  • -1x Shure Beta 58A Mikrofon
  • -
  • -1x Yamaha MG16/6FX Mischpult
  • -
  • -1x dbx 166XL Gate & Kompressor für das Mikrofon
  • -
  • …und weitere Technik
  • -
-
-

Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. Um Echos oder unnötig lange Kabelstrecken zu vermeiden wurden zwei fullrange Tops für Durchsagen an die Reiter am Richterwagen platziert. Diese spielten die Hintergrundmusik nur sehr leise ab, um weder Pferd noch Reiter zu irritieren. Die zwei Lautsprecher für das Publikum standen 30m vom Richterwagen entfernt und spielten die Musik etwas lauter ab, enthielten aber auch die Moderation der Richter. Diese wurden über eine lange Strom- und XLR-Leitung versorgt.

-
-

Hier ein paar Eindrücke von der Veranstaltung: -Aus Sicht der Zuschauer -Aus Sicht des Richterwagens

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/events/springreitenklosterrode26/thumb.webp b/public/blog/events/springreitenklosterrode26/thumb.webp deleted file mode 100644 index cda904d..0000000 Binary files a/public/blog/events/springreitenklosterrode26/thumb.webp and /dev/null differ diff --git a/public/blog/index.html b/public/blog/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/blog/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/blog/index.xml b/public/blog/index.xml deleted file mode 100644 index 3bbd6e8..0000000 --- a/public/blog/index.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - Beiträge on DJ & Eventservice Fabian Ecke - http://localhost:37149/blog/ - Recent content in Beiträge on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 20 Sep 2026 00:00:00 +0000 - - - Noch Technik für Ihre Party gesucht? - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Dekoration bestellt, Catering gebucht - doch etwas Beleuchtung für das Ambiente fehlt noch? Hier sind Sie dafür genau richtig! Auch wenn kein DJ nötig ist, können professionelle Lautsprecher-Technik oder Lichttechnik zu einer gelungenen Party-Atmosphäre beitragen. Hierfür biete ich zusammengestellte Technik-Pakete an, die unter der Kategorie “Verleih” zu finden sind. Gerne können Pakete auch individuell zusammengestellt werden. - - - Reit- und Springturnier Klosterrode 2026 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Sat, 11 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇 Dabei im Einsatz: -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer -1x Shure Beta 58A Mikrofon -1x Yamaha MG16/6FX Mischpult -1x dbx 166XL Gate & Kompressor für das Mikrofon …und weitere Technik Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. - - - Abiball Martin-Luther-Gymnasium 2026 - http://localhost:37149/blog/events/abiballmlg26/ - Sat, 04 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/abiballmlg26/ - 🎉 Direkt zum Start in die Sommerferien haben DJ Torsten Ecke und ich (DJ und Eventservice Fabian Ecke) den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleitet 🎉 Dabei im Einsatz: -6x Beam 7R Moving Heads -2x Stairville Hazer -16x LED Spots -2x 40m LED Lichterkette als Ambiente-Beleuchtung -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals …und weitere Technik Hier ein paar Eindrücke von der Veranstaltung: - - - Pfingstsonntag 2026 in Ahlsdorf - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Sun, 24 May 2026 00:00:00 +0000 - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder Partystimmung auf🥳 In Zusammenarbeit mit DJ Torsten Ecke konnten wir die Stimmung ordentlich aufheizen. Dabei im Einsatz: -6x Beam 7R Moving Heads -8x LED Spots -2x Stairville Hazer -2x GLP Wash Moving Heads -der neue Controller (Denon Prime 4+) von DJ Ecke Junior …und weitere Technik So konnten wir mit passender Musikauswahl und angepasster Beleuchtungstechnik unseren Beitrag leisten. Hier ein paar Eindrücke der Veranstaltung: - - - diff --git a/public/blog/markdown-syntax/index.html b/public/blog/markdown-syntax/index.html deleted file mode 100644 index d9697d5..0000000 --- a/public/blog/markdown-syntax/index.html +++ /dev/null @@ -1,412 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Neu entwickelter Absaug-Adapter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Neu entwickelter Absaug-Adapter

-
-
-
-

- 11.03.2019

- -

fte -

- - -
- - - themes - - syntax - -
- -
- - -

This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.

-

Headings

-

The following HTML <h1>—<h6> elements represent six levels of section headings. <h1> is the highest section level while <h6> is the lowest.

-

H1

-

H2

-

H3

-

H4

-
H5
-
H6
-

Paragraph

-

Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.

-

Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.

-

Blockquotes

-

The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.

-

Blockquote without attribution

-
-

Tiam, ad mint andaepu dandae nostion secatur sequo quae. -Note that you can use Markdown syntax within a blockquote.

-
-

Blockquote with attribution

-
-

Don’t communicate by sharing memory, share memory by communicating.
-— Rob Pike1

-
-

Tables

-

Tables aren’t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.

- - - - - - - - - - - - - - - - - -
NameAge
Bob27
Alice23
-

Inline Markdown within tables

- - - - - - - - - - - - - - - -
ItalicsBoldCode
italicsboldcode
-

Code Blocks

-

Code block with backticks

-
<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <title>Example HTML5 Document</title>
-</head>
-<body>
-  <p>Test</p>
-</body>
-</html>
-

Code block indented with four spaces

-
<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <title>Example HTML5 Document</title>
-</head>
-<body>
-  <p>Test</p>
-</body>
-</html>
-
-

Code block with Hugo’s internal highlight shortcode

-
<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <title>Example HTML5 Document</title>
-</head>
-<body>
-  <p>Test</p>
-</body>
-</html>
-

List Types

-

Ordered List

-
    -
  1. First item
  2. -
  3. Second item
  4. -
  5. Third item
  6. -
-

Unordered List

-
    -
  • List item
  • -
  • Another item
  • -
  • And another item
  • -
-

Nested list

-
    -
  • Fruit -
      -
    • Apple
    • -
    • Orange
    • -
    • Banana
    • -
    -
  • -
  • Dairy -
      -
    • Milk
    • -
    • Cheese
    • -
    -
  • -
-
-
-
    -
  1. -

    The above quote is excerpted from Rob Pike’s talk during Gopherfest, November 18, 2015. ↩︎

    -
  2. -
-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/math-typesetting/index.html b/public/blog/math-typesetting/index.html deleted file mode 100644 index a22e4dd..0000000 --- a/public/blog/math-typesetting/index.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Math Typesetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Math Typesetting

-
-
-
-

- 08.03.2019

- -

fte -

- - -
- - -

Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.

-

In this example we will be using KaTeX

-
    -
  • Create a partial under /layouts/partials/math.html
  • -
  • Within this partial reference the Auto-render Extension or host these scripts locally.
  • -
  • Include the partial in your templates like so:
  • -
-
{{ if or .Params.math .Site.Params.math }}
-{{ partial "math.html" . }}
-{{ end }}
-
    -
  • To enable KaTex globally set the parameter math to true in a project’s configuration
  • -
  • To enable KaTex on a per page basis include the parameter math: true in content files
  • -
-

Note: Use the online reference of Supported TeX Functions

- - - - - - - - -

Examples

- -

-Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\) -

- -

Block math: -$$ -\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } -$$

-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/migrate-from-jekyl/index.html b/public/blog/migrate-from-jekyl/index.html deleted file mode 100644 index b7a84bb..0000000 --- a/public/blog/migrate-from-jekyl/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/markdown-syntax/ - - - - - - diff --git a/public/blog/page/1/index.html b/public/blog/page/1/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/blog/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/blog/pfingsten-ahlsdorf26/index.html b/public/blog/pfingsten-ahlsdorf26/index.html deleted file mode 100644 index de5b816..0000000 --- a/public/blog/pfingsten-ahlsdorf26/index.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- - - -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf mit DJ Ecke 2.0 wieder ordentliche Partystimmung auf🥳
-Dabei im Einsatz:

-
    -
  • -6x 7R Beams
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior -…und weitere Technik
  • -
-

So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung:

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/pfingsten26ahlsdorf-kopie/1.jpg b/public/blog/pfingsten26ahlsdorf-kopie/1.jpg deleted file mode 100644 index 4020a96..0000000 Binary files a/public/blog/pfingsten26ahlsdorf-kopie/1.jpg and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf-kopie/2.jpg b/public/blog/pfingsten26ahlsdorf-kopie/2.jpg deleted file mode 100644 index 124d469..0000000 Binary files a/public/blog/pfingsten26ahlsdorf-kopie/2.jpg and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf-kopie/freed-from-desire.mp4 b/public/blog/pfingsten26ahlsdorf-kopie/freed-from-desire.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/pfingsten26ahlsdorf-kopie/freed-from-desire.mp4 and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf-kopie/index.html b/public/blog/pfingsten26ahlsdorf-kopie/index.html deleted file mode 100644 index 5418a58..0000000 --- a/public/blog/pfingsten26ahlsdorf-kopie/index.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf mit DJ Ecke 2.0 wieder ordentliche Partystimmung auf🥳
-Dabei im Einsatz:

-
    -
  • -6x 7R Beams
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior -…und weitere Technik
  • -
-

So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung: -Sicht von der Bühne -Showeinlage der Pfingsburschen -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/pfingsten26ahlsdorf-kopie/thumb.webp b/public/blog/pfingsten26ahlsdorf-kopie/thumb.webp deleted file mode 100644 index c88eae8..0000000 Binary files a/public/blog/pfingsten26ahlsdorf-kopie/thumb.webp and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/1.jpg b/public/blog/pfingsten26ahlsdorf/1.jpg deleted file mode 100644 index 4020a96..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/1.jpg and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/2.jpg b/public/blog/pfingsten26ahlsdorf/2.jpg deleted file mode 100644 index 124d469..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/2.jpg and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/3.mp4 b/public/blog/pfingsten26ahlsdorf/3.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/3.mp4 and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/freed from desire.mp4 b/public/blog/pfingsten26ahlsdorf/freed from desire.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/freed from desire.mp4 and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/freed-from-desire.mp4 b/public/blog/pfingsten26ahlsdorf/freed-from-desire.mp4 deleted file mode 100644 index 10299e0..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/freed-from-desire.mp4 and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/index.html b/public/blog/pfingsten26ahlsdorf/index.html deleted file mode 100644 index 7d46df3..0000000 --- a/public/blog/pfingsten26ahlsdorf/index.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder ordentliche Partystimmung auf🥳 -Wir als DJ Ecke 2.0 - DJ Fabian Ecke (Junior) und DJ Ecke hatten viel Spaß dabei die Stimmung anzuheizen🔥

-
-

Dabei im Einsatz:

-
    -
  • -6x Beam 7R Moving Heads
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior
  • -
  • …und weitere Technik
  • -
-
-

So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung: -Sicht von der Bühne
-Showeinlage der Pfingsburschen -

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/pfingsten26ahlsdorf/pfingsten-ahlsdorf26/index.html b/public/blog/pfingsten26ahlsdorf/pfingsten-ahlsdorf26/index.html deleted file mode 100644 index 41ec49c..0000000 --- a/public/blog/pfingsten26ahlsdorf/pfingsten-ahlsdorf26/index.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Pfingstsonntag 2026 in Ahlsdorf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Pfingstsonntag 2026 in Ahlsdorf

-
-
-
-

- 24.05.2026

- -

Fabian Ecke -

- - -
- -

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf mit DJ Ecke 2.0 wieder ordentliche Partystimmung auf🥳
-Dabei im Einsatz:

-
    -
  • -6x 7R Beams
  • -
  • -2x GLP Wash Moving Heads
  • -
  • -der neue Controller (Denon Prime 4+) von DJ Ecke Junior -…und weitere Technik
  • -
-

So konnten wir zur Party mit Musikauswahl und starkem Licht unseren Beitrag leisten.

-

Hier ein paar Eindrücke der Veranstaltung:

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/pfingsten26ahlsdorf/thumb.jpg b/public/blog/pfingsten26ahlsdorf/thumb.jpg deleted file mode 100644 index b85a700..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/thumb.jpg and /dev/null differ diff --git a/public/blog/pfingsten26ahlsdorf/thumb.webp b/public/blog/pfingsten26ahlsdorf/thumb.webp deleted file mode 100644 index c88eae8..0000000 Binary files a/public/blog/pfingsten26ahlsdorf/thumb.webp and /dev/null differ diff --git a/public/blog/placeholder-text/index.html b/public/blog/placeholder-text/index.html deleted file mode 100644 index 0eef9fa..0000000 --- a/public/blog/placeholder-text/index.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Placeholder Text - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Placeholder Text

-
-
-
-

- 09.03.2019

- -

fte -

- - -
- - -

Lorem est tota propiore conpellat pectoribus de pectora summo.

-

Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.

-
    -
  1. Exierant elisi ambit vivere dedere
  2. -
  3. Duce pollice
  4. -
  5. Eris modo
  6. -
  7. Spargitque ferrea quos palude
  8. -
-

Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.

-
    -
  1. Comas hunc haec pietate fetum procerum dixit
  2. -
  3. Post torum vates letum Tiresia
  4. -
  5. Flumen querellas
  6. -
  7. Arcanaque montibus omnes
  8. -
  9. Quidem et
  10. -
-

Vagus elidunt

-

-

The Van de Graaf Canon

-

Mane refeci capiebant unda mulcebat

-

Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. Faces illo pepulere tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.

-

Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.

-

Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel mitis temploque vocatus, inque alis, oculos nomen non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides parte.

- -
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/posts/index.html b/public/blog/posts/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/posts/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/rich-content/index.html b/public/blog/rich-content/index.html deleted file mode 100644 index 340073a..0000000 --- a/public/blog/rich-content/index.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Rich Content - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Rich Content

-
-
-
-

- 10.03.2019

- -

fte -

- - -
- - -

Hugo ships with several Built-in Shortcodes for rich content, along with a Privacy Config and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.

-

YouTube Privacy Enhanced Shortcode

- - - -
- -
- -
-

Vimeo Simple Shortcode

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/showcase/index.html b/public/blog/showcase/index.html deleted file mode 100644 index 59f822d..0000000 --- a/public/blog/showcase/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/blog/events/ - - - - - - diff --git a/public/blog/sonstige/welcome-banner/index.html b/public/blog/sonstige/welcome-banner/index.html deleted file mode 100644 index 374f257..0000000 --- a/public/blog/sonstige/welcome-banner/index.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

-
-
-
-

- 01.01.0001

- - -
- - -
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/springreitenklosterrode26/1.jpg b/public/blog/springreitenklosterrode26/1.jpg deleted file mode 100644 index c7fd567..0000000 Binary files a/public/blog/springreitenklosterrode26/1.jpg and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/1.webp b/public/blog/springreitenklosterrode26/1.webp deleted file mode 100644 index 57b2f64..0000000 Binary files a/public/blog/springreitenklosterrode26/1.webp and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/2.mp4 b/public/blog/springreitenklosterrode26/2.mp4 deleted file mode 100644 index 5e08b53..0000000 Binary files a/public/blog/springreitenklosterrode26/2.mp4 and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/2.webp b/public/blog/springreitenklosterrode26/2.webp deleted file mode 100644 index 3cbfe45..0000000 Binary files a/public/blog/springreitenklosterrode26/2.webp and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/3.mp4 b/public/blog/springreitenklosterrode26/3.mp4 deleted file mode 100644 index cb9e4d0..0000000 Binary files a/public/blog/springreitenklosterrode26/3.mp4 and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/4.mp4 b/public/blog/springreitenklosterrode26/4.mp4 deleted file mode 100644 index 20130c9..0000000 Binary files a/public/blog/springreitenklosterrode26/4.mp4 and /dev/null differ diff --git a/public/blog/springreitenklosterrode26/index.html b/public/blog/springreitenklosterrode26/index.html deleted file mode 100644 index 48ac46f..0000000 --- a/public/blog/springreitenklosterrode26/index.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Reit- und Springturnier Klosterrode 2026 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Reit- und Springturnier Klosterrode 2026

-
-
-
-

- 11.07.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇

-
-

Dabei im Einsatz:

-
    -
  • -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes
  • -
  • -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer
  • -
  • -1x Shure Beta 58A
  • -
  • -1x Yamaha MG16/6FX Mischpult
  • -
  • -1x dbx 166XL Gate & Kompressor für das Mikrofon
  • -
  • …und weitere Technik
  • -
-
-

Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. Um Echos aber auch unnötig lange Kabelstrecken zu vermeiden wurden zwei fullrange Tops für Durchsagen an die Reiter am Richterwagen platziert. Diese spielten die Hintergrundmusik leise ab. Die zwei Lautsprecher für das Publikum spielten die Musik etwas lauter ab, enthielten allerdings auch die Moderation der Richter.

-
-

Hier ein paar Eindrücke von der Veranstaltung: -Aus Sicht der Zuschauer -Aus Sicht des Richterwagens

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/blog/springreitenklosterrode26/thumb.webp b/public/blog/springreitenklosterrode26/thumb.webp deleted file mode 100644 index cda904d..0000000 Binary files a/public/blog/springreitenklosterrode26/thumb.webp and /dev/null differ diff --git a/public/blog/verleih/verleih-privatfeiern/index.html b/public/blog/verleih/verleih-privatfeiern/index.html deleted file mode 100644 index 659a496..0000000 --- a/public/blog/verleih/verleih-privatfeiern/index.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Noch Technik für Ihre Party gesucht? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Noch Technik für Ihre Party gesucht?

-
-
-
-

- 20.09.2026

- -

Fabian Ecke -

- - -
- - - - - - - - -

Dekoration bestellt, Catering gebucht - doch etwas Beleuchtung für das Ambiente fehlt noch? -Hier sind Sie dafür genau richtig! -Auch wenn kein DJ nötig ist, können professionelle Lautsprecher-Technik oder Lichttechnik zu einer gelungenen Party-Atmosphäre beitragen. -Hierfür biete ich zusammengestellte Technik-Pakete an, die unter der Kategorie “Verleih” zu finden sind. -Gerne können Pakete auch individuell zusammengestellt werden.

-
-
- -
-
- -
- - - \ No newline at end of file diff --git a/public/categories/index.html b/public/categories/index.html deleted file mode 100644 index 9e415cc..0000000 --- a/public/categories/index.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Categories - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Categories

-
-
- - -
- - -
- -
- - - \ No newline at end of file diff --git a/public/categories/index.xml b/public/categories/index.xml deleted file mode 100644 index 7725163..0000000 --- a/public/categories/index.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - Categories on DJ & Eventservice Fabian Ecke - http://localhost:37149/categories/ - Recent content in Categories on DJ & Eventservice Fabian Ecke - Hugo - de - - - diff --git a/public/categories/page/1/index.html b/public/categories/page/1/index.html deleted file mode 100644 index 7ca6776..0000000 --- a/public/categories/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/categories/ - - - - - - diff --git a/public/categories/syntax/index.html b/public/categories/syntax/index.html deleted file mode 100644 index bddf295..0000000 --- a/public/categories/syntax/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Syntax - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
- - - -
- -
- - - \ No newline at end of file diff --git a/public/categories/syntax/index.xml b/public/categories/syntax/index.xml deleted file mode 100644 index 3f5f09b..0000000 --- a/public/categories/syntax/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Syntax on DJ & Eventservice Fabian Ecke - http://localhost:1313/categories/syntax/ - Recent content in Syntax on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - diff --git a/public/categories/syntax/page/1/index.html b/public/categories/syntax/page/1/index.html deleted file mode 100644 index 2fd9f23..0000000 --- a/public/categories/syntax/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/categories/syntax/ - - - - - - diff --git a/public/categories/themes/index.html b/public/categories/themes/index.html deleted file mode 100644 index 9baf0c3..0000000 --- a/public/categories/themes/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Themes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
- - - -
- -
- - - \ No newline at end of file diff --git a/public/categories/themes/index.xml b/public/categories/themes/index.xml deleted file mode 100644 index 3c1e848..0000000 --- a/public/categories/themes/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Themes on DJ & Eventservice Fabian Ecke - http://localhost:1313/categories/themes/ - Recent content in Themes on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - diff --git a/public/categories/themes/page/1/index.html b/public/categories/themes/page/1/index.html deleted file mode 100644 index f97faf5..0000000 --- a/public/categories/themes/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/categories/themes/ - - - - - - diff --git a/public/contact/index.html b/public/contact/index.html deleted file mode 100644 index b875288..0000000 --- a/public/contact/index.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Kontakt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Kontakt

-
-

Füllen Sie bitte dieses Formular aus, um mit mir in Kontakt zu treten. -Alternativ können Sie mich auch unter folgenden Kanälen erreichen:

- -
- -
- - -
- -
- -
-
- -
-
- -
-
- -
- -
-
-
-
- -
- - - \ No newline at end of file diff --git a/public/css/custom.css b/public/css/custom.css deleted file mode 100644 index e388459..0000000 --- a/public/css/custom.css +++ /dev/null @@ -1,80 +0,0 @@ -:root { - color-scheme: only dark; -} - -body { - background-color: #272727; - color: white; -} - -.a-green a:hover { - color: #0c8771; -} - -.a-green a { - color: #00ad8e; - transition: 400ms; -} - -.features-box { - background-color: #272727; - color: #00ad8e; -} - -.feature-box { - background-color: #3d3d3d; - color: inherit; -} - -.navbar-link { - color: white; -} - -.border-green-custom { - border-color: #10473d; -} - -.text-green-custom { - color: #00ad8e; -} -.text-white-custom { - color: white; -} - -.text-lightgray-custom { - color: #787777; -} - -.bg-darker-green-custom { - background-color: #0c8771; -} - -.bg-gray-custom { - background-color: #272727; -} - -.bg-darkergrey-custom { - background-color: #121212; -} - -.transition-400 { - transition: 400ms; -} - -h1, h2, h3, h4, h5, h6{ - color: #00ad8e; -} - -@media screen and (max-width: 768px) { - - hr { - margin-top: 20px !important; - margin-bottom: 20px !important; - } - -} - -.border-gray-hover:hover{ - --tw-border-opacity: 1; - border-color: white; -} \ No newline at end of file diff --git a/public/css/fa6.min.css b/public/css/fa6.min.css deleted file mode 100644 index dabb129..0000000 --- a/public/css/fa6.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2022 Fonticons, Inc. - */ -.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e493"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e4ee"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e494"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e433"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e43b"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fonts/fa-brands-400.woff2) format("woff2"),url(fonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fonts/fa-regular-400.woff2) format("woff2"),url(fonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fonts/fa-solid-900.woff2) format("woff2"),url(fonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(fonts/fa-brands-400.woff2) format("woff2"),url(fonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(fonts/fa-solid-900.woff2) format("woff2"),url(fonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(fonts/fa-regular-400.woff2) format("woff2"),url(fonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fonts/fa-solid-900.woff2) format("woff2"),url(fonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fonts/fa-brands-400.woff2) format("woff2"),url(fonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fonts/fa-regular-400.woff2) format("woff2"),url(fonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc} \ No newline at end of file diff --git a/public/css/fonts/OpenSans-MediumItalic.ttf b/public/css/fonts/OpenSans-MediumItalic.ttf deleted file mode 100644 index 980ac25..0000000 Binary files a/public/css/fonts/OpenSans-MediumItalic.ttf and /dev/null differ diff --git a/public/css/fonts/OpenSans-Regular.ttf b/public/css/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 1dc226d..0000000 Binary files a/public/css/fonts/OpenSans-Regular.ttf and /dev/null differ diff --git a/public/css/fonts/fa-brands-400.ttf b/public/css/fonts/fa-brands-400.ttf deleted file mode 100644 index 430a02e..0000000 Binary files a/public/css/fonts/fa-brands-400.ttf and /dev/null differ diff --git a/public/css/fonts/fa-brands-400.woff2 b/public/css/fonts/fa-brands-400.woff2 deleted file mode 100644 index 4d904aa..0000000 Binary files a/public/css/fonts/fa-brands-400.woff2 and /dev/null differ diff --git a/public/css/fonts/fa-regular-400.ttf b/public/css/fonts/fa-regular-400.ttf deleted file mode 100644 index 23e3feb..0000000 Binary files a/public/css/fonts/fa-regular-400.ttf and /dev/null differ diff --git a/public/css/fonts/fa-regular-400.woff2 b/public/css/fonts/fa-regular-400.woff2 deleted file mode 100644 index 80e3b12..0000000 Binary files a/public/css/fonts/fa-regular-400.woff2 and /dev/null differ diff --git a/public/css/fonts/fa-solid-900.ttf b/public/css/fonts/fa-solid-900.ttf deleted file mode 100644 index da90824..0000000 Binary files a/public/css/fonts/fa-solid-900.ttf and /dev/null differ diff --git a/public/css/fonts/fa-solid-900.woff2 b/public/css/fonts/fa-solid-900.woff2 deleted file mode 100644 index 360ba11..0000000 Binary files a/public/css/fonts/fa-solid-900.woff2 and /dev/null differ diff --git a/public/css/fonts/icomoon.svg b/public/css/fonts/icomoon.svg deleted file mode 100644 index ffeb711..0000000 --- a/public/css/fonts/icomoon.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/css/fonts/icomoon.ttf b/public/css/fonts/icomoon.ttf deleted file mode 100644 index 312c21f..0000000 Binary files a/public/css/fonts/icomoon.ttf and /dev/null differ diff --git a/public/css/fonts/icomoon.woff b/public/css/fonts/icomoon.woff deleted file mode 100644 index 71c9d59..0000000 Binary files a/public/css/fonts/icomoon.woff and /dev/null differ diff --git a/public/css/monokai-sublime.min.css b/public/css/monokai-sublime.min.css deleted file mode 100644 index 24c46e4..0000000 --- a/public/css/monokai-sublime.min.css +++ /dev/null @@ -1 +0,0 @@ -.hljs{display:block;overflow-x:auto;padding:.5em;background:#23241f}.hljs,.hljs-subst,.hljs-tag{color:#f8f8f2}.hljs-emphasis,.hljs-strong{color:#a8a8a2}.hljs-bullet,.hljs-link,.hljs-literal,.hljs-number,.hljs-quote,.hljs-regexp{color:#ae81ff}.hljs-code,.hljs-section,.hljs-selector-class,.hljs-title{color:#a6e22e}.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.hljs-attr,.hljs-keyword,.hljs-name,.hljs-selector-tag{color:#f92672}.hljs-attribute,.hljs-symbol{color:#66d9ef}.hljs-class .hljs-title,.hljs-params{color:#f8f8f2}.hljs-addition,.hljs-built_in,.hljs-builtin-name,.hljs-selector-attr,.hljs-selector-id,.hljs-selector-pseudo,.hljs-string,.hljs-template-variable,.hljs-type,.hljs-variable{color:#e6db74}.hljs-comment,.hljs-deletion,.hljs-meta{color:#75715e} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css deleted file mode 100644 index d2b1cb2..0000000 --- a/public/css/style.css +++ /dev/null @@ -1,2641 +0,0 @@ -/* assets */ - -/* ! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com */ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -*/ - -html { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-feature-settings: inherit; - /* 1 */ - font-variation-settings: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -.container { - width: 100%; -} - -@media (min-width: 640px) { - .container { - max-width: 640px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 768px; - } -} - -@media (min-width: 1024px) { - .container { - max-width: 1024px; - } -} - -@media (min-width: 1280px) { - .container { - max-width: 1280px; - } -} - -@media (min-width: 1536px) { - .container { - max-width: 1536px; - } -} - -.prose { - color: var(--tw-prose-body); - max-width: 65ch; -} - -.prose :where(p):not(:where([class~="not-prose"] *)) { - margin-top: 1.25em; - margin-bottom: 1.25em; -} - -.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-lead); - font-size: 1.25em; - line-height: 1.6; - margin-top: 1.2em; - margin-bottom: 1.2em; -} - -.prose :where(a):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-links); - text-decoration: underline; - font-weight: 500; -} - -.prose :where(strong):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-bold); - font-weight: 600; -} - -.prose :where(a strong):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(blockquote strong):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(thead th strong):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(ol):not(:where([class~="not-prose"] *)) { - list-style-type: decimal; - margin-top: 1.25em; - margin-bottom: 1.25em; - padding-left: 1.625em; -} - -.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)) { - list-style-type: upper-alpha; -} - -.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)) { - list-style-type: lower-alpha; -} - -.prose :where(ol[type="A" s]):not(:where([class~="not-prose"] *)) { - list-style-type: upper-alpha; -} - -.prose :where(ol[type="a" s]):not(:where([class~="not-prose"] *)) { - list-style-type: lower-alpha; -} - -.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)) { - list-style-type: upper-roman; -} - -.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)) { - list-style-type: lower-roman; -} - -.prose :where(ol[type="I" s]):not(:where([class~="not-prose"] *)) { - list-style-type: upper-roman; -} - -.prose :where(ol[type="i" s]):not(:where([class~="not-prose"] *)) { - list-style-type: lower-roman; -} - -.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)) { - list-style-type: decimal; -} - -.prose :where(ul):not(:where([class~="not-prose"] *)) { - list-style-type: disc; - margin-top: 1.25em; - margin-bottom: 1.25em; - padding-left: 1.625em; -} - -.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker { - font-weight: 400; - color: var(--tw-prose-counters); -} - -.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker { - color: var(--tw-prose-bullets); -} - -.prose :where(hr):not(:where([class~="not-prose"] *)) { - border-color: var(--tw-prose-hr); - border-top-width: 1px; - margin-top: 3em; - margin-bottom: 3em; -} - -.prose :where(blockquote):not(:where([class~="not-prose"] *)) { - font-weight: 500; - font-style: italic; - color: var(--tw-prose-quotes); - border-left-width: 0.25rem; - border-left-color: var(--tw-prose-quote-borders); - quotes: "\201C""\201D""\2018""\2019"; - margin-top: 1.6em; - margin-bottom: 1.6em; - padding-left: 1em; -} - -.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *))::before { - content: open-quote; -} - -.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *))::after { - content: close-quote; -} - -.prose :where(h1):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-headings); - font-weight: 800; - font-size: 2.25em; - margin-top: 0; - margin-bottom: 0.8888889em; - line-height: 1.1111111; -} - -.prose :where(h1 strong):not(:where([class~="not-prose"] *)) { - font-weight: 900; - color: inherit; -} - -.prose :where(h2):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-headings); - font-weight: 700; - font-size: 1.5em; - margin-top: 2em; - margin-bottom: 1em; - line-height: 1.3333333; -} - -.prose :where(h2 strong):not(:where([class~="not-prose"] *)) { - font-weight: 800; - color: inherit; -} - -.prose :where(h3):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-headings); - font-weight: 600; - font-size: 1.25em; - margin-top: 1.6em; - margin-bottom: 0.6em; - line-height: 1.6; -} - -.prose :where(h3 strong):not(:where([class~="not-prose"] *)) { - font-weight: 700; - color: inherit; -} - -.prose :where(h4):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-headings); - font-weight: 600; - margin-top: 1.5em; - margin-bottom: 0.5em; - line-height: 1.5; -} - -.prose :where(h4 strong):not(:where([class~="not-prose"] *)) { - font-weight: 700; - color: inherit; -} - -.prose :where(img):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; -} - -.prose :where(figure > *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - margin-bottom: 0; -} - -.prose :where(figcaption):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-captions); - font-size: 0.875em; - line-height: 1.4285714; - margin-top: 0.8571429em; -} - -.prose :where(code):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-code); - font-weight: 600; - font-size: 0.875em; -} - -.prose :where(code):not(:where([class~="not-prose"] *))::before { - content: "`"; -} - -.prose :where(code):not(:where([class~="not-prose"] *))::after { - content: "`"; -} - -.prose :where(a code):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(h1 code):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(h2 code):not(:where([class~="not-prose"] *)) { - color: inherit; - font-size: 0.875em; -} - -.prose :where(h3 code):not(:where([class~="not-prose"] *)) { - color: inherit; - font-size: 0.9em; -} - -.prose :where(h4 code):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(blockquote code):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(thead th code):not(:where([class~="not-prose"] *)) { - color: inherit; -} - -.prose :where(pre):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-pre-code); - background-color: var(--tw-prose-pre-bg); - overflow-x: auto; - font-weight: 400; - font-size: 0.875em; - line-height: 1.7142857; - margin-top: 1.7142857em; - margin-bottom: 1.7142857em; - border-radius: 0.375rem; - padding-top: 0.8571429em; - padding-right: 1.1428571em; - padding-bottom: 0.8571429em; - padding-left: 1.1428571em; -} - -.prose :where(pre code):not(:where([class~="not-prose"] *)) { - background-color: transparent; - border-width: 0; - border-radius: 0; - padding: 0; - font-weight: inherit; - color: inherit; - font-size: inherit; - font-family: inherit; - line-height: inherit; -} - -.prose :where(pre code):not(:where([class~="not-prose"] *))::before { - content: none; -} - -.prose :where(pre code):not(:where([class~="not-prose"] *))::after { - content: none; -} - -.prose :where(table):not(:where([class~="not-prose"] *)) { - width: 100%; - table-layout: auto; - text-align: left; - margin-top: 2em; - margin-bottom: 2em; - font-size: 0.875em; - line-height: 1.7142857; -} - -.prose :where(thead):not(:where([class~="not-prose"] *)) { - border-bottom-width: 1px; - border-bottom-color: var(--tw-prose-th-borders); -} - -.prose :where(thead th):not(:where([class~="not-prose"] *)) { - color: var(--tw-prose-headings); - font-weight: 600; - vertical-align: bottom; - padding-right: 0.5714286em; - padding-bottom: 0.5714286em; - padding-left: 0.5714286em; -} - -.prose :where(tbody tr):not(:where([class~="not-prose"] *)) { - border-bottom-width: 1px; - border-bottom-color: var(--tw-prose-td-borders); -} - -.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)) { - border-bottom-width: 0; -} - -.prose :where(tbody td):not(:where([class~="not-prose"] *)) { - vertical-align: baseline; -} - -.prose :where(tfoot):not(:where([class~="not-prose"] *)) { - border-top-width: 1px; - border-top-color: var(--tw-prose-th-borders); -} - -.prose :where(tfoot td):not(:where([class~="not-prose"] *)) { - vertical-align: top; -} - -.prose { - --tw-prose-body: #374151; - --tw-prose-headings: #111827; - --tw-prose-lead: #4b5563; - --tw-prose-links: #111827; - --tw-prose-bold: #111827; - --tw-prose-counters: #6b7280; - --tw-prose-bullets: #d1d5db; - --tw-prose-hr: #e5e7eb; - --tw-prose-quotes: #111827; - --tw-prose-quote-borders: #e5e7eb; - --tw-prose-captions: #6b7280; - --tw-prose-code: #111827; - --tw-prose-pre-code: #e5e7eb; - --tw-prose-pre-bg: #1f2937; - --tw-prose-th-borders: #d1d5db; - --tw-prose-td-borders: #e5e7eb; - --tw-prose-invert-body: #d1d5db; - --tw-prose-invert-headings: #fff; - --tw-prose-invert-lead: #9ca3af; - --tw-prose-invert-links: #fff; - --tw-prose-invert-bold: #fff; - --tw-prose-invert-counters: #9ca3af; - --tw-prose-invert-bullets: #4b5563; - --tw-prose-invert-hr: #374151; - --tw-prose-invert-quotes: #f3f4f6; - --tw-prose-invert-quote-borders: #374151; - --tw-prose-invert-captions: #9ca3af; - --tw-prose-invert-code: #fff; - --tw-prose-invert-pre-code: #d1d5db; - --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); - --tw-prose-invert-th-borders: #4b5563; - --tw-prose-invert-td-borders: #374151; - font-size: 1rem; - line-height: 1.75; -} - -.prose :where(video):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; -} - -.prose :where(figure):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; -} - -.prose :where(li):not(:where([class~="not-prose"] *)) { - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -.prose :where(ol > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.375em; -} - -.prose :where(ul > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.375em; -} - -.prose :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { - margin-top: 0.75em; - margin-bottom: 0.75em; -} - -.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.25em; -} - -.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.25em; -} - -.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.25em; -} - -.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.25em; -} - -.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { - margin-top: 0.75em; - margin-bottom: 0.75em; -} - -.prose :where(hr + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(h2 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(h3 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(h4 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; -} - -.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; -} - -.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"] *)) { - padding-top: 0.5714286em; - padding-right: 0.5714286em; - padding-bottom: 0.5714286em; - padding-left: 0.5714286em; -} - -.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; -} - -.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; -} - -.prose :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 0; -} - -.pointer-events-none { - pointer-events: none; -} - -.visible { - visibility: visible; -} - -.invisible { - visibility: hidden; -} - -.collapse { - visibility: collapse; -} - -.static { - position: static; -} - -.fixed { - position: fixed; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.sticky { - position: sticky; -} - -.-right-4 { - right: -1rem; -} - -.-top-6 { - top: -1.5rem; -} - -.-z-10 { - z-index: -10; -} - -.order-first { - order: -9999; -} - -.order-last { - order: 9999; -} - -.col-span-1 { - grid-column: span 1 / span 1; -} - -.col-span-3 { - grid-column: span 3 / span 3; -} - -.col-span-full { - grid-column: 1 / -1; -} - -.row-span-full { - grid-row: 1 / -1; -} - -.clear-none { - clear: none; -} - -.m-2 { - margin: 0.5rem; -} - -.m-3 { - margin: 0.75rem; -} - -.-mx-6 { - margin-left: -1.5rem; - margin-right: -1.5rem; -} - -.mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -.mx-3 { - margin-left: 0.75rem; - margin-right: 0.75rem; -} - -.mx-auto { - margin-left: auto; - margin-right: auto; -} - -.my-10 { - margin-top: 2.5rem; - margin-bottom: 2.5rem; -} - -.my-4 { - margin-top: 1rem; - margin-bottom: 1rem; -} - -.my-5 { - margin-top: 1.25rem; - margin-bottom: 1.25rem; -} - -.my-auto { - margin-top: auto; - margin-bottom: auto; -} - -.mb-2 { - margin-bottom: 0.5rem; -} - -.mb-3 { - margin-bottom: 0.75rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-auto { - margin-bottom: auto; -} - -.ml-2 { - margin-left: 0.5rem; -} - -.mr-1 { - margin-right: 0.25rem; -} - -.mr-2 { - margin-right: 0.5rem; -} - -.mr-3 { - margin-right: 0.75rem; -} - -.mr-6 { - margin-right: 1.5rem; -} - -.mr-8 { - margin-right: 2rem; -} - -.mt-3 { - margin-top: 0.75rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.mt-auto { - margin-top: auto; -} - -.block { - display: block; -} - -.inline { - display: inline; -} - -.flex { - display: flex; -} - -.inline-flex { - display: inline-flex; -} - -.table { - display: table; -} - -.inline-table { - display: inline-table; -} - -.flow-root { - display: flow-root; -} - -.grid { - display: grid; -} - -.inline-grid { - display: inline-grid; -} - -.contents { - display: contents; -} - -.list-item { - display: list-item; -} - -.hidden { - display: none; -} - -.aspect-video { - aspect-ratio: 16 / 9; -} - -.h-10 { - height: 2.5rem; -} - -.h-14 { - height: 3.5rem; -} - -.h-auto { - height: auto; -} - -.h-full { - height: 100%; -} - -.min-h-screen { - min-height: 100vh; -} - -.w-14 { - width: 3.5rem; -} - -.w-auto { - width: auto; -} - -.w-full { - width: 100%; -} - -.max-w-6xl { - max-width: 72rem; -} - -.max-w-7xl { - max-width: 80rem; -} - -.max-w-full { - max-width: 100%; -} - -.max-w-none { - max-width: none; -} - -.max-w-prose { - max-width: 65ch; -} - -.flex-shrink-0 { - flex-shrink: 0; -} - -.flex-grow { - flex-grow: 1; -} - -.grow { - flex-grow: 1; -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.transform-gpu { - transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.cursor-auto { - cursor: auto; -} - -.cursor-help { - cursor: help; -} - -.cursor-move { - cursor: move; -} - -.cursor-pointer { - cursor: pointer; -} - -.cursor-text { - cursor: text; -} - -.cursor-wait { - cursor: wait; -} - -.select-all { - -webkit-user-select: all; - -moz-user-select: all; - user-select: all; -} - -.select-auto { - -webkit-user-select: auto; - -moz-user-select: auto; - user-select: auto; -} - -.resize { - resize: both; -} - -.list-none { - list-style-type: none; -} - -.grid-flow-dense { - grid-auto-flow: dense; -} - -.grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); -} - -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.flex-row { - flex-direction: row; -} - -.flex-col { - flex-direction: column; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.flex-nowrap { - flex-wrap: nowrap; -} - -.place-content-baseline { - place-content: baseline; -} - -.place-items-baseline { - place-items: baseline; -} - -.content-normal { - align-content: normal; -} - -.content-center { - align-content: center; -} - -.content-baseline { - align-content: baseline; -} - -.content-stretch { - align-content: stretch; -} - -.items-center { - align-items: center; -} - -.justify-normal { - justify-content: normal; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.justify-evenly { - justify-content: space-evenly; -} - -.justify-stretch { - justify-content: stretch; -} - -.gap-2 { - gap: 0.5rem; -} - -.gap-3 { - gap: 0.75rem; -} - -.space-x-0 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0px * var(--tw-space-x-reverse)); - margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); -} - -.space-y-reverse > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 1; -} - -.space-x-reverse > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 1; -} - -.self-baseline { - align-self: baseline; -} - -.overflow-clip { - overflow: clip; -} - -.overflow-x-clip { - overflow-x: clip; -} - -.overflow-y-clip { - overflow-y: clip; -} - -.truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.overflow-ellipsis { - text-overflow: ellipsis; -} - -.text-ellipsis { - text-overflow: ellipsis; -} - -.text-clip { - text-overflow: clip; -} - -.whitespace-nowrap { - white-space: nowrap; -} - -.whitespace-break-spaces { - white-space: break-spaces; -} - -.break-all { - word-break: break-all; -} - -.break-keep { - word-break: keep-all; -} - -.rounded { - border-radius: 0.25rem; -} - -.rounded-full { - border-radius: 9999px; -} - -.rounded-md { - border-radius: 0.375rem; -} - -.border { - border-width: 1px; -} - -.border-0 { - border-width: 0px; -} - -.border-x { - border-left-width: 1px; - border-right-width: 1px; -} - -.border-y { - border-top-width: 1px; - border-bottom-width: 1px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-l { - border-left-width: 1px; -} - -.border-r { - border-right-width: 1px; -} - -.border-double { - border-style: double; -} - -.border-hidden { - border-style: hidden; -} - -.border-blue-600 { - --tw-border-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-border-opacity)); -} - -.border-gray-200 { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); -} - -.border-gray-600 { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); -} - -.border-white { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.bg-blue-600 { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); -} - -.bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); -} - -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - -.bg-red-600 { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); -} - -.bg-tlgray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); -} - -.bg-tlgray-700 { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); -} - -.bg-tlgray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} - -.bg-opacity-100 { - --tw-bg-opacity: 1; -} - -.bg-none { - background-image: none; -} - -.decoration-slice { - -webkit-box-decoration-break: slice; - box-decoration-break: slice; -} - -.box-decoration-slice { - -webkit-box-decoration-break: slice; - box-decoration-break: slice; -} - -.bg-auto { - background-size: auto; -} - -.bg-repeat-round { - background-repeat: round; -} - -.bg-repeat-space { - background-repeat: space; -} - -.fill-none { - fill: none; -} - -.stroke-none { - stroke: none; -} - -.object-cover { - -o-object-fit: cover; - object-fit: cover; -} - -.p-0 { - padding: 0px; -} - -.p-1 { - padding: 0.25rem; -} - -.p-2 { - padding: 0.5rem; -} - -.p-3 { - padding: 0.75rem; -} - -.p-4 { - padding: 1rem; -} - -.p-6 { - padding: 1.5rem; -} - -.p-8 { - padding: 2rem; -} - -.px-1 { - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} - -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - -.py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem; -} - -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem; -} - -.pb-5 { - padding-bottom: 1.25rem; -} - -.pl-4 { - padding-left: 1rem; -} - -.pl-8 { - padding-left: 2rem; -} - -.text-center { - text-align: center; -} - -.text-start { - text-align: start; -} - -.text-end { - text-align: end; -} - -.align-sub { - vertical-align: sub; -} - -.align-super { - vertical-align: super; -} - -.font-sans { - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; -} - -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; -} - -.text-5xl { - font-size: 3rem; - line-height: 1; -} - -.text-6xl { - font-size: 3.75rem; - line-height: 1; -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.font-bold { - font-weight: 700; -} - -.font-extralight { - font-weight: 200; -} - -.font-thin { - font-weight: 100; -} - -.uppercase { - text-transform: uppercase; -} - -.lowercase { - text-transform: lowercase; -} - -.italic { - font-style: italic; -} - -.not-italic { - font-style: normal; -} - -.ordinal { - --tw-ordinal: ordinal; - font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); -} - -.leading-4 { - line-height: 1rem; -} - -.leading-normal { - line-height: 1.5; -} - -.text-black { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.text-blue-600 { - --tw-text-opacity: 1; - color: rgb(37 99 235 / var(--tw-text-opacity)); -} - -.text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); -} - -.text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); -} - -.text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); -} - -.text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.underline { - text-decoration-line: underline; -} - -.mix-blend-plus-lighter { - mix-blend-mode: plus-lighter; -} - -.shadow { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-md { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-sm { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.outline-none { - outline: 2px solid transparent; - outline-offset: 2px; -} - -.outline { - outline-style: solid; -} - -.outline-black { - outline-color: #000; -} - -.outline-white { - outline-color: #fff; -} - -.ring { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.ring-inset { - --tw-ring-inset: inset; -} - -.ring-offset-0 { - --tw-ring-offset-width: 0px; -} - -.blur-0 { - --tw-blur: blur(0); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.blur-none { - --tw-blur: blur(0); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.backdrop-filter { - -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); - backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-colors { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.delay-0 { - transition-delay: 0s; -} - -.duration-0 { - transition-duration: 0s; -} - -.duration-100 { - transition-duration: 100ms; -} - -.duration-200 { - transition-duration: 200ms; -} - -.duration-300 { - transition-duration: 300ms; -} - -.duration-500 { - transition-duration: 500ms; -} - -@media (min-width: 768px) { - .md\:prose-lg { - font-size: 1.125rem; - line-height: 1.7777778; - } - - .md\:prose-lg :where(p):not(:where([class~="not-prose"] *)) { - margin-top: 1.3333333em; - margin-bottom: 1.3333333em; - } - - .md\:prose-lg :where([class~="lead"]):not(:where([class~="not-prose"] *)) { - font-size: 1.2222222em; - line-height: 1.4545455; - margin-top: 1.0909091em; - margin-bottom: 1.0909091em; - } - - .md\:prose-lg :where(blockquote):not(:where([class~="not-prose"] *)) { - margin-top: 1.6666667em; - margin-bottom: 1.6666667em; - padding-left: 1em; - } - - .md\:prose-lg :where(h1):not(:where([class~="not-prose"] *)) { - font-size: 2.6666667em; - margin-top: 0; - margin-bottom: 0.8333333em; - line-height: 1; - } - - .md\:prose-lg :where(h2):not(:where([class~="not-prose"] *)) { - font-size: 1.6666667em; - margin-top: 1.8666667em; - margin-bottom: 1.0666667em; - line-height: 1.3333333; - } - - .md\:prose-lg :where(h3):not(:where([class~="not-prose"] *)) { - font-size: 1.3333333em; - margin-top: 1.6666667em; - margin-bottom: 0.6666667em; - line-height: 1.5; - } - - .md\:prose-lg :where(h4):not(:where([class~="not-prose"] *)) { - margin-top: 1.7777778em; - margin-bottom: 0.4444444em; - line-height: 1.5555556; - } - - .md\:prose-lg :where(img):not(:where([class~="not-prose"] *)) { - margin-top: 1.7777778em; - margin-bottom: 1.7777778em; - } - - .md\:prose-lg :where(video):not(:where([class~="not-prose"] *)) { - margin-top: 1.7777778em; - margin-bottom: 1.7777778em; - } - - .md\:prose-lg :where(figure):not(:where([class~="not-prose"] *)) { - margin-top: 1.7777778em; - margin-bottom: 1.7777778em; - } - - .md\:prose-lg :where(figure > *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - margin-bottom: 0; - } - - .md\:prose-lg :where(figcaption):not(:where([class~="not-prose"] *)) { - font-size: 0.8888889em; - line-height: 1.5; - margin-top: 1em; - } - - .md\:prose-lg :where(code):not(:where([class~="not-prose"] *)) { - font-size: 0.8888889em; - } - - .md\:prose-lg :where(h2 code):not(:where([class~="not-prose"] *)) { - font-size: 0.8666667em; - } - - .md\:prose-lg :where(h3 code):not(:where([class~="not-prose"] *)) { - font-size: 0.875em; - } - - .md\:prose-lg :where(pre):not(:where([class~="not-prose"] *)) { - font-size: 0.8888889em; - line-height: 1.75; - margin-top: 2em; - margin-bottom: 2em; - border-radius: 0.375rem; - padding-top: 1em; - padding-right: 1.5em; - padding-bottom: 1em; - padding-left: 1.5em; - } - - .md\:prose-lg :where(ol):not(:where([class~="not-prose"] *)) { - margin-top: 1.3333333em; - margin-bottom: 1.3333333em; - padding-left: 1.5555556em; - } - - .md\:prose-lg :where(ul):not(:where([class~="not-prose"] *)) { - margin-top: 1.3333333em; - margin-bottom: 1.3333333em; - padding-left: 1.5555556em; - } - - .md\:prose-lg :where(li):not(:where([class~="not-prose"] *)) { - margin-top: 0.6666667em; - margin-bottom: 0.6666667em; - } - - .md\:prose-lg :where(ol > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.4444444em; - } - - .md\:prose-lg :where(ul > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.4444444em; - } - - .md\:prose-lg :where(.md\:prose-lg > ul > li p):not(:where([class~="not-prose"] *)) { - margin-top: 0.8888889em; - margin-bottom: 0.8888889em; - } - - .md\:prose-lg :where(.md\:prose-lg > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.3333333em; - } - - .md\:prose-lg :where(.md\:prose-lg > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.3333333em; - } - - .md\:prose-lg :where(.md\:prose-lg > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.3333333em; - } - - .md\:prose-lg :where(.md\:prose-lg > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.3333333em; - } - - .md\:prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { - margin-top: 0.8888889em; - margin-bottom: 0.8888889em; - } - - .md\:prose-lg :where(hr):not(:where([class~="not-prose"] *)) { - margin-top: 3.1111111em; - margin-bottom: 3.1111111em; - } - - .md\:prose-lg :where(hr + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .md\:prose-lg :where(h2 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .md\:prose-lg :where(h3 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .md\:prose-lg :where(h4 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .md\:prose-lg :where(table):not(:where([class~="not-prose"] *)) { - font-size: 0.8888889em; - line-height: 1.5; - } - - .md\:prose-lg :where(thead th):not(:where([class~="not-prose"] *)) { - padding-right: 0.75em; - padding-bottom: 0.75em; - padding-left: 0.75em; - } - - .md\:prose-lg :where(thead th:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; - } - - .md\:prose-lg :where(thead th:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; - } - - .md\:prose-lg :where(tbody td, tfoot td):not(:where([class~="not-prose"] *)) { - padding-top: 0.75em; - padding-right: 0.75em; - padding-bottom: 0.75em; - padding-left: 0.75em; - } - - .md\:prose-lg :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; - } - - .md\:prose-lg :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; - } - - .md\:prose-lg :where(.md\:prose-lg > :first-child):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .md\:prose-lg :where(.md\:prose-lg > :last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 0; - } -} - -@media (min-width: 1024px) { - .lg\:prose-xl { - font-size: 1.25rem; - line-height: 1.8; - } - - .lg\:prose-xl :where(p):not(:where([class~="not-prose"] *)) { - margin-top: 1.2em; - margin-bottom: 1.2em; - } - - .lg\:prose-xl :where([class~="lead"]):not(:where([class~="not-prose"] *)) { - font-size: 1.2em; - line-height: 1.5; - margin-top: 1em; - margin-bottom: 1em; - } - - .lg\:prose-xl :where(blockquote):not(:where([class~="not-prose"] *)) { - margin-top: 1.6em; - margin-bottom: 1.6em; - padding-left: 1.0666667em; - } - - .lg\:prose-xl :where(h1):not(:where([class~="not-prose"] *)) { - font-size: 2.8em; - margin-top: 0; - margin-bottom: 0.8571429em; - line-height: 1; - } - - .lg\:prose-xl :where(h2):not(:where([class~="not-prose"] *)) { - font-size: 1.8em; - margin-top: 1.5555556em; - margin-bottom: 0.8888889em; - line-height: 1.1111111; - } - - .lg\:prose-xl :where(h3):not(:where([class~="not-prose"] *)) { - font-size: 1.5em; - margin-top: 1.6em; - margin-bottom: 0.6666667em; - line-height: 1.3333333; - } - - .lg\:prose-xl :where(h4):not(:where([class~="not-prose"] *)) { - margin-top: 1.8em; - margin-bottom: 0.6em; - line-height: 1.6; - } - - .lg\:prose-xl :where(img):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; - } - - .lg\:prose-xl :where(video):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; - } - - .lg\:prose-xl :where(figure):not(:where([class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; - } - - .lg\:prose-xl :where(figure > *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - margin-bottom: 0; - } - - .lg\:prose-xl :where(figcaption):not(:where([class~="not-prose"] *)) { - font-size: 0.9em; - line-height: 1.5555556; - margin-top: 1em; - } - - .lg\:prose-xl :where(code):not(:where([class~="not-prose"] *)) { - font-size: 0.9em; - } - - .lg\:prose-xl :where(h2 code):not(:where([class~="not-prose"] *)) { - font-size: 0.8611111em; - } - - .lg\:prose-xl :where(h3 code):not(:where([class~="not-prose"] *)) { - font-size: 0.9em; - } - - .lg\:prose-xl :where(pre):not(:where([class~="not-prose"] *)) { - font-size: 0.9em; - line-height: 1.7777778; - margin-top: 2em; - margin-bottom: 2em; - border-radius: 0.5rem; - padding-top: 1.1111111em; - padding-right: 1.3333333em; - padding-bottom: 1.1111111em; - padding-left: 1.3333333em; - } - - .lg\:prose-xl :where(ol):not(:where([class~="not-prose"] *)) { - margin-top: 1.2em; - margin-bottom: 1.2em; - padding-left: 1.6em; - } - - .lg\:prose-xl :where(ul):not(:where([class~="not-prose"] *)) { - margin-top: 1.2em; - margin-bottom: 1.2em; - padding-left: 1.6em; - } - - .lg\:prose-xl :where(li):not(:where([class~="not-prose"] *)) { - margin-top: 0.6em; - margin-bottom: 0.6em; - } - - .lg\:prose-xl :where(ol > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.4em; - } - - .lg\:prose-xl :where(ul > li):not(:where([class~="not-prose"] *)) { - padding-left: 0.4em; - } - - .lg\:prose-xl :where(.lg\:prose-xl > ul > li p):not(:where([class~="not-prose"] *)) { - margin-top: 0.8em; - margin-bottom: 0.8em; - } - - .lg\:prose-xl :where(.lg\:prose-xl > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.2em; - } - - .lg\:prose-xl :where(.lg\:prose-xl > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.2em; - } - - .lg\:prose-xl :where(.lg\:prose-xl > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { - margin-top: 1.2em; - } - - .lg\:prose-xl :where(.lg\:prose-xl > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 1.2em; - } - - .lg\:prose-xl :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { - margin-top: 0.8em; - margin-bottom: 0.8em; - } - - .lg\:prose-xl :where(hr):not(:where([class~="not-prose"] *)) { - margin-top: 2.8em; - margin-bottom: 2.8em; - } - - .lg\:prose-xl :where(hr + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .lg\:prose-xl :where(h2 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .lg\:prose-xl :where(h3 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .lg\:prose-xl :where(h4 + *):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .lg\:prose-xl :where(table):not(:where([class~="not-prose"] *)) { - font-size: 0.9em; - line-height: 1.5555556; - } - - .lg\:prose-xl :where(thead th):not(:where([class~="not-prose"] *)) { - padding-right: 0.6666667em; - padding-bottom: 0.8888889em; - padding-left: 0.6666667em; - } - - .lg\:prose-xl :where(thead th:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; - } - - .lg\:prose-xl :where(thead th:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; - } - - .lg\:prose-xl :where(tbody td, tfoot td):not(:where([class~="not-prose"] *)) { - padding-top: 0.8888889em; - padding-right: 0.6666667em; - padding-bottom: 0.8888889em; - padding-left: 0.6666667em; - } - - .lg\:prose-xl :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"] *)) { - padding-left: 0; - } - - .lg\:prose-xl :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"] *)) { - padding-right: 0; - } - - .lg\:prose-xl :where(.lg\:prose-xl > :first-child):not(:where([class~="not-prose"] *)) { - margin-top: 0; - } - - .lg\:prose-xl :where(.lg\:prose-xl > :last-child):not(:where([class~="not-prose"] *)) { - margin-bottom: 0; - } -} - -.hover\:-translate-y-1:hover { - --tw-translate-y: -0.25rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.hover\:border-black:hover { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.hover\:border-blue-700:hover { - --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); -} - -.hover\:bg-gray-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity)); -} - -.hover\:text-blue-800:hover { - --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); -} - -.hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.hover\:opacity-60:hover { - opacity: 0.6; -} - -.hover\:opacity-80:hover { - opacity: 0.8; -} - -.hover\:shadow-lg:hover { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.hover\:shadow-md:hover { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.hover\:shadow-sm:hover { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.focus\:border-gray-500:focus { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); -} - -.focus\:bg-white:focus { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} - -.focus\:outline-none:focus { - outline: 2px solid transparent; - outline-offset: 2px; -} - -@media (prefers-color-scheme: dark) { - .dark\:border-gray-600 { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); - } -} - -@media (min-width: 768px) { - .md\:grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - - .md\:py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem; - } -} - -@media (min-width: 1024px) { - .lg\:col-span-2 { - grid-column: span 2 / span 2; - } - - .lg\:mt-0 { - margin-top: 0px; - } - - .lg\:inline-block { - display: inline-block; - } - - .lg\:flex { - display: flex; - } - - .lg\:hidden { - display: none; - } - - .lg\:h-44 { - height: 11rem; - } - - .lg\:w-auto { - width: auto; - } - - .lg\:max-w-full { - max-width: 100%; - } - - .lg\:flex-grow { - flex-grow: 1; - } - - .lg\:grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - - .lg\:items-center { - align-items: center; - } - - .lg\:border-l-0 { - border-left-width: 0px; - } - - .lg\:border-t { - border-top-width: 1px; - } - - .lg\:border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); - } - - .lg\:px-0 { - padding-left: 0px; - padding-right: 0px; - } - - .lg\:py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - } - - .lg\:text-2xl { - font-size: 1.5rem; - line-height: 2rem; - } - - .lg\:hover\:bg-blue-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); - } -} diff --git a/public/css/style.min.css b/public/css/style.min.css deleted file mode 100644 index e37e26d..0000000 --- a/public/css/style.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:icomoon;src:url(./fonts/icomoon.ttf?k0g81o) format('truetype'),url(./fonts/icomoon.woff?k0g81o) format('woff'),url(./fonts/icomoon.svg?k0g81o#icomoon) format('svg');font-weight:400;font-style:normal;font-display:block}[class*=' icon-'],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-facebook:before{content:'\f09a'}.icon-get-pocket:before{content:'\f265'}.icon-line:before{content:'\e90e'}.icon-hatenabookmark:before{content:'\e90f'}.icon-discord:before{content:'\e907'}.icon-email:before{content:'\e902'}.icon-message:before{content:'\e900'}.icon-create:before{content:'\e901'}.icon-access_time:before{content:'\e903'}.icon-file_download:before{content:'\e90b'}.icon-folder:before{content:'\e908'}.icon-desktop_windows:before{content:'\e906'}.icon-keyboard_arrow_left:before{content:'\e904'}.icon-keyboard_arrow_right:before{content:'\e905'}.icon-keyboard_arrow_up:before{content:'\e90d'}.icon-remove_red_eye:before{content:'\e90c'}.icon-person:before{content:'\e90a'}.icon-lightbulb_outline:before{content:'\e909'}.icon-price-tag:before{content:'\e935'}.icon-sphere:before{content:'\e9c9'}.icon-link:before{content:'\e9cb'}.icon-twitter:before{content:'\ea96'}.icon-youtube:before{content:'\ea9d'}.icon-github:before{content:'\eab0'}body{font-family:Montserrat,'Noto Sans JP',sans-serif;font-weight:300}.content{font-family:'Open Sans','Noto Sans JP',sans-serif}html{scroll-behavior:smooth}@keyframes ScaleAni{0%{transform:scale(.9)}100%{transform:scale(1)}}.swiper-slide .s-fade-txt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0}.swiper-slide .s-fade-txt{animation:FadeAni .5s ease 1s 1 normal both}@keyframes FadeAni{0%{opacity:0}100%{opacity:1}}.wrap{overflow:hidden}.swiper-wrapper img{width:100%;height:85vh;object-fit:cover}.active{display:block!important}.slide-wrap img{width:100%;height:85vh;object-fit:cover}.slide-class{margin:0 auto}.animation-slide{position:relative}.swiper-button-next:after,.swiper-button-prev:after,.swiper-container-rtl{color:#fff}.swiper-pagination-bullet{background:#fff}.mopen{float:left;display:block;background:rgba(255,255,255,0);position:relative;z-index:1000}.mopen span{transition:all .3s;transform:rotate(0);width:50px;height:2px;display:block;background:white;position:absolute;left:50%;top:50%;margin-left:-25px}.mopen .top{transform:translateY(-17px)}.mopen .bottom{transform:translateY(17px)}.mopen.is-open span{background:#fff}.mopen.is-open .middle{background:rgba(255,255,255,0)}.mopen.is-open .top{transform:rotate(-45deg) translateY(0)}.mopen.is-open .bottom{transform:rotate(45deg) translateY(0)}#overlay{visibility:hidden;display:flex;transition:.3s linear;position:absolute;z-index:900;align-items:center;justify-content:center;left:0;top:0;width:100%;height:100%;background:#222;opacity:0}#overlay.open{visibility:visible;opacity:.95}body.scroll-lock{position:fixed;left:0;right:0;top:0;bottom:0}.scroll-top{background-color:#00ad8e;text-align:center;color:#fff;position:fixed;right:1.5rem;bottom:1.5rem;width:3rem;height:3rem;display:flex;flex-direction:column;z-index:1000;padding-top:.75em;padding-bottom:.75em;cursor:pointer}input[type=text],textarea{width:100%;max-width:72em;margin-bottom:.5em;margin-top:.5em}input,textarea{-webkit-appearance:none}input[type=checkbox]{-webkit-appearance:checkbox}span.begin-task-list+ul{padding-left:0;list-style:none}.pagination{display:flex;list-style:none;border-radius:.25rem;margin:20px 0;padding:0;justify-content:center}.page-link{position:relative;display:block;padding:.75rem 1rem;margin-left:-1px;line-height:1.25;border:1px solid #dee2e6}.homepage .page-link,.listing .page-link{background-color:#fff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.page-item.active .page-link{z-index:1}#TableOfContents>ul{border:1px solid #999;border-radius:3px;padding:.5em 1em;line-height:2}#TableOfContents>ul:before{content:'Table of Contents';text-align:center;font-size:1.5em;font-weight:400}#TableOfContents ul{list-style-type:none}#TableOfContents li{padding-top:0}#TableOfContents li>ul{padding-left:1em;width:100%}#TableOfContents a{display:block;border-bottom:dashed 1px #d3d3d3}.hljs-ln-code{padding-left:.8em!important}.content code table.hljs-ln{margin:0}.content code table.hljs-ln tr{border-bottom-width:0}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{border-radius:8px;box-shadow:inset 0 0 5px rgba(0,0,0,.1)}::-webkit-scrollbar-thumb{background-color:#121212;border-radius:10px;box-shadow:0 0 0 1px #121212}.share-button{padding-top:10px;padding-bottom:8px;transition:all .3s}.share-button:hover{opacity:.7}.twitter{background-color:#1da1f2}.line{background-color:#00c300}.facebook{background-color:#3b5998}.pocket{background-color:#ef4056}.hatena{background-color:#00a4de}.url{background-color:#222} diff --git a/public/css/sweetalert2.min.css b/public/css/sweetalert2.min.css deleted file mode 100644 index dd152d9..0000000 --- a/public/css/sweetalert2.min.css +++ /dev/null @@ -1 +0,0 @@ -.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1;zoom:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;zoom:1;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;zoom:1;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;zoom:1;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;zoom:1;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;zoom:1;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em} \ No newline at end of file diff --git a/public/css/swiper-bundle.min.css b/public/css/swiper-bundle.min.css deleted file mode 100644 index be06f9c..0000000 --- a/public/css/swiper-bundle.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Swiper 6.4.5 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2020 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: December 18, 2020 - */ - -@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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') format('woff');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(-1 * var(--swiper-navigation-size)/ 2);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#ffffff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white{--swiper-pagination-color:#ffffff}.swiper-pagination-black{--swiper-pagination-color:#000000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden} \ No newline at end of file diff --git a/public/css/webfonts.css b/public/css/webfonts.css deleted file mode 100644 index f482e6c..0000000 --- a/public/css/webfonts.css +++ /dev/null @@ -1,83 +0,0 @@ -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-Medium.ttf') format('truetype'); - font-weight: medium; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-MediumItalic.ttf') format('truetype'); - font-weight: medium; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: url('./webfonts/OpenSans-BoldItalic.ttf') format('truetype'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-Medium.ttf') format('truetype'); - font-weight: medium; - font-style: normal; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-BoldItalic.ttf') format('truetype'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-MediumItalic.ttf') format('truetype'); - font-weight: medium; - font-style: italic; -} - -@font-face { - font-family: 'Montserrat'; - src: url('./webfonts/Montserrat-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} \ No newline at end of file diff --git a/public/css/webfonts.min.css b/public/css/webfonts.min.css deleted file mode 100644 index d167ed3..0000000 --- a/public/css/webfonts.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-Regular.ttf') format('truetype');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-Medium.ttf') format('truetype');font-weight:medium;font-style:normal}@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-Bold.ttf') format('truetype');font-weight:700;font-style:normal}@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-Italic.ttf') format('truetype');font-weight:400;font-style:italic}@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-MediumItalic.ttf') format('truetype');font-weight:medium;font-style:italic}@font-face{font-family:'Open Sans';src:url('./webfonts/OpenSans-BoldItalic.ttf') format('truetype');font-weight:700;font-style:italic}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-style:normal}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-Medium.ttf') format('truetype');font-weight:medium;font-style:normal}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-Regular.ttf') format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-BoldItalic.ttf') format('truetype');font-weight:700;font-style:italic}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-MediumItalic.ttf') format('truetype');font-weight:medium;font-style:italic}@font-face{font-family:Montserrat;src:url('./webfonts/Montserrat-Italic.ttf') format('truetype');font-weight:400;font-style:italic} \ No newline at end of file diff --git a/public/css/webfonts/Montserrat-Bold.ttf b/public/css/webfonts/Montserrat-Bold.ttf deleted file mode 100644 index efddc83..0000000 Binary files a/public/css/webfonts/Montserrat-Bold.ttf and /dev/null differ diff --git a/public/css/webfonts/Montserrat-BoldItalic.ttf b/public/css/webfonts/Montserrat-BoldItalic.ttf deleted file mode 100644 index b7d8031..0000000 Binary files a/public/css/webfonts/Montserrat-BoldItalic.ttf and /dev/null differ diff --git a/public/css/webfonts/Montserrat-Italic.ttf b/public/css/webfonts/Montserrat-Italic.ttf deleted file mode 100644 index eee45ba..0000000 Binary files a/public/css/webfonts/Montserrat-Italic.ttf and /dev/null differ diff --git a/public/css/webfonts/Montserrat-Medium.ttf b/public/css/webfonts/Montserrat-Medium.ttf deleted file mode 100644 index dfc7e2f..0000000 Binary files a/public/css/webfonts/Montserrat-Medium.ttf and /dev/null differ diff --git a/public/css/webfonts/Montserrat-MediumItalic.ttf b/public/css/webfonts/Montserrat-MediumItalic.ttf deleted file mode 100644 index ce56883..0000000 Binary files a/public/css/webfonts/Montserrat-MediumItalic.ttf and /dev/null differ diff --git a/public/css/webfonts/Montserrat-Regular.ttf b/public/css/webfonts/Montserrat-Regular.ttf deleted file mode 100644 index aa9033a..0000000 Binary files a/public/css/webfonts/Montserrat-Regular.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-Bold.ttf b/public/css/webfonts/OpenSans-Bold.ttf deleted file mode 100644 index a1398b3..0000000 Binary files a/public/css/webfonts/OpenSans-Bold.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-BoldItalic.ttf b/public/css/webfonts/OpenSans-BoldItalic.ttf deleted file mode 100644 index 307122c..0000000 Binary files a/public/css/webfonts/OpenSans-BoldItalic.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-Italic.ttf b/public/css/webfonts/OpenSans-Italic.ttf deleted file mode 100644 index 790286f..0000000 Binary files a/public/css/webfonts/OpenSans-Italic.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-Medium.ttf b/public/css/webfonts/OpenSans-Medium.ttf deleted file mode 100644 index ba6db9b..0000000 Binary files a/public/css/webfonts/OpenSans-Medium.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-MediumItalic.ttf b/public/css/webfonts/OpenSans-MediumItalic.ttf deleted file mode 100644 index 980ac25..0000000 Binary files a/public/css/webfonts/OpenSans-MediumItalic.ttf and /dev/null differ diff --git a/public/css/webfonts/OpenSans-Regular.ttf b/public/css/webfonts/OpenSans-Regular.ttf deleted file mode 100644 index 1dc226d..0000000 Binary files a/public/css/webfonts/OpenSans-Regular.ttf and /dev/null differ diff --git a/public/docs/index.html b/public/docs/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/docs/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/events/events/index.html b/public/events/events/index.html deleted file mode 100644 index 12baa1d..0000000 --- a/public/events/events/index.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Referenzen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Referenzen

-
-

Hier ist eine Auswahl vergangener Veranstaltungen, die ich begleiten durfte zu sehen.

-
-
-
- -
- - - \ No newline at end of file diff --git a/public/events/index.html b/public/events/index.html deleted file mode 100644 index 6edeb1f..0000000 --- a/public/events/index.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Referenzen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
- - - -
- -
- - - \ No newline at end of file diff --git a/public/events/index.xml b/public/events/index.xml deleted file mode 100644 index 28388ae..0000000 --- a/public/events/index.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - Referenzen on DJ & Eventservice Fabian Ecke - http://localhost:37149/events/ - Recent content in Referenzen on DJ & Eventservice Fabian Ecke - Hugo - de - - - diff --git a/public/events/page/1/index.html b/public/events/page/1/index.html deleted file mode 100644 index 2df246b..0000000 --- a/public/events/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/events/ - - - - - - diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png deleted file mode 100644 index f055079..0000000 Binary files a/public/favicon-16x16.png and /dev/null differ diff --git a/public/favicon-192x192.png b/public/favicon-192x192.png deleted file mode 100644 index ceda9ff..0000000 Binary files a/public/favicon-192x192.png and /dev/null differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png deleted file mode 100644 index e737082..0000000 Binary files a/public/favicon-32x32.png and /dev/null differ diff --git a/public/favicon-512x512.png b/public/favicon-512x512.png deleted file mode 100644 index e95b543..0000000 Binary files a/public/favicon-512x512.png and /dev/null differ diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 782e0f9..0000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/img/about/IMG-20260705-WA0018.webp b/public/img/about/IMG-20260705-WA0018.webp deleted file mode 100644 index f15f52f..0000000 Binary files a/public/img/about/IMG-20260705-WA0018.webp and /dev/null differ diff --git a/public/img/about/thumb.webp b/public/img/about/thumb.webp deleted file mode 100644 index f15f52f..0000000 Binary files a/public/img/about/thumb.webp and /dev/null differ diff --git a/public/img/default.jpg b/public/img/default.jpg deleted file mode 100644 index 40d88bf..0000000 Binary files a/public/img/default.jpg and /dev/null differ diff --git a/public/img/logo/fte-logo.png b/public/img/logo/fte-logo.png deleted file mode 100644 index e0cfa14..0000000 Binary files a/public/img/logo/fte-logo.png and /dev/null differ diff --git a/public/img/products/test1/main.webp b/public/img/products/test1/main.webp deleted file mode 100644 index 94dab8b..0000000 Binary files a/public/img/products/test1/main.webp and /dev/null differ diff --git a/public/img/products/test2/main.webp b/public/img/products/test2/main.webp deleted file mode 100644 index f1155db..0000000 Binary files a/public/img/products/test2/main.webp and /dev/null differ diff --git a/public/img/products/test3/main.webp b/public/img/products/test3/main.webp deleted file mode 100644 index 6ed72cc..0000000 Binary files a/public/img/products/test3/main.webp and /dev/null differ diff --git a/public/img/slide/abschlussball.webp b/public/img/slide/abschlussball.webp deleted file mode 100644 index 6561521..0000000 Binary files a/public/img/slide/abschlussball.webp and /dev/null differ diff --git a/public/img/slide/familienfeier25.webp b/public/img/slide/familienfeier25.webp deleted file mode 100644 index a8ab214..0000000 Binary files a/public/img/slide/familienfeier25.webp and /dev/null differ diff --git a/public/img/slide/familienfeier26.webp b/public/img/slide/familienfeier26.webp deleted file mode 100644 index 0b95a92..0000000 Binary files a/public/img/slide/familienfeier26.webp and /dev/null differ diff --git a/public/img/slide/pfingsten25.webp b/public/img/slide/pfingsten25.webp deleted file mode 100644 index 99f5d4e..0000000 Binary files a/public/img/slide/pfingsten25.webp and /dev/null differ diff --git a/public/img/slide/springreiten25.webp b/public/img/slide/springreiten25.webp deleted file mode 100644 index a2387bf..0000000 Binary files a/public/img/slide/springreiten25.webp and /dev/null differ diff --git a/public/img/slide/teenieparty23.webp b/public/img/slide/teenieparty23.webp deleted file mode 100644 index 483cb3f..0000000 Binary files a/public/img/slide/teenieparty23.webp and /dev/null differ diff --git a/public/img/thumbs/thumb.webp b/public/img/thumbs/thumb.webp deleted file mode 100644 index c88eae8..0000000 Binary files a/public/img/thumbs/thumb.webp and /dev/null differ diff --git a/public/impressum-datenschutzerklaerung/index.html b/public/impressum-datenschutzerklaerung/index.html deleted file mode 100644 index 2310091..0000000 --- a/public/impressum-datenschutzerklaerung/index.html +++ /dev/null @@ -1,727 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Impressum und Datenschutzerklärung - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- -
-
-
-

Impressum und Datenschutzerklärung

-
-

- -

Impressum

-

Fabian Ecke
-Zum Moor 5
-07751 Rothenstein

-

Kontakt

-

Telefon: +49 3475 2028989
-E-Mail: kontakt@ftecke.de

-

Redaktionell verantwortlich

-

Fabian Ecke

-
-
-
-

Datenschutz­erklärung

-

1. Datenschutz auf einen Blick

-

Allgemeine Hinweise

Die folgenden Hinweise geben einen einfachen Überblick darüber, -was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind -alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum -Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten -Datenschutzerklärung.

-

Datenerfassung auf dieser Website

Wer ist verantwortlich für die Datenerfassung auf dieser -Website?

Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen -Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle“ in dieser -Datenschutzerklärung entnehmen.

Wie erfassen wir Ihre Daten?

Ihre Daten werden zum -einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei kann es sich z. B. um Daten handeln, die Sie in ein -Kontaktformular eingeben.

Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch -der Website durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z. B. Internetbrowser, -Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie diese -Website betreten.

Wofür nutzen wir Ihre Daten?

Ein Teil der Daten wird erhoben, um eine -fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres -Nutzerverhaltens verwendet werden.

Welche Rechte haben Sie bezüglich Ihrer Daten?

-

Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer -gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung oder -Löschung dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur Datenverarbeitung erteilt haben, -können Sie diese Einwilligung jederzeit für die Zukunft widerrufen. Außerdem haben Sie das Recht, -unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu -verlangen. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen Aufsichtsbehörde -zu.

Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns -wenden.

-

Analyse-Tools und Tools von Dritt­anbietern

Beim Besuch dieser Website kann Ihr Surf- -Verhalten statistisch ausgewertet werden. Das geschieht vor allem mit sogenannten Analyseprogrammen.

-

Detaillierte Informationen zu diesen Analyseprogrammen finden Sie in der folgenden -Datenschutzerklärung.

-

2. Hosting

-

Wir hosten die Inhalte unserer Website bei folgendem Anbieter:

-

Externes Hosting

Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf dieser -Website erfasst werden, werden auf den Servern des Hosters / der Hoster gespeichert. Hierbei kann es sich -v. a. um IP-Adressen, Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten, Kontaktdaten, -Namen, Websitezugriffe und sonstige Daten, die über eine Website generiert werden, handeln.

Das -externe Hosting erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren potenziellen und -bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse einer sicheren, schnellen und effizienten -Bereitstellung unseres Online-Angebots durch einen professionellen Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Sofern -eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von -Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder -den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des -TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.

Unser(e) Hoster wird bzw. werden Ihre Daten -nur insoweit verarbeiten, wie dies zur Erfüllung seiner Leistungspflichten erforderlich ist und unsere -Weisungen in Bezug auf diese Daten befolgen.

Wir setzen folgende(n) Hoster ein:

-

Fabian Ecke,
-Hauptstraße 71,
-06295 Lutherstadt Eisleben

-

3. Allgemeine Hinweise und Pflicht­informationen

-

Datenschutz

Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr -ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den gesetzlichen -Datenschutzvorschriften sowie dieser Datenschutzerklärung.

Wenn Sie diese Website benutzen, -werden verschiedene personenbezogene Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie -persönlich identifiziert werden können. Die vorliegende Datenschutzerklärung erläutert, -welche Daten wir erheben und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das -geschieht.

Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der -Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor -dem Zugriff durch Dritte ist nicht möglich.

-

Hinweis zur verantwortlichen Stelle

Die verantwortliche Stelle für die Datenverarbeitung auf -dieser Website ist:

Fabian Ecke,
-Hauptstraße 71,
-06295 Lutherstadt Eisleben

-

Telefon: +4934752028989
-E-Mail: kontakt@ftecke.de

-

Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen -über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail- -Adressen o. Ä.) entscheidet.

-

Speicherdauer

Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer -genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung -entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur -Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keine anderen rechtlich -zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben (z. B. steuer- -oder handelsrechtliche Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall -dieser Gründe.

-

Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf dieser Website

Sofern Sie -in die Datenverarbeitung eingewilligt haben, verarbeiten wir Ihre personenbezogenen Daten auf Grundlage von Art. -6 Abs. 1 lit. a DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien nach Art. 9 Abs. 1 DSGVO -verarbeitet werden. Im Falle einer ausdrücklichen Einwilligung in die Übertragung personenbezogener -Daten in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von Art. 49 Abs. 1 lit. a DSGVO. -Sofern Sie in die Speicherung von Cookies oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via -Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung zusätzlich auf Grundlage von § -25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur -Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir Ihre Daten auf Grundlage des -Art. 6 Abs. 1 lit. b DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer -rechtlichen Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung -kann ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über die -jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den folgenden Absätzen dieser -Datenschutzerklärung informiert.

-

Hinweis zur Datenweitergabe in datenschutzrechtlich nicht sichere Drittstaaten sowie die Weitergabe an US- -Unternehmen, die nicht DPF-zertifiziert sind

Wir verwenden unter anderem Tools von Unternehmen mit -Sitz in datenschutzrechtlich nicht sicheren Drittstaaten sowie US-Tools, deren Anbieter nicht nach dem EU-US-Data -Privacy Framework (DPF) zertifiziert sind. Wenn diese Tools aktiv sind, können Ihre personenbezogene Daten -in diese Staaten übertragen und dort verarbeitet werden. Wir weisen darauf hin, dass in datenschutzrechtlich -unsicheren Drittstaaten kein mit der EU vergleichbares Datenschutzniveau garantiert werden kann.

Wir -weisen darauf hin, dass die USA als sicherer Drittstaat grundsätzlich ein mit der EU vergleichbares -Datenschutzniveau aufweisen. Eine Datenübertragung in die USA ist danach zulässig, wenn der -Empfänger eine Zertifizierung unter dem „EU-US Data Privacy Framework“ (DPF) besitzt oder -über geeignete zusätzliche Garantien verfügt. Informationen zu Übermittlungen an -Drittstaaten einschließlich der Datenempfänger finden Sie in dieser -Datenschutzerklärung.

Empfänger von personenbezogenen Daten

Im Rahmen unserer -Geschäftstätigkeit arbeiten wir mit verschiedenen externen Stellen zusammen. Dabei ist teilweise auch -eine Übermittlung von personenbezogenen Daten an diese externen Stellen erforderlich. Wir geben -personenbezogene Daten nur dann an externe Stellen weiter, wenn dies im Rahmen einer Vertragserfüllung -erforderlich ist, wenn wir gesetzlich hierzu verpflichtet sind (z. B. Weitergabe von Daten an -Steuerbehörden), wenn wir ein berechtigtes Interesse nach Art. 6 Abs. 1 lit. f DSGVO an der Weitergabe haben -oder wenn eine sonstige Rechtsgrundlage die Datenweitergabe erlaubt. Beim Einsatz von Auftragsverarbeitern -geben wir personenbezogene Daten unserer Kunden nur auf Grundlage eines gültigen Vertrags über -Auftragsverarbeitung weiter. Im Falle einer gemeinsamen Verarbeitung wird ein Vertrag über gemeinsame -Verarbeitung geschlossen.

-

Widerruf Ihrer Einwilligung zur Datenverarbeitung

Viele Datenverarbeitungsvorgänge sind -nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung -jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom -Widerruf unberührt.

-

Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie gegen Direktwerbung (Art. 21 -DSGVO)

WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F -DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS IHRER -BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER PERSONENBEZOGENEN DATEN -WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN AUF DIESE BESTIMMUNGEN GESTÜTZTES -PROFILING. DIE JEWEILIGE RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN -SIE DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR IHRE -BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI DENN, WIR -KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG -NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER DIE -VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG VON -RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).

WERDEN IHRE -PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU BETREIBEN, SO HABEN SIE DAS -RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER -DATEN ZUM ZWECKE DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, -SOWEIT ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE WIDERSPRECHEN, -WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT MEHR ZUM ZWECKE DER -DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21 ABS. 2 DSGVO).

-

Beschwerde­recht bei der zuständigen Aufsichts­behörde

Im Falle von -Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer -Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres -Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht -unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe.

-

Recht auf Daten­übertrag­barkeit

Sie haben das Recht, Daten, die wir auf Grundlage -Ihrer Einwilligung oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in -einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte -Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch -machbar ist.

-

Auskunft, Berichtigung und Löschung

Sie haben im Rahmen der geltenden gesetzlichen -Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen -Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf -Berichtigung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema personenbezogene -Daten können Sie sich jederzeit an uns wenden.

-

Recht auf Einschränkung der Verarbeitung

Sie haben das Recht, die Einschränkung der -Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit an uns wenden. -Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:

  • Wenn Sie die -Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten, benötigen wir in der Regel Zeit, -um dies zu überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die -Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
  • Wenn die -Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah/geschieht, können Sie statt -der Löschung die Einschränkung der Datenverarbeitung verlangen.
  • Wenn wir Ihre -personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder -Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung die -Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
  • Wenn Sie einen -Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren -Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das -Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
-

Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen diese -Daten – von ihrer Speicherung abgesehen – nur mit Ihrer Einwilligung oder zur Geltendmachung, -Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen -natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der -Europäischen Union oder eines Mitgliedstaats verarbeitet werden.

-

SSL- bzw. TLS-Verschlüsselung

Diese Seite nutzt aus Sicherheitsgründen und zum Schutz -der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als -Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen -Sie daran, dass die Adresszeile des Browsers von „http://“ auf „https://“ wechselt und -an dem Schloss-Symbol in Ihrer Browserzeile.

Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, -können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.

-

4. Datenerfassung auf dieser Website

-

Server-Log-Dateien

Der Provider der Seiten erhebt und speichert automatisch Informationen in so -genannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:

    -
  • Browsertyp und Browserversion
  • verwendetes Betriebssystem
  • Referrer URL
  • -
  • Hostname des zugreifenden Rechners
  • Uhrzeit der Serveranfrage
  • IP-Adresse
-

Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.

Die -Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein -berechtigtes Interesse an der technisch fehlerfreien Darstellung und der Optimierung seiner Website – -hierzu müssen die Server-Log-Files erfasst werden.

-

Kontaktformular

Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre -Angaben aus dem Anfrageformular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung -der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre -Einwilligung weiter.

Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, -sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung -vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf -unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f -DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt wurde; die Einwilligung ist -jederzeit widerrufbar.

Die von Ihnen im Kontaktformular eingegebenen Daten verbleiben bei uns, bis Sie -uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die -Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihrer Anfrage). Zwingende -gesetzliche Bestimmungen – insbesondere Aufbewahrungsfristen – bleiben unberührt.

-

Anfrage per E-Mail, Telefon oder Telefax

Wenn Sie uns per E-Mail, Telefon oder Telefax -kontaktieren, wird Ihre Anfrage inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) -zum Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese Daten geben wir nicht ohne -Ihre Einwilligung weiter.

Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b -DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur -Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht -die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten -Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt -wurde; die Einwilligung ist jederzeit widerrufbar.

Die von Ihnen an uns per Kontaktanfragen -übersandten Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur -Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach -abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere -gesetzliche Aufbewahrungsfristen – bleiben unberührt.

-

5. Soziale Medien

-

Facebook

Auf dieser Website sind Elemente des sozialen Netzwerks Facebook integriert. Anbieter -dieses Dienstes ist die Meta Platforms Ireland Limited, Merrion Road, Dublin 4, D04 X2K5, Irland. Die erfassten -Daten werden nach Aussage von Facebook jedoch auch in die USA und in andere Drittländer -übertragen.

Eine Übersicht über die Facebook Social-Media-Elemente finden Sie hier: https://developers.facebook.com/docs/plugins/?locale=de_DE.

Wenn das Social-Media- -Element aktiv ist, wird eine direkte Verbindung zwischen Ihrem Endgerät und dem Facebook-Server -hergestellt. Facebook erhält dadurch die Information, dass Sie mit Ihrer IP-Adresse diese Website besucht -haben. Wenn Sie den Facebook „Like-Button“ anklicken, während Sie in Ihrem Facebook- -Account eingeloggt sind, können Sie die Inhalte dieser Website auf Ihrem Facebook-Profil verlinken. Dadurch -kann Facebook den Besuch dieser Website Ihrem Benutzerkonto zuordnen. Wir weisen darauf hin, dass wir als -Anbieter der Seiten keine Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung durch Facebook -erhalten. Weitere Informationen hierzu finden Sie in der Datenschutzerklärung von Facebook unter: https://de- -de.facebook.com/privacy/explanation.

Die Nutzung dieses Dienstes erfolgt auf Grundlage Ihrer -Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit -widerrufbar.

Soweit mit Hilfe des hier beschriebenen Tools personenbezogene Daten auf unserer Website -erfasst und an Facebook weitergeleitet werden, sind wir und die Meta Platforms Ireland Limited, 4 Grand Canal -Square, Grand Canal Harbour, Dublin 2, Irland gemeinsam für diese Datenverarbeitung verantwortlich (Art. -26 DSGVO). Die gemeinsame Verantwortlichkeit beschränkt sich dabei ausschließlich auf die Erfassung -der Daten und deren Weitergabe an Facebook. Die nach der Weiterleitung erfolgende Verarbeitung durch -Facebook ist nicht Teil der gemeinsamen Verantwortung. Die uns gemeinsam obliegenden Verpflichtungen wurden -in einer Vereinbarung über gemeinsame Verarbeitung festgehalten. Den Wortlaut der Vereinbarung finden -Sie unter: https://www.facebook.com/legal/controller_addendum. Laut dieser Vereinbarung sind wir -für die Erteilung der Datenschutzinformationen beim Einsatz des Facebook-Tools und für die -datenschutzrechtlich sichere Implementierung des Tools auf unserer Website verantwortlich. Für die -Datensicherheit der Facebook-Produkte ist Facebook verantwortlich. Betroffenenrechte (z. B. -Auskunftsersuchen) hinsichtlich der bei Facebook verarbeiteten Daten können Sie direkt bei Facebook -geltend machen. Wenn Sie die Betroffenenrechte bei uns geltend machen, sind wir verpflichtet, diese an Facebook -weiterzuleiten.

Die Datenübertragung in die USA wird auf die Standardvertragsklauseln der EU- -Kommission gestützt. Details finden Sie hier: https://www.facebook.com/legal/EU_data_transfer_addendum, https://de- -de.facebook.com/help/566994660333381 und https://www.facebook.com/policy.php.

-

Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data Privacy -Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der Europäischen Union und den -USA, der die Einhaltung europäischer Datenschutzstandards bei Datenverarbeitungen in den USA -gewährleisten soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich, diese -Datenschutzstandards einzuhalten. Weitere Informationen hierzu erhalten Sie vom Anbieter unter folgendem Link: -https: -//www.dataprivacyframework.gov/s/participant-search/participant- -detail?contact=true&id=a2zt0000000GnywAAC&status=Active.

-

X (ehemals Twitter)

Auf dieser Website sind Funktionen des Dienstes X (ehemals Twitter) -eingebunden. Diese Funktionen werden angeboten durch den Mutterkonzern X Corp., 1355 Market Street, Suite -900, San Francisco, CA 94103, USA. Für die Datenverarbeitung von außerhalb der USA lebenden -Personen ist die Niederlassung Twitter International Unlimited Company, One Cumberland Place, Fenian Street, -Dublin 2, D02 AX07, Irland, verantwortlich.

Wenn das Social-Media-Element aktiv ist, wird eine direkte -Verbindung zwischen Ihrem Endgerät und dem X-Server hergestellt. X (ehemals Twitter) erhält dadurch -Informationen über den Besuch dieser Website durch Sie. Durch das Benutzen von X (ehemals Twitter) und -der Funktion „Re-Tweet“ bzw. „Repost“ werden die von Ihnen besuchten Websites mit -Ihrem X (ehemals Twitter)-Account verknüpft und anderen Nutzern bekannt gegeben. Wir weisen darauf hin, -dass wir als Anbieter der Seiten keine Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung -durch X (ehemals Twitter) erhalten. Weitere Informationen hierzu finden Sie in der Datenschutzerklärung von -X (ehemals Twitter) unter: https://x.com/de/privacy.

Die Nutzung dieses Dienstes erfolgt auf Grundlage Ihrer -Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit -widerrufbar.

Die Datenübertragung in die USA wird auf die Standardvertragsklauseln der EU- -Kommission gestützt. Details finden Sie hier: https://gdpr.x.com/en/controller-to-controller- -transfers.html.

Ihre Datenschutzeinstellungen bei X (ehemals Twitter) können Sie in den Konto- -Einstellungen unter https://x.com/settings/account ändern.

-

Instagram

Auf dieser Website sind Funktionen des Dienstes Instagram eingebunden. Diese -Funktionen werden angeboten durch die Meta Platforms Ireland Limited, Merrion Road, Dublin 4, D04 X2K5, -Irland.

Wenn das Social-Media-Element aktiv ist, wird eine direkte Verbindung zwischen Ihrem -Endgerät und dem Instagram-Server hergestellt. Instagram erhält dadurch Informationen über -den Besuch dieser Website durch Sie.

Wenn Sie in Ihrem Instagram-Account eingeloggt sind, können -Sie durch Anklicken des Instagram-Buttons die Inhalte dieser Website mit Ihrem Instagram-Profil verlinken. -Dadurch kann Instagram den Besuch dieser Website Ihrem Benutzerkonto zuordnen. Wir weisen darauf hin, dass -wir als Anbieter der Seiten keine Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung durch -Instagram erhalten.

Die Nutzung dieses Dienstes erfolgt auf Grundlage Ihrer Einwilligung nach Art. 6 Abs. 1 -lit. a DSGVO und § 25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit widerrufbar.

Soweit mit Hilfe des -hier beschriebenen Tools personenbezogene Daten auf unserer Website erfasst und an Facebook bzw. Instagram -weitergeleitet werden, sind wir und die Meta Platforms Ireland Limited, 4 Grand Canal Square, Grand Canal -Harbour, Dublin 2, Irland gemeinsam für diese Datenverarbeitung verantwortlich (Art. 26 DSGVO). Die -gemeinsame Verantwortlichkeit beschränkt sich dabei ausschließlich auf die Erfassung der Daten und -deren Weitergabe an Facebook bzw. Instagram. Die nach der Weiterleitung erfolgende Verarbeitung durch -Facebook bzw. Instagram ist nicht Teil der gemeinsamen Verantwortung. Die uns gemeinsam obliegenden -Verpflichtungen wurden in einer Vereinbarung über gemeinsame Verarbeitung festgehalten. Den Wortlaut -der Vereinbarung finden Sie unter: https://www.facebook.com/legal/controller_addendum. Laut -dieser Vereinbarung sind wir für die Erteilung der Datenschutzinformationen beim Einsatz des Facebook- -bzw. Instagram-Tools und für die datenschutzrechtlich sichere Implementierung des Tools auf unserer -Website verantwortlich. Für die Datensicherheit der Facebook bzw. Instagram-Produkte ist Facebook -verantwortlich. Betroffenenrechte (z. B. Auskunftsersuchen) hinsichtlich der bei Facebook bzw. Instagram -verarbeiteten Daten können Sie direkt bei Facebook geltend machen. Wenn Sie die Betroffenenrechte bei uns -geltend machen, sind wir verpflichtet, diese an Facebook weiterzuleiten.

Die Datenübertragung in die -USA wird auf die Standardvertragsklauseln der EU-Kommission gestützt. Details finden Sie hier: https://www.facebook.com/legal/EU_data_transfer_addendum, https://privacycenter.instagram.com/policy/ und https://de- -de.facebook.com/help/566994660333381.

Weitere Informationen hierzu finden Sie in der -Datenschutzerklärung von Instagram: https://privacycenter.instagram.com/policy/.

-

Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data Privacy -Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der Europäischen Union und den -USA, der die Einhaltung europäischer Datenschutzstandards bei Datenverarbeitungen in den USA -gewährleisten soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich, diese -Datenschutzstandards einzuhalten. Weitere Informationen hierzu erhalten Sie vom Anbieter unter folgendem Link: -https: -//www.dataprivacyframework.gov/s/participant-search/participant- -detail?contact=true&id=a2zt0000000GnywAAC&status=Active.

-

Tumblr

Diese Website nutzt Schaltflächen und sonstige Elemente des Dienstes Tumblr. -Anbieter ist die Tumblr, Inc., 35 East 21st St, 10th Floor, New York, NY 10010, USA.

Wenn das Social-Media- -Element aktiv ist, wird eine direkte Verbindung zwischen Ihrem Endgerät und dem Tumblr-Server hergestellt. -Tumblr erhält dadurch Informationen über den Besuch dieser Website durch Sie.

Die Tumblr- -Schaltflächen ermöglichen es Ihnen, einen Beitrag oder eine Seite bei Tumblr zu teilen oder dem -Anbieter bei Tumblr zu folgen. Wenn Sie eine unserer Websites mit Tumblr-Button aufrufen, baut der Browser eine -direkte Verbindung mit den Servern von Tumblr auf. Wir haben keinen Einfluss auf den Umfang der Daten, die -Tumblr mit Hilfe dieses Plugins erhebt und übermittelt. Nach aktuellem Stand werden die IP-Adresse des -Nutzers sowie die URL der jeweiligen Website übermittelt.

Die Nutzung dieses Dienstes erfolgt auf -Grundlage Ihrer Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG. Die Einwilligung ist -jederzeit widerrufbar.

Weitere Informationen hierzu finden sich in der Datenschutzerklärung von -Tumblr unter: https://www.tumblr.com/privacy/de.

-

Pinterest

Auf dieser Website verwenden wir Elemente des sozialen Netzwerkes Pinterest, das von -der Pinterest Europe Ltd., Palmerston House, 2nd Floor, Fenian Street, Dublin 2, Irland betrieben wird.

-

Wenn Sie eine Seite aufrufen, die ein solches Element enthält, stellt Ihr Browser eine direkte Verbindung -zu den Servern von Pinterest her. Dieses Social-Media-Element übermittelt dabei Protokolldaten an den -Server von Pinterest in die USA. Diese Protokolldaten enthalten möglicherweise Ihre IP-Adresse, die Adresse -der besuchten Websites, die ebenfalls Pinterest-Funktionen enthalten, Art und Einstellungen des Browsers, Datum -und Zeitpunkt der Anfrage, Ihre Verwendungsweise von Pinterest sowie Cookies.

Die Nutzung dieses -Dienstes erfolgt auf Grundlage Ihrer Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG. Die -Einwilligung ist jederzeit widerrufbar.

Weitere Informationen zu Zweck, Umfang und weiterer -Verarbeitung und Nutzung der Daten durch Pinterest sowie Ihre diesbezüglichen Rechte und -Möglichkeiten zum Schutz Ihrer Privatsphäre finden Sie in den Datenschutzhinweisen von Pinterest: https://policy.pinterest.com/de/privacy-policy.

-

6. Analyse-Tools und Werbung

-

Matomo

Diese Website benutzt den Open Source Webanalysedienst Matomo.

Mit Hilfe von -Matomo sind wir in der Lage Daten über die Nutzung unserer Website durch die Websitebesucher zu erfassen -und zu analysieren. Hierdurch können wir u. a. herausfinden, wann welche Seitenaufrufe getätigt -wurden und aus welcher Region sie kommen. Außerdem erfassen wir verschiedene Logdateien (z. B. IP- -Adresse, Referrer, verwendete Browser und Betriebssysteme) und können messen, ob unsere -Websitebesucher bestimmte Aktionen durchführen (z. B. Klicks, Käufe u. Ä.).

Die -Nutzung dieses Analyse-Tools erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein -berechtigtes Interesse an der Analyse des Nutzerverhaltens, um sowohl sein Webangebot als auch seine Werbung -zu optimieren. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung -ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die -Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers -(z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.

-

IP-Anonymisierung

Bei der Analyse mit Matomo setzen wir IP-Anonymisierung ein. Hierbei wird Ihre -IP-Adresse vor der Analyse gekürzt, sodass Sie Ihnen nicht mehr eindeutig zuordenbar ist.

-

Cookielose Analyse

Wir haben Matomo so konfiguriert, dass Matomo keine Cookies in Ihrem -Browser speichert.

-

Hosting

Wir hosten Matomo ausschließlich auf unseren eigenen Servern, sodass alle -Analysedaten bei uns verbleiben und nicht weitergegeben werden.

-

7. Plugins und Tools

-

YouTube mit erweitertem Datenschutz

Diese Website bindet Videos der Website YouTube ein. -Betreiber der Website ist die Google Ireland Limited („Google”), Gordon House, Barrow Street, -Dublin 4, Irland.

Wenn Sie eine dieser Website besuchen, auf denen YouTube eingebunden ist, wird eine -Verbindung zu den Servern von YouTube hergestellt. Dabei wird dem YouTube-Server mitgeteilt, welche unserer -Seiten Sie besucht haben. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, ermöglichen Sie YouTube, Ihr -Surfverhalten direkt Ihrem persönlichen Profil zuzuordnen. Dies können Sie verhindern, indem Sie sich -aus Ihrem YouTube-Account ausloggen.

Wir nutzen YouTube im erweiterten Datenschutzmodus. Videos, -die im erweiterten Datenschutzmodus abgespielt werden, werden nach Aussage von YouTube nicht zur -Personalisierung des Surfens auf YouTube eingesetzt. Anzeigen, die im erweiterten Datenschutzmodus ausgespielt -werden, sind ebenfalls nicht personalisiert. Im erweiterten Datenschutzmodus werden keine Cookies gesetzt. -Stattdessen werden jedoch sogenannte Local Storage Elemente im Browser des Users gespeichert, die ähnlich -wie Cookies personenbezogene Daten beinhalten und zur Wiedererkennung eingesetzt werden können. -Details zum erweiterten Datenschutzmodus finden Sie hier: https://support.google.com/youtube/answer/171780.

Gegebenenfalls können nach -der Aktivierung eines YouTube-Videos weitere Datenverarbeitungsvorgänge ausgelöst werden, auf die -wir keinen Einfluss haben.

Die Nutzung von YouTube erfolgt im Interesse einer ansprechenden Darstellung -unserer Online-Angebote. Dies stellt ein berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Sofern -eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von -Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder -den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des -TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.

Weitere Informationen über Datenschutz -bei YouTube finden Sie in deren Datenschutzerklärung unter: https://policies.google.com/privacy?hl=de.

-

Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data Privacy -Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der Europäischen Union und den -USA, der die Einhaltung europäischer Datenschutzstandards bei Datenverarbeitungen in den USA -gewährleisten soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich, diese -Datenschutzstandards einzuhalten. Weitere Informationen hierzu erhalten Sie vom Anbieter unter folgendem Link: -https://www.dataprivacyframework.gov/participant/5780.

-

Google Maps

Diese Seite nutzt den Kartendienst Google Maps. Anbieter ist die Google Ireland -Limited („Google“), Gordon House, Barrow Street, Dublin 4, Irland. Mit Hilfe dieses Dienstes -können wir Kartenmaterial auf unserer Website einbinden.

Zur Nutzung der Funktionen von Google -Maps ist es notwendig, Ihre IP-Adresse zu speichern. Diese Informationen werden in der Regel an einen Server von -Google in den USA übertragen und dort gespeichert. Der Anbieter dieser Seite hat keinen Einfluss auf diese -Datenübertragung. Wenn Google Maps aktiviert ist, kann Google zum Zwecke der einheitlichen Darstellung -der Schriftarten Google Fonts verwenden. Beim Aufruf von Google Maps lädt Ihr Browser die -benötigten Web Fonts in ihren Browsercache, um Texte und Schriftarten korrekt anzuzeigen.

Die -Nutzung von Google Maps erfolgt im Interesse einer ansprechenden Darstellung unserer Online-Angebote und an -einer leichten Auffindbarkeit der von uns auf der Website angegebenen Orte. Dies stellt ein berechtigtes Interesse -im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die -Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit -die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers -(z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.

-

Die Datenübertragung in die USA wird auf die Standardvertragsklauseln der EU-Kommission -gestützt. Details finden Sie hier: https://privacy.google.com/businesses/gdprcontrollerterms/ und -https://privacy.google.com/businesses/gdprcontrollerterms/sccs/.

Mehr Informationen -zum Umgang mit Nutzerdaten finden Sie in der Datenschutzerklärung von Google: https://policies.google.com/privacy?hl=de.

-

Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data Privacy -Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der Europäischen Union und den -USA, der die Einhaltung europäischer Datenschutzstandards bei Datenverarbeitungen in den USA -gewährleisten soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich, diese -Datenschutzstandards einzuhalten. Weitere Informationen hierzu erhalten Sie vom Anbieter unter folgendem Link: -https://www.dataprivacyframework.gov/participant/5780.

-

OpenStreetMap

Wir nutzen den Kartendienst von OpenStreetMap (OSM).

Wir binden das -Kartenmaterial von OpenStreetMap auf dem Server der OpenStreetMap Foundation, St John’s Innovation -Centre, Cowley Road, Cambridge, CB4 0WS, Großbritannien, ein. Großbritannien gilt als -datenschutzrechtlich sicherer Drittstaat. Das bedeutet, dass Großbritannien ein Datenschutzniveau aufweist, -das dem Datenschutzniveau in der Europäischen Union entspricht. Bei der Nutzung der OpenStreetMap- -Karten wird eine Verbindung zu den Servern der OpenStreetMap-Foundation hergestellt. Dabei können -u. a. Ihre IP-Adresse und weitere Informationen über Ihr Verhalten auf dieser Website an die OSMF -weitergeleitet werden. OpenStreetMap speichert hierzu unter Umständen Cookies in Ihrem Browser oder -setzt vergleichbare Wiedererkennungstechnologien ein.

-

Die Nutzung von OpenStreetMap erfolgt im Interesse einer ansprechenden Darstellung unserer Online- -Angebote und einer leichten Auffindbarkeit der von uns auf der Website angegebenen Orte. Dies stellt ein -berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Sofern eine entsprechende Einwilligung abgefragt -wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. -1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im -Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist -jederzeit widerrufbar.

-

SoundCloud

Auf dieser Website können Plugins des sozialen Netzwerks SoundCloud -(SoundCloud Limited, Berners House, 47-48 Berners Street, London W1T 3NF, Großbritannien.) integriert -sein. Die SoundCloud-Plugins erkennen Sie an dem SoundCloud-Logo auf den betroffenen Seiten.

Wenn Sie -diese Website besuchen, wird nach Aktivierung des Plugins eine direkte Verbindung zwischen Ihrem Browser und -dem SoundCloud-Server hergestellt. SoundCloud erhält dadurch die Information, dass Sie mit Ihrer IP-Adresse -diese Website besucht haben. Wenn Sie den „Like-Button“ oder „Share-Button“ -anklicken, während Sie in Ihrem SoundCloud- Benutzerkonto eingeloggt sind, können Sie die Inhalte -dieser Website mit Ihrem SoundCloud-Profil verlinken und/oder teilen. Dadurch kann SoundCloud Ihrem -Benutzerkonto den Besuch dieser Website zuordnen. Wir weisen darauf hin, dass wir als Anbieter der Seiten keine -Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung durch SoundCloud erhalten.

Die -Speicherung und Analyse der Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat -ein berechtigtes Interesse an einer möglichst umfangreichen Sichtbarkeit in den Sozialen Medien. Sofern eine -entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 -Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder den -Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TDDDG -umfasst. Die Einwilligung ist jederzeit widerrufbar.

Großbritannien gilt als datenschutzrechtlich -sicherer Drittstaat. Das bedeutet, dass Großbritannien ein Datenschutzniveau aufweist, das dem -Datenschutzniveau in der Europäischen Union entspricht.

Weitere Informationen hierzu finden Sie in -der Datenschutzerklärung von SoundCloud unter: https://soundcloud.com/pages/privacy.

Wenn Sie nicht -wünschen, dass SoundCloud den Besuch dieser Website Ihrem SoundCloud- Benutzerkonto zuordnet, loggen -Sie sich bitte aus Ihrem SoundCloud-Benutzerkonto aus bevor Sie Inhalte des SoundCloud-Plugins aktivieren.

-

Spotify

Auf dieser Website sind Funktionen des Musik-Dienstes Spotify eingebunden. Anbieter ist -die Spotify AB, Birger Jarlsgatan 61, 113 56 Stockholm in Schweden. Die Spotify Plugins erkennen Sie an dem -grünen Logo auf dieser Website. Eine Übersicht über die Spotify-Plugins finden Sie unter: https://developer.spotify.com.

Dadurch kann beim Besuch dieser Website über das -Plugin eine direkte Verbindung zwischen Ihrem Browser und dem Spotify-Server hergestellt werden. Spotify -erhält dadurch die Information, dass Sie mit Ihrer IP-Adresse diese Website besucht haben. Wenn Sie den -Spotify Button anklicken, während Sie in Ihrem Spotify-Account eingeloggt sind, können Sie die Inhalte -dieser Website auf Ihrem Spotify Profil verlinken. Dadurch kann Spotify den Besuch dieser Website Ihrem -Benutzerkonto zuordnen.

Wir weisen darauf hin, dass bei der Nutzung von Spotify Cookies von Google -Analytics eingesetzt werden, sodass Ihre Nutzungsdaten bei der Nutzung von Spotify auch an Google weitergegeben -werden können. Google Analytics ist ein Tool des Google-Konzerns zur Analyse des Nutzerverhaltens mit Sitz -in den USA. Für diese Einbindung ist allein Spotify verantwortlich. Wir als Websitebetreiber haben auf diese -Verarbeitung keinen Einfluss.

Die Speicherung und Analyse der Daten erfolgt auf Grundlage von Art. 6 Abs. -1 lit. f DSGVO. Der Websitebetreiber hat ein berechtigtes Interesse an der ansprechenden akustischen -Ausgestaltung seiner Website. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung -ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die -Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers -(z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.

-

Weitere Informationen hierzu finden Sie in der Datenschutzerklärung von Spotify: https://www.spotify.com/de/legal/privacy-policy/.

Wenn Sie nicht wünschen, dass -Spotify den Besuch dieser Website Ihrem Spotify-Nutzerkonto zuordnen kann, loggen Sie sich bitte aus Ihrem -Spotify-Benutzerkonto aus.

-
-
- -
- - - \ No newline at end of file diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 83c2841..0000000 --- a/public/index.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - -DJ & Eventservice Fabian Ecke - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
- -
-
- -
-
- -
- - - - -
-

Tanzveranstaltungen

-
-
- -
- - - - -
-

Events

-
-
- -
- - - - -
-

Familienfeiern

-
-
- -
- - - - -
-

Beschallung

-
-
- -
- - - - -
-

Abschlussfeiern

-
-
- -
- - - - -
-

Tontechnik für Vorträge und Ansprachen

-
-
- -
-
-
-
-
-

Pakete für Partys

-
-
-
-
- - -
-
- - - -

Paket S

-

DJ, Basis-Licht und Ton für Feiern bis 50 Personen

-
-
- - - -
-
- - - -

Paket M

-

DJ, Licht und Ton für Feiern bis 200 Personen

-
-
- - - -
-
- - - -

Paket L

-

Veranstaltungstechnik bis 1000 Personen nach Absprache

-
-
- - -
-
-
- -
- - -
-

Neuigkeiten

-
-
- Noch Technik für Ihre Party gesucht?
-
Noch Technik für Ihre Party gesucht?
-

Dekoration bestellt, Catering gebucht - doch etwas Beleuchtung für das Ambiente fehlt noch? Hier sind Sie dafür genau richtig! Auc...

-

- -

-
-
-
- -
- Reit- und Springturnier Klosterrode 2026
-
Reit- und Springturnier Klosterrode 2026
-

Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreu...

-

- -

-
-
-
- -
- Abiball Martin-Luther-Gymnasium 2026
-
Abiball Martin-Luther-Gymnasium 2026
-

🎉 Direkt zum Start in die Sommerferien haben DJ Torsten Ecke und ich (DJ und Eventservice Fabian Ecke) den Abiball des MLG Eislebe...

-

- -

-
-
-
- -
- Pfingstsonntag 2026 in Ahlsdorf
-
Pfingstsonntag 2026 in Ahlsdorf
-

Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder Partystimmung auf🥳 In Zusammenarbeit mit DJ Torsten Ecke konnten wir die...

-

- -

-
-
-
- - -
- - Alle Beiträge > - -
-
- - - - - - diff --git a/public/index.xml b/public/index.xml deleted file mode 100644 index 79efcb3..0000000 --- a/public/index.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - DJ & Eventservice Fabian Ecke - http://localhost:37149/ - Recent content on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 20 Sep 2026 00:00:00 +0000 - - - Example Project - http://localhost:37149/products/example/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example/ - Testproject Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - Example Project 2 - http://localhost:37149/products/example2/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example2/ - Hello, World! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - Example Project 3 - http://localhost:37149/products/example3/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example3/ - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - Noch Technik für Ihre Party gesucht? - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Dekoration bestellt, Catering gebucht - doch etwas Beleuchtung für das Ambiente fehlt noch? Hier sind Sie dafür genau richtig! Auch wenn kein DJ nötig ist, können professionelle Lautsprecher-Technik oder Lichttechnik zu einer gelungenen Party-Atmosphäre beitragen. Hierfür biete ich zusammengestellte Technik-Pakete an, die unter der Kategorie &ldquo;Verleih&rdquo; zu finden sind. Gerne können Pakete auch individuell zusammengestellt werden. - - - Reit- und Springturnier Klosterrode 2026 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Sat, 11 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇 Dabei im Einsatz: -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer -1x Shure Beta 58A Mikrofon -1x Yamaha MG16/6FX Mischpult -1x dbx 166XL Gate &amp; Kompressor für das Mikrofon &hellip;und weitere Technik Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. - - - Abiball Martin-Luther-Gymnasium 2026 - http://localhost:37149/blog/events/abiballmlg26/ - Sat, 04 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/abiballmlg26/ - 🎉 Direkt zum Start in die Sommerferien haben DJ Torsten Ecke und ich (DJ und Eventservice Fabian Ecke) den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleitet 🎉 Dabei im Einsatz: -6x Beam 7R Moving Heads -2x Stairville Hazer -16x LED Spots -2x 40m LED Lichterkette als Ambiente-Beleuchtung -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals &hellip;und weitere Technik Hier ein paar Eindrücke von der Veranstaltung: - - - Pfingstsonntag 2026 in Ahlsdorf - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Sun, 24 May 2026 00:00:00 +0000 - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder Partystimmung auf🥳 In Zusammenarbeit mit DJ Torsten Ecke konnten wir die Stimmung ordentlich aufheizen. Dabei im Einsatz: -6x Beam 7R Moving Heads -8x LED Spots -2x Stairville Hazer -2x GLP Wash Moving Heads -der neue Controller (Denon Prime 4+) von DJ Ecke Junior &hellip;und weitere Technik So konnten wir mit passender Musikauswahl und angepasster Beleuchtungstechnik unseren Beitrag leisten. Hier ein paar Eindrücke der Veranstaltung: - - - Über mich - http://localhost:37149/about/ - Thu, 01 Jan 2026 00:00:00 +0000 - http://localhost:37149/about/ - Hi, ich bin Fabian Ecke und meine Leidenschaft ist es tolle Events mit passender Musik und professionellem Service für Sie zum Leben zu erwecken. Mein Weg Die Begeisterung für Musik und Technik liegt in meiner Familie. Mein Vater ist schon seit vielen Jahren selbst als DJ und Veranstaltungsdienstleister unterwegs und hat mich zum ein oder anderen Aufbau mitgenommen. So habe ich als Kind schon mit dem Lichtpult gespielt oder Techniker vor Ort über ihren Job ausgefragt. - - - Impressum und Datenschutzerklärung - http://localhost:37149/impressum-datenschutzerklaerung/ - Mon, 01 Jan 0001 00:00:00 +0000 - http://localhost:37149/impressum-datenschutzerklaerung/ - Impressum Fabian Ecke Zum Moor 5 07751 Rothenstein Kontakt Telefon: +49 3475 2028989 E-Mail: kontakt@ftecke.de Redaktionell verantwortlich Fabian Ecke Datenschutz&shy;erkl&auml;rung 1. Datenschutz auf einen Blick Allgemeine Hinweise Die folgenden Hinweise geben einen einfachen &Uuml;berblick dar&uuml;ber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie pers&ouml;nlich identifiziert werden k&ouml;nnen. Ausf&uuml;hrliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgef&uuml;hrten Datenschutzerkl&auml;rung. - - - Kontakt - http://localhost:37149/contact/ - Mon, 01 Jan 0001 00:00:00 +0000 - http://localhost:37149/contact/ - Füllen Sie bitte dieses Formular aus, um mit mir in Kontakt zu treten. Alternativ können Sie mich auch unter folgenden Kanälen erreichen: Telefon: +49 (0)3475 2028989 Whatsapp: +49 176 45960424 Instagram: instagram.com E-Mail: kontakt@ftecke.de Dieses Feld nicht ausfüllen - - - diff --git a/public/js/clipboard.min.js b/public/js/clipboard.min.js deleted file mode 100644 index 28650f3..0000000 --- a/public/js/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.6 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o/g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:O,mergeStreams:k}=i,M=Symbol("nomatch");return function(t){var a=[],i=Object.create(null),s=Object.create(null),o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void k.addText(A);e=m(y.subLanguage,A,!0,O[y.subLanguage]),O[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),k.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void k.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;k.addText(t),t="",I+=a,k.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),k.addText(t)}(),A=""}function h(e){return e.className&&k.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&k.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,O={},k=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>k.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),k.closeAllNodes(),k.finalize(),N=k.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:k,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:k};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:k,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=O(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=k(i,O(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.2";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); -hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}()); -hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}()); -hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}()); -hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}()); -hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}()); -hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}()); -hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}()); -hljs.registerLanguage("css",function(){"use strict";return function(e){var n={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{name:"CSS",case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",illegal:/:/,returnBegin:!0,contains:[{className:"keyword",begin:/@\-?\w[\w]*(\-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:"and or not only",contains:[{begin:/[a-z-]+:/,className:"attribute"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}()); -hljs.registerLanguage("diff",function(){"use strict";return function(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}}()); -hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:"e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}()); -hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}()); -hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}()); -hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}()); -hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}()); -hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}()); -hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); -hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}()); -hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}()); -hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}()); -hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}()); -hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}()); -hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}()); -hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}()); -hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}()); -hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}()); -hljs.registerLanguage("python",function(){"use strict";return function(e){var n={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}()); -hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}()); -hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}()); -hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}()); -hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}()); -hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}()); -hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}()); -hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}()); -hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}()); -hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}()); \ No newline at end of file diff --git a/public/js/highlightjs-line-numbers.min.js b/public/js/highlightjs-line-numbers.min.js deleted file mode 100644 index a5f9f20..0000000 --- a/public/js/highlightjs-line-numbers.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a
{6}',[l,s,c,m,h,o+n.startFrom,0{1}',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r{1}
\n',[n,0t.clientHeight)}function lt(t){var e=window.getComputedStyle(t),t=parseFloat(e.getPropertyValue("animation-duration")||"0"),e=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0\n
\n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n').replace(/(^|\n)\s*/g,""),kt=function(t){var e,n,o,i,r,a=!!(i=k())&&(i.parentNode.removeChild(i),bt([document.documentElement,document.body],[$["no-backdrop"],$["toast-shown"],$["has-column"]]),!0);pt()?K("SweetAlert2 requires document to initialize"):((r=document.createElement("div")).className=$.container,a&&vt(r,$["no-transition"]),_(r,Ct),(i="string"==typeof(e=t.target)?document.querySelector(e):e).appendChild(r),a=t,(e=x()).setAttribute("role",a.toast?"alert":"dialog"),e.setAttribute("aria-live",a.toast?"polite":"assertive"),a.toast||e.setAttribute("aria-modal","true"),r=i,"rtl"===window.getComputedStyle(r).direction&&vt(k(),$.rtl),t=E(),a=yt(t,$.input),e=yt(t,$.file),n=t.querySelector(".".concat($.range," input")),o=t.querySelector(".".concat($.range," output")),i=yt(t,$.select),r=t.querySelector(".".concat($.checkbox," input")),t=yt(t,$.textarea),a.oninput=ft,e.onchange=ft,i.onchange=ft,r.onchange=ft,t.oninput=ft,n.oninput=function(t){ft(t),o.value=n.value},n.onchange=function(t){ft(t),n.nextSibling.value=n.value})},At=function(t,e){t.jquery?xt(e,t):_(e,t.toString())},xt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Bt=function(){if(pt())return!1;var t,e=document.createElement("div"),n={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&void 0!==e.style[t])return n[t];return!1}();function Pt(t,e,n){st(t,n["show".concat(m(e),"Button")],"inline-block"),_(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=$[e],z(t,n,"".concat(e,"Button")),vt(t,n["".concat(e,"ButtonClass")])}function Et(t,e){var n,o,i=k();i&&(o=i,"string"==typeof(n=e.backdrop)?o.style.background=n:n||vt([document.documentElement,document.body],$["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&W('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),o=i,(n=e.position)in $?vt(o,$[n]):(W('The "position" parameter is not valid, defaulting to "center"'),vt(o,$.center)),n=i,!(o=e.grow)||"string"!=typeof o||(o="grow-".concat(o))in $&&vt(n,$[o]),z(i,e,"container"),(e=document.body.getAttribute("data-swal2-queue-step"))&&(i.setAttribute("data-queue-step",e),document.body.removeAttribute("data-swal2-queue-step")))}function Ot(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}function St(t,e,n){var o,i;n.inputLabel&&(t.id=$.input,o=document.createElement("label"),i=$["input-label"],o.setAttribute("for",t.id),o.className=i,vt(o,n.customClass.inputLabel),o.innerText=n.inputLabel,e.insertAdjacentElement("beforebegin",o))}var Tt={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},Lt=["input","file","range","select","radio","checkbox","textarea"],qt=function(t){if(!Mt[t.input])return K('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=It(t.input),n=Mt[t.input](e,t);rt(n),setTimeout(function(){nt(n)})},Dt=function(t,e){var n=et(E(),t);if(n)for(var o in!function(t){for(var e=0;e=o.progressSteps.length&&W("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach(function(t,e){var n,t=(n=t,t=document.createElement("li"),vt(t,$["progress-step"]),_(t,n),t);i.appendChild(t),e===r&&vt(t,$["active-progress-step"]),e!==o.progressSteps.length-1&&(t=o,e=document.createElement("li"),vt(e,$["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e=e,i.appendChild(e))})}function Nt(t,e){var n=M();z(n,e,"header"),Rt(0,e),n=t,t=e,(n=Tt.innerParams.get(n))&&t.icon===n.icon&&B()?zt(B(),t):(Ft(),t.icon&&(-1!==Object.keys(X).indexOf(t.icon)?(n=A(".".concat($.icon,".").concat(X[t.icon])),rt(n),Kt(n,t),zt(n,t),vt(n,t.showClass.icon)):K('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')))),function(t){var e=O();if(!t.imageUrl)return at(e);rt(e,""),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),it(e,"width",t.imageWidth),it(e,"height",t.imageHeight),e.className=$.image,z(e,t,"image")}(e),n=e,t=P(),st(t,n.title||n.titleText),n.title&&mt(n.title,t),n.titleText&&(t.innerText=n.titleText),z(t,n,"title"),n=e,e=R(),_(e,n.closeButtonHtml),z(e,n,"closeButton"),st(e,n.showCloseButton),e.setAttribute("aria-label",n.closeButtonAriaLabel)}function Ut(t,e){var n,o;o=e,n=x(),it(n,"width",o.width),it(n,"padding",o.padding),o.background&&(n.style.background=o.background),Jt(n,o),Et(0,e),Nt(t,e),Ht(t,e),ht(0,e),o=e,t=H(),st(t,o.footer),o.footer&&mt(o.footer,t),z(t,o,"footer"),"function"==typeof e.didRender?e.didRender(x()):"function"==typeof e.onRender&&e.onRender(x())}function _t(){return L()&&L().click()}var Ft=function(){for(var t=n(),e=0;e\n \n
    \n
    \n '):"error"===e.icon?_(t,'\n \n \n \n \n '):_(t,Zt({question:"?",warning:"!",info:"i"}[e.icon]))},Yt=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n').concat(t,"")},Qt=[],Jt=function(t,e){t.className="".concat($.popup," ").concat(wt(t)?e.showClass.popup:""),e.toast?(vt([document.documentElement,document.body],$["toast-shown"]),vt(t,$.toast)):vt(t,$.modal),z(t,e,"popup"),"string"==typeof e.customClass&&vt(t,e.customClass),e.icon&&vt(t,$["icon-".concat(e.icon)])};function $t(t){var e=x();e||Mn.fire(),e=x();var n=I(),o=D();!t&&wt(L())&&(t=L()),rt(n),t&&(at(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),vt([e,n],$.loading),rt(o),e.setAttribute("data-loading",!0),e.setAttribute("aria-busy",!0),e.focus()}function Xt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;ee.restoreFocusTimeout=setTimeout(function(){ee.previousActiveElement&&ee.previousActiveElement.focus?(ee.previousActiveElement.focus(),ee.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Gt(){if(ee.timeout)return function(){var t=V(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),n=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(n,"%")}(),ee.timeout.stop()}function te(){if(ee.timeout){var t=ee.timeout.start();return dt(t),t}}var ee={},ne=!1,oe={};function ie(t){for(var e=t.target;e&&e!==document;e=e.parentNode)for(var n in oe){var o=e.getAttribute(n);if(o)return void oe[n].fire({template:o})}}function re(t){return Object.prototype.hasOwnProperty.call(se,t)}function ae(t){return le[t]}function ce(t){for(var e in t)re(o=e)||W('Unknown parameter "'.concat(o,'"')),t.toast&&(n=e,-1!==de.indexOf(n)&&W('The parameter "'.concat(n,'" is incompatible with toasts'))),ae(n=e)&&v(n,ae(n));var n,o}var se={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,willOpen:void 0,didOpen:void 0,onRender:void 0,didRender:void 0,onClose:void 0,onAfterClose:void 0,willClose:void 0,didClose:void 0,onDestroy:void 0,didDestroy:void 0,scrollbarPadding:!0},ue=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],le={animation:'showClass" and "hideClass',onBeforeOpen:"willOpen",onOpen:"didOpen",onRender:"didRender",onClose:"willClose",onAfterClose:"didClose",onDestroy:"didDestroy"},de=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","heightAuto","keydownListenerCapture"],pe=Object.freeze({isValidParameter:re,isUpdatableParameter:function(t){return-1!==ue.indexOf(t)},isDeprecatedParameter:ae,argsToParams:function(n){var o={};return"object"!==r(n[0])||C(n[0])?["title","html","icon"].forEach(function(t,e){e=n[e];"string"==typeof e||C(e)?o[t]=e:void 0!==e&&K("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(e)))}):s(o,n[0]),o},isVisible:function(){return wt(x())},clickConfirm:_t,clickDeny:function(){return q()&&q().click()},clickCancel:function(){return j()&&j().click()},getContainer:k,getPopup:x,getTitle:P,getContent:E,getHtmlContainer:function(){return t($["html-container"])},getImage:O,getIcon:B,getIcons:n,getInputLabel:function(){return t($["input-label"])},getCloseButton:R,getActions:I,getConfirmButton:L,getDenyButton:q,getCancelButton:j,getLoader:D,getHeader:M,getFooter:H,getTimerProgressBar:V,getFocusableElements:N,getValidationMessage:T,isLoading:function(){return x().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;nwindow.innerHeight&&(tt.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(tt.previousBodyPadding+function(){var t=document.createElement("div");t.className=$["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function he(){return!!window.MSInputMethodContext&&!!document.documentMode}function ge(){var t=k(),e=x();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var ve=function(){navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||x().scrollHeight>window.innerHeight-44&&(k().style.paddingBottom="".concat(44,"px"))},be=function(){var e,t=k();t.ontouchstart=function(t){e=ye(t)},t.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},ye=function(t){var e=t.target,n=k();return!we(t)&&!Ce(t)&&(e===n||!(ut(n)||"INPUT"===e.tagName||ut(E())&&E().contains(e)))},we=function(t){return t.touches&&t.touches.length&&"stylus"===t.touches[0].touchType},Ce=function(t){return t.touches&&1")),kt(t)}function Ie(t){var e=k(),n=x();"function"==typeof t.willOpen?t.willOpen(n):"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n);var o=window.getComputedStyle(document.body).overflowY;$e(e,n,t),setTimeout(function(){Qe(e,n)},10),U()&&(Je(e,t.scrollbarPadding,o),g(document.body.children).forEach(function(t){t===k()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,k())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))})),G()||ee.previousActiveElement||(ee.previousActiveElement=document.activeElement),Ze(n,t),bt(e,$["no-transition"])}function Me(t){var e=x();t.target===e&&(t=k(),e.removeEventListener(Bt,Me),t.style.overflowY="auto")}function He(t,e){t.closePopup({isConfirmed:!0,value:e})}function Ve(t,e,n){var o=N();if(o.length)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();x().focus()}var Re=["swal-title","swal-html","swal-footer"],Ne=function(t){var n={};return g(t.querySelectorAll("swal-param")).forEach(function(t){Ye(t,["name","value"]);var e=t.getAttribute("name"),t=t.getAttribute("value");"boolean"==typeof se[e]&&"false"===t&&(t=!1),"object"===r(se[e])&&(t=JSON.parse(t)),n[e]=t}),n},Ue=function(t){var n={};return g(t.querySelectorAll("swal-button")).forEach(function(t){Ye(t,["type","color","aria-label"]);var e=t.getAttribute("type");n["".concat(e,"ButtonText")]=t.innerHTML,n["show".concat(m(e),"Button")]=!0,t.hasAttribute("color")&&(n["".concat(e,"ButtonColor")]=t.getAttribute("color")),t.hasAttribute("aria-label")&&(n["".concat(e,"ButtonAriaLabel")]=t.getAttribute("aria-label"))}),n},_e=function(t){var e={},t=t.querySelector("swal-image");return t&&(Ye(t,["src","width","height","alt"]),t.hasAttribute("src")&&(e.imageUrl=t.getAttribute("src")),t.hasAttribute("width")&&(e.imageWidth=t.getAttribute("width")),t.hasAttribute("height")&&(e.imageHeight=t.getAttribute("height")),t.hasAttribute("alt")&&(e.imageAlt=t.getAttribute("alt"))),e},Fe=function(t){var e={},t=t.querySelector("swal-icon");return t&&(Ye(t,["type","color"]),t.hasAttribute("type")&&(e.icon=t.getAttribute("type")),t.hasAttribute("color")&&(e.iconColor=t.getAttribute("color")),e.iconHtml=t.innerHTML),e},ze=function(t){var n={},e=t.querySelector("swal-input");e&&(Ye(e,["type","label","placeholder","value"]),n.input=e.getAttribute("type")||"text",e.hasAttribute("label")&&(n.inputLabel=e.getAttribute("label")),e.hasAttribute("placeholder")&&(n.inputPlaceholder=e.getAttribute("placeholder")),e.hasAttribute("value")&&(n.inputValue=e.getAttribute("value")));t=t.querySelectorAll("swal-input-option");return t.length&&(n.inputOptions={},g(t).forEach(function(t){Ye(t,["value"]);var e=t.getAttribute("value"),t=t.innerHTML;n.inputOptions[e]=t})),n},We=function(t,e){var n,o={};for(n in e){var i=e[n],r=t.querySelector(i);r&&(Ye(r,[]),o[i.replace(/^swal-/,"")]=r.innerHTML)}return o},Ke=function(e){var n=Re.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);g(e.querySelectorAll("*")).forEach(function(t){t.parentNode===e&&(t=t.tagName.toLowerCase(),-1===n.indexOf(t)&&W("Unrecognized element <".concat(t,">")))})},Ye=function(e,n){g(e.attributes).forEach(function(t){-1===n.indexOf(t.name)&&W(['Unrecognized attribute "'.concat(t.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})},Ze=function(t,e){"function"==typeof e.didOpen?setTimeout(function(){return e.didOpen(t)}):"function"==typeof e.onOpen&&setTimeout(function(){return e.onOpen(t)})},Qe=function(t,e){Bt&<(e)?(t.style.overflowY="hidden",e.addEventListener(Bt,Me)):t.style.overflowY="auto"},Je=function(t,e,n){var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&10&&i(e[s],t[s])}))}var s={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function r(){var e="undefined"!=typeof document?document:{};return i(e,s),e}var n={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function l(){var e="undefined"!=typeof window?window:{};return i(e,n),e}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,a){return(u=p()?Reflect.construct:function(e,t,a){var i=[null];i.push.apply(i,t);var s=new(Function.bind.apply(e,i));return a&&d(s,a.prototype),s}).apply(null,arguments)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||(a=e,-1===Function.toString.call(a).indexOf("[native code]")))return e;var a;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return u(e,arguments,o(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),d(i,e)})(e)}var h=function(e){var t,a;function i(t){var a,i,s;return a=e.call.apply(e,[this].concat(t))||this,i=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(a),s=i.__proto__,Object.defineProperty(i,"__proto__",{get:function(){return s},set:function(e){s.__proto__=e}}),a}return a=e,(t=i).prototype=Object.create(a.prototype),t.prototype.constructor=t,t.__proto__=a,i}(c(Array));function v(e){void 0===e&&(e=[]);var t=[];return e.forEach((function(e){Array.isArray(e)?t.push.apply(t,v(e)):t.push(e)})),t}function f(e,t){return Array.prototype.filter.call(e,t)}function m(e,t){var a=l(),i=r(),s=[];if(!t&&e instanceof h)return e;if(!e)return new h(s);if("string"==typeof e){var n=e.trim();if(n.indexOf("<")>=0&&n.indexOf(">")>=0){var o="div";0===n.indexOf("0})).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),a=0;a=0;h-=1){var v=c[h];r&&v.listener===r||r&&v.listener&&v.listener.dom7proxy&&v.listener.dom7proxy===r?(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1)):r||(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1))}}return this},trigger:function(){for(var e=l(),t=arguments.length,a=new Array(t),i=0;i0})),p.dispatchEvent(u),p.dom7EventData=[],delete p.dom7EventData}}return this},transitionEnd:function(e){var t=this;return e&&t.on("transitionend",(function a(i){i.target===this&&(e.call(this,i),t.off("transitionend",a))})),this},outerWidth:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){var e=l();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){var e=l(),t=r(),a=this[0],i=a.getBoundingClientRect(),s=t.body,n=a.clientTop||s.clientTop||0,o=a.clientLeft||s.clientLeft||0,d=a===e?e.scrollY:a.scrollTop,p=a===e?e.scrollX:a.scrollLeft;return{top:i.top+d-n,left:i.left+p-o}}return null},css:function(e,t){var a,i=l();if(1===arguments.length){if("string"!=typeof e){for(a=0;at-1)return m([]);if(e<0){var a=t+e;return m(a<0?[]:[this[a]])}return m([this[e]])},append:function(){for(var e,t=r(),a=0;a=0;a-=1)this[t].insertBefore(s.childNodes[a],this[t].childNodes[0])}else if(e instanceof h)for(a=0;a0?e?this[0].nextElementSibling&&m(this[0].nextElementSibling).is(e)?m([this[0].nextElementSibling]):m([]):this[0].nextElementSibling?m([this[0].nextElementSibling]):m([]):m([])},nextAll:function(e){var t=[],a=this[0];if(!a)return m([]);for(;a.nextElementSibling;){var i=a.nextElementSibling;e?m(i).is(e)&&t.push(i):t.push(i),a=i}return m(t)},prev:function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&m(t.previousElementSibling).is(e)?m([t.previousElementSibling]):m([]):t.previousElementSibling?m([t.previousElementSibling]):m([])}return m([])},prevAll:function(e){var t=[],a=this[0];if(!a)return m([]);for(;a.previousElementSibling;){var i=a.previousElementSibling;e?m(i).is(e)&&t.push(i):t.push(i),a=i}return m(t)},parent:function(e){for(var t=[],a=0;a6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),s=new r.WebKitCSSMatrix("none"===i?"":i)):a=(s=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=r.WebKitCSSMatrix?s.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=r.WebKitCSSMatrix?s.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function C(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object}function S(){for(var e=Object(arguments.length<=0?void 0:arguments[0]),t=1;t=0,observer:"MutationObserver"in e||"WebkitMutationObserver"in e,passiveListener:function(){var t=!1;try{var a=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassiveListener",null,a)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),g}function P(e){return void 0===e&&(e={}),y||(y=function(e){var t=(void 0===e?{}:e).userAgent,a=z(),i=l(),s=i.navigator.platform,r=t||i.navigator.userAgent,n={ios:!1,android:!1},o=i.screen.width,d=i.screen.height,p=r.match(/(Android);?[\s\/]+([\d.]+)?/),u=r.match(/(iPad).*OS\s([\d_]+)/),c=r.match(/(iPod)(.*OS\s([\d_]+))?/),h=!u&&r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),v="Win32"===s,f="MacIntel"===s;return!u&&f&&a.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(o+"x"+d)>=0&&((u=r.match(/(Version)\/([\d.]+)/))||(u=[0,1,"13_0_0"]),f=!1),p&&!v&&(n.os="android",n.android=!0),(u||h||c)&&(n.os="ios",n.ios=!0),n}(e)),y}function k(){return w||(w=function(){var e,t=l();return{isEdge:!!t.navigator.userAgent.match(/Edge/g),isSafari:(e=t.navigator.userAgent.toLowerCase(),e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)}}()),w}Object.keys(b).forEach((function(e){m.fn[e]=b[e]}));var L={name:"resize",create:function(){var e=this;S(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(e){var t=l();t.addEventListener("resize",e.resize.resizeHandler),t.addEventListener("orientationchange",e.resize.orientationChangeHandler)},destroy:function(e){var t=l();t.removeEventListener("resize",e.resize.resizeHandler),t.removeEventListener("orientationchange",e.resize.orientationChangeHandler)}}},$={attach:function(e,t){void 0===t&&(t={});var a=l(),i=this,s=new(a.MutationObserver||a.WebkitMutationObserver)((function(e){if(1!==e.length){var t=function(){i.emit("observerUpdate",e[0])};a.requestAnimationFrame?a.requestAnimationFrame(t):a.setTimeout(t,0)}else i.emit("observerUpdate",e[0])}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.observer.observers.push(s)},init:function(){var e=this;if(e.support.observer&&e.params.observer){if(e.params.observeParents)for(var t=e.$el.parents(),a=0;a0))if(!s.isTouched||!s.isMoved)if(!!n.noSwipingClass&&""!==n.noSwipingClass&&d.target&&d.target.shadowRoot&&e.path&&e.path[0]&&(p=m(e.path[0])),n.noSwiping&&p.closest(n.noSwipingSelector?n.noSwipingSelector:"."+n.noSwipingClass)[0])t.allowClick=!0;else if(!n.swipeHandler||p.closest(n.swipeHandler)[0]){o.currentX="touchstart"===d.type?d.targetTouches[0].pageX:d.pageX,o.currentY="touchstart"===d.type?d.targetTouches[0].pageY:d.pageY;var u=o.currentX,c=o.currentY,h=n.edgeSwipeDetection||n.iOSEdgeSwipeDetection,v=n.edgeSwipeThreshold||n.iOSEdgeSwipeThreshold;if(!h||!(u<=v||u>=i.innerWidth-v)){if(S(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=u,o.startY=c,s.touchStartTime=x(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,n.threshold>0&&(s.allowThresholdMove=!1),"touchstart"!==d.type){var f=!0;p.is(s.formElements)&&(f=!1),a.activeElement&&m(a.activeElement).is(s.formElements)&&a.activeElement!==p[0]&&a.activeElement.blur();var g=f&&t.allowTouchMove&&n.touchStartPreventDefault;!n.touchStartForcePreventDefault&&!g||p[0].isContentEditable||d.preventDefault()}t.emit("touchStart",d)}}}}function A(e){var t=r(),a=this,i=a.touchEventsData,s=a.params,n=a.touches,l=a.rtlTranslate,o=e;if(o.originalEvent&&(o=o.originalEvent),i.isTouched){if(!i.isTouchEvent||"touchmove"===o.type){var d="touchmove"===o.type&&o.targetTouches&&(o.targetTouches[0]||o.changedTouches[0]),p="touchmove"===o.type?d.pageX:o.pageX,u="touchmove"===o.type?d.pageY:o.pageY;if(o.preventedByNestedSwiper)return n.startX=p,void(n.startY=u);if(!a.allowTouchMove)return a.allowClick=!1,void(i.isTouched&&(S(n,{startX:p,startY:u,currentX:p,currentY:u}),i.touchStartTime=x()));if(i.isTouchEvent&&s.touchReleaseOnEdges&&!s.loop)if(a.isVertical()){if(un.startY&&a.translate>=a.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(pn.startX&&a.translate>=a.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&o.target===t.activeElement&&m(o.target).is(i.formElements))return i.isMoved=!0,void(a.allowClick=!1);if(i.allowTouchCallbacks&&a.emit("touchMove",o),!(o.targetTouches&&o.targetTouches.length>1)){n.currentX=p,n.currentY=u;var c=n.currentX-n.startX,h=n.currentY-n.startY;if(!(a.params.threshold&&Math.sqrt(Math.pow(c,2)+Math.pow(h,2))=25&&(v=180*Math.atan2(Math.abs(h),Math.abs(c))/Math.PI,i.isScrolling=a.isHorizontal()?v>s.touchAngle:90-v>s.touchAngle);if(i.isScrolling&&a.emit("touchMoveOpposite",o),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){a.allowClick=!1,!s.cssMode&&o.cancelable&&o.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&o.stopPropagation(),i.isMoved||(s.loop&&a.loopFix(),i.startTranslate=a.getTranslate(),a.setTransition(0),a.animating&&a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!s.grabCursor||!0!==a.allowSlideNext&&!0!==a.allowSlidePrev||a.setGrabCursor(!0),a.emit("sliderFirstMove",o)),a.emit("sliderMove",o),i.isMoved=!0;var f=a.isHorizontal()?c:h;n.diff=f,f*=s.touchRatio,l&&(f=-f),a.swipeDirection=f>0?"prev":"next",i.currentTranslate=f+i.startTranslate;var g=!0,y=s.resistanceRatio;if(s.touchReleaseOnEdges&&(y=0),f>0&&i.currentTranslate>a.minTranslate()?(g=!1,s.resistance&&(i.currentTranslate=a.minTranslate()-1+Math.pow(-a.minTranslate()+i.startTranslate+f,y))):f<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.threshold>0){if(!(Math.abs(f)>s.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=a.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}s.followFinger&&!s.cssMode&&((s.freeMode||s.watchSlidesProgress||s.watchSlidesVisibility)&&(a.updateActiveIndex(),a.updateSlidesClasses()),s.freeMode&&(0===i.velocities.length&&i.velocities.push({position:n[a.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:n[a.isHorizontal()?"currentX":"currentY"],time:x()})),a.updateProgress(i.currentTranslate),a.setTranslate(i.currentTranslate))}}}}}else i.startMoving&&i.isScrolling&&a.emit("touchMoveOpposite",o)}function D(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,l=t.slidesGrid,o=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,u=x(),c=u-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap click",d),c<300&&u-a.lastClickTime<300&&t.emit("doubleTap doubleClick",d)),a.lastClickTime=x(),E((function(){t.destroyed||(t.allowClick=!0)})),!a.isTouched||!a.isMoved||!t.swipeDirection||0===s.diff||a.currentTranslate===a.startTranslate)return a.isTouched=!1,a.isMoved=!1,void(a.startMoving=!1);if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,p=i.followFinger?r?t.translate:-t.translate:-a.currentTranslate,!i.cssMode)if(i.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length1){var h=a.velocities.pop(),v=a.velocities.pop(),f=h.position-v.position,m=h.time-v.time;t.velocity=f/m,t.velocity/=2,Math.abs(t.velocity)150||x()-h.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeModeMomentumVelocityRatio,a.velocities.length=0;var g=1e3*i.freeModeMomentumRatio,y=t.velocity*g,w=t.translate+y;r&&(w=-w);var b,T,C=!1,S=20*Math.abs(t.velocity)*i.freeModeMomentumBounceRatio;if(wt.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>S&&(w=t.minTranslate()+S),b=t.minTranslate(),C=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(T=!0);else if(i.freeModeSticky){for(var M,z=0;z-w){M=z;break}w=-(w=Math.abs(o[M]-w)=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var L=0,$=t.slidesSizesGrid[0],I=0;I=l[I]&&p=l[I]&&(L=I,$=l[l.length-1]-l[l.length-2])}var A=(p-l[L])/$,D=Li.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(A>=i.longSwipesRatio?t.slideTo(L+D):t.slideTo(L)),"prev"===t.swipeDirection&&(A>1-i.longSwipesRatio?t.slideTo(L+D):t.slideTo(L))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(d.target===t.navigation.nextEl||d.target===t.navigation.prevEl)?d.target===t.navigation.nextEl?t.slideTo(L+D):t.slideTo(L):("next"===t.swipeDirection&&t.slideTo(L+D),"prev"===t.swipeDirection&&t.slideTo(L))}}}function G(){var e=this,t=e.params,a=e.el;if(!a||0!==a.offsetWidth){t.breakpoints&&e.setBreakpoint();var i=e.allowSlideNext,s=e.allowSlidePrev,r=e.snapGrid;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=s,e.allowSlideNext=i,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}}function N(e){var t=this;t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}function B(){var e=this,t=e.wrapperEl,a=e.rtlTranslate;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=a?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();var i=e.maxTranslate()-e.minTranslate();(0===i?0:(e.translate-e.minTranslate())/i)!==e.progress&&e.updateProgress(a?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}var H=!1;function X(){}var Y={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,nested:!1,width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1},V={modular:{useParams:function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a];i.params&&S(e,i.params)}))},useModules:function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a],s=e[a]||{};i.on&&t.on&&Object.keys(i.on).forEach((function(e){t.on(e,i.on[e])})),i.create&&i.create.bind(t)(s)}))}},eventsEmitter:{on:function(e,t,a){var i=this;if("function"!=typeof t)return i;var s=a?"unshift":"push";return e.split(" ").forEach((function(e){i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][s](t)})),i},once:function(e,t,a){var i=this;if("function"!=typeof t)return i;function s(){i.off(e,s),s.__emitterProxy&&delete s.__emitterProxy;for(var a=arguments.length,r=new Array(a),n=0;n=0&&t.eventsAnyListeners.splice(a,1),t},off:function(e,t){var a=this;return a.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(i,s){(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&a.eventsListeners[e].splice(s,1)}))})),a):a},emit:function(){var e,t,a,i=this;if(!i.eventsListeners)return i;for(var s=arguments.length,r=new Array(s),n=0;n=0&&(b=parseFloat(b.replace("%",""))/100*s),e.virtualSize=-b,r?p.css({marginLeft:"",marginTop:""}):p.css({marginRight:"",marginBottom:""}),a.slidesPerColumn>1&&(C=Math.floor(u/a.slidesPerColumn)===u/e.params.slidesPerColumn?u:Math.ceil(u/a.slidesPerColumn)*a.slidesPerColumn,"auto"!==a.slidesPerView&&"row"===a.slidesPerColumnFill&&(C=Math.max(C,a.slidesPerView*a.slidesPerColumn)));for(var z,P=a.slidesPerColumn,k=C/P,L=Math.floor(u/a.slidesPerColumn),$=0;$1){var O=void 0,A=void 0,D=void 0;if("row"===a.slidesPerColumnFill&&a.slidesPerGroup>1){var G=Math.floor($/(a.slidesPerGroup*a.slidesPerColumn)),N=$-a.slidesPerColumn*a.slidesPerGroup*G,B=0===G?a.slidesPerGroup:Math.min(Math.ceil((u-G*P*a.slidesPerGroup)/P),a.slidesPerGroup);O=(A=N-(D=Math.floor(N/B))*B+G*a.slidesPerGroup)+D*C/P,I.css({"-webkit-box-ordinal-group":O,"-moz-box-ordinal-group":O,"-ms-flex-order":O,"-webkit-order":O,order:O})}else"column"===a.slidesPerColumnFill?(D=$-(A=Math.floor($/P))*P,(A>L||A===L&&D===P-1)&&(D+=1)>=P&&(D=0,A+=1)):A=$-(D=Math.floor($/k))*k;I.css("margin-"+(e.isHorizontal()?"top":"left"),0!==D&&a.spaceBetween&&a.spaceBetween+"px")}if("none"!==I.css("display")){if("auto"===a.slidesPerView){var H=t.getComputedStyle(I[0],null),X=I[0].style.transform,Y=I[0].style.webkitTransform;if(X&&(I[0].style.transform="none"),Y&&(I[0].style.webkitTransform="none"),a.roundLengths)M=e.isHorizontal()?I.outerWidth(!0):I.outerHeight(!0);else if(e.isHorizontal()){var V=parseFloat(H.getPropertyValue("width")||0),F=parseFloat(H.getPropertyValue("padding-left")||0),R=parseFloat(H.getPropertyValue("padding-right")||0),W=parseFloat(H.getPropertyValue("margin-left")||0),q=parseFloat(H.getPropertyValue("margin-right")||0),j=H.getPropertyValue("box-sizing");if(j&&"border-box"===j)M=V+W+q;else{var _=I[0],U=_.clientWidth;M=V+F+R+W+q+(_.offsetWidth-U)}}else{var K=parseFloat(H.getPropertyValue("height")||0),Z=parseFloat(H.getPropertyValue("padding-top")||0),J=parseFloat(H.getPropertyValue("padding-bottom")||0),Q=parseFloat(H.getPropertyValue("margin-top")||0),ee=parseFloat(H.getPropertyValue("margin-bottom")||0),te=H.getPropertyValue("box-sizing");if(te&&"border-box"===te)M=K+Q+ee;else{var ae=I[0],ie=ae.clientHeight;M=K+Z+J+Q+ee+(ae.offsetHeight-ie)}}X&&(I[0].style.transform=X),Y&&(I[0].style.webkitTransform=Y),a.roundLengths&&(M=Math.floor(M))}else M=(s-(a.slidesPerView-1)*b)/a.slidesPerView,a.roundLengths&&(M=Math.floor(M)),p[$]&&(e.isHorizontal()?p[$].style.width=M+"px":p[$].style.height=M+"px");p[$]&&(p[$].swiperSlideSize=M),v.push(M),a.centeredSlides?(E=E+M/2+x/2+b,0===x&&0!==$&&(E=E-s/2-b),0===$&&(E=E-s/2-b),Math.abs(E)<.001&&(E=0),a.roundLengths&&(E=Math.floor(E)),T%a.slidesPerGroup==0&&c.push(E),h.push(E)):(a.roundLengths&&(E=Math.floor(E)),(T-Math.min(e.params.slidesPerGroupSkip,T))%e.params.slidesPerGroup==0&&c.push(E),h.push(E),E=E+M+b),e.virtualSize+=M+b,x=M,T+=1}}if(e.virtualSize=Math.max(e.virtualSize,s)+g,r&&n&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:e.virtualSize+a.spaceBetween+"px"}),a.setWrapperSize&&(e.isHorizontal()?i.css({width:e.virtualSize+a.spaceBetween+"px"}):i.css({height:e.virtualSize+a.spaceBetween+"px"})),a.slidesPerColumn>1&&(e.virtualSize=(M+a.spaceBetween)*C,e.virtualSize=Math.ceil(e.virtualSize/a.slidesPerColumn)-a.spaceBetween,e.isHorizontal()?i.css({width:e.virtualSize+a.spaceBetween+"px"}):i.css({height:e.virtualSize+a.spaceBetween+"px"}),a.centeredSlides)){z=[];for(var se=0;se1&&c.push(e.virtualSize-s)}if(0===c.length&&(c=[0]),0!==a.spaceBetween&&(e.isHorizontal()?r?p.filter(f).css({marginLeft:b+"px"}):p.filter(f).css({marginRight:b+"px"}):p.filter(f).css({marginBottom:b+"px"})),a.centeredSlides&&a.centeredSlidesBounds){var oe=0;v.forEach((function(e){oe+=e+(a.spaceBetween?a.spaceBetween:0)}));var de=(oe-=a.spaceBetween)-s;c=c.map((function(e){return e<0?-m:e>de?de+g:e}))}if(a.centerInsufficientSlides){var pe=0;if(v.forEach((function(e){pe+=e+(a.spaceBetween?a.spaceBetween:0)})),(pe-=a.spaceBetween)1)if(a.params.centeredSlides)a.visibleSlides.each((function(e){i.push(e)}));else for(t=0;ta.slides.length)break;i.push(a.slides.eq(r)[0])}else i.push(a.slides.eq(a.activeIndex)[0]);for(t=0;ts?n:s}s&&a.$wrapperEl.css("height",s+"px")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t=0&&d1&&p<=t.size||d<=0&&p>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}l.progress=s?-o:o}t.visibleSlides=m(t.visibleSlides)}},updateProgress:function(e){var t=this;if(void 0===e){var a=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*a||0}var i=t.params,s=t.maxTranslate()-t.minTranslate(),r=t.progress,n=t.isBeginning,l=t.isEnd,o=n,d=l;0===s?(r=0,n=!0,l=!0):(n=(r=(e-t.minTranslate())/s)<=0,l=r>=1),S(t,{progress:r,isBeginning:n,isEnd:l}),(i.watchSlidesProgress||i.watchSlidesVisibility||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),n&&!o&&t.emit("reachBeginning toEdge"),l&&!d&&t.emit("reachEnd toEdge"),(o&&!n||d&&!l)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,l=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=l?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(o.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass)),t.emitSlidesClasses()},updateActiveIndex:function(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,l=a.activeIndex,o=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var u=0;u=s[u]&&i=s[u]&&i=s[u]&&(p=u);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if(r.indexOf(i)>=0)t=r.indexOf(i);else{var c=Math.min(n.slidesPerGroupSkip,p);t=c+Math.floor((p-c)/n.slidesPerGroup)}if(t>=r.length&&(t=r.length-1),p!==l){var h=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);S(a,{snapIndex:t,realIndex:h,previousIndex:l,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),o!==h&&a.emit("realIndexChange"),(a.initialized||a.params.runCallbacksOnInit)&&a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,a=t.params,i=m(e.target).closest("."+a.slideClass)[0],s=!1;if(i)for(var r=0;rd?d:i&&er?"next":is?"next":i=o.length&&(f=o.length-1),(u||l.initialSlide||0)===(p||0)&&a&&r.emit("beforeSlideChangeStart");var m,g=-o[f];if(r.updateProgress(g),l.normalizeSlideIndex)for(var y=0;y=Math.floor(100*d[y])&&(n=y);if(r.initialized&&n!==u){if(!r.allowSlideNext&&gr.translate&&g>r.maxTranslate()&&(u||0)!==n)return!1}if(m=n>u?"next":n=e&&(h=e)})),void 0!==h&&(p=l.indexOf(h))<0&&(p=i.activeIndex-1),i.slideTo(p,e,t,a)},slideReset:function(e,t,a){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,a)},slideToClosest:function(e,t,a,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);var s=this,r=s.activeIndex,n=Math.min(s.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/s.params.slidesPerGroup),o=s.rtlTranslate?s.translate:-s.translate;if(o>=s.snapGrid[l]){var d=s.snapGrid[l];o-d>(s.snapGrid[l+1]-d)*i&&(r+=s.params.slidesPerGroup)}else{var p=s.snapGrid[l-1];o-p<=(s.snapGrid[l]-p)*i&&(r-=s.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,s.slidesGrid.length-1),s.slideTo(r,e,t,a)},slideToClickedSlide:function(){var e,t=this,a=t.params,i=t.$wrapperEl,s="auto"===a.slidesPerView?t.slidesPerViewDynamic():a.slidesPerView,r=t.clickedIndex;if(a.loop){if(t.animating)return;e=parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"),10),a.centeredSlides?rt.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),E((function(){t.slideTo(r)}))):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),E((function(){t.slideTo(r)}))):t.slideTo(r)}else t.slideTo(r)}},loop:{loopCreate:function(){var e=this,t=r(),a=e.params,i=e.$wrapperEl;i.children("."+a.slideClass+"."+a.slideDuplicateClass).remove();var s=i.children("."+a.slideClass);if(a.loopFillGroupWithBlank){var n=a.slidesPerGroup-s.length%a.slidesPerGroup;if(n!==a.slidesPerGroup){for(var l=0;ls.length&&(e.loopedSlides=s.length);var d=[],p=[];s.each((function(t,a){var i=m(t);a=s.length-e.loopedSlides&&d.push(t),i.attr("data-swiper-slide-index",a)}));for(var u=0;u=0;c-=1)i.prepend(m(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))},loopFix:function(){var e=this;e.emit("beforeLoopFix");var t,a=e.activeIndex,i=e.slides,s=e.loopedSlides,r=e.allowSlidePrev,n=e.allowSlideNext,l=e.snapGrid,o=e.rtlTranslate;e.allowSlidePrev=!0,e.allowSlideNext=!0;var d=-l[a]-e.getTranslate();if(a=i.length-s){t=-i.length+a+s,t+=s,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((o?-e.translate:e.translate)-d)}e.allowSlidePrev=r,e.allowSlideNext=n,e.emit("loopFix")},loopDestroy:function(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides;t.children("."+a.slideClass+"."+a.slideDuplicateClass+",."+a.slideClass+"."+a.slideBlankClass).remove(),i.removeAttr("data-swiper-slide-index")}},grabCursor:{setGrabCursor:function(e){var t=this;if(!(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)){var a=t.el;a.style.cursor="move",a.style.cursor=e?"-webkit-grabbing":"-webkit-grab",a.style.cursor=e?"-moz-grabbin":"-moz-grab",a.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.el.style.cursor="")}},manipulation:{appendSlide:function(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s=n)a.appendSlide(t);else{for(var l=r>e?r+1:r,o=[],d=n-1;d>=e;d-=1){var p=a.slides.eq(d);p.remove(),o.unshift(p)}if("object"==typeof t&&"length"in t){for(var u=0;ue?r+t.length:r}else i.append(t);for(var c=0;c1,c=p.slidesPerColumn>1;u&&!c?(n.removeClass(r.containerModifierClass+"multirow "+r.containerModifierClass+"multirow-column"),e.emitContainerClasses()):!u&&c&&(n.addClass(r.containerModifierClass+"multirow"),"column"===p.slidesPerColumnFill&&n.addClass(r.containerModifierClass+"multirow-column"),e.emitContainerClasses());var h=p.direction&&p.direction!==r.direction,v=r.loop&&(p.slidesPerView!==r.slidesPerView||h);h&&a&&e.changeDirection(),S(e.params,p),S(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=o,e.emit("_beforeBreakpoint",p),v&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-s+e.loopedSlides,0,!1)),e.emit("breakpoint",p)}}},getBreakpoint:function(e){var t=l();if(e){var a=!1,i=Object.keys(e).map((function(e){if("string"==typeof e&&0===e.indexOf("@")){var a=parseFloat(e.substr(1));return{value:t.innerHeight*a,point:e}}return{value:e,point:e}}));i.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var s=0;s0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&i?e.isLocked=i<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,a!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),a&&a!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}},classes:{addClasses:function(){var e=this,t=e.classNames,a=e.params,i=e.rtl,s=e.$el,r=e.device,n=[];n.push("initialized"),n.push(a.direction),a.freeMode&&n.push("free-mode"),a.autoHeight&&n.push("autoheight"),i&&n.push("rtl"),a.slidesPerColumn>1&&(n.push("multirow"),"column"===a.slidesPerColumnFill&&n.push("multirow-column")),r.android&&n.push("android"),r.ios&&n.push("ios"),a.cssMode&&n.push("css-mode"),n.forEach((function(e){t.push(a.containerModifierClass+e)})),s.addClass(t.join(" ")),e.emitContainerClasses()},removeClasses:function(){var e=this,t=e.$el,a=e.classNames;t.removeClass(a.join(" ")),e.emitContainerClasses()}},images:{loadImage:function(e,t,a,i,s,r){var n,o=l();function d(){r&&r()}m(e).parent("picture")[0]||e.complete&&s?d():t?((n=new o.Image).onload=d,n.onerror=d,i&&(n.sizes=i),a&&(n.srcset=a),t&&(n.src=t)):d()},preloadImages:function(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var a=0;a1){var d=[];return o.each((function(e){var i=S({},a,{el:e});d.push(new t(i))})),d}var p,u,c;return e.swiper=n,e&&e.shadowRoot&&e.shadowRoot.querySelector?(p=m(e.shadowRoot.querySelector("."+n.params.wrapperClass))).children=function(e){return o.children(e)}:p=o.children("."+n.params.wrapperClass),S(n,{$el:o,el:e,$wrapperEl:p,wrapperEl:p[0],classNames:[],slides:m(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===n.params.direction},isVertical:function(){return"vertical"===n.params.direction},rtl:"rtl"===e.dir.toLowerCase()||"rtl"===o.css("direction"),rtlTranslate:"horizontal"===n.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===o.css("direction")),wrongRTL:"-webkit-box"===p.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:n.params.allowSlideNext,allowSlidePrev:n.params.allowSlidePrev,touchEvents:(u=["touchstart","touchmove","touchend","touchcancel"],c=["mousedown","mousemove","mouseup"],n.support.pointerEvents&&(c=["pointerdown","pointermove","pointerup"]),n.touchEventsTouch={start:u[0],move:u[1],end:u[2],cancel:u[3]},n.touchEventsDesktop={start:c[0],move:c[1],end:c[2]},n.support.touch||!n.params.simulateTouch?n.touchEventsTouch:n.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video, label",lastClickTime:x(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:n.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),n.useModules(),n.emit("_swiper"),n.params.init&&n.init(),n}}var a,i,s,r=t.prototype;return r.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(" ").filter((function(t){return 0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass)}));e.emit("_containerClasses",t.join(" "))}},r.getSlideClasses=function(e){var t=this;return e.className.split(" ").filter((function(e){return 0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)})).join(" ")},r.emitSlidesClasses=function(){var e=this;e.params._emitClasses&&e.el&&e.slides.each((function(t){var a=e.getSlideClasses(t);e.emit("_slideClass",t,a)}))},r.slidesPerViewDynamic=function(){var e=this,t=e.params,a=e.slides,i=e.slidesGrid,s=e.size,r=e.activeIndex,n=1;if(t.centeredSlides){for(var l,o=a[r].swiperSlideSize,d=r+1;ds&&(l=!0));for(var p=r-1;p>=0;p-=1)a[p]&&!l&&(n+=1,(o+=a[p].swiperSlideSize)>s&&(l=!0))}else for(var u=r+1;u1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||i(),a.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function i(){var t=e.rtlTranslate?-1*e.translate:e.translate,a=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(a),e.updateActiveIndex(),e.updateSlidesClasses()}},r.changeDirection=function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(a.$el.removeClass(""+a.params.containerModifierClass+i).addClass(""+a.params.containerModifierClass+e),a.emitContainerClasses(),a.params.direction=e,a.slides.each((function(t){"vertical"===e?t.style.width="":t.style.height=""})),a.emit("changeDirection"),t&&a.update()),a},r.init=function(){var e=this;e.initialized||(e.emit("beforeInit"),e.params.breakpoints&&e.setBreakpoint(),e.addClasses(),e.params.loop&&e.loopCreate(),e.updateSize(),e.updateSlides(),e.params.watchOverflow&&e.checkOverflow(),e.params.grabCursor&&e.setGrabCursor(),e.params.preloadImages&&e.preloadImages(),e.params.loop?e.slideTo(e.params.initialSlide+e.loopedSlides,0,e.params.runCallbacksOnInit):e.slideTo(e.params.initialSlide,0,e.params.runCallbacksOnInit),e.attachEvents(),e.initialized=!0,e.emit("init"),e.emit("afterInit"))},r.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var a,i=this,s=i.params,r=i.$el,n=i.$wrapperEl,l=i.slides;return void 0===i.params||i.destroyed||(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),s.loop&&i.loopDestroy(),t&&(i.removeClasses(),r.removeAttr("style"),n.removeAttr("style"),l&&l.length&&l.removeClass([s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach((function(e){i.off(e)})),!1!==e&&(i.$el[0].swiper=null,a=i,Object.keys(a).forEach((function(e){try{a[e]=null}catch(e){}try{delete a[e]}catch(e){}}))),i.destroyed=!0),null},t.extendDefaults=function(e){S(F,e)},t.installModule=function(e){t.prototype.modules||(t.prototype.modules={});var a=e.name||Object.keys(t.prototype.modules).length+"_"+x();t.prototype.modules[a]=e},t.use=function(e){return Array.isArray(e)?(e.forEach((function(e){return t.installModule(e)})),t):(t.installModule(e),t)},a=t,s=[{key:"extendedDefaults",get:function(){return F}},{key:"defaults",get:function(){return Y}}],(i=null)&&e(a.prototype,i),s&&e(a,s),t}();Object.keys(V).forEach((function(e){Object.keys(V[e]).forEach((function(t){R.prototype[t]=V[e][t]}))})),R.use([L,I]);var W={update:function(e){var t=this,a=t.params,i=a.slidesPerView,s=a.slidesPerGroup,r=a.centeredSlides,n=t.params.virtual,l=n.addSlidesBefore,o=n.addSlidesAfter,d=t.virtual,p=d.from,u=d.to,c=d.slides,h=d.slidesGrid,v=d.renderSlide,f=d.offset;t.updateActiveIndex();var m,g,y,w=t.activeIndex||0;m=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(g=Math.floor(i/2)+s+o,y=Math.floor(i/2)+s+l):(g=i+(s-1)+o,y=s+l);var b=Math.max((w||0)-y,0),E=Math.min((w||0)+g,c.length-1),x=(t.slidesGrid[b]||0)-(t.slidesGrid[0]||0);function T(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(S(t.virtual,{from:b,to:E,offset:x,slidesGrid:t.slidesGrid}),p===b&&u===E&&!e)return t.slidesGrid!==h&&x!==f&&t.slides.css(m,x+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:x,from:b,to:E,slides:function(){for(var e=[],t=b;t<=E;t+=1)e.push(c[t]);return e}()}),void(t.params.virtual.renderExternalUpdate&&T());var C=[],M=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var z=p;z<=u;z+=1)(zE)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+z+'"]').remove();for(var P=0;P=b&&P<=E&&(void 0===u||e?M.push(P):(P>u&&M.push(P),P'+e+"");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){var t=this;if("object"==typeof e&&"length"in e)for(var a=0;a=0;i-=1)t.virtual.slides.splice(e[i],1),t.params.virtual.cache&&delete t.virtual.cache[e[i]],e[i]0&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;var g=a.innerWidth,y=a.innerHeight,w=t.$el.offset();s&&(w.left-=t.$el[0].scrollLeft);for(var b=[[w.left,w.top],[w.left+t.width,w.top],[w.left,w.top+t.height],[w.left+t.width,w.top+t.height]],E=0;E=0&&x[0]<=g&&x[1]>=0&&x[1]<=y){if(0===x[0]&&0===x[1])continue;m=!0}}if(!m)return}t.isHorizontal()?((p||u||c||h)&&(n.preventDefault?n.preventDefault():n.returnValue=!1),((u||h)&&!s||(p||c)&&s)&&t.slideNext(),((p||c)&&!s||(u||h)&&s)&&t.slidePrev()):((p||u||v||f)&&(n.preventDefault?n.preventDefault():n.returnValue=!1),(u||f)&&t.slideNext(),(p||v)&&t.slidePrev()),t.emit("keyPress",o)}},enable:function(){var e=this,t=r();e.keyboard.enabled||(m(t).on("keydown",e.keyboard.handle),e.keyboard.enabled=!0)},disable:function(){var e=this,t=r();e.keyboard.enabled&&(m(t).off("keydown",e.keyboard.handle),e.keyboard.enabled=!1)}},_={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create:function(){M(this,{keyboard:t({enabled:!1},j)})},on:{init:function(e){e.params.keyboard.enabled&&e.keyboard.enable()},destroy:function(e){e.keyboard.enabled&&e.keyboard.disable()}}};var U={lastScrollTime:x(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:function(){return l().navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){var e=r(),t="onwheel",a=t in e;if(!a){var i=e.createElement("div");i.setAttribute(t,"return;"),a="function"==typeof i.onwheel}return!a&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(a=e.implementation.hasFeature("Events.wheel","3.0")),a}()?"wheel":"mousewheel"},normalize:function(e){var t=0,a=0,i=0,s=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=a,a=0),i=10*t,s=10*a,"deltaY"in e&&(s=e.deltaY),"deltaX"in e&&(i=e.deltaX),e.shiftKey&&!i&&(i=s,s=0),(i||s)&&e.deltaMode&&(1===e.deltaMode?(i*=40,s*=40):(i*=800,s*=800)),i&&!t&&(t=i<1?-1:1),s&&!a&&(a=s<1?-1:1),{spinX:t,spinY:a,pixelX:i,pixelY:s}},handleMouseEnter:function(){this.mouseEntered=!0},handleMouseLeave:function(){this.mouseEntered=!1},handle:function(e){var t=e,a=this,i=a.params.mousewheel;a.params.cssMode&&t.preventDefault();var s=a.$el;if("container"!==a.params.mousewheel.eventsTarget&&(s=m(a.params.mousewheel.eventsTarget)),!a.mouseEntered&&!s[0].contains(t.target)&&!i.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var r=0,n=a.rtlTranslate?-1:1,l=U.normalize(t);if(i.forceToAxis)if(a.isHorizontal()){if(!(Math.abs(l.pixelX)>Math.abs(l.pixelY)))return!0;r=-l.pixelX*n}else{if(!(Math.abs(l.pixelY)>Math.abs(l.pixelX)))return!0;r=-l.pixelY}else r=Math.abs(l.pixelX)>Math.abs(l.pixelY)?-l.pixelX*n:-l.pixelY;if(0===r)return!0;i.invert&&(r=-r);var o=a.getTranslate()+r*i.sensitivity;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),(!!a.params.loop||!(o===a.minTranslate()||o===a.maxTranslate()))&&a.params.nested&&t.stopPropagation(),a.params.freeMode){var d={time:x(),delta:Math.abs(r),direction:Math.sign(r)},p=a.mousewheel.lastEventBeforeSnap,u=p&&d.time=a.minTranslate()&&(c=a.minTranslate()),c<=a.maxTranslate()&&(c=a.maxTranslate()),a.setTransition(0),a.setTranslate(c),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!h&&a.isBeginning||!v&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky){clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=void 0;var f=a.mousewheel.recentWheelEvents;f.length>=15&&f.shift();var g=f.length?f[f.length-1]:void 0,y=f[0];if(f.push(d),g&&(d.delta>g.delta||d.direction!==g.direction))f.splice(0);else if(f.length>=15&&d.time-y.time<500&&y.delta-d.delta>=1&&d.delta<=6){var w=r>0?.8:.2;a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.mousewheel.timeout=E((function(){a.slideToClosest(a.params.speed,!0,void 0,w)}),0)}a.mousewheel.timeout||(a.mousewheel.timeout=E((function(){a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.slideToClosest(a.params.speed,!0,void 0,.5)}),500))}if(u||a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),c===a.minTranslate()||c===a.maxTranslate())return!0}}else{var b={time:x(),delta:Math.abs(r),direction:Math.sign(r),raw:e},T=a.mousewheel.recentWheelEvents;T.length>=2&&T.shift();var C=T.length?T[T.length-1]:void 0;if(T.push(b),C?(b.direction!==C.direction||b.delta>C.delta||b.time>C.time+150)&&a.mousewheel.animateSlider(b):a.mousewheel.animateSlider(b),a.mousewheel.releaseScroll(b))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},animateSlider:function(e){var t=this,a=l();return!(this.params.mousewheel.thresholdDelta&&e.delta=6&&x()-t.mousewheel.lastScrollTime<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),t.emit("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),t.emit("scroll",e.raw)),t.mousewheel.lastScrollTime=(new a.Date).getTime(),!1)))},releaseScroll:function(e){var t=this,a=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&a.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&a.releaseOnEdges)return!0;return!1},enable:function(){var e=this,t=U.event();if(e.params.cssMode)return e.wrapperEl.removeEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=m(e.params.mousewheel.eventsTarget)),a.on("mouseenter",e.mousewheel.handleMouseEnter),a.on("mouseleave",e.mousewheel.handleMouseLeave),a.on(t,e.mousewheel.handle),e.mousewheel.enabled=!0,!0},disable:function(){var e=this,t=U.event();if(e.params.cssMode)return e.wrapperEl.addEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(!e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=m(e.params.mousewheel.eventsTarget)),a.off(t,e.mousewheel.handle),e.mousewheel.enabled=!1,!0}},K={update:function(){var e=this,t=e.params.navigation;if(!e.params.loop){var a=e.navigation,i=a.$nextEl,s=a.$prevEl;s&&s.length>0&&(e.isBeginning?s.addClass(t.disabledClass):s.removeClass(t.disabledClass),s[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass)),i&&i.length>0&&(e.isEnd?i.addClass(t.disabledClass):i.removeClass(t.disabledClass),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass))}},onPrevClick:function(e){var t=this;e.preventDefault(),t.isBeginning&&!t.params.loop||t.slidePrev()},onNextClick:function(e){var t=this;e.preventDefault(),t.isEnd&&!t.params.loop||t.slideNext()},init:function(){var e,t,a=this,i=a.params.navigation;(i.nextEl||i.prevEl)&&(i.nextEl&&(e=m(i.nextEl),a.params.uniqueNavElements&&"string"==typeof i.nextEl&&e.length>1&&1===a.$el.find(i.nextEl).length&&(e=a.$el.find(i.nextEl))),i.prevEl&&(t=m(i.prevEl),a.params.uniqueNavElements&&"string"==typeof i.prevEl&&t.length>1&&1===a.$el.find(i.prevEl).length&&(t=a.$el.find(i.prevEl))),e&&e.length>0&&e.on("click",a.navigation.onNextClick),t&&t.length>0&&t.on("click",a.navigation.onPrevClick),S(a.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this,t=e.navigation,a=t.$nextEl,i=t.$prevEl;a&&a.length&&(a.off("click",e.navigation.onNextClick),a.removeClass(e.params.navigation.disabledClass)),i&&i.length&&(i.off("click",e.navigation.onPrevClick),i.removeClass(e.params.navigation.disabledClass))}},Z={update:function(){var e=this,t=e.rtl,a=e.params.pagination;if(a.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var i,s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,r=e.pagination.$el,n=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?((i=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup))>s-1-2*e.loopedSlides&&(i-=s-2*e.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==e.params.paginationType&&(i=n+i)):i=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===a.type&&e.pagination.bullets&&e.pagination.bullets.length>0){var l,o,d,p=e.pagination.bullets;if(a.dynamicBullets&&(e.pagination.bulletSize=p.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(a.dynamicMainBullets+4)+"px"),a.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=i-e.previousIndex,e.pagination.dynamicBulletIndex>a.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=a.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),l=i-e.pagination.dynamicBulletIndex,d=((o=l+(Math.min(p.length,a.dynamicMainBullets)-1))+l)/2),p.removeClass(a.bulletActiveClass+" "+a.bulletActiveClass+"-next "+a.bulletActiveClass+"-next-next "+a.bulletActiveClass+"-prev "+a.bulletActiveClass+"-prev-prev "+a.bulletActiveClass+"-main"),r.length>1)p.each((function(e){var t=m(e),s=t.index();s===i&&t.addClass(a.bulletActiveClass),a.dynamicBullets&&(s>=l&&s<=o&&t.addClass(a.bulletActiveClass+"-main"),s===l&&t.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),s===o&&t.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next"))}));else{var u=p.eq(i),c=u.index();if(u.addClass(a.bulletActiveClass),a.dynamicBullets){for(var h=p.eq(l),v=p.eq(o),f=l;f<=o;f+=1)p.eq(f).addClass(a.bulletActiveClass+"-main");if(e.params.loop)if(c>=p.length-a.dynamicMainBullets){for(var g=a.dynamicMainBullets;g>=0;g-=1)p.eq(p.length-g).addClass(a.bulletActiveClass+"-main");p.eq(p.length-a.dynamicMainBullets-1).addClass(a.bulletActiveClass+"-prev")}else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next");else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next")}}if(a.dynamicBullets){var y=Math.min(p.length,a.dynamicMainBullets+4),w=(e.pagination.bulletSize*y-e.pagination.bulletSize)/2-d*e.pagination.bulletSize,b=t?"right":"left";p.css(e.isHorizontal()?b:"top",w+"px")}}if("fraction"===a.type&&(r.find("."+a.currentClass).text(a.formatFractionCurrent(i+1)),r.find("."+a.totalClass).text(a.formatFractionTotal(n))),"progressbar"===a.type){var E;E=a.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";var x=(i+1)/n,T=1,C=1;"horizontal"===E?T=x:C=x,r.find("."+a.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+T+") scaleY("+C+")").transition(e.params.speed)}"custom"===a.type&&a.renderCustom?(r.html(a.renderCustom(e,i+1,n)),e.emit("paginationRender",r[0])):e.emit("paginationUpdate",r[0]),r[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](a.lockClass)}},render:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el,s="";if("bullets"===t.type){for(var r=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length,n=0;n";i.html(s),e.pagination.bullets=i.find("."+t.bulletClass.replace(/ /g,"."))}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):' / ',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var e=this,t=e.params.pagination;if(t.el){var a=m(t.el);0!==a.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&a.length>1&&(a=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&a.addClass(t.clickableClass),a.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(a.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&a.addClass(t.progressbarOppositeClass),t.clickable&&a.on("click","."+t.bulletClass.replace(/ /g,"."),(function(t){t.preventDefault();var a=m(this).index()*e.params.slidesPerGroup;e.params.loop&&(a+=e.loopedSlides),e.slideTo(a)})),S(e.pagination,{$el:a,el:a[0]}))}},destroy:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.pagination.$el;a.removeClass(t.hiddenClass),a.removeClass(t.modifierClass+t.type),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&a.off("click","."+t.bulletClass.replace(/ /g,"."))}}},J={setTranslate:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=e.rtlTranslate,i=e.progress,s=t.dragSize,r=t.trackSize,n=t.$dragEl,l=t.$el,o=e.params.scrollbar,d=s,p=(r-s)*i;a?(p=-p)>0?(d=s-p,p=0):-p+s>r&&(d=r+p):p<0?(d=s+p,p=0):p+s>r&&(d=r-p),e.isHorizontal()?(n.transform("translate3d("+p+"px, 0, 0)"),n[0].style.width=d+"px"):(n.transform("translate3d(0px, "+p+"px, 0)"),n[0].style.height=d+"px"),o.hide&&(clearTimeout(e.scrollbar.timeout),l[0].style.opacity=1,e.scrollbar.timeout=setTimeout((function(){l[0].style.opacity=0,l.transition(400)}),1e3))}},setTransition:function(e){var t=this;t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)},updateSize:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=t.$dragEl,i=t.$el;a[0].style.width="",a[0].style.height="";var s,r=e.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,n=e.size/e.virtualSize,l=n*(r/e.size);s="auto"===e.params.scrollbar.dragSize?r*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?a[0].style.width=s+"px":a[0].style.height=s+"px",i[0].style.display=n>=1?"none":"",e.params.scrollbar.hide&&(i[0].style.opacity=0),S(t,{trackSize:r,divider:n,moveDivider:l,dragSize:s}),t.$el[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}},getPointerPosition:function(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition:function(e){var t,a=this,i=a.scrollbar,s=a.rtlTranslate,r=i.$el,n=i.dragSize,l=i.trackSize,o=i.dragStartPos;t=(i.getPointerPosition(e)-r.offset()[a.isHorizontal()?"left":"top"]-(null!==o?o:n/2))/(l-n),t=Math.max(Math.min(t,1),0),s&&(t=1-t);var d=a.minTranslate()+(a.maxTranslate()-a.minTranslate())*t;a.updateProgress(d),a.setTranslate(d),a.updateActiveIndex(),a.updateSlidesClasses()},onDragStart:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el,n=i.$dragEl;t.scrollbar.isTouched=!0,t.scrollbar.dragStartPos=e.target===n[0]||e.target===n?i.getPointerPosition(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),s.transition(100),n.transition(100),i.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),r.transition(0),a.hide&&r.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),t.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this,a=t.scrollbar,i=t.$wrapperEl,s=a.$el,r=a.$dragEl;t.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),i.transition(0),s.transition(0),r.transition(0),t.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),s.transition("")),a.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=E((function(){r.css("opacity",0),r.transition(400)}),1e3)),t.emit("scrollbarDragEnd",e),a.snapOnRelease&&t.slideToClosest())},enableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=r(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,n=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};l.touch?(o.addEventListener(i.start,e.scrollbar.onDragStart,d),o.addEventListener(i.move,e.scrollbar.onDragMove,d),o.addEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.addEventListener(s.start,e.scrollbar.onDragStart,d),t.addEventListener(s.move,e.scrollbar.onDragMove,d),t.addEventListener(s.end,e.scrollbar.onDragEnd,p))}},disableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=r(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,n=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};l.touch?(o.removeEventListener(i.start,e.scrollbar.onDragStart,d),o.removeEventListener(i.move,e.scrollbar.onDragMove,d),o.removeEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.removeEventListener(s.start,e.scrollbar.onDragStart,d),t.removeEventListener(s.move,e.scrollbar.onDragMove,d),t.removeEventListener(s.end,e.scrollbar.onDragEnd,p))}},init:function(){var e=this;if(e.params.scrollbar.el){var t=e.scrollbar,a=e.$el,i=e.params.scrollbar,s=m(i.el);e.params.uniqueNavElements&&"string"==typeof i.el&&s.length>1&&1===a.find(i.el).length&&(s=a.find(i.el));var r=s.find("."+e.params.scrollbar.dragClass);0===r.length&&(r=m('
    '),s.append(r)),S(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},Q={setTransform:function(e,t){var a=this.rtl,i=m(e),s=a?-1:1,r=i.attr("data-swiper-parallax")||"0",n=i.attr("data-swiper-parallax-x"),l=i.attr("data-swiper-parallax-y"),o=i.attr("data-swiper-parallax-scale"),d=i.attr("data-swiper-parallax-opacity");if(n||l?(n=n||"0",l=l||"0"):this.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*t*s+"%":n*t*s+"px",l=l.indexOf("%")>=0?parseInt(l,10)*t+"%":l*t+"px",null!=d){var p=d-(d-1)*(1-Math.abs(t));i[0].style.opacity=p}if(null==o)i.transform("translate3d("+n+", "+l+", 0px)");else{var u=o-(o-1)*(1-Math.abs(t));i.transform("translate3d("+n+", "+l+", 0px) scale("+u+")")}},setTranslate:function(){var e=this,t=e.$el,a=e.slides,i=e.progress,s=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,i)})),a.each((function(t,a){var r=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(r+=Math.ceil(a/2)-i*(s.length-1)),r=Math.min(Math.max(r,-1),1),m(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,r)}))}))},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){var a=m(t),i=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),a.transition(i)}))}},ee={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,a=e.targetTouches[0].pageY,i=e.targetTouches[1].pageX,s=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(i-t,2)+Math.pow(s-a,2))},onGestureStart:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(s.fakeGestureTouched=!1,s.fakeGestureMoved=!1,!a.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;s.fakeGestureTouched=!0,r.scaleStart=ee.getDistanceBetweenTouches(e)}r.$slideEl&&r.$slideEl.length||(r.$slideEl=m(e.target).closest("."+t.params.slideClass),0===r.$slideEl.length&&(r.$slideEl=t.slides.eq(t.activeIndex)),r.$imageEl=r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),r.$imageWrapEl=r.$imageEl.parent("."+i.containerClass),r.maxRatio=r.$imageWrapEl.attr("data-swiper-zoom")||i.maxRatio,0!==r.$imageWrapEl.length)?(r.$imageEl&&r.$imageEl.transition(0),t.zoom.isScaling=!0):r.$imageEl=void 0},onGestureChange:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(!a.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;s.fakeGestureMoved=!0,r.scaleMove=ee.getDistanceBetweenTouches(e)}r.$imageEl&&0!==r.$imageEl.length?(a.gestures?s.scale=e.scale*s.currentScale:s.scale=r.scaleMove/r.scaleStart*s.currentScale,s.scale>r.maxRatio&&(s.scale=r.maxRatio-1+Math.pow(s.scale-r.maxRatio+1,.5)),s.scales.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.ys.touchesStart.y))return void(s.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentXs.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentYs.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,l=a.currentX+n,o=i.y*r,d=a.currentY+o;0!==i.x&&(s=Math.abs((l-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=l,a.currentY=d;var u=a.width*e.scale,c=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-u/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-c/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this,t=e.zoom,a=t.gesture;a.$slideEl&&e.previousIndex!==e.activeIndex&&(a.$imageEl&&a.$imageEl.transform("translate3d(0,0,0) scale(1)"),a.$imageWrapEl&&a.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,t.currentScale=1,a.$slideEl=void 0,a.$imageEl=void 0,a.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,l,o,d,p,u,c,h,v,f,m,g=this,y=g.zoom,w=g.params.zoom,b=y.gesture,E=y.image;(b.$slideEl||(g.params.virtual&&g.params.virtual.enabled&&g.virtual?b.$slideEl=g.$wrapperEl.children("."+g.params.slideActiveClass):b.$slideEl=g.slides.eq(g.activeIndex),b.$imageEl=b.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),b.$imageWrapEl=b.$imageEl.parent("."+w.containerClass)),b.$imageEl&&0!==b.$imageEl.length)&&(b.$slideEl.addClass(""+w.zoomedSlideClass),void 0===E.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=E.touchesStart.x,a=E.touchesStart.y),y.scale=b.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,y.currentScale=b.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(f=b.$slideEl[0].offsetWidth,m=b.$slideEl[0].offsetHeight,i=b.$slideEl.offset().left+f/2-t,s=b.$slideEl.offset().top+m/2-a,l=b.$imageEl[0].offsetWidth,o=b.$imageEl[0].offsetHeight,d=l*y.scale,p=o*y.scale,h=-(u=Math.min(f/2-d/2,0)),v=-(c=Math.min(m/2-p/2,0)),(r=i*y.scale)h&&(r=h),(n=s*y.scale)v&&(n=v)):(r=0,n=0),b.$imageWrapEl.transition(300).transform("translate3d("+r+"px, "+n+"px,0)"),b.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+y.scale+")"))},out:function(){var e=this,t=e.zoom,a=e.params.zoom,i=t.gesture;i.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?i.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):i.$slideEl=e.slides.eq(e.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&(t.scale=1,t.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+a.zoomedSlideClass),i.$slideEl=void 0)},toggleGestures:function(e){var t=this,a=t.zoom,i=a.slideSelector,s=a.passiveListener;t.$wrapperEl[e]("gesturestart",i,a.onGestureStart,s),t.$wrapperEl[e]("gesturechange",i,a.onGestureChange,s),t.$wrapperEl[e]("gestureend",i,a.onGestureEnd,s)},enableGestures:function(){this.zoom.gesturesEnabled||(this.zoom.gesturesEnabled=!0,this.zoom.toggleGestures("on"))},disableGestures:function(){this.zoom.gesturesEnabled&&(this.zoom.gesturesEnabled=!1,this.zoom.toggleGestures("off"))},enable:function(){var e=this,t=e.support,a=e.zoom;if(!a.enabled){a.enabled=!0;var i=!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!t.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;e.zoom.passiveListener=i,e.zoom.slideSelector=r,t.gestures?(e.$wrapperEl.on(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.on(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,a.onGestureStart,i),e.$wrapperEl.on(e.touchEvents.move,r,a.onGestureChange,s),e.$wrapperEl.on(e.touchEvents.end,r,a.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,a.onGestureEnd,i)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,a.onTouchMove,s)}},disable:function(){var e=this,t=e.zoom;if(t.enabled){var a=e.support;e.zoom.enabled=!1;var i=!("touchstart"!==e.touchEvents.start||!a.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!a.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;a.gestures?(e.$wrapperEl.off(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.off(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,t.onGestureStart,i),e.$wrapperEl.off(e.touchEvents.move,r,t.onGestureChange,s),e.$wrapperEl.off(e.touchEvents.end,r,t.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,t.onGestureEnd,i)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,s)}}},te={loadInSlide:function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.lazy;if(void 0!==e&&0!==a.slides.length){var s=a.virtual&&a.params.virtual.enabled?a.$wrapperEl.children("."+a.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):a.slides.eq(e),r=s.find("."+i.elementClass+":not(."+i.loadedClass+"):not(."+i.loadingClass+")");!s.hasClass(i.elementClass)||s.hasClass(i.loadedClass)||s.hasClass(i.loadingClass)||r.push(s[0]),0!==r.length&&r.each((function(e){var r=m(e);r.addClass(i.loadingClass);var n=r.attr("data-background"),l=r.attr("data-src"),o=r.attr("data-srcset"),d=r.attr("data-sizes"),p=r.parent("picture");a.loadImage(r[0],l||n,o,d,!1,(function(){if(null!=a&&a&&(!a||a.params)&&!a.destroyed){if(n?(r.css("background-image",'url("'+n+'")'),r.removeAttr("data-background")):(o&&(r.attr("srcset",o),r.removeAttr("data-srcset")),d&&(r.attr("sizes",d),r.removeAttr("data-sizes")),p.length&&p.children("source").each((function(e){var t=m(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),l&&(r.attr("src",l),r.removeAttr("data-src"))),r.addClass(i.loadedClass).removeClass(i.loadingClass),s.find("."+i.preloaderClass).remove(),a.params.loop&&t){var e=s.attr("data-swiper-slide-index");if(s.hasClass(a.params.slideDuplicateClass)){var u=a.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+a.params.slideDuplicateClass+")");a.lazy.loadInSlide(u.index(),!1)}else{var c=a.$wrapperEl.children("."+a.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');a.lazy.loadInSlide(c.index(),!1)}}a.emit("lazyImageReady",s[0],r[0]),a.params.autoHeight&&a.updateAutoHeight()}})),a.emit("lazyImageLoad",s[0],r[0])}))}},load:function(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides,s=e.activeIndex,r=e.virtual&&a.virtual.enabled,n=a.lazy,l=a.slidesPerView;function o(e){if(r){if(t.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(i[e])return!0;return!1}function d(e){return r?m(e).attr("data-swiper-slide-index"):m(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+a.slideVisibleClass).each((function(t){var a=r?m(t).attr("data-swiper-slide-index"):m(t).index();e.lazy.loadInSlide(a)}));else if(l>1)for(var p=s;p1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){for(var u=n.loadPrevNextAmount,c=l,h=Math.min(s+c+Math.max(u,c),i.length),v=Math.max(s-Math.max(c,u),0),f=s+l;f0&&e.lazy.loadInSlide(d(y));var w=t.children("."+a.slidePrevClass);w.length>0&&e.lazy.loadInSlide(d(w))}},checkInViewOnLoad:function(){var e=l(),t=this;if(t&&!t.destroyed){var a=t.params.lazy.scrollingElement?m(t.params.lazy.scrollingElement):m(e),i=a[0]===e,s=i?e.innerWidth:a[0].offsetWidth,r=i?e.innerHeight:a[0].offsetHeight,n=t.$el.offset(),o=!1;t.rtlTranslate&&(n.left-=t.$el[0].scrollLeft);for(var d=[[n.left,n.top],[n.left+t.width,n.top],[n.left,n.top+t.height],[n.left+t.width,n.top+t.height]],p=0;p=0&&u[0]<=s&&u[1]>=0&&u[1]<=r){if(0===u[0]&&0===u[1])continue;o=!0}}o?(t.lazy.load(),a.off("scroll",t.lazy.checkInViewOnLoad)):t.lazy.scrollHandlerAttached||(t.lazy.scrollHandlerAttached=!0,a.on("scroll",t.lazy.checkInViewOnLoad))}}},ae={LinearSpline:function(e,t){var a,i,s,r,n,l=function(e,t){for(i=-1,a=e.length;a-i>1;)e[s=a+i>>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=l(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new ae.LinearSpline(t.slidesGrid,e.slidesGrid):new ae.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control,n=s.constructor;function l(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o0&&(e.isBeginning?(e.a11y.disableEl(i),e.a11y.makeElNotFocusable(i)):(e.a11y.enableEl(i),e.a11y.makeElFocusable(i))),a&&a.length>0&&(e.isEnd?(e.a11y.disableEl(a),e.a11y.makeElNotFocusable(a)):(e.a11y.enableEl(a),e.a11y.makeElFocusable(a)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((function(a){var i=m(a);e.a11y.makeElFocusable(i),e.params.pagination.renderBullet||(e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1)))}))},init:function(){var e=this,t=e.params.a11y;e.$el.append(e.a11y.liveRegion);var a=e.$el;t.containerRoleDescriptionMessage&&e.a11y.addElRoleDescription(a,t.containerRoleDescriptionMessage),t.containerMessage&&e.a11y.addElLabel(a,t.containerMessage);var i,s,r,n=e.$wrapperEl,l=n.attr("id")||"swiper-wrapper-"+e.a11y.getRandomNumber(16);e.a11y.addElId(n,l),i=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite",e.a11y.addElLive(n,i),t.itemRoleDescriptionMessage&&e.a11y.addElRoleDescription(m(e.slides),t.itemRoleDescriptionMessage),e.a11y.addElRole(m(e.slides),"group"),e.slides.each((function(t){var a=m(t);e.a11y.addElLabel(a,a.index()+1+" / "+e.slides.length)})),e.navigation&&e.navigation.$nextEl&&(s=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(r=e.navigation.$prevEl),s&&s.length&&(e.a11y.makeElFocusable(s),"BUTTON"!==s[0].tagName&&(e.a11y.addElRole(s,"button"),s.on("keydown",e.a11y.onEnterKey)),e.a11y.addElLabel(s,t.nextSlideMessage),e.a11y.addElControls(s,l)),r&&r.length&&(e.a11y.makeElFocusable(r),"BUTTON"!==r[0].tagName&&(e.a11y.addElRole(r,"button"),r.on("keydown",e.a11y.onEnterKey)),e.a11y.addElLabel(r,t.prevSlideMessage),e.a11y.addElControls(r,l)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown","."+e.params.pagination.bulletClass.replace(/ /g,"."),e.a11y.onEnterKey)},destroy:function(){var e,t,a=this;a.a11y.liveRegion&&a.a11y.liveRegion.length>0&&a.a11y.liveRegion.remove(),a.navigation&&a.navigation.$nextEl&&(e=a.navigation.$nextEl),a.navigation&&a.navigation.$prevEl&&(t=a.navigation.$prevEl),e&&e.off("keydown",a.a11y.onEnterKey),t&&t.off("keydown",a.a11y.onEnterKey),a.pagination&&a.params.pagination.clickable&&a.pagination.bullets&&a.pagination.bullets.length&&a.pagination.$el.off("keydown","."+a.params.pagination.bulletClass.replace(/ /g,"."),a.a11y.onEnterKey)}},se={init:function(){var e=this,t=l();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);var a=e.history;a.initialized=!0,a.paths=se.getPathValues(e.params.url),(a.paths.key||a.paths.value)&&(a.scrollToSlide(0,a.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",e.history.setHistoryPopState))}},destroy:function(){var e=l();this.params.history.replaceState||e.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){var e=this;e.history.paths=se.getPathValues(e.params.url),e.history.scrollToSlide(e.params.speed,e.history.paths.value,!1)},getPathValues:function(e){var t=l(),a=(e?new URL(e):t.location).pathname.slice(1).split("/").filter((function(e){return""!==e})),i=a.length;return{key:a[i-2],value:a[i-1]}},setHistory:function(e,t){var a=this,i=l();if(a.history.initialized&&a.params.history.enabled){var s;s=a.params.url?new URL(a.params.url):i.location;var r=a.slides.eq(t),n=se.slugify(r.attr("data-history"));s.pathname.includes(e)||(n=e+"/"+n);var o=i.history.state;o&&o.value===n||(a.params.history.replaceState?i.history.replaceState({value:n},null,n):i.history.pushState({value:n},null,n))}},slugify:function(e){return e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,a){var i=this;if(t)for(var s=0,r=i.slides.length;s'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=m('
    '),a.append(e)));for(var v=0;v-1&&(h=90*g+90*b,l&&(h=90*-g-90*b)),f.transform(C),p.slideShadows){var S=u?f.find(".swiper-slide-shadow-left"):f.find(".swiper-slide-shadow-top"),M=u?f.find(".swiper-slide-shadow-right"):f.find(".swiper-slide-shadow-bottom");0===S.length&&(S=m('
    '),f.append(S)),0===M.length&&(M=m('
    '),f.append(M)),S.length&&(S[0].style.opacity=Math.max(-b,0)),M.length&&(M[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+o/2+"px","-moz-transform-origin":"50% 50% -"+o/2+"px","-ms-transform-origin":"50% 50% -"+o/2+"px","transform-origin":"50% 50% -"+o/2+"px"}),p.shadow)if(u)e.transform("translate3d(0px, "+(r/2+p.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+p.shadowScale+")");else{var z=Math.abs(h)-90*Math.floor(Math.abs(h)/90),P=1.5-(Math.sin(2*z*Math.PI/360)/2+Math.cos(2*z*Math.PI/360)/2),k=p.shadowScale,L=p.shadowScale/P,$=p.shadowOffset;e.transform("scale3d("+k+", 1, "+L+") translate3d(0px, "+(n/2+$)+"px, "+-n/2/L+"px) rotateX(-90deg)")}var I=d.isSafari||d.isWebView?-o/2:0;i.transform("translate3d(0px,0,"+I+"px) rotateX("+(t.isHorizontal()?0:h)+"deg) rotateY("+(t.isHorizontal()?-h:0)+"deg)")},setTransition:function(e){var t=this,a=t.$el;t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&a.find(".swiper-cube-shadow").transition(e)}},de={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i'),s.append(p)),0===u.length&&(u=m('
    '),s.append(u)),p.length&&(p[0].style.opacity=Math.max(-r,0)),u.length&&(u[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+o+"px, "+d+"px, 0px) rotateX("+l+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var t=this,a=t.slides,i=t.activeIndex,s=t.$wrapperEl;if(a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var r=!1;a.eq(i).transitionEnd((function(){if(!r&&t&&!t.destroyed){r=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],a=0;a'),h.append(S)),0===M.length&&(M=m('
    '),h.append(M)),S.length&&(S[0].style.opacity=f>0?f:0),M.length&&(M[0].style.opacity=-f>0?-f:0)}}},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},ue={init:function(){var e=this,t=e.params.thumbs;if(e.thumbs.initialized)return!1;e.thumbs.initialized=!0;var a=e.constructor;return t.swiper instanceof a?(e.thumbs.swiper=t.swiper,S(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),S(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):C(t.swiper)&&(e.thumbs.swiper=new a(S({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick),!0},onThumbClick:function(){var e=this,t=e.thumbs.swiper;if(t){var a=t.clickedIndex,i=t.clickedSlide;if(!(i&&m(i).hasClass(e.params.thumbs.slideThumbActiveClass)||null==a)){var s;if(s=t.params.loop?parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"),10):a,e.params.loop){var r=e.activeIndex;e.slides.eq(r).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,r=e.activeIndex);var n=e.slides.eq(r).prevAll('[data-swiper-slide-index="'+s+'"]').eq(0).index(),l=e.slides.eq(r).nextAll('[data-swiper-slide-index="'+s+'"]').eq(0).index();s=void 0===n?l:void 0===l?n:l-rt.previousIndex?"next":"prev"}else l=(n=t.realIndex)>t.previousIndex?"next":"prev";r&&(n+="next"===l?s:-1*s),a.visibleSlidesIndexes&&a.visibleSlidesIndexes.indexOf(n)<0&&(a.params.centeredSlides?n=n>o?n-Math.floor(i/2)+1:n+Math.floor(i/2)-1:n>o&&(n=n-i+1),a.slideTo(n,e?0:void 0))}var u=1,c=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(u=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(u=1),u=Math.floor(u),a.slides.removeClass(c),a.params.loop||a.params.virtual&&a.params.virtual.enabled)for(var h=0;h0&&!m(t.target).hasClass(e.params.pagination.bulletClass)&&(!0===e.pagination.$el.hasClass(e.params.pagination.hiddenClass)?e.emit("paginationShow"):e.emit("paginationHide"),e.pagination.$el.toggleClass(e.params.pagination.hiddenClass))}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){M(this,{scrollbar:t({isTouched:!1,timeout:null,dragTimeout:null},J)})},on:{init:function(e){e.scrollbar.init(),e.scrollbar.updateSize(),e.scrollbar.setTranslate()},update:function(e){e.scrollbar.updateSize()},resize:function(e){e.scrollbar.updateSize()},observerUpdate:function(e){e.scrollbar.updateSize()},setTranslate:function(e){e.scrollbar.setTranslate()},setTransition:function(e,t){e.scrollbar.setTransition(t)},destroy:function(e){e.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){M(this,{parallax:t({},Q)})},on:{beforeInit:function(e){e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},init:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTranslate:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTransition:function(e,t){e.params.parallax.enabled&&e.parallax.setTransition(t)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this;M(e,{zoom:t({enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}},ee)});var a=1;Object.defineProperty(e.zoom,"scale",{get:function(){return a},set:function(t){if(a!==t){var i=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,s=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",t,i,s)}a=t}})},on:{init:function(e){e.params.zoom.enabled&&e.zoom.enable()},destroy:function(e){e.zoom.disable()},touchStart:function(e,t){e.zoom.enabled&&e.zoom.onTouchStart(t)},touchEnd:function(e,t){e.zoom.enabled&&e.zoom.onTouchEnd(t)},doubleTap:function(e,t){e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&e.zoom.toggle(t)},transitionEnd:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){M(this,{lazy:t({initialImageLoaded:!1},te)})},on:{beforeInit:function(e){e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init:function(e){e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&(e.params.lazy.checkInView?e.lazy.checkInViewOnLoad():e.lazy.load())},scroll:function(e){e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},resize:function(e){e.params.lazy.enabled&&e.lazy.load()},scrollbarDragMove:function(e){e.params.lazy.enabled&&e.lazy.load()},transitionStart:function(e){e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd:function(e){e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange:function(e){e.params.lazy.enabled&&e.params.cssMode&&e.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){M(this,{controller:t({control:this.params.controller.control},ae)})},on:{update:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate:function(e,t,a){e.controller.control&&e.controller.setTranslate(t,a)},setTransition:function(e,t,a){e.controller.control&&e.controller.setTransition(t,a)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null}},create:function(){M(this,{a11y:t({},ie,{liveRegion:m('')})})},on:{afterInit:function(e){e.params.a11y.enabled&&(e.a11y.init(),e.a11y.updateNavigation())},toEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},fromEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},paginationUpdate:function(e){e.params.a11y.enabled&&e.a11y.updatePagination()},destroy:function(e){e.params.a11y.enabled&&e.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){M(this,{history:t({},se)})},on:{init:function(e){e.params.history.enabled&&e.history.init()},destroy:function(e){e.params.history.enabled&&e.history.destroy()},transitionEnd:function(e){e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange:function(e){e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){M(this,{hashNavigation:t({initialized:!1},re)})},on:{init:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},transitionEnd:function(e){e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange:function(e){e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){M(this,{autoplay:t({},ne,{running:!1,paused:!1})})},on:{init:function(e){e.params.autoplay.enabled&&(e.autoplay.start(),r().addEventListener("visibilitychange",e.autoplay.onVisibilityChange))},beforeTransitionStart:function(e,t,a){e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(t):e.autoplay.stop())},sliderFirstMove:function(e){e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd:function(e){e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy:function(e){e.autoplay.running&&e.autoplay.stop(),r().removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){M(this,{fadeEffect:t({},le)})},on:{beforeInit:function(e){if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"fade"===e.params.effect&&e.fadeEffect.setTranslate()},setTransition:function(e,t){"fade"===e.params.effect&&e.fadeEffect.setTransition(t)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){M(this,{cubeEffect:t({},oe)})},on:{beforeInit:function(e){if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"cube"===e.params.effect&&e.cubeEffect.setTranslate()},setTransition:function(e,t){"cube"===e.params.effect&&e.cubeEffect.setTransition(t)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){M(this,{flipEffect:t({},de)})},on:{beforeInit:function(e){if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"flip"===e.params.effect&&e.flipEffect.setTranslate()},setTransition:function(e,t){"flip"===e.params.effect&&e.flipEffect.setTransition(t)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create:function(){M(this,{coverflowEffect:t({},pe)})},on:{beforeInit:function(e){"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(e){"coverflow"===e.params.effect&&e.coverflowEffect.setTranslate()},setTransition:function(e,t){"coverflow"===e.params.effect&&e.coverflowEffect.setTransition(t)}}},{name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){M(this,{thumbs:t({swiper:null,initialized:!1},ue)})},on:{beforeInit:function(e){var t=e.params.thumbs;t&&t.swiper&&(e.thumbs.init(),e.thumbs.update(!0))},slideChange:function(e){e.thumbs.swiper&&e.thumbs.update()},update:function(e){e.thumbs.swiper&&e.thumbs.update()},resize:function(e){e.thumbs.swiper&&e.thumbs.update()},observerUpdate:function(e){e.thumbs.swiper&&e.thumbs.update()},setTransition:function(e,t){var a=e.thumbs.swiper;a&&a.setTransition(t)},beforeDestroy:function(e){var t=e.thumbs.swiper;t&&e.thumbs.swiperCreated&&t&&t.destroy()}}}];return R.use(ce),R})); -//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/public/js/swiper-bundle.min.js.map b/public/js/swiper-bundle.min.js.map deleted file mode 100644 index 0f7e5ff..0000000 --- a/public/js/swiper-bundle.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../src/utils/dom.js","../src/utils/get-support.js","../src/utils/get-device.js","../src/utils/get-browser.js","../src/utils/utils.js","../src/modules/resize/resize.js","../src/modules/observer/observer.js","../src/components/core/events/onTouchStart.js","../src/components/core/events/onTouchMove.js","../src/components/core/events/onTouchEnd.js","../src/components/core/events/onResize.js","../src/components/core/events/onClick.js","../src/components/core/events/onScroll.js","../src/components/core/events/index.js","../src/components/core/check-overflow/index.js","../src/components/core/defaults.js","../src/components/core/core-class.js","../src/components/core/modular.js","../src/components/core/events-emitter.js","../src/components/core/update/index.js","../src/components/core/update/updateSize.js","../src/components/core/update/updateSlides.js","../src/components/core/update/updateAutoHeight.js","../src/components/core/update/updateSlidesOffset.js","../src/components/core/update/updateSlidesProgress.js","../src/components/core/update/updateProgress.js","../src/components/core/update/updateSlidesClasses.js","../src/components/core/update/updateActiveIndex.js","../src/components/core/update/updateClickedSlide.js","../src/components/core/translate/index.js","../src/components/core/translate/getTranslate.js","../src/components/core/translate/setTranslate.js","../src/components/core/translate/minTranslate.js","../src/components/core/translate/maxTranslate.js","../src/components/core/translate/translateTo.js","../src/components/core/transition/index.js","../src/components/core/transition/setTransition.js","../src/components/core/transition/transitionStart.js","../src/components/core/transition/transitionEnd.js","../src/components/core/slide/index.js","../src/components/core/slide/slideTo.js","../src/components/core/slide/slideToLoop.js","../src/components/core/slide/slideNext.js","../src/components/core/slide/slidePrev.js","../src/components/core/slide/slideReset.js","../src/components/core/slide/slideToClosest.js","../src/components/core/slide/slideToClickedSlide.js","../src/components/core/loop/index.js","../src/components/core/loop/loopCreate.js","../src/components/core/loop/loopFix.js","../src/components/core/loop/loopDestroy.js","../src/components/core/grab-cursor/index.js","../src/components/core/grab-cursor/setGrabCursor.js","../src/components/core/grab-cursor/unsetGrabCursor.js","../src/components/core/manipulation/index.js","../src/components/core/manipulation/appendSlide.js","../src/components/core/manipulation/prependSlide.js","../src/components/core/manipulation/addSlide.js","../src/components/core/manipulation/removeSlide.js","../src/components/core/manipulation/removeAllSlides.js","../src/components/core/breakpoints/index.js","../src/components/core/breakpoints/setBreakpoint.js","../src/components/core/breakpoints/getBreakpoint.js","../src/components/core/classes/index.js","../src/components/core/classes/addClasses.js","../src/components/core/classes/removeClasses.js","../src/components/core/images/index.js","../src/components/core/images/loadImage.js","../src/components/core/images/preloadImages.js","../src/components/virtual/virtual.js","../src/components/keyboard/keyboard.js","../src/components/mousewheel/mousewheel.js","../src/components/navigation/navigation.js","../src/components/pagination/pagination.js","../src/components/scrollbar/scrollbar.js","../src/components/parallax/parallax.js","../src/components/zoom/zoom.js","../src/components/lazy/lazy.js","../src/components/controller/controller.js","../src/components/a11y/a11y.js","../src/components/history/history.js","../src/components/hash-navigation/hash-navigation.js","../src/components/autoplay/autoplay.js","../src/components/effect-fade/effect-fade.js","../src/components/effect-cube/effect-cube.js","../src/components/effect-flip/effect-flip.js","../src/components/effect-coverflow/effect-coverflow.js","../src/components/thumbs/thumbs.js","../src/swiper.js"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","prototype","toString","call","e","_construct","Parent","args","Class","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","create","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","_this","proto","concat","self","ReferenceError","_assertThisInitialized","defineProperty","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","i","qsa","nodeType","uniqueArray","arrayUnique","support","device","browser","Methods","addClass","_len","classes","_key","classNames","map","c","split","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","className","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","trigger","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","calcBrowser","methodName","Resize","name","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","init","destroy","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","attributes","childList","characterData","observers","params","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","Observer$1","_extends","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","Math","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","increment","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","defaults","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","eventsArray","update","clientWidth","clientHeight","parseInt","Number","isNaN","size","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_slide$2","swiperSlideSize","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","Error","indexAsNumber","isFinite","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","_points$i","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","moduleParamName","swiperParams","passedParams","eventName","swipers","containerEl","newParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","object","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","element","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","newEvent","sign","ignoreWheelEvents","timeout","shift","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","raw","animateSlider","releaseScroll","thresholdDelta","thresholdTime","getTime","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","controller","spline","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","A11y","getRandomNumber","repeat","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","tagName","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","URL","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","components","hideOnClick","toEdge","fromEdge","isHidden","_swiper$navigation3","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","slideChange","checkInView","loadOnTransitionStart","scroll","scrollbarDragMove","notificationClass","afterInit","paginationUpdate","disableOnInteraction","beforeTransitionStart","sliderFirstMove","beforeDestroy"],"mappings":"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","file":"swiper-bundle.min.js","sourcesContent":["/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import {\n $,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n} from 'dom7';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = Methods[methodName];\n});\n\nexport default $;\n","import { getWindow, getDocument } from 'ssr-window';\n\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n\n return {\n touch: !!(\n 'ontouchstart' in window ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)\n ),\n\n pointerEvents:\n !!window.PointerEvent &&\n 'maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n })(),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n })(),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n })(),\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nexport { getSupport };\n","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\n\nlet device;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n '820x1180',\n '1180x820',\n '810x1080',\n '1080x810',\n ];\n if (\n !ipad &&\n macos &&\n support.touch &&\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!device) {\n device = calcDevice(overrides);\n }\n return device;\n}\n\nexport { getDevice };\n","import { getWindow } from 'ssr-window';\n\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nexport { getBrowser };\n","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach((key) => {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach((subKey) => {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nexport default {\n name: 'resize',\n create() {\n const swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init(swiper) {\n const window = getWindow();\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy(swiper) {\n const window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Observer = {\n attach(target, options = {}) {\n const window = getWindow();\n const swiper = this;\n\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren,\n });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n observer: {\n ...Observer,\n observers: [],\n },\n });\n },\n on: {\n init(swiper) {\n swiper.observer.init();\n },\n destroy(swiper) {\n swiper.observer.destroy();\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root componenet\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (\n params.noSwiping &&\n $targetEl.closest(\n params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`,\n )[0]\n ) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection &&\n (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)\n ) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document.activeElement &&\n $(document.activeElement).is(data.formElements) &&\n document.activeElement !== $targetEl[0]\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault =\n preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (\n (params.touchStartForcePreventDefault || shouldPreventDefault) &&\n !$targetEl[0].isContentEditable\n ) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\n\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch =\n e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\n return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (\n (swiper.isHorizontal() && touches.currentY === touches.startY) ||\n (swiper.isVertical() && touches.currentX === touches.startX)\n ) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal()\n ? touchAngle > params.touchAngle\n : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate =\n swiper.minTranslate() -\n 1 +\n (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate =\n swiper.maxTranslate() +\n 1 -\n (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n swiper.swipeDirection === 'next' &&\n data.currentTranslate < data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n if (\n !swiper.allowSlidePrev &&\n swiper.swipeDirection === 'prev' &&\n data.currentTranslate > data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal()\n ? touches.currentX - touches.startX\n : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n","import { now, nextTick } from '../../../utils/utils';\n\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const { params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (\n params.grabCursor &&\n data.isMoved &&\n data.isTouched &&\n (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\n ) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (\n !data.isTouched ||\n !data.isMoved ||\n !swiper.swipeDirection ||\n touches.diff === 0 ||\n data.currentTranslate === data.startTranslate\n ) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (\n Math.abs(snapGrid[nextSlide] - newPosition) <\n Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\n swiper.swipeDirection === 'next'\n ) {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (\n let i = 0;\n i < slidesGrid.length;\n i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\n ) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget =\n swiper.navigation &&\n (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n","export default function onResize() {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if (\n (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.isBeginning &&\n !swiper.params.centeredSlides\n ) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n","export default function onClick(e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n","export default function onScroll() {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n","import { getDocument } from 'ssr-window';\n\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n const passiveListener =\n touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(\n touchEvents.move,\n swiper.onTouchMove,\n support.passiveListener ? { passive: false, capture } : capture,\n );\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if (\n (params.simulateTouch && !device.ios && !device.android) ||\n (params.simulateTouch && !support.touch && device.ios)\n ) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on(\n device.ios || device.android\n ? 'resize orientationchange observerUpdate'\n : 'resize observerUpdate',\n onResize,\n true,\n );\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n const document = getDocument();\n\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n const passiveListener =\n touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (\n (params.simulateTouch && !device.ios && !device.android) ||\n (params.simulateTouch && !support.touch && device.ios)\n ) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off(\n device.ios || device.android\n ? 'resize orientationchange observerUpdate'\n : 'resize observerUpdate',\n onResize,\n );\n}\n\nexport default {\n attachEvents,\n detachEvents,\n};\n","function checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition =\n swiper.slides.length > 0 &&\n params.slidesOffsetBefore +\n params.spaceBetween * (swiper.slides.length - 1) +\n swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default { checkOverflow };\n","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n\n // Overrides\n width: null,\n height: null,\n\n //\n preventInteractionOnTransition: false,\n\n // ssr\n userAgent: null,\n url: null,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n\n // Internals\n _emitClasses: false,\n};\n","/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\n\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\n\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\n\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\n\nimport defaults from './defaults';\n\nconst prototypes = {\n modular,\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n // Swiper Instance\n const swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({ userAgent: params.userAgent });\n swiper.browser = getBrowser();\n\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object' &&\n !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach((eventName) => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((containerEl) => {\n const newParams = extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate:\n swiper.params.direction === 'horizontal' &&\n (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return swiper.support.touch || !swiper.params.simulateTouch\n ? swiper.touchEventsTouch\n : swiper.touchEventsDesktop;\n })(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n });\n\n // Install Modules\n swiper.useModules();\n\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const classes = swiper.el.className.split(' ').filter((className) => {\n return (\n className.indexOf('swiper-container') === 0 ||\n className.indexOf(swiper.params.containerModifierClass) === 0\n );\n });\n swiper.emit('_containerClasses', classes.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className\n .split(' ')\n .filter((className) => {\n return (\n className.indexOf('swiper-slide') === 0 ||\n className.indexOf(swiper.params.slideClass) === 0\n );\n })\n .join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each((slideEl) => {\n const classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const { params, slides, slidesGrid, size: swiperSize, activeIndex } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(\n Math.max(translateValue, swiper.maxTranslate()),\n swiper.minTranslate(),\n );\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if (\n (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.params.centeredSlides\n ) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (\n newDirection === currentDirection ||\n (newDirection !== 'horizontal' && newDirection !== 'vertical')\n ) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(\n swiper.params.initialSlide + swiper.loopedSlides,\n 0,\n swiper.params.runCallbacksOnInit,\n );\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const { params, $el, $wrapperEl, slides } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass(\n [\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '),\n )\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n const name = module.name || `${Object.keys(Swiper.prototype.modules).length}_${now()}`;\n Swiper.prototype.modules[name] = module;\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach((m) => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\n\nObject.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\n\nSwiper.use([Resize, Observer]);\n\nexport default Swiper;\n","import { extend } from '../../utils/utils';\n\nexport default {\n useParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n },\n};\n","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (\n eventHandler === handler ||\n (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\n ) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n\n eventsArray.forEach((event) => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach((eventHandler) => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n },\n};\n","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\n\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n","import { extend } from '../../../utils/utils';\n\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width =\n width -\n parseInt($el.css('padding-left') || 0, 10) -\n parseInt($el.css('padding-right') || 0, 10);\n height =\n height -\n parseInt($el.css('padding-top') || 0, 10) -\n parseInt($el.css('padding-bottom') || 0, 10);\n\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n\n extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\n\nexport default function updateSlides() {\n const swiper = this;\n const window = getWindow();\n const params = swiper.params;\n\n const { $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (\n Math.floor(slidesLength / params.slidesPerColumn) ===\n slidesLength / swiper.params.slidesPerColumn\n ) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows =\n Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(\n slidesNumberEvenToRows,\n params.slidesPerView * params.slidesPerColumn,\n );\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup =\n groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(\n Math.ceil(\n (slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) /\n slidesPerColumn,\n ),\n params.slidesPerGroup,\n );\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + (row * slidesNumberEvenToRows) / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n row !== 0 && params.spaceBetween && `${params.spaceBetween}px`,\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const { clientWidth, offsetWidth } = slide[0];\n slideSize =\n width +\n paddingLeft +\n paddingRight +\n marginLeft +\n marginRight +\n (offsetWidth - clientWidth);\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n const { clientHeight, offsetHeight } = slide[0];\n slideSize =\n height +\n paddingTop +\n paddingBottom +\n marginTop +\n marginBottom +\n (offsetHeight - clientHeight);\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0)\n slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (\n (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\n swiper.params.slidesPerGroup ===\n 0\n )\n snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal())\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n else\n $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize =\n Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal())\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n else\n $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (\n Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\n 1\n ) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal()\n ? slides[i].offsetLeft\n : slides[i].offsetTop;\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function updateSlidesProgress(translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress =\n (offsetCenter +\n (params.centeredSlides ? swiper.minTranslate() : 0) -\n slide.swiperSlideOffset) /\n (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible =\n (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\n (slideAfter > 1 && slideAfter <= swiper.size) ||\n (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n","import { extend } from '../../../utils/utils';\n\nexport default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (\n params.watchSlidesProgress ||\n params.watchSlidesVisibility ||\n (params.centeredSlides && params.autoHeight)\n )\n swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n","export default function updateSlidesClasses() {\n const swiper = this;\n\n const { slides, params, $wrapperEl, activeIndex, realIndex } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(\n `${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`,\n );\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\n `.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`,\n );\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\n `.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`,\n )\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`,\n )\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide\n .nextAll(`.${params.slideClass}`)\n .eq(0)\n .addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide\n .prevAll(`.${params.slideClass}`)\n .eq(0)\n .addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\n `.${params.slideClass}:not(.${\n params.slideDuplicateClass\n })[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${\n params.slideDuplicateClass\n }[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\n `.${params.slideClass}:not(.${\n params.slideDuplicateClass\n })[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${\n params.slideDuplicateClass\n }[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\n","import { extend } from '../../../utils/utils';\n\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (\n translate >= slidesGrid[i] &&\n translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\n ) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(\n swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex,\n 10,\n );\n\n extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (\n params.slideToClickedSlide &&\n swiper.clickedIndex !== undefined &&\n swiper.clickedIndex !== swiper.activeIndex\n ) {\n swiper.slideToClickedSlide();\n }\n}\n","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\n\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n","import { getTranslate } from '../../../utils/utils';\n\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const { params, rtlTranslate: rtl, translate, $wrapperEl } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n","export default function setTranslate(translate, byController) {\n const swiper = this;\n const { rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function minTranslate() {\n return -this.snapGrid[0];\n}\n","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n","export default function translateTo(\n translate = 0,\n speed = this.params.speed,\n runCallbacks = true,\n translateBounds = true,\n internal,\n) {\n const swiper = this;\n\n const { params, wrapperEl } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener(\n 'transitionend',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener(\n 'transitionend',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].addEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n }\n }\n\n return true;\n}\n","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\n\nexport default {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n","export default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n","export default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\n\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n","export default function slideTo(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\n `The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`,\n );\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\n `The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`,\n );\n }\n\n // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (\n !swiper.allowSlideNext &&\n translate < swiper.translate &&\n translate < swiper.minTranslate()\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n translate > swiper.translate &&\n translate > swiper.maxTranslate()\n ) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener(\n 'transitionend',\n swiper.onSlideToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.onSlideToWrapperTransitionEnd,\n );\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener(\n 'webkitTransitionEnd',\n swiper.onSlideToWrapperTransitionEnd,\n );\n }\n }\n\n return true;\n}\n","export default function slideToLoop(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating, snapGrid, slidesGrid, rtlTranslate } = swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n threshold = 0.5,\n) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\n\nexport default function slideToClickedSlide() {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView =\n params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\n slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\n )\n .eq(0)\n .index();\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\n )\n .eq(0)\n .index();\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\n\nexport default {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(\n `${params.slideClass} ${params.slideBlankClass}`,\n );\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n","export default function loopFix() {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n","export default function loopDestroy() {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl\n .children(\n `.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`,\n )\n .remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\n\nexport default {\n setGrabCursor,\n unsetGrabCursor,\n};\n","export default function setGrabCursor(moving) {\n const swiper = this;\n if (\n swiper.support.touch ||\n !swiper.params.simulateTouch ||\n (swiper.params.watchOverflow && swiper.isLocked) ||\n swiper.params.cssMode\n )\n return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n","export default function unsetGrabCursor() {\n const swiper = this;\n if (\n swiper.support.touch ||\n (swiper.params.watchOverflow && swiper.isLocked) ||\n swiper.params.cssMode\n ) {\n return;\n }\n swiper.el.style.cursor = '';\n}\n","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\n\nexport default {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n","export default function appendSlide(slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}\n","export default function prependSlide(slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n","export default function addSlide(index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex =\n activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function removeAllSlides() {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\n\nexport default { setBreakpoint, getBreakpoint };\n","import { extend } from '../../../utils/utils';\n\nexport default function setBreakpoint() {\n const swiper = this;\n const { activeIndex, initialized, loopedSlides = 0, params, $el } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n [\n 'slidesPerView',\n 'spaceBetween',\n 'slidesPerGroup',\n 'slidesPerGroupSkip',\n 'slidesPerColumn',\n ].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\n `${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`,\n );\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n swiper.emitContainerClasses();\n }\n\n const directionChanged =\n breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop =\n params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n","import { getWindow } from 'ssr-window';\n\nexport default function getBreakpoints(breakpoints) {\n const window = getWindow();\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\n\nexport default { addClasses, removeClasses };\n","export default function addClasses() {\n const swiper = this;\n const { classNames, params, rtl, $el, device } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (device.android) {\n suffixes.push('android');\n }\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n\n swiper.emitContainerClasses();\n}\n","export default function removeClasses() {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}\n","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\n\nexport default {\n loadImage,\n preloadImages,\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady,\n );\n }\n}\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n })(),\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl\n .find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`)\n .remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes\n .sort((a, b) => b - a)\n .forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(\n `
    ${slide}
    `,\n );\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n virtual: {\n ...Virtual,\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const window = getWindow();\n const document = getDocument();\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n ((swiper.isHorizontal() && isArrowRight) ||\n (swiper.isVertical() && isArrowDown) ||\n isPageDown)\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\n ) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (\n document.activeElement &&\n document.activeElement.nodeName &&\n (document.activeElement.nodeName.toLowerCase() === 'input' ||\n document.activeElement.nodeName.toLowerCase() === 'textarea')\n ) {\n return undefined;\n }\n if (\n swiper.params.keyboard.onlyInViewport &&\n (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\n ) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (\n swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 &&\n swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0\n ) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\n swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\n swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n const document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n const document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n keyboard: {\n enabled: false,\n ...Keyboard,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n const document = getDocument();\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (\n !isSupported &&\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n const window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n let disableParentSwiper = true;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges)\n return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta =\n Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop\n ? true\n : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (\n newEvent.direction !== prevEvent.direction ||\n newEvent.delta > prevEvent.delta ||\n newEvent.time > prevEvent.time + 150\n ) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents =\n lastEventBeforeSnap &&\n newEvent.time < lastEventBeforeSnap.time + 500 &&\n newEvent.delta <= lastEventBeforeSnap.delta &&\n newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (\n prevEvent &&\n (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\n ) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (\n recentWheelEvents.length >= 15 &&\n newEvent.time - firstEvent.time < 500 &&\n firstEvent.delta - newEvent.delta >= 1 &&\n newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\n swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n const window = getWindow();\n\n if (\n this.params.mousewheel.thresholdDelta &&\n newEvent.delta < this.params.mousewheel.thresholdDelta\n ) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (\n this.params.mousewheel.thresholdTime &&\n now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime\n ) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll,\n },\n });\n },\n on: {\n init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.nextEl === 'string' &&\n $nextEl.length > 1 &&\n swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.prevEl === 'string' &&\n $prevEl.length > 1 &&\n swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n navigation: {\n ...Navigation,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy(swiper) {\n swiper.navigation.destroy();\n },\n click(swiper, e) {\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick &&\n !$(e.target).is($prevEl) &&\n !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil(\n (swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup,\n );\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (\n params.type === 'bullets' &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length > 0\n ) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets\n .eq(0)\n [swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(\n swiper.isHorizontal() ? 'width' : 'height',\n `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`,\n );\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(\n `${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`,\n );\n if ($el.length > 1) {\n bullets.each((bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets\n .eq(bullets.length - params.dynamicMainBullets - 1)\n .addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset =\n (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 -\n midIndex * swiper.pagination.bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el\n .find(`.${params.progressbarFillClass}`)\n .transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`)\n .transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass.replace(/ /g, '.')}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML =\n `` +\n ' / ' +\n ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass.replace(/ /g, '.')}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass.replace(/ /g, '.')}`);\n }\n },\n};\n\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n pagination: {\n dynamicBulletIndex: 0,\n ...Pagination,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy(swiper) {\n swiper.pagination.destroy();\n },\n click(swiper, e) {\n if (\n swiper.params.pagination.el &&\n swiper.params.pagination.hideOnClick &&\n swiper.pagination.$el.length > 0 &&\n !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const { dragSize, trackSize, $dragEl, $el } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n swiper.params.scrollbar.lockClass,\n );\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove'\n ? e.targetTouches[0].clientX\n : e.clientX;\n }\n return e.type === 'touchstart' || e.type === 'touchmove'\n ? e.targetTouches[0].clientY\n : e.clientY;\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { $el, dragSize, trackSize, dragStartPos } = scrollbar;\n\n let positionRatio;\n positionRatio =\n (scrollbar.getPointerPosition(e) -\n $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] -\n (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\n (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position =\n swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos =\n e.target === $dragEl[0] || e.target === $dragEl\n ? scrollbar.getPointerPosition(e) -\n e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\n : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const document = getDocument();\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener =\n support.passiveListener && params.passiveListeners\n ? { passive: false, capture: false }\n : false;\n const passiveListener =\n support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n if (!support.touch) {\n target.addEventListener(\n touchEventsDesktop.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n document.addEventListener(\n touchEventsDesktop.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n document.addEventListener(\n touchEventsDesktop.end,\n swiper.scrollbar.onDragEnd,\n passiveListener,\n );\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const document = getDocument();\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener =\n support.passiveListener && params.passiveListeners\n ? { passive: false, capture: false }\n : false;\n const passiveListener =\n support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n if (!support.touch) {\n target.removeEventListener(\n touchEventsDesktop.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n document.removeEventListener(\n touchEventsDesktop.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n document.removeEventListener(\n touchEventsDesktop.end,\n swiper.scrollbar.onDragEnd,\n passiveListener,\n );\n } else {\n target.removeEventListener(\n touchEventsTouch.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n target.removeEventListener(\n touchEventsTouch.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n $el.length > 1 &&\n $swiperEl.find(params.el).length === 1\n ) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
    `);\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: {\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n ...Scrollbar,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n destroy(swiper) {\n swiper.scrollbar.destroy();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const { $el, slides, progress, snapGrid } = swiper;\n $el\n .children(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl)\n .find(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el\n .find(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration =\n parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n parallax: {\n ...Parallax,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n if (!support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (\n e.type !== 'touchend' ||\n (e.type === 'touchend' && e.changedTouches.length < 2 && !device.android)\n ) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl\n .transition(swiper.params.speed)\n .transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const device = swiper.device;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal() &&\n ((Math.floor(image.minX) === Math.floor(image.startX) &&\n image.touchesCurrent.x < image.touchesStart.x) ||\n (Math.floor(image.maxX) === Math.floor(image.startX) &&\n image.touchesCurrent.x > image.touchesStart.x))\n ) {\n image.isTouched = false;\n return;\n }\n if (\n !swiper.isHorizontal() &&\n ((Math.floor(image.minY) === Math.floor(image.startY) &&\n image.touchesCurrent.y < image.touchesStart.y) ||\n (Math.floor(image.maxY) === Math.floor(image.startY) &&\n image.touchesCurrent.y > image.touchesStart.y))\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x =\n (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y =\n (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0)\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0)\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl\n .transition(momentumDuration)\n .transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl\n .transition(300)\n .transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n\n toggleGestures(method) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { slideSelector: selector, passiveListener: passive } = zoom;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const support = swiper.support;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener =\n swiper.touchEvents.start === 'touchstart' &&\n support.passiveListener &&\n swiper.params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n const activeListenerWithCapture = support.passiveListener\n ? { passive: false, capture: true }\n : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector;\n\n // Scale image\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(\n swiper.touchEvents.start,\n slideSelector,\n zoom.onGestureStart,\n passiveListener,\n );\n swiper.$wrapperEl.on(\n swiper.touchEvents.move,\n slideSelector,\n zoom.onGestureChange,\n activeListenerWithCapture,\n );\n swiper.$wrapperEl.on(\n swiper.touchEvents.end,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(\n swiper.touchEvents.cancel,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(\n swiper.touchEvents.move,\n `.${swiper.params.zoom.containerClass}`,\n zoom.onTouchMove,\n activeListenerWithCapture,\n );\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n\n swiper.zoom.enabled = false;\n\n const passiveListener =\n swiper.touchEvents.start === 'touchstart' &&\n support.passiveListener &&\n swiper.params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n const activeListenerWithCapture = support.passiveListener\n ? { passive: false, capture: true }\n : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(\n swiper.touchEvents.start,\n slideSelector,\n zoom.onGestureStart,\n passiveListener,\n );\n swiper.$wrapperEl.off(\n swiper.touchEvents.move,\n slideSelector,\n zoom.onGestureChange,\n activeListenerWithCapture,\n );\n swiper.$wrapperEl.off(\n swiper.touchEvents.end,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(\n swiper.touchEvents.cancel,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(\n swiper.touchEvents.move,\n `.${swiper.params.zoom.containerClass}`,\n zoom.onTouchMove,\n activeListenerWithCapture,\n );\n },\n};\n\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n\n bindModuleMethods(swiper, {\n zoom: {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n ...Zoom,\n },\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl\n ? swiper.zoom.gesture.$imageEl[0]\n : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl\n ? swiper.zoom.gesture.$slideEl[0]\n : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(swiper, e) {\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(\n `.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`,\n )\n : swiper.slides.eq(index);\n\n const $images = $slideEl.find(\n `.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`,\n );\n if (\n $slideEl.hasClass(params.elementClass) &&\n !$slideEl.hasClass(params.loadedClass) &&\n !$slideEl.hasClass(params.loadingClass)\n ) {\n $images.push($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (\n typeof swiper === 'undefined' ||\n swiper === null ||\n !swiper ||\n (swiper && !swiper.params) ||\n swiper.destroyed\n )\n return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceEl) => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(\n `[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`,\n );\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(\n `.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`,\n );\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const { $wrapperEl, params: swiperParams, slides, activeIndex } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if (\n $wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n .length\n ) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad() {\n const window = getWindow();\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement\n ? $(swiper.params.lazy.scrollingElement)\n : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const { rtlTranslate: rtl } = swiper;\n\n let inView = false;\n\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 &&\n point[0] <= scrollElementWidth &&\n point[1] >= 0 &&\n point[1] <= scrollElementHeight\n ) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad);\n }\n },\n};\n\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n lazy: {\n initialImageLoaded: false,\n ...Lazy,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (\n swiper.params.lazy.loadOnTransitionStart ||\n (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)\n ) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = (maxIndex + minIndex) >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n })();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (\n ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\n );\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier =\n (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n controller: {\n control: swiper.params.controller.control,\n ...Controller,\n },\n });\n },\n on: {\n update(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst A11y = {\n getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription($el, description) {\n $el.attr('aria-role-description', description);\n return $el;\n },\n addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (\n swiper.pagination &&\n $targetEl.is(`.${swiper.params.pagination.bulletClass.replace(/ /g, '.')}`)\n ) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.bullets.each((bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel(\n $bulletEl,\n params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1),\n );\n }\n });\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.a11y;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Container\n const $containerEl = swiper.$el;\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n }\n\n // Wrapper\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${swiper.a11y.getRandomNumber(16)}`;\n let live;\n swiper.a11y.addElId($wrapperEl, wrapperId);\n\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\n live = 'off';\n } else {\n live = 'polite';\n }\n swiper.a11y.addElLive($wrapperEl, live);\n\n // Slide\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n swiper.a11y.addElRole($(swiper.slides), 'group');\n swiper.slides.each((slideEl) => {\n const $slideEl = $(slideEl);\n swiper.a11y.addElLabel($slideEl, `${$slideEl.index() + 1} / ${swiper.slides.length}`);\n });\n\n // Navigation\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n }\n\n // Pagination\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.$el.on(\n 'keydown',\n `.${swiper.params.pagination.bulletClass.replace(/ /g, '.')}`,\n swiper.a11y.onEnterKey,\n );\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0)\n swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.$el.off(\n 'keydown',\n `.${swiper.params.pagination.bulletClass.replace(/ /g, '.')}`,\n swiper.a11y.onEnterKey,\n );\n }\n },\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n a11y: {\n ...A11y,\n liveRegion: $(\n ``,\n ),\n },\n });\n },\n on: {\n afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst History = {\n init() {\n const swiper = this;\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues(urlOverride) {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname\n .slice(1)\n .split('/')\n .filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n const window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text\n .toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n history: {\n ...History,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const document = getDocument();\n swiper.emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl\n .children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`)\n .index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n const window = getWindow();\n const document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (\n swiper.params.hashNavigation.replaceState &&\n window.history &&\n window.history.replaceState\n ) {\n window.history.replaceState(\n null,\n null,\n `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '',\n );\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n if (\n !swiper.params.hashNavigation.enabled ||\n (swiper.params.history && swiper.params.history.enabled)\n )\n return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n const window = getWindow();\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: {\n initialized: false,\n ...HashNavigation,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(() => {\n let autoplayResult;\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(\n swiper.slides.length - 1,\n swiper.params.speed,\n true,\n true,\n );\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange() {\n const swiper = this;\n const document = getDocument();\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n const swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.autoplay.onTransitionEnd,\n );\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n};\n\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n autoplay: {\n ...Autoplay,\n running: false,\n paused: false,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n const document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd(swiper) {\n if (\n swiper.params.cssMode &&\n swiper.autoplay.paused &&\n !swiper.params.autoplay.disableOnInteraction\n ) {\n swiper.autoplay.run();\n }\n },\n destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n","import { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: {\n ...Fade,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
    ');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
    ');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\n isHorizontal ? slideAngle : 0\n }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\n `
    `,\n );\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\n `
    `,\n );\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\n `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${\n -swiperWidth / 2\n }px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`,\n );\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier =\n 1.5 -\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\n Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(\n `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${\n -swiperHeight / 2 / scale2\n }px) rotateX(-90deg)`,\n );\n }\n }\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\n `translate3d(0px,0,${zFactor}px) rotateX(${\n swiper.isHorizontal() ? 0 : wrapperRotate\n }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`,\n );\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: {\n ...Cube,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal()\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal()\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\n `
    `,\n );\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\n `
    `,\n );\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl.transform(\n `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`,\n );\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: {\n ...Flip,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier =\n ((center - slideOffset - slideSize / 2) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = (parseFloat(params.stretch) / 100) * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\n `
    `,\n );\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\n `
    `,\n );\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length)\n $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length)\n $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n },\n};\n\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: {\n ...Coverflow,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n","import { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(\n extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }),\n );\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass))\n return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides\n .eq(currentIndex)\n .prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\n .eq(0)\n .index();\n const nextIndex = swiper.slides\n .eq(currentIndex)\n .nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\n .eq(0)\n .index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView =\n thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (\n thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .hasClass(thumbsSwiper.params.slideDuplicateClass)\n ) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\n .eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\n .eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex)\n newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex)\n newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (\n thumbsSwiper.visibleSlidesIndexes &&\n thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\n ) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (\n thumbsSwiper.params.loop ||\n (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\n ) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl\n .children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`)\n .addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n thumbs: {\n swiper: null,\n initialized: false,\n ...Thumbs,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(swiper, duration) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy(swiper) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n","// Swiper Class\nimport Swiper from './components/core/core-class';\n\n//IMPORT_COMPONENTS\n\nconst components = [\n //INSTALL_COMPONENTS\n];\n\nSwiper.use(components);\n\n//EXPORT\n"]} \ No newline at end of file diff --git a/public/posts/index.html b/public/posts/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/posts/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/products/example/index.html b/public/products/example/index.html deleted file mode 100644 index 84cab66..0000000 --- a/public/products/example/index.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Example Project - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Example Project

    - - - - - -
    -

    Testproject

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. Vestibulum commodo tristique hendrerit. Duis interdum tristique augue id aliquam. Sed et tellus aliquam, accumsan erat at, facilisis tortor. Donec ac sapien sed lectus ullamcorper ultrices. Nullam placerat mauris nec urna rhoncus, vitae faucibus nulla venenatis. Donec vestibulum justo auctor, vestibulum diam quis, egestas erat. Vivamus volutpat et metus ut fermentum. Donec volutpat neque nec quam lacinia, nec faucibus felis ullamcorper.

    -
    -
    -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/products/example2/index.html b/public/products/example2/index.html deleted file mode 100644 index 486688f..0000000 --- a/public/products/example2/index.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Example Project 2 - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Example Project 2

    - - - - - -
    -

    Hello, World! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. Vestibulum commodo tristique hendrerit. Duis interdum tristique augue id aliquam. Sed et tellus aliquam, accumsan erat at, facilisis tortor. Donec ac sapien sed lectus ullamcorper ultrices. Nullam placerat mauris nec urna rhoncus, vitae faucibus nulla venenatis. Donec vestibulum justo auctor, vestibulum diam quis, egestas erat. Vivamus volutpat et metus ut fermentum. Donec volutpat neque nec quam lacinia, nec faucibus felis ullamcorper.

    -
    -
    -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/products/example3/index.html b/public/products/example3/index.html deleted file mode 100644 index 13ff7bc..0000000 --- a/public/products/example3/index.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Example Project 3 - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Example Project 3

    - - - - - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. Vestibulum commodo tristique hendrerit. Duis interdum tristique augue id aliquam. Sed et tellus aliquam, accumsan erat at, facilisis tortor. Donec ac sapien sed lectus ullamcorper ultrices. Nullam placerat mauris nec urna rhoncus, vitae faucibus nulla venenatis. Donec vestibulum justo auctor, vestibulum diam quis, egestas erat. Vivamus volutpat et metus ut fermentum. Donec volutpat neque nec quam lacinia, nec faucibus felis ullamcorper.

    -
    -
    -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/products/index.html b/public/products/index.html deleted file mode 100644 index 37e9ea3..0000000 --- a/public/products/index.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Verleih - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Verleih

    -
    -
    -

    Sie brauchen für Ihr Event noch ein wenig Ausstattung? -Hier werden Sie fündig!

    -

    Der Auf- und Abbauservice ist im Verleih mit inbegriffen.

    -
    -
    - - - - -
    -

    - Example Project -

    -
    - -product-image- -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel.

    -
    -
    - - - - - -
    -

    - Example Project 2 -

    -
    - -product-image- -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel.

    -
    -
    - - - - - -
    -

    - Example Project 3 -

    -
    - -product-image- -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel.

    -
    -
    - - -
    -
    -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/products/index.xml b/public/products/index.xml deleted file mode 100644 index 8065f2b..0000000 --- a/public/products/index.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - Verleih on DJ & Eventservice Fabian Ecke - http://localhost:37149/products/ - Recent content in Verleih on DJ & Eventservice Fabian Ecke - Hugo - de - Tue, 23 Jun 2020 12:33:45 +1000 - - - Example Project - http://localhost:37149/products/example/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example/ - Testproject Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - Example Project 2 - http://localhost:37149/products/example2/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example2/ - Hello, World! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - Example Project 3 - http://localhost:37149/products/example3/ - Tue, 23 Jun 2020 12:33:45 +1000 - http://localhost:37149/products/example3/ - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan dapibus purus, vel maximus erat facilisis vel. Suspendisse eu ipsum consequat, sodales nulla vel, faucibus velit. Fusce imperdiet lacus nec cursus auctor. In vulputate arcu et nulla placerat, nec pulvinar quam rhoncus. Praesent vel placerat nunc. Mauris elit felis, pulvinar egestas risus ut, fermentum ullamcorper orci. Integer tempor, neque sed fermentum eleifend, ligula est tincidunt purus, sodales semper elit enim ut mi. - - - diff --git a/public/rental/index.html b/public/rental/index.html deleted file mode 100644 index a56d175..0000000 --- a/public/rental/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/products/ - - - - - - diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index 4f9540b..0000000 --- a/public/robots.txt +++ /dev/null @@ -1 +0,0 @@ -User-agent: * \ No newline at end of file diff --git a/public/series/index.html b/public/series/index.html deleted file mode 100644 index 76056cb..0000000 --- a/public/series/index.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Series - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Series

    -
    -
    - - -
    - - -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/series/index.xml b/public/series/index.xml deleted file mode 100644 index 8269e83..0000000 --- a/public/series/index.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - Series on DJ & Eventservice Fabian Ecke - http://localhost:37149/series/ - Recent content in Series on DJ & Eventservice Fabian Ecke - Hugo - de - - - diff --git a/public/series/page/1/index.html b/public/series/page/1/index.html deleted file mode 100644 index 91ea80b..0000000 --- a/public/series/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/series/ - - - - - - diff --git a/public/series/themes-guide/index.html b/public/series/themes-guide/index.html deleted file mode 100644 index c82cb75..0000000 --- a/public/series/themes-guide/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Themes Guide - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/series/themes-guide/index.xml b/public/series/themes-guide/index.xml deleted file mode 100644 index 51189c1..0000000 --- a/public/series/themes-guide/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Themes Guide on DJ & Eventservice Fabian Ecke - http://localhost:1313/series/themes-guide/ - Recent content in Themes Guide on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - diff --git a/public/series/themes-guide/page/1/index.html b/public/series/themes-guide/page/1/index.html deleted file mode 100644 index e163962..0000000 --- a/public/series/themes-guide/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/series/themes-guide/ - - - - - - diff --git a/public/showcase/index.html b/public/showcase/index.html deleted file mode 100644 index 00d5521..0000000 --- a/public/showcase/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/blog/ - - - - - - diff --git a/public/site.webmanifest b/public/site.webmanifest deleted file mode 100644 index 45dc8a2..0000000 --- a/public/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml deleted file mode 100644 index 06baef0..0000000 --- a/public/sitemap.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - http://localhost:37149/products/example/ - 2020-06-23T12:33:45+10:00 - - http://localhost:37149/products/example2/ - 2020-06-23T12:33:45+10:00 - - http://localhost:37149/products/example3/ - 2020-06-23T12:33:45+10:00 - - http://localhost:37149/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/blog/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/tags/event/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/tags/index/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/tags/ - 2026-09-20T00:00:00+00:00 - - http://localhost:37149/blog/events/springreitenklosterrode26/ - 2026-07-11T00:00:00+00:00 - - http://localhost:37149/blog/events/abiballmlg26/ - 2026-07-04T00:00:00+00:00 - - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - 2026-05-24T00:00:00+00:00 - - http://localhost:37149/about/ - 2026-01-01T00:00:00+00:00 - - http://localhost:37149/products/ - 2020-06-23T12:33:45+10:00 - - http://localhost:37149/categories/ - - http://localhost:37149/impressum-datenschutzerklaerung/ - - http://localhost:37149/contact/ - - http://localhost:37149/events/ - - http://localhost:37149/series/ - - diff --git a/public/tags/css/index.html b/public/tags/css/index.html deleted file mode 100644 index 0bca8c1..0000000 --- a/public/tags/css/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Css - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/css/index.xml b/public/tags/css/index.xml deleted file mode 100644 index 6f526f1..0000000 --- a/public/tags/css/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Css on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/css/ - Recent content in Css on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - diff --git a/public/tags/css/page/1/index.html b/public/tags/css/page/1/index.html deleted file mode 100644 index 6603f20..0000000 --- a/public/tags/css/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/css/ - - - - - - diff --git a/public/tags/emoji/index.html b/public/tags/emoji/index.html deleted file mode 100644 index 6e66531..0000000 --- a/public/tags/emoji/index.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Emoji - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/emoji/index.xml b/public/tags/emoji/index.xml deleted file mode 100644 index fc5f686..0000000 --- a/public/tags/emoji/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Emoji on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/emoji/ - Recent content in Emoji on DJ & Eventservice Fabian Ecke - Hugo - de-de - Tue, 05 Mar 2019 00:00:00 +0000 - - - Emoji Support - http://localhost:1313/blog/emoji-support/ - Tue, 05 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/emoji-support/ - <p>Emoji can be enabled in a Hugo project in a number of ways.</p> - - - diff --git a/public/tags/emoji/page/1/index.html b/public/tags/emoji/page/1/index.html deleted file mode 100644 index 8c7202e..0000000 --- a/public/tags/emoji/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/emoji/ - - - - - - diff --git a/public/tags/event/index.html b/public/tags/event/index.html deleted file mode 100644 index e08e28a..0000000 --- a/public/tags/event/index.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Event - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/event/index.xml b/public/tags/event/index.xml deleted file mode 100644 index 8528048..0000000 --- a/public/tags/event/index.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - Event on DJ & Eventservice Fabian Ecke - http://localhost:37149/tags/event/ - Recent content in Event on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 20 Sep 2026 00:00:00 +0000 - - - Noch Technik für Ihre Party gesucht? - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/blog/verleih/verleih-privatfeiern/ - Dekoration bestellt, Catering gebucht - doch etwas Beleuchtung für das Ambiente fehlt noch? Hier sind Sie dafür genau richtig! Auch wenn kein DJ nötig ist, können professionelle Lautsprecher-Technik oder Lichttechnik zu einer gelungenen Party-Atmosphäre beitragen. Hierfür biete ich zusammengestellte Technik-Pakete an, die unter der Kategorie &ldquo;Verleih&rdquo; zu finden sind. Gerne können Pakete auch individuell zusammengestellt werden. - - - Reit- und Springturnier Klosterrode 2026 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Sat, 11 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/springreitenklosterrode26/ - Am 11.07. und 12.07.2026 habe ich die Beschallungstechnik für das Reit- und Springturnier in Klosterrode bereitgestellt und betreut 🏇 Dabei im Einsatz: -2x kleinere fullrange Lautsprecher (Tops) auf Stativen zur Beschallung des Platzes -je 1x fullrange Lautsprecher (Top) und Basslautsprecher (Sub) zur Beschallung der Zuschauer -1x Shure Beta 58A Mikrofon -1x Yamaha MG16/6FX Mischpult -1x dbx 166XL Gate &amp; Kompressor für das Mikrofon &hellip;und weitere Technik Besonders anspruchsvoll war hierbei die Anordnung des Platzes, da Mikrofon und Mischpult im Richterwagen standen, die Zuschauer aber gänzlich woanders. - - - Abiball Martin-Luther-Gymnasium 2026 - http://localhost:37149/blog/events/abiballmlg26/ - Sat, 04 Jul 2026 00:00:00 +0000 - http://localhost:37149/blog/events/abiballmlg26/ - 🎉 Direkt zum Start in die Sommerferien haben DJ Torsten Ecke und ich (DJ und Eventservice Fabian Ecke) den Abiball des MLG Eisleben mit unserer Musikauswahl und Veranstaltungstechnik begleitet 🎉 Dabei im Einsatz: -6x Beam 7R Moving Heads -2x Stairville Hazer -16x LED Spots -2x 40m LED Lichterkette als Ambiente-Beleuchtung -unsere große PA-Anlage mit ausreichend Reichweite für einen gleichmäßigen Sound auf der gesamten Länge des Saals &hellip;und weitere Technik Hier ein paar Eindrücke von der Veranstaltung: - - - Pfingstsonntag 2026 in Ahlsdorf - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Sun, 24 May 2026 00:00:00 +0000 - http://localhost:37149/blog/events/pfingsten26ahlsdorf/ - Auch dieses Jahr kam am Pfingstsonntag in Ahlsdorf wieder Partystimmung auf🥳 In Zusammenarbeit mit DJ Torsten Ecke konnten wir die Stimmung ordentlich aufheizen. Dabei im Einsatz: -6x Beam 7R Moving Heads -8x LED Spots -2x Stairville Hazer -2x GLP Wash Moving Heads -der neue Controller (Denon Prime 4+) von DJ Ecke Junior &hellip;und weitere Technik So konnten wir mit passender Musikauswahl und angepasster Beleuchtungstechnik unseren Beitrag leisten. Hier ein paar Eindrücke der Veranstaltung: - - - diff --git a/public/tags/event/page/1/index.html b/public/tags/event/page/1/index.html deleted file mode 100644 index c62612f..0000000 --- a/public/tags/event/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/tags/event/ - - - - - - diff --git a/public/tags/html/index.html b/public/tags/html/index.html deleted file mode 100644 index 7f53f78..0000000 --- a/public/tags/html/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/html/index.xml b/public/tags/html/index.xml deleted file mode 100644 index 61d8dd3..0000000 --- a/public/tags/html/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Html on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/html/ - Recent content in Html on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - diff --git a/public/tags/html/page/1/index.html b/public/tags/html/page/1/index.html deleted file mode 100644 index 6b531c5..0000000 --- a/public/tags/html/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/html/ - - - - - - diff --git a/public/tags/index.html b/public/tags/index.html deleted file mode 100644 index 56f4a9f..0000000 --- a/public/tags/index.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Tags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    -
    -
    -

    Tags

    -
    -
    - - -
    - - -
    - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/index.xml b/public/tags/index.xml deleted file mode 100644 index e81b46a..0000000 --- a/public/tags/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Tags on DJ & Eventservice Fabian Ecke - http://localhost:37149/tags/ - Recent content in Tags on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 20 Sep 2026 00:00:00 +0000 - - - Event - http://localhost:37149/tags/event/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/tags/event/ - - - - Index - http://localhost:37149/tags/index/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/tags/index/ - - - - diff --git a/public/tags/index/index.html b/public/tags/index/index.html deleted file mode 100644 index 790fe88..0000000 --- a/public/tags/index/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Index - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/index/index.xml b/public/tags/index/index.xml deleted file mode 100644 index 71234a7..0000000 --- a/public/tags/index/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Index on DJ & Eventservice Fabian Ecke - http://localhost:37149/tags/index/ - Recent content in Index on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 20 Sep 2026 00:00:00 +0000 - - - Beiträge - http://localhost:37149/blog/ - Sun, 20 Sep 2026 00:00:00 +0000 - http://localhost:37149/blog/ - - - - diff --git a/public/tags/index/page/1/index.html b/public/tags/index/page/1/index.html deleted file mode 100644 index 09e0c4f..0000000 --- a/public/tags/index/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/tags/index/ - - - - - - diff --git a/public/tags/markdown/index.html b/public/tags/markdown/index.html deleted file mode 100644 index ecce85e..0000000 --- a/public/tags/markdown/index.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Markdown - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/markdown/index.xml b/public/tags/markdown/index.xml deleted file mode 100644 index 0f08882..0000000 --- a/public/tags/markdown/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Markdown on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/markdown/ - Recent content in Markdown on DJ & Eventservice Fabian Ecke - Hugo - de - Mon, 11 Mar 2019 00:00:00 +0000 - - - Neu entwickelter Absaug-Adapter - http://localhost:1313/blog/markdown-syntax/ - Mon, 11 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/markdown-syntax/ - <p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p> - - - Placeholder Text - http://localhost:1313/blog/placeholder-text/ - Sat, 09 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/placeholder-text/ - <p>Lorem est tota propiore conpellat pectoribus de pectora summo.</p> - - - diff --git a/public/tags/markdown/page/1/index.html b/public/tags/markdown/page/1/index.html deleted file mode 100644 index 7cd61ff..0000000 --- a/public/tags/markdown/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/markdown/ - - - - - - diff --git a/public/tags/page/1/index.html b/public/tags/page/1/index.html deleted file mode 100644 index 89849b5..0000000 --- a/public/tags/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/tags/ - - - - - - diff --git a/public/tags/privacy/index.html b/public/tags/privacy/index.html deleted file mode 100644 index 67cdc4f..0000000 --- a/public/tags/privacy/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Privacy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/privacy/index.xml b/public/tags/privacy/index.xml deleted file mode 100644 index 3d9c555..0000000 --- a/public/tags/privacy/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Privacy on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/privacy/ - Recent content in Privacy on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 10 Mar 2019 00:00:00 +0000 - - - Rich Content - http://localhost:1313/blog/rich-content/ - Sun, 10 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/rich-content/ - <p>Hugo ships with several <a href="https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes">Built-in Shortcodes</a> for rich content, along with a <a href="https://gohugo.io/about/hugo-and-gdpr/">Privacy Config</a> and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.</p> - - - diff --git a/public/tags/privacy/page/1/index.html b/public/tags/privacy/page/1/index.html deleted file mode 100644 index 5ebb4b5..0000000 --- a/public/tags/privacy/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/privacy/ - - - - - - diff --git a/public/tags/shortcodes/index.html b/public/tags/shortcodes/index.html deleted file mode 100644 index b12fab3..0000000 --- a/public/tags/shortcodes/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Shortcodes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/shortcodes/index.xml b/public/tags/shortcodes/index.xml deleted file mode 100644 index e569930..0000000 --- a/public/tags/shortcodes/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Shortcodes on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/shortcodes/ - Recent content in Shortcodes on DJ & Eventservice Fabian Ecke - Hugo - de - Sun, 10 Mar 2019 00:00:00 +0000 - - - Rich Content - http://localhost:1313/blog/rich-content/ - Sun, 10 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/rich-content/ - <p>Hugo ships with several <a href="https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes">Built-in Shortcodes</a> for rich content, along with a <a href="https://gohugo.io/about/hugo-and-gdpr/">Privacy Config</a> and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.</p> - - - diff --git a/public/tags/shortcodes/page/1/index.html b/public/tags/shortcodes/page/1/index.html deleted file mode 100644 index 74f2adf..0000000 --- a/public/tags/shortcodes/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/shortcodes/ - - - - - - diff --git a/public/tags/text/index.html b/public/tags/text/index.html deleted file mode 100644 index a3b0243..0000000 --- a/public/tags/text/index.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - -DJ & Eventservice Fabian Ecke | Text - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - -
    - - -
    - - - - - - - - - - - -
    -
    - © DJ & Eventservice Fabian Ecke 2026     Alle Rechte Vorbehalten. -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/tags/text/index.xml b/public/tags/text/index.xml deleted file mode 100644 index 2eebb4b..0000000 --- a/public/tags/text/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Text on DJ & Eventservice Fabian Ecke - http://localhost:1313/tags/text/ - Recent content in Text on DJ & Eventservice Fabian Ecke - Hugo - de - Sat, 09 Mar 2019 00:00:00 +0000 - - - Placeholder Text - http://localhost:1313/blog/placeholder-text/ - Sat, 09 Mar 2019 00:00:00 +0000 - http://localhost:1313/blog/placeholder-text/ - <p>Lorem est tota propiore conpellat pectoribus de pectora summo.</p> - - - diff --git a/public/tags/text/page/1/index.html b/public/tags/text/page/1/index.html deleted file mode 100644 index 0b48b9d..0000000 --- a/public/tags/text/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:1313/tags/text/ - - - - - - diff --git a/public/über-mich/index.html b/public/über-mich/index.html deleted file mode 100644 index 5ad23f4..0000000 --- a/public/über-mich/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - http://localhost:37149/about/ - - - - - -