From a2dfd0f796aa2f499bb103cb78ea9e8c0b1e09c4 Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Sun, 13 Sep 2026 15:28:31 +0200 Subject: [PATCH] Schriften ins Repository, Anleitung fuer neue Websites, Schutzkopfzeilen Die Lato-Dateien liegen jetzt unter public/assets/fonts/ samt OFL-Text und einer Lizenznotiz: auf einem frischen Server fehlt nichts, und es wird nie versehentlich von Google geladen. docs/NEUE-WEBSITE.md beschreibt, wie eine neue Kundenwebsite entsteht - Reihenfolge, Dokumentformat, Bilder, SEO, Pruefungen - und nennt am Ende die fuenf Fehler, die hier immer wieder passiert sind. Permissions-Policy ergaenzt (Kamera, Mikrofon, Standort, Sensoren aus), X-Powered-By entfernt: der Server nannte in jeder Antwort seine genaue PHP-Fassung. Die Browserpruefung misst die Kopfzeilen jetzt. Behoben: der Editor kannte Schema v17, der Validator v18 - die Beitragsnavigation liess sich in keinem aktuellen Dokument einfuegen. Ein Test bindet die Zahl des Editors an die des Validators. Co-Authored-By: Claude Opus 5 --- .gitignore | 5 +- docs/NEUE-WEBSITE.md | 201 ++++++++++++++++++ docs/STATUS.md | 4 + public/.htaccess | 4 + public/assets/editor-model.js | 2 +- public/assets/fonts/LIZENZ.md | 25 +++ public/assets/fonts/fonts.css | 12 ++ public/assets/fonts/lato-400-latin-ext.woff2 | Bin 0 -> 5612 bytes public/assets/fonts/lato-400-latin.woff2 | Bin 0 -> 23580 bytes public/assets/fonts/lato-700-latin-ext.woff2 | Bin 0 -> 5552 bytes public/assets/fonts/lato-700-latin.woff2 | Bin 0 -> 23040 bytes public/assets/fonts/lato-900-latin-ext.woff2 | Bin 0 -> 5640 bytes public/assets/fonts/lato-900-latin.woff2 | Bin 0 -> 22504 bytes public/assets/fonts/lato-OFL.txt | 93 ++++++++ public/index.php | 5 + scripts/browser-check.mjs | 18 ++ src/Controller/PageController.php | 4 + .../AdminHeadersSubscriber.php | 1 + tests/CmsTest.php | 23 ++ tests/editor-model.test.mjs | 7 + 20 files changed, 401 insertions(+), 3 deletions(-) create mode 100644 docs/NEUE-WEBSITE.md create mode 100644 public/assets/fonts/LIZENZ.md create mode 100644 public/assets/fonts/fonts.css create mode 100644 public/assets/fonts/lato-400-latin-ext.woff2 create mode 100644 public/assets/fonts/lato-400-latin.woff2 create mode 100644 public/assets/fonts/lato-700-latin-ext.woff2 create mode 100644 public/assets/fonts/lato-700-latin.woff2 create mode 100644 public/assets/fonts/lato-900-latin-ext.woff2 create mode 100644 public/assets/fonts/lato-900-latin.woff2 create mode 100644 public/assets/fonts/lato-OFL.txt diff --git a/.gitignore b/.gitignore index 7128a87..f95e4b5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ /config/reference.php /var/releases/ -# Schriften werden je Installation heruntergeladen, nicht mitgeliefert. -/public/assets/fonts/ +# Die Schriften der Pilotwebsite liegen im Repository (siehe public/assets/fonts/LIZENZ.md), +# damit auf einem frischen Server nichts fehlt und nichts von Google geladen wird. Andere +# Installationen holen ihre eigenen mit `cms:fonts:fetch` - deren Dateien gehoeren nicht hierher. /public/assets/build/ diff --git a/docs/NEUE-WEBSITE.md b/docs/NEUE-WEBSITE.md new file mode 100644 index 0000000..d836537 --- /dev/null +++ b/docs/NEUE-WEBSITE.md @@ -0,0 +1,201 @@ +# Eine neue Website mit KantSites bauen + +Diese Anleitung richtet sich an den, der die Arbeit macht – Mensch oder Assistent. Sie sagt, in +welcher Reihenfolge etwas entsteht, welche Entscheidung wohin gehört und welche Fehler dieses +Projekt schon einmal gemacht hat. Wer sie befolgt, kommt ohne Umwege zu einer Website, die die +Prüfungen besteht. + +**Lies zuerst:** `AGENTS.md` (Projektregeln), `docs/STATUS.md` (was es gibt und was fehlt), +`docs/ARCHITECTURE.md` (warum es so ist). Diese drei sind der Stand der Dinge; diese Datei hier ist +das Kochbuch. + +--- + +## 0. Die Grundregel + +**Alles, was eine Website ausmacht, steht in der Datenbank – nicht im Code.** Seiten, Kopf- und +Fußbereich, Menüs, Formulare, Farben, Schriften, Einstellungen. Wer für eine neue Website eine +Twig-Datei anfasst oder CSS in `public/assets/site.css` schreibt, hat sich verlaufen: dann ändert +sich das Aussehen *aller* Installationen, und beim nächsten Update ist es weg. + +Ausnahme mit Ansage: eigenes CSS und eigenes Skript je Seite gibt es im Editor (Bereich „Code"), +und es landet ebenfalls in der Datenbank. + +--- + +## 1. Installation aufsetzen + +```bash +# Eigene Datenbank und eigener Medienordner - nie gegen die Entwicklungsinstallation arbeiten. +DATABASE_URL="sqlite:///…/var/kunde.db" php vendor/bin/doctrine-migrations migrate --no-interaction +DATABASE_URL="sqlite:///…/var/kunde.db" MEDIA_DIRECTORY="…/var/kunde-media" php bin/console cms:user:create +``` + +Oder im Browser über `/install` – sechs Schritte, legt Startseite, Kopf, Fuß, Menü, Impressum und +Datenschutzgerüst gleich mit an. + +Zum Ansehen ein eigener Server auf einem eigenen Port: + +```bash +DATABASE_URL="sqlite:///…/var/kunde.db" MEDIA_DIRECTORY="…/var/kunde-media" \ + SITE_ORIGIN=http://127.0.0.1:8090 php -S 127.0.0.1:8090 -t public bin/dev-router.php +``` + +`bin/dev-router.php` ist Pflicht: ohne ihn beantwortet der eingebaute Server `/sitemap.xml` und +`/robots.txt` selbst, und die Dateien kommen ohne die Kopfzeilen, die später `public/.htaccess` +setzt – jede Messung wäre dann falsch. + +--- + +## 2. Inhalte anlegen: als Skript, nicht von Hand + +Eine vollständige Website besteht aus Dutzenden Blöcken mit Hunderten Gestaltungswerten. Das klickt +niemand zweimal. **Schreibe ein Aufbauskript**, das Medien hochlädt, Dokumente zusammensetzt und +veröffentlicht – Vorlage ist das Skript, mit dem kant-it.de nachgebaut wurde. + +Drei Eigenschaften, die ein solches Skript haben muss (alle drei sind aus Schaden gelernt): + +1. **Wiederholbar.** Ein zweiter Lauf aktualisiert vorhandene Seiten, statt sie zu überspringen – + sonst ändert eine Korrektur im Skript nichts an der Website. Bilder werden am Titel + wiedererkannt, sonst wächst die Mediathek mit jedem Lauf. +2. **Eine Quelle für Adressen.** Verweise nie von Hand schreiben. Die Adresse eines Beitrags + entsteht aus derselben Funktion, die den Beitrag anlegt. Im Nachbau standen vier Links im Hero + von Hand darin – alle vier tot, weil die Beiträge längere Adressen bekamen. +3. **Über die Repository-Klassen, nicht per SQL.** `PageRepository::saveDraft()` und `publish()` + prüfen das Dokument. Ein per `INSERT` eingeschmuggeltes Dokument kann Felder enthalten, die der + Editor nie wieder öffnen kann. + +Reihenfolge im Skript: Theme → Medien → Kopf- und Fußbereich → Seiten → Beiträge → Menüs → +Formulare → Einstellungen. + +--- + +## 3. Das Dokumentformat + +Ein Dokument ist `{schemaVersion, title, description, blocks: [...]}`. Ein Block ist +`{id, type, props, style, layout, children}`. + +- **`id`** – höchstens 64 Zeichen, eindeutig im Dokument, erscheint als HTML-`id` und als + CSS-Selektor. Sprechend wählen (`hero-headline`, nicht `block-7`). +- **`type`** – siehe Liste im Editor; `section`, `row`, `column`, `heading`, `text`, `image`, + `button`, `postlist`, `slider`, `tabs`, `form`, `contact`, `stat`, `quote`, `iconcard`, … +- **`props`** – der Inhalt. Was hier steht, ist Text und Daten, nie Auszeichnung mit Wirkung. +- **`style`** – `{desktop: {...}, tablet: {...}, mobile: {...}}`, jeder Wert aus `StyleSchema`. + Seiten, Abstände und Ecken sind **Objekte** (`['top' => '10px', …]`), keine Kurzschreibweise. +- **`layout.effects`** – `{entrance: 'rise', delay: 'short'}` für das Einblenden beim Scrollen. + +**Setze `schemaVersion` auf die aktuelle Fassung** (siehe `DocumentValidator::SCHEMA_VERSION`), +sonst sind neuere Bausteine und Eigenschaften nicht erlaubt – und der Editor kann in einem zu alten +Dokument nichts einfügen. + +--- + +## 4. Gestaltung + +**Erst das Theme, dann die Blöcke.** Farben und Schriften gehören in die Palette +(`/admin/theme`): ein Block, der `@accent` sagt, ändert sich mit dem Theme; einer, der `#c1121f` +sagt, nicht. Die Palette färbt auch Knöpfe, Symbole, Fokusringe und den Einwilligungsdialog. + +Feste Größen nur, wo sie gemeint sind. `maxWidth` ohne `margin: auto` zentriert nichts – das war +hier schon zweimal die Ursache eines „geht nicht". + +**Die Vorschau im Editor zeigt dieselbe Ausgabe wie die Website.** Was dort falsch aussieht, ist +falsch – nicht „nur die Vorschau". + +--- + +## 5. Bilder + +- Hochladen über `MediaLibrary::upload()`; daraus entstehen WebP-Varianten in 480/960/1600/2400 px + (nie größer als das Original). Das Original wird nicht behalten. +- **Vor dem Hochladen prüfen:** über 12 Megapixel oder 8000 px Kantenlänge werden abgelehnt, und + ein Hostingpaket mit 128 MB Speicher schafft große Bilder nicht. Vorher auf 2400 px verkleinern. +- Im Dokument immer alle `sources` mitgeben, damit `srcset` entsteht. +- Ein Bild mit fester Anzeigebreite bekommt `style.desktop.maxWidth` – daraus entsteht das + `sizes`-Attribut, und der Browser lädt die kleine Variante. Ohne das lud ein 190-px-Logo die + 960er Datei. +- Hintergrundbilder werden je Gerät verkleinert, auch wenn sie nur einmal gesetzt wurden. + +--- + +## 6. Beiträge + +Optional. Gibt es keine, verschwinden Archiv, Feed und Feedverweis von selbst; ein +Beitragslisten-Baustein zeigt öffentlich nichts. + +Beim Anlegen wählt man einen von drei Aufbauten (`PostLayouts`: Bildkopf, Klassisch, Magazin), für +die Liste eine von vier Darstellungen (Karten, Liste, Kompakt, Wechselseitig). Beides sind +Startpunkte, keine Schablonen. + +--- + +## 7. SEO + +Meistens fertig, wenn der Inhalt stimmt: Titel, Beschreibung, Canonical, Open Graph, strukturierte +Daten, Sitemap, `robots.txt` entstehen aus dem, was dasteht. Zu setzen bleibt: + +- **Titel für Suchergebnisse** je Seite, wenn er sich vom Titel auf der Seite unterscheiden soll. +- **Vorschaubild beim Teilen** – sonst nimmt ein Beitrag sein Beitragsbild und eine Seite gar nichts. +- **Unternehmensdaten** unter Einstellungen; daraus entsteht der strukturierte Datensatz. +- **Weiterleitungen**, wenn die Website eine alte ablöst. **Vor dem Umzug** die Adressliste der + alten Website besorgen (deren `sitemap.xml`) und für jede Adresse, die sich ändert, eine + Weiterleitung anlegen. Ohne das ist der Rang von Jahren weg. + +--- + +## 8. Schriften + +Nach dem Aufsetzen **einmal** `php bin/console cms:fonts:fetch` (oder der Knopf im Designbereich). +Ohne das lädt die Website die Schriften von Google – zwei fremde Verbindungen nacheinander und die +IP-Adresse jedes Besuchers an einen Dritten. Die Dateien der Pilotwebsite liegen im Repository; +wählt eine neue Website andere Schriften, holt dieser Befehl sie. + +--- + +## 9. Prüfen + +In dieser Reihenfolge, gegen die neue Website: + +```bash +CMS_URL=http://127.0.0.1:8090 npm run test:links # kein toter Verweis +CMS_URL=http://127.0.0.1:8090 npm run test:browser # Barrierefreiheit, Tastatur, ohne JavaScript, Ladebudget +MSYS_NO_PATHCONV=1 CMS_URL=http://127.0.0.1:8090 CMS_PATHS="/,/leistungen,/kontakt" npm run audit +``` + +Für `npm run audit` muss die Installation im **Produktionsmodus** laufen (`APP_ENV=prod`, +`APP_DEBUG=0`), sonst misst man den Debugmodus. + +Am Code geändert? Dann zusätzlich `php vendor/bin/phpunit` (beide PHP-Fassungen), +`npm run test:editor` und `composer format`. + +**Zielwerte:** Barrierefreiheit, Best Practices und SEO je 100. Performance mindestens 95, 100 +anstreben – eine bilderreiche Startseite mit Slider landet realistisch bei 96–98. + +Findet die Prüfung einen Kontrastmangel aus einer im Editor gesetzten Farbe, wird er **gemeldet und +nicht behoben**: das ist eine Entscheidung des Redakteurs, keine des Codes. + +--- + +## 10. Livegang + +`docs/LIVEGANG.md` ist die Liste. Die drei Dinge, die dort am häufigsten vergessen werden: +E-Mail-Versand einmal wirklich ausprobieren, Schriften holen, und die Weiterleitungen der alten +Adressen prüfen. + +--- + +## Was in diesem Projekt immer wieder schiefging + +Wer diese fünf kennt, spart sich die Suche: + +1. **Eine Einstellung, die speichert und nichts tut.** Das Feld war da, die Ausgabe nicht – beim + Vorschaubild fürs Teilen zwei Monate lang. **Nach jedem neuen Feld nachsehen, ob es vorne + ankommt**, und einen Test schreiben, der genau das prüft. +2. **`|default(true)` in Twig macht aus einem gespeicherten `false` ein `true`.** Für Schalter immer + `??` verwenden. +3. **Die Prüfung lief gegen die Demo, nicht gegen die Website.** Feste Pfade und Linktexte in einem + Prüfskript prüfen nichts, sobald der Inhalt anders ist. +4. **Messen statt vermuten.** Das Vorabladen des Hero-Bildes klang richtig und kostete fünf + Punkte. Jede Annahme über Geschwindigkeit wird gemessen, vorher und nachher. +5. **Der Entwicklungsserver ist nicht das Hosting.** Ohne Kompression und Cache-Kopfzeilen misst + man 90 statt 96 – und optimiert an der falschen Stelle. diff --git a/docs/STATUS.md b/docs/STATUS.md index 6d3f528..d93414e 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -34,6 +34,10 @@ Erster Commit angelegt (`82b0782`); das Projekt hat damit einen Rückfallpunkt. - **Ladeverhalten gemessen statt vermutet** (ADR 039, Arbeitspaket M): ein Zähler liefert die Datenbankabfragen je Anfrage im Kopf `X-Kant-Queries` (außerhalb der Produktion). Die erste Messung zeigte 18 Abfragen auf der Startseite, weil Einstellungen und Theme je Aufrufer erneut gelesen wurden; beide merken sich ihren Stand jetzt für die Dauer einer Anfrage – **18 → 8**. Die Browserprüfung misst je Seite HTML, CSS, Anfragen, Skripte und Abfragen gegen Obergrenzen: Startseite 7,4 KB HTML, 22,7 KB CSS, 2 Anfragen, 0 Skripte. - **Das erste Bild einer Seite lädt sofort**, alles darunter weiterhin verzögert. Es ist meistens das größte Ding über der Falz. - **Slider mit Punkten ohne Skript** (ADR 044): `::scroll-marker` zeichnet je Folie einen Punkt, der aktive ist erkennbar, die Rollleiste entfällt; ältere Browser behalten das wischbare Schiebefeld. Beitragskarten sind echte Karten (Bild 16:10, 18 px Ecken). Überschriften dürfen ein Wort hervorheben (``, in Akzentfarbe). Behoben: die Theme-Schriftskala überschrieb die Größen in Karten und Aufruf-Bändern. +- **Die Schriften liegen im Repository** (`public/assets/fonts/`, mit `lato-OFL.txt` und `LIZENZ.md` daneben, wie die Open Font License es verlangt): auf einem frischen Server fehlt damit nichts, und es wird nie versehentlich von Google geladen. Andere Installationen holen ihre eigenen mit `cms:fonts:fetch`. +- **`docs/NEUE-WEBSITE.md`**: die Anleitung, mit der eine neue Kundenwebsite entsteht – Reihenfolge, Dokumentformat, Bilder, SEO, Prüfläufe, und am Ende die fünf Fehler, die in diesem Projekt immer wieder passiert sind. +- **Schutzkopfzeilen ergänzt und geprüft**: `Permissions-Policy` (Kamera, Mikrofon, Standort und Sensoren abgeschaltet) auf öffentlichen Seiten und in der Verwaltung; `X-Powered-By` wird entfernt – der Server nannte bisher in jeder Antwort seine genaue PHP-Fassung. Die Browserprüfung misst die Kopfzeilen jetzt, statt sie anzunehmen. +- **Behoben: der Editor kannte Schema v17, der Validator v18.** In einem aktuellen Dokument war die Beitragsnavigation nicht einfügbar. Ein Test liest die höchste Fassung jetzt aus dem Validator und vergleicht sie mit der des Editors – dieselbe Falle war schon bei v13 zugeschnappt. - **Getrennter Titel für Suchergebnisse** (Migration `20260913000100`): jede Seite und jeder Beitrag kann einen eigenen `` tragen, unabhängig von der Überschrift auf der Seite. Leer heißt weiterhin: der Titel der Seite gilt. Er zählt auch für `og:title`. - **Schriften kommen vom eigenen Server** (ADR 057): ein Knopf im Designbereich oder `php bin/console cms:fonts:fetch` lädt die gewählten Google-Schnitte als WOFF2 nach `public/assets/fonts` und schreibt die `@font-face`-Regeln daneben. Damit lädt keine Seite mehr etwas von Google – das spart zwei fremde Verbindungen nacheinander (gemessen 820 ms) und die datenschutzrechtliche Angreifbarkeit gleich mit. Ohne Dateien bleibt es beim bisherigen Verweis. - **Ein Stylesheet statt vier, und eine `.htaccess`, die etwas tut** (ADR 056): gebündelt, ohne Kommentare, mit Prüfsumme im Dateinamen; Kompression, ein Jahr Cache für Dateien mit Fassung oder Kennung in der Adresse, Schutz vor dem Ausliefern interner Dateien, HTTPS-Umleitung und HSTS vorbereitet und auskommentiert. Der Entwicklungsserver sendet dieselben Kopfzeilen, damit lokale Messungen etwas bedeuten. diff --git a/public/.htaccess b/public/.htaccess index 0e8db23..fefebdb 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -58,6 +58,10 @@ RewriteRule ^ index.php [L] <FilesMatch "\.woff2$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> + # Was der Server ueber sich selbst erzaehlt, geht niemanden etwas an: die genaue PHP-Fassung + # ist fuer einen Besucher wertlos und fuer einen Scanner eine Einkaufsliste. + Header always unset X-Powered-By + Header always unset X-AspNet-Version # Erst einschalten, wenn HTTPS steht und bleiben soll (siehe oben). #Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" </IfModule> diff --git a/public/assets/editor-model.js b/public/assets/editor-model.js index 41d3eb4..13d7dbb 100644 --- a/public/assets/editor-model.js +++ b/public/assets/editor-model.js @@ -114,7 +114,7 @@ export const devices = { desktop: 'Desktop', tablet: 'Tablet', mobile: 'Mobil' } // blieb bei 12 stehen, während Bausteine schon v13 bis v15 verlangten: in einem aktuellen Dokument // liess sich dann gar nichts mehr einfügen, und ein Symbol, ein Slider oder ein externer Inhalt // nirgends. Eine Zahl, an einer Stelle. -export const SCHEMA_VERSION = 17; +export const SCHEMA_VERSION = 18; const known = version => Number.isInteger(version) && version >= 1 && version <= SCHEMA_VERSION; export function upgradeDocument(document, version = 2) { diff --git a/public/assets/fonts/LIZENZ.md b/public/assets/fonts/LIZENZ.md new file mode 100644 index 0000000..c197641 --- /dev/null +++ b/public/assets/fonts/LIZENZ.md @@ -0,0 +1,25 @@ +# Schriften in diesem Ordner + +Hier liegen die Schriftdateien, die diese Website **selbst ausliefert**. Nichts davon wird zur +Laufzeit von einem fremden Server geholt: keine Verbindung zu `fonts.googleapis.com`, keine +IP-Adresse eines Besuchers, die dabei an einen Dritten geht. + +## Woher sie kommen + +`php bin/console cms:fonts:fetch` (oder der Knopf „Schriften auf diesen Server holen" im +Designbereich) lädt die im Design gewählten Schnitte einmalig von Google Fonts herunter, behält +nur die lateinischen Zeichenbereiche und schreibt `fonts.css` mit den passenden +`@font-face`-Regeln daneben. + +## Lizenz + +**Lato** steht unter der SIL Open Font License 1.1 – der vollständige Text liegt als +`lato-OFL.txt` daneben, wie die Lizenz es verlangt. Copyright (c) 2010–2014 tyPoland Łukasz +Dziedzic, Reserved Font Name „Lato". Die Lizenz erlaubt ausdrücklich, die Dateien mitzuliefern und +von einem eigenen Server auszuliefern; verboten ist der Verkauf der Schrift für sich genommen und +die Verwendung des reservierten Namens für eine geänderte Fassung. + +Wer hier andere Schriften ablegt, prüft deren Lizenz selbst: nicht jede Schrift, die Google Fonts +ausliefert, steht unter der OFL – einige stehen unter der Apache-Lizenz 2.0, und eine gekaufte +Schrift eines Schriftenhauses darf meist gar nicht weitergegeben werden. Die Lizenzdatei gehört in +jedem Fall daneben. diff --git a/public/assets/fonts/fonts.css b/public/assets/fonts/fonts.css new file mode 100644 index 0000000..e9d607a --- /dev/null +++ b/public/assets/fonts/fonts.css @@ -0,0 +1,12 @@ +/* latin-ext */ +@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lato-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF} +/* latin */ +@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lato-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD} +/* latin-ext */ +@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/lato-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF} +/* latin */ +@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/lato-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD} +/* latin-ext */ +@font-face{font-family:'Lato';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/lato-900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF} +/* latin */ +@font-face{font-family:'Lato';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/lato-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD} diff --git a/public/assets/fonts/lato-400-latin-ext.woff2 b/public/assets/fonts/lato-400-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6613fe0b03b8304032a5bedc608805e371c8d793 GIT binary patch literal 5612 zcmV<I6%*=rPew8T0RR9102S;25C8xG05BW?02Pt|0RR9100000000000000000000 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 G2blq;UB2)D literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-400-latin.woff2 b/public/assets/fonts/lato-400-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ff60934dd0ea9cdd93f961d2dfd1e158357f2a77 GIT binary patch literal 23580 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 QOFh<%JiLFgmWQ+r07g396aWAK literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-700-latin-ext.woff2 b/public/assets/fonts/lato-700-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fec457358880695981e67abb737cb94fed2d03f3 GIT binary patch literal 5552 zcmV;h6;JASPew8T0RR9102QzR5C8xG0550&02NgL0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-700-latin.woff2 b/public/assets/fonts/lato-700-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..11de83feaf0fb872c91fce89534fd4e2d8bbda28 GIT binary patch literal 23040 zcmY(pV{k4^ur(Un_Kt1awr$%^c5M5Jv18k|ZQHh!`=0aNx?kP?Gd0sST~n*q>gt*q z4+U{%AYh>XOdALY>3_ykP9Pwyg8#GjKlA^;;g$&FIYJl$1&Tt^L&usS!@&gom<Ao9 z!v+fj0keaUf`+++5rT&TL57II$>2t=u-WRGUAYJNsgVASCtl;k9$Z_?LT3vVo1Xpo zbwMeLF|sn$0CKDN<uqaz$xM@W6Sh8DYC(MVY%00MD<CU$TM7{=&3PFJ0*8%r#2qmC zrJv+L`~jswVhWK^!DgvRDit>vh=IdeqHFFnB<TVP#t23Gy3hmc9I96S9+ce0dQvxU zLnM+fKg9XW*S;*=%&Cu^(t>P}`;m&?kUS{9zxrBud*6KD2}f{%qS?W){G1O&^-D^I z+Fm{bO;;C+S}%!LX)fT##Ga`&%+p{g;m&6jsYV!rVqmGLq6OD6)qzwpe(sjRA6q#X zdb<gtOEdT1zJ9Ri{biigL`%Y?ttg}+er~;(IQTk^e_w3vne2p1DC?xOxfGGG-9yEm z!~8Tv_3CLiX!Z{*W65wOQaCH7)#P@)4rDn+LpZnf*aN7+bun-U-WucTC8FmItDkg` zmU|_Y9Gv$`B%B9gO;AHfM&wD!H#J@CRvIgX(h%wj_V)cQ@;v)ri?AfY)teOCmIhcc zw9SAok$fFX<xqWUHQ<%%1%_3-)J~Gh5WPIAIya47T9ElVKZvfilQe7j41g*>9ch>i z?4W4ww?zrmp=VJ$mk8$ftVvw?q_^<DV6*CHKpF>v(H?v6ePpafef`{?s;0x}6gaz) zd~g8%`Cz_EB<0^7h80Qgu>>9cv?UbDdOwQjy*rqbYB7(&>VxDp@e9fV;uTZNYpat2 zAb@^2Hb0GpqXxI=vDwXsA~sRXOm@4h&MF3dmJM_#kK&SFgwCWsWlg*il<bJ7vbUe` zW^7*dS4^>FC_OpUa0+5fVjaNIe||GRn*X+{E&!5qu{-CjWN{9OwzTU(gWEvzD|8e( zDyUP*07Yxm6asO0b@&bV4UgseQZo#J=sd33tYq&?Kzna0Wu3{az*P{)9$GWTT$N;t z#_j#vwBcu;-QTVvX;56D+V3Hs>OXKIlJ-JnDrIy_Zlrd(x{>uLXB<AXk0C!YK9mJx z#5G`vU%dvO5RJY*)9MZ$VuE6Vf^AXS7Coc!-wO|hoKH8#`Ow<g184fZpWVT>G!US* z$~V2sWDv4Tg~t6oUz-MvKVsX~T)H&SvgdUq($IyE@xPG85OpyE<cGls$mBqCE+%5g zK*lin(k4%wP)MiQ>MQrX*Fds_OtB0$CoB&z93K4}o4cM{i)D1J(Q!b>)m@zjqfs)m zf|thzw0XTxr@c!HP;LxfOdO`g8OGGw`~m_plg$)xX|E!Dhqxa1FKuYr%!DgotS18H z0WA~53C*o+3ELGit*$jWJ}Dd}DKsDD&BXaOw0UyJse<lkq0CJYisbpwErG%z&Bwg^ z<s?56z$C*{nhnN-Y4|=WwpDAuPTpI|Z+zEUK|Km<h|_Gl!qIfiThf))WYXDHfbJW; zKOb0Y;yU9hMY78Z<%>mffSzvzo{0o1m$a(&hSRYO8in7}NrQaD0%EafbOxmcRf`;t zc{2??4^%u99Q6*_b?0Lm)v6Uc59DQ=r7E>f`EBoKTvl5&z6Sm(_%UGy?d;<on`xWs z=E$7j<mk@vpQp*QT&DSztnx8p$Q79Z6kySRQqmAj*p*PYJdhNa9z>v+z%ap+V-w>v zl*9|>%b%Pp4-u|8`&*$h8a3NnCV34>Z^WT+mZ)H1f<}(mT3lY>VnakU%9l!tBCVm= za+lYqbpqVRQSHx}+IFwp9oM1r=dFovN~|W<WmT{(bky39HLGehQs>c8KS`D6oxK?< zi>|9BO&db1XLps7H;Rfhy&pAq3Sw6`$_V&OOr<3!^l~2B+#TYl`a^=#tmrx@7W*hj z;{Rm+J9Yc^i$skOo3+%2hnuPbyngfrvcWeL6ig)80=P&%V_QsBc2|(GHO|e4U?i`b zs>laKn2)~%Ohk;>y|UIhCmdFCgFH(dM}ZDeJV<`p;qk^DJdz@jPNEn}dW!95)G%aM zJh%&o>7sf|_2xFfMdePVL3y}>d=9KAN42$b_T{whJ??D0D@;Xp+M<SRB+87%9YLP{ z#uLi-3nWOGn5*&Z|G)+o)Q?07$8XgI*Dy^~o1c!NuO-IDX7AB$K>!ue<7QQat!T5s ziGP04%m6A<=<-kUo|s245;HY5Zd7sbsX=}fhbsSXj|(vYir9i2d+l4GYqFb85V`(F z=f#*`7XtorLPokxWIeYb>i_0&#xuLq@qD5=OEAh13Jn5~n3}AiC|Xogl4#zgy*P52 zU%C3z4vOur`g)W&UC3e>&~BE&fslpOf-6WrI=NhJ*Wn~mC=pNKjkN-L8Ccy9w_<A# z@7E-89TvFnd1yMI7;VfpJ2KNhK8zoa%kKv)M3k64&*`zhkZQvb_!K~-h}C7qb~r69 zuP;<jMpaoRAKQ=L9q;8Be5NyNm)?@w6S%+6QD5xn2o1H$rSynqeRdfbZy=~BNvaf; z-X{9zVkdd*WDYaAZVLG29SJ#AG~6{2*lxr+F7|&&%wwT?O0V1Dd`+H!fCUoTZ)SRY zgpP)6RlBo4DH$Bpv7i&vA98MBQMTuS=vymz`-K+`K1MvlT-}Tn33E;kx`EgJH_A%Q z57c=!{5<h|owu;F0moX_b*g#DAb2ga2)sN1{{IWB(s+A=k)oOoWeyV`B-|#pe5glN zVS_AdXiVNrUr!MsG_cZ-Ob={C`cP#0sEl^DZR#%(vPA-(5mjMPNH$;oVQ9Etj`+V2 z2|oPaWXMhzcJgl#mB=p$?)EvxV`Rk059^v~0c)<WadEb{EtXt#`y+_-3MSM749qh% z-^ryEl@pJH8UDbA#oBjN-z=d1;BdoC!#MnxUjHoplmg1Ae+*^HlVxQc{&H(H9s<Qf zb)q!f5EyRoe?bQa-zAY?E{=zDEk}6R!6CO8z6{fx$9tzUI22ldXq~l3w4)QF6_wn2 ztqHY>@s}+=UCL&W*_P6um{w7qU7xXg1M(9j|Cus5McScMk{{F{%I1^_WhSJ>*?)+F z4#quD@g#vfw4u$Wqg>35r>n1=(-AJc<HG(+bEQSC%D=>F=D%jZhz<ICqFoOEzXGvK z$}i7nvui-OUeL$t{`FYtg%ZcZ<^n(DC2yK};%uS(A2C|LnM0Q)MA#-LBvmuGbv5h{ z>Io><xewZHXt(OEC)Q6=zsgA!9bCtA`~1-p<h($>EsTa@h-2W+SaqzRvd2V;`>%}) zkQpJFXnh9<3l()X-)x5k)aZ5s2mZ%U-vwUgG4}BP%7ZlT1a(FEyZfroi4fYn!ggYq zpLT>U9@D|t{9s}Cxg=0V#6dB&D;NtcvEd08E!-?ag%+_^Shb{9<+5*w!&LKtIuBm9 z?$(?nJ;q=@0wW59QT_;J;i5$%Bc<>*Gm<Sc0zL3P9VT39msvJjwX-_Rtg8NhSTi<3 zZP)N`T9mD8UetfY{Kx+@yP;#pswz{kenUnqFd_93S6ec?|3pHfL_!9-QMGaA^>!ig zKQc+c`M<>fWR&=#jD#zwyn#yp2?K}Js0A6I@<2s0C(@5@#GAvZj1V1AfWe+SQLh$+ zJ*z+rYsHWgK>`z+BYT#;*!<r*wP`A7LHhq{3Q6GqhCUSn?tkT;tE+N|$@K$rWM0Lx z&t)UfwKy(0G(gTVvleEMi`B|Hm6yM2ktIqV4H+f%h!L3rI-CH8Xp$=|E$Ou?`)(Z~ zRcDBdxSDqWy8>|p1Ifv?1L%_>gHZOpT%O!xE<a79+HJM~8}bFj+*9_o!~pjec-W1F zu&g1CIClzn8~!xf6nlrcTi!cS-;8|Q^;1&9L=NO{DH&0gYzEet;K4!E;V6a$IdQm% zw&(9ni}-J~E&o0@#jT<gJG^~f?zXxdy7-*9&t7M5@^dh*a-2R}zVE{s9yOJ84c@JC z66+4WQ9{y5b1CKhN8_c_;V!^0yJM|xm<JL4dlp9#0|l&~z?b?@+Jz^;W}f;7!H@5{ z^L-Cp3iBDWwr3GPI%{OaLX2xq$QCc9;dbyo?hU)&bwR|4_A&NJj@!hdd~elWYz)s% zgN+1Bc5EIDy0nDVJB?+29)*^b^F<(>Og0W|7-MV{bK#!LHjRi4PI$b?AiRq{EMnE& zF2++O1tl4=+D*Bw!ePgxBN=4OsUxq_uVhRu<_UI-Pz?u8<S$tU{-5n}vRV$w)ad=1 zq7c3`=4Z)+(odK~@8VE20a~#Ni0ey1g;E|_C&9f|4kmq5=n|PMQnHm^)921TI8@a( z!KmXZ(wF;R(<B}dSTJ*7TwxenwF{m}aQELFqAOnnn(FQX(CWDwI29ls%Tu8gV|^t5 zaTYkW(<K&F-$k<yVz&`^7sD_#xM(sXPcC7!?mxiW{#ZZ^G|YJqxv`7_<Hq666b174 zi0YA5yErY<X~|E;++DFlC6i-S=1>&lU6=y14J5-Xk-Ft(*IO*Yb6Pv!>R%!>N|rEQ z(LP{no`L4utPMqoOGh{<reC$k`-m1^TDq|+hfcoJb37FJYD0?kDlNfT)n6|d%t$u5 z!mM2|sTj5L+s&9!F@_S>ll8E`WnH$IkJ6TII)9{>)=WW-MH1wBNXjPX!U9Y$@Vl|# z%(n>fZUkxObG3GG)&I`xB`y=VMdb*<KBX-t9Ug89u9O)zGH{|sFE7M~^FGRm((pt| z4U)CH4??=ka<9(ci{(}mRY(WR4q)N2L5t<3Ftx(nl9$~45P@aPso3Y8*73{C5Qxvt z;D}|XVVhvk8}I<n*8_Kg<-EFEJkiv!Ehe&%u2p0eo4a)5YpuCScy6=+ccK7haE5CR zhV7A>&0X!rEv5Df(^lx}99MV?Z*az6*xWHR2JuM-Z}!K!MQ9$S5k1vE<=14^gn2?2 zTa_a4FDq3o9-aRjXM`j#EY;&(Hpc&&@I|%CqF6V|+pQea%mp)taeIPIkC+CGlXDs3 zaxu2@%-I5t7;G6_+!MHXCbDyK$<{Jx*V<{<LTNV`>Wga<I4$LNQ4ELD;UAebuT@_Q zORKsOEm;hcf2r*J8-New1bwg_`x*L{5LsUGd{NC~u-{`n46_;gi_s`-<|8I3d&`_Z zCNmV7xd&i?{yfoUVc5%Xq%x}b=iIgH64fqj)-m;Ov*frE;Afz#;z8pvBc~#Nf6h{x ziV_Y1Ep}0G*r4_Sc{Vq2@;54jU<CMknnhCqGZZFx0a3k$c#?emo58tyUTL8_G(=9M zhXCK(V6uEPD()si&>eO3HGYaS#~sdebB0Yp1(F;W4<^$Z8WJi0)}uY+@rs38V{o9R zgnlmoQXz$eH54Kqw*xUuybewT7KNh)3a$^WH-hldjM-!8!EU5pG<`Y6b^UWH2vo7G z&4@DCukB+f7E-1Hgka-aOp|1R5OBB(kxuxYBW}J2%^G44&ri)7SZH0`Xj9&oPmHfm zp3vY|88Hj~+*qn?p_E~4eck>wZe=|+&bH%yzB72I5ZDywEif6}@X!JJ3}SbFvpJkv z64Ec{wO`Z)Zq;L<Ofi~pPO!?YnXR`e#)}<L1;00gr5d4tP?cIZzUSC<UHOle!h{`m zoZ$9S8!;%=q{{VCG#Hah=z&*R>T$J0e@Iys4={)(+N$m)!6n9iok`i;YST4J?D^3y zsr3)8jkYH*i0)A<nEUS%yb<qo!Zh8Axco?)JO{E7E^i}GaFM@~zG?J(1NXM~kY)KQ zioiluO8=Y09_O|aHCa+h4x8)w7W&9W^i-y_>Q>a(z*dw1=^?mh_LCk}`dw&Yp213W zZxfVAm@%S6i54=1!1Ha64AE4v7cNADxXE}8L&<3)KRwbgk|+dnzDovKNpgLK-EoV2 z8C?=M5`d2qc^Kg@FM)Av1<Ti9+^0*ZaOmPoj?X@jn=Lp+!)fC*HF3tK80~?Fz`D*s z-qjvkm1+)sTODX~?x<JWM&nQmiWI!6=UmEoDA$Ll?X>XD2BBO7wati%3jr95yil@| zed5oh9#6MG;tV&H%~~^^`A7ttNl?k++wYCmuaq#Mrzr9;eyZlg{7}O}M?DmN2lOe( z@`pOR#dI7_&ho6~TtBeY>qQ2W8Bx!Xm+z!D5<4{7U7I6e)YI-cpX5WWj2ij@AF>vn zg@sWGjn#y-t1j0Jv$1n#N@7HbjK@`KvhV(;i5&jIwQ3*_<|NKuc#wCMD>ENXa@kYY z2UYK$ps8I!z17PbEd_5bC|R();N}1aRkE-VRfpT|iZh8jfidWtdbk}jI2F&Q3Y?r7 z%fv<ZdAHa^roQDs0#^%X79{gt1*lK~xySt5j=l;gi@5(!<nJ#B8OmkZ_v3UiIR?$7 zP4CeAR&4`;8wisMOwE0jrTNOUX-fGd_SY^D`SzGT%M8MLmUke|f;jk>2WryEU+`2K z9)LR`_~}{1VBFCq+-cmTuMj5Wh2^w|(BYqMJw;TD)W<=%=7cDuzYoutP<C~NZ%vtP zoa_GKG*sh+*{&+L$!hC0^RQajxKvkClih?_nAj>VLx2)vopt*2K<fJLWE@gqliB`r zlMF^>YjxyVvjwXd-1KnHSB_oLWe9Q_B}Qm=DRS_EqtlxTXy?d}?PiT+a5S|9xaajt ztA~cG6h4AD)@c1Kk!wAhv;`BP^X=+Zef*xYv%m^;a&odX&%TV2rLiMJE@;Sd-4V%6 z&pG*{01aVIMHmfkUsW?^l758^LQ3mRc9R(_>|d<BZDuxEY;d<ssra{b{kqYvJ1NU( zBKAM|zXO~4wo)Y&r=>AmQwH8>-LiQvd-c5WlG=J3N$d9+g?i?^xeY+|KdZnFq%^Wl z=%skUib!lp?g?{D(z453_Efxkw7C+yck6bz3iVSb(M{1eR$KodEKwAivGA?`E+2-} zX?5^fkYgzp2k(59nIOg$lLtyBE}3fXpCSb%`Fpwz+z*uV(F4d^C;#v-9wm!n%lWt; z^?Q{|CB5aiBIxBWa&^<$l|_zGcr^PeM|@nf0V{yGorSs?T1XlHp-{#(k>E$1kZ1u* zEW8OP70^BKJ`@BsRAk1U*$fEWvnxVEKSsE%24%4+7#G_0t%>n)&q`<5ZB&ijZgc-T zi`0HCUqr9(fK}w=pGV(}j{bFHUCiood9Qw6^Z*wm1r-A`x_N<r+MwLghLxPmITYDC zYEsN~n-X(hP`)<eBI{e1Ey~13<POVGu-#<JQ>%b4&EA7HjIg&Pa=U)A5@qP+Om)Ud z-oU_Cz(p=Ga%2YAX_<O$_)8uW{vwo85LD}jU3r@bXmZTm-zz1}6XedtCf8B6TW@in z5=K00GG`u(##F^#E>J<;4`Y=KTp{og;e8qbO==}*c&f0)<$?azzFT>J4pOnxP0-Jm z(|@!AZ0M7JA*>_Oj&E?3qe!A6a_;y%3+H3GbR%zQh}X~udT$jot~PiD9LAJhrH#yA zmYj@Vw1bZrL@*b_Nc0+@o!jF{!^71+Q?0!w!7JU9E{wnpBuf&S4Yk0&U!>Y?;v!<s z1uHxRsn)o-W`}M)g!Ci+&}WL^C3Y<1f8s(a>q2<E6Iuf-M+#OwHj-(5Z26%9j8u)+ zb}XjisT*Fs2c65n2v^|BNlj-wi@=_Yovo1FG)4(~_LWvP0a)v;8c0rlF3PF2Bz8dY zo(%{gJ70)yLSS#?7g9DZGT<YwHW6y#89nHuxJh#6-pCALa;rQ94x+i!nY3s$!2^v? ztS>_iIuG_`Oq58Th~gBKg_Lb@E_vrB?CWehOp2;*4Zo~$*Em+E3ibZyGPZ^`Km&ow z!IyeBU+4zFAl`xurw7d25-F^2dVF390--vrL7x9Am}&2hp~<CjGK~f9rcaP=HfJbc zOE#9xK_|x?!sGAT?RYU-zY<npt!m;O0(yodchZcWKpdkz7v1NuCk~~HS8RINGgGNv z$uDp2@eW`3vT|*$nUGqBT!^f$5S#<3h1g5WHbkw=)|3J(#f<DyYjSAtsMzOlrYT~f zQBJ@UxY273Rf40{+N<X#W1s1heil3LzcCTr$zXLlS@em@QG;)`h&GN0bybK=me~HN zYBWY!>LxK6u$oL>HmS$d^F9EjfEa?3y*=#5)l#HIu-l6|#p7y_9?Oz5B^xnPiQuAk z;!Y9hPfF)0`HC&H^NAf0qe6gRWo5m4Sx2veKafqBw>Em*(7S+ocw4!8cQnYd;x-cj z&6l^C({8qSAmY%>v?IM>VK(S*@M^?$W20|hyevyUlHVQ-nd{LFx{^i~7@a_#>(O%` zQcU@yhjd%<SE|5GECFv+fVHe`zD+1l63iiGK2vhw`jRyX1n$C@X4vzijA)xmNjD(O z6BFoZ(aNJRS(9pRLGAs?ml|(Eu<DtRYFy~Z_qluM;IV*m_&|82ZG3c)?9~ZKvfTMg zOdS;8_rg2vTd~CH$s91x4Gr0b5u$$5q(ZO5G<T?sK6kV5UQA=~LTOqZQoYrfb(*h; z4#-PoUpXyH&u?Csm<*tWvzhYSY_a}<aX>wpMtIpfD(Dr}^72qJt~sF4nCASuWvam( zQ+xmo>de#(*?T$l_q!iQFlu%^R)-l=;zq1!gnmlwv*3GQ_#FYW<Yw8L>%3$RQoJa% zj3f!24+@f>@JEl+>QG_PsjQOql6Vn8_Zw5pg;a56SaepZ^-ARWL6riieD&*<XgK5j zCT0E45#cyV@^*UGL||#-I+S6GsiDE43~3kisIR9ADZ%L93EJra$Hg()IC(p_m+GjM zmA)FR>;;%i*#cLYTiBUZa3X<m!4(XTxASu3HmKBtTC@X0Si{x&1VXd1<Fl?dNu z%gj8yqfkN>7#Ev7JI(^nt4#4nPkjIte9kpg+kpkD^|Fl&fY}*NRmhcxc_PPxXlGAy zvb_Bn6pXR6c%KxSuL(bim_*kU+=G;@H@)EqJT2QUH$FTd`ufG`#vfwK(ql==#%y^d zK4T(<I|I~aixp--E7OGL0)1PV^sF~Cx2H_jok@S_Nfs6{Y#6RXf3$(H0=aV`q>6qk zgF^Glfp~`8dkN!F!WUP*FaX(6g&aOEpILSviZKJG{Okk7@*9&{1wNf<34)|3gJ0OF z7d52^JcXcCRTRsDWZQYujgn(~<1}pHqUn%B%x4C7%$#q+%FQo^!#)S30cZIANqC0b z{|2*$T8v;gbD9I5L=P_Z>ib-YQd2EX_(0I|GM&V9Gz)=i{TCcvV!^eNPa2Gd9!dkv zh+>;oj-+t5QGykI3dT`424r8zl1Ay_Ci-o(4?Ot2_#M3kQx&fz-!!K_81=!TN(23e za<iVMPIAI>7Fql$6%cm^BS&|c4T=oYnQYw|IJDyU-rQ}tN&a)oJEe_aid;;ZtCp3C z(k`UKLru-zs(pbLqDWiqvTH5oLL*qKxQUj+=YPn5cOwJSz$y{qyhuw%dpZKnMw6mO z%H0}8s+N>_h$4BtkWv9e-^wkRCTuN$@&^JLoh4B+3WgR27Wh$ROp>$^X~4k1l@zNP z5a_@=5h5>jjjAaq7!7<?ccn@ZrVC4q^zA+)WvJ+-CNJ3u!eUBv{Ev+?r9JXH>|ut) z3|i9x=PQZ@J)D=%YsPZlI6<Nnd(^7=(RvSKN5UL~=_&d!vVS2ugNu4T>u4tAnaJ&Z z;D<GA7DTCr{D&d*wl|#w%6f8A7v0<k1usUSM2xgRa-k=`K2x13W79H%V26T|z2i#R zJl@#?coGE9xiVpfX8NzZPwbbbM)+5Xa{FvtI787kjFT&G<yuDj+EzPL&l|cxr7HH^ z9=2~#{9X3EPd`Q#NU@)=_Y@J_3TZkScDGTxI&xaOJTRHzoZp<=#GLOI+9YP7744nh zHEBo=yEm$KTOywHkRZyT0W?(s2ZF&%?!@DaHq#pSddJCB=E?X;zvVqOCmRv)v3?HB z=-c3O|HYbYF2Omgf1&*+Kp;zbD~OX;?d0AIaI)WiUGg1c-DR@X!c#WFgt+Rxcz`G* zXK1F&L+hl?>!+)&%}sZWjmd-0PaH=2_oFNY#={w9tas1`8Z%Ta<3}hE`zMHcH`-<u zf{cm_9ZQuud*HX!z=AInGvN*(F>6;347yA_o$~S}vG`qP_BM^Gl{HBHXjQ39I`oo` z<MwWyc2^5>q<8a<(CbS-lbXuHl#!K!pB6a<T})_99jfTBl`$n%=LKhSId=v&A*Z{T zP+BVMDM;QBCM?}ZyfI8`s-I3t#Mm<LvY!?TelUGa<|Et)6E4;9^hOZU(DzCRve7Z# zpH;6A1QRKLAM=lhOdm}Wgr*BxkChzK)&2@8eNCX1lR;0r#`PfX)#yt5eG|}6c?IqL z53_5end{r#JIsc9vv}omqk*H<Jzv%{+iH60U<@}g&{ccNn3-sssl^tuP#KdyMVX#! zYtubRqrWQ1D&heuiLiEQaXCH^(5{rx&Oe1E3#_&|zfhrm2<ht@K0EEjXBUqPS4F!A zhiUpaqMd~ZJwZ+G6-ze-YR2Wnkvvfh$j-1F_{Lw+@Q$Nba1oc2$Y(C2P4#j041>%% zOvJzmoi$`ytl!_KMkL1twB)W=%)Xv73@Sdv)Pmg%XO0+SiF{^X=d@a4wUDXoPls+T zTfw`T(Ct{~b?rBBddJf%{7FkKMwA&m<8v~**ysIIyrc|og(6lW8L!BTU*6Z{Ap<wZ zrlF=9l0r{7x{E0hr-_doEfGY<uV2%J#Kg_1`RuIcsm~ul(r)0D+f)kUJx=Bo)8FMf zBY8OBq_1?3RoN2PBQx!|;Ds4_%JkkkbxxUAy7*JlTGM{6m|yQ$m4rbj0U0{xsKnaD zTUOE1!z&yaUs7OdBO}|oaQQ?qb3QUybFy9Ic2upmDj91t+V}IG`Tbs|QmS}9&y#SA zNI=3?!{UHxS=vOuAw~DTzN~!O_hw0Z`-{G?LF;lTN-K<#exP(FDyM%1po6c8M*cvX zHxb*Xg%Q7MG99uHE^p7MMNGvYhAI+!j|g_u@t-3iC}5%&Q`XrscuYp~`zahtn9j*E zw*J?D#VGGm#Hf9aN+x<D7CJy944b4(vo6DH_D|TNt72*|*ms=(<o-k@NUiK7oqSx@ zU{dQN=%hVHZZoxZlf&$Ht@;<OS8~Z(15RU)(ui<KsfiT;EVacVPoLANufU!8$Ccfu z%441WIkYZmxTM@-#Pv7qp%5X(^<~u801^H7&Jgdk<0n3H0x?DjsY%ruX|pfs1vsxh z9`UG?;<VEy&!om!=Q(bMoDS1t8b6d`dPX?8lqU^D<k#&!qc3dgjsP3GASS73{!Cuq zH8`ocqxneGm9NdZvYQarhk%;=jp*&yY=E=n)4}b<6eEpZ)var7wt$TLuQGrP6X^Ie zEbwtep=ce!VG1&b(@3Mv>rF-8IH;<nWPbdeX0{S6E4wjPZ+nWjsM?&M##VP$6+))^ zt;SU$%kN!GYoz(vI=WE8ZYhfwn5Fxa9Cv!2#2Pl-t>a82RZd3>XVsu4v$|@c<V=K{ zTi?IYX?%84020UH8CXQ%$!-o|h%RJor3c0x5-vx%senE`UgTEf<IkgWvyt5!FyuOS z^neKkjBPkag<X7Jz)}1S`%Ln1bVb9Ko_FuuJ&I-;AD=&DX+^4g-M=`ut{S(LZ(b(& zI=y^@KF1Kd#GbL1AFQ+QQv%ADG$pq;XuDJUTz1OUj!|>IBfPDiIUZJQ^bw(yVY^1` zP<EHX?SA=a|ECkLUT>ml10@qO%P;>$$X^bDPoe_(p&@Nt!q&BHz1M(yMUeD!yN005 zq87)KD>kr63~vxUhas&4M}qX_-c=E3zdFx}O@B(>i(Q?y9YcR&+28*hc^;Yr^|j#{ zhCEllt2`-Q8?hg$c?gUpBvCRYm*RA=&nDS-B*K_i^8YAA*nI4|aa>(TN-P)273ZI1 zS5^_F7lbUEsQA4fOz~FF{~@TcJD6FqlF-_@JQ3y4A2rF52$naN?GiQ|&l=zoKDVan znz*XZi#IG+<!rlYXz^Lp<{n}maLU?>n_{ttiqH(*&AL^Z*B1N4+(SO#rvHd_BYub0 z7}Ru=TiOm}_WbN&Nblv1d;(_0o6yCdX}oq~QJU3h9be4Ki45x0G5i3u+I*8GtuQio zy4>o>x=R}E#-m|#$Cn&`K!X$Ey6~{kQ6T?&<K`PDia`^=?^)5oOiDsirkKrluqoS} z)$6kkRZnKE5>gsGLzP(l!AcrYQPkH+K*br5x?e4@;dSk&YDj32by|u7Kkn2lhHo7L znW4IY{|@f9u$ze!pzLwuDap)EIM~F=GfJMv^6+@>fLyq-&%x0JeB!X!E*!3VT0f^2 zq8Xmw8hSVcGfvPZa<%46%#9;CYi+_$;p<lZRKlgVdk5uI)=$gcg5NKzA$;k*P%Jdh zG8tc`+JDBLQ|l-pM5x?C9{nBG4Hg;tU3TSl61eG7_2!?szx=Mf@L*uTYYAhxIpl^a zwf=icZWvp8<MlQSVa|qkh~ASe!v^>5^sXWu1q)RNE%>+EGv2O?<u?+7u8ThyrQ(!t zoj2}1{~-2~C6XpWi~f&2H0$1FX9Qiude*a<X&<jQBmRV_EAZf5q@nQQu{aBWwMW$e zR`+<C7m>d|tdBzAGI&tn{#Z3^xb5-0$E~b2R!z;xLA?;iUMOC*3OkBaX)~-(1WxfK z1aR_vz`*DD?~p^~Va3>X*c*x?SOM9@?4`d+SQc)Q0)UR8v_RsI+p|bY%t1xMFATQ{ zB+?OPe;135`$J}cmX?cINBTbR^V++;bzS&g@^{XZ0U?tdj(u(;(CM5<Ac&iAO76_q zoDCAck|CZ~X{A#r>6*g%EqldeJY~9#TR$2VU2#`eGi@ImgZME@T9jk_=x#$W5y{39 zHs%!vJs3ZDPnLq2E=N+%y%K%Y2xB2h*>`ZT-4U{Y<pEr0rSjiN8|DT?c}tzmW;?~D zO!=Z)^h<Q*gvVXFY_L|+FVAR9ZIxmqV1bIVAS-nl#r0ng?SrV-Z5=63IrSOC15Z8! z-v-4*{EwTFRhWil#1;*80qifLQw)>|l94=jkwZk)(t<nMU<O6;%W|3xfUYu5GDvA& zeWoSKI<AT%OZ!OQ95+Q^-2N6t&r*Y><bsEMsG~lpg1Ym7=BEa_LNmMHDTbz*ODez& z5vn-lCgzEtA;x8^2_jDLlNtY~9ZDoa-GsbrdkluL8}DOL<XqQH*@%NN2t{1g1_gkU zJizMjXdj)To;t#YkxD<&heQ@HWuTeIg<Vj+b)z$YD35qVUK+gz4W=IPNTE}fGbXc< zLmg8_FR3l>SdmWxT05#mDaRt~P(|w9?~YK)$*7fKNNtaiB4^r`%`gOetQ;y#kA48d zz^Dh8LD$#z#OGT9NX?zYN=iBG<Sak+QLt8)XKv<P`WfZ|{2dwDjWyaSQzQAdR2>!M zf!XGo3lx5hhl6XsVi{p!Ocl1W3&7)f-sl47i5NvaHRru&m`%!>nPnJ8)kE}u$23nm zdLgY?VHL!B{MI=*m56w_Eumu|AQZ8;wtSZZ+{+;E8f*>IjZ}W^uEU6jpKB7Or|V~h z%TgaYqC#6CDI2qBrAb}MoxkrSC#ECc%DaIZ^8V)j;cIuIst=Tw-X28^F$i)`ikEFb z%Da+0-(Iq)%fg#Lyvy9=qNu14sc2_WP}28HSX~(BQ_>4nmEp-{J2{#PySVoL`)nzq zGCeb$W#ew^5C=SEtkEvG7FV8lRd5s(LT@8O(E9mE#*qKD38u|&dv9q?{Bdy|)nN~3 zdi6@<A{zw-fFs|$TxI^n;_1+tzF@J9fc4Bc`(c>B!8jzld9}>X%wIAKl`aV0MB|>= zVPB9?O%I6IvqVBZ99*Hf#?LI4l@QSPH3jm9#H9-^X&dKVSK1j@`s&-z_3{@qH%tpg z!53-6O=5OkUT<d!y~H{AteRg1=a>+mEGV~kc3_{@8IB=OEg^dXFJmpN`cYZ6)A7-0 z5kCo>6=q=<8lO4BE`@-wggd(Y?Ja%G@+}Kp-nPz_UzcM{=QhJ;P-cf^>O~w=GKPnX zLZSdqM#T|Ma{2Rnpyyg+H`6@)MjQj+3T}2&etP1h+L|$95z$i^3xGLHcEmQJdO@O8 zYMds!|AFG?Un)kz!08>n#nW7<t(WO)gPBZdCjg_s$`jwtN}}~9k!{~}Aw0=F-M6pK zIa-8V>*&dnS{fDMv3;R+^2Pbo1^)zU#OX<1{`xLEo%;iT?1--+*=Z{;46ZStuqW{c z?6~2**OU!A^qwisxbUkXH95hfv3)n(uOhGNe)^X<@bKfeEYbamfI}946%U6Z`L0TJ zr&=i|El{Y|T{+If(KK!BhcUMAKOu__s&1%KsYdg=F%;Lau+)^`Ne_H&RMsrjHUo$C z8n=aYiC7lT8t7Z1_itY+RhMj#Z<eW-*E0M&VU3dxP>{g;bJr+eKqpnJV%f+<YWmjh z`fXGIx{=_c=vocWE@m-~LG%6ggVDLC<|9cO?yh~LMU#T@=>)oHC`Abjm+C}#ssnd4 zG4B|$?SHDo#Z6}&{NiorbCaCEc)TPuUA$6BI!veZDGh5Cj?;lStdX%%)sFHg>*9-H z(wIPio72RO0@soE{_JyxlnhTn8l3pcl*D%^f_{@>*zjK?+`=&(7;bl-b##}|&#kjv zgW$neGF!Q)XMMM_@NwM*Bh_sI5uMe+Ofs<-l{dm70d=-@)dGGC$*k+VeGtF+?b7mi z<@v=Mek#GN8&~7r^Lvv3Sf3AX6bYPLn)y*{R-;jmDH;r>q_+I6P+MN6(Lfkj3<fEn zdY{<8uEmlJ2Uk+o`y5<mqn0=3ox`6QVniY!kOhP2cYPHFN{=aUoIOyZgYBbNfX1vh zfxPL7al}wn<%Aw|=v}%U)OCNC2J#TA{Kr!`-J7NIUy;6;C*q4+Z5nPmbp`R-4SuG2 ziHmzb^7hA`@DTfp=4Ih|^kEJbr70>VO4~~{b7(5bovh$AuZRH~YEs+hM!b5*$we~o zSh~gm3ph<hCp3RAKRamK0Na{YjAh*DCFQH<5G-CFzkrf@)GvHuc)g~L?|WaFkR;<* zE5)p8@Ue#nm>%pgE_y=aAp<NSf)5)HsrM;pe=;2z3v<B(M^O)HT%ME-+hv?>l^K0P z4073~=qqElGBXBo%F9<+n59?lk5sLko4UW7)eOdwscuy1xd9_XN8$~rj=)9nhY5A< zJX|Rv6|r`9xN4A8TwLLlxN3HG6|pHIT<g(IzzE}zzkqp&iT;)=^5aAJ51)!q*gs|L z7b*lCWInZ+Zs@5^((0e2<Om;4(lFAZdis~Yz|$)FU6VxDI}d}ao|X;}L(Zj`IMXqR zH~q)Boe<q5h6tMi0i5(So@y)7G0=%dg=J@^Q5<7`@BFUn`c6of5Qe{NH$cqJ()L6Q zUlKBAI6Ss~er|ku4nrbS_u99|+vzs^tt@H>*hlrOK1`%Cu6KXUd|Wcz8WY_eo0{cI zETu#+wtTx8_E7q3Ja#sQYlOa;nWy92(U0B1nv&BUI1x1`irl0;lcQu2iq*@@3hz9h zQ_#c=>B7-9lmAsA9^GGnq)JOqyL0<}hjVy-)goTr-_$I{_ujv?{?RMH-_i15)-KgX zoh4;gV6$jTu&9;QM;6vk2^*iU-8PQUr;j069}bO8Rz4Mf^U+`<Uh*4pBumj`hOiBy z>H8-`56{7!1z&6ya5a&J&d%AK8b)4d-^O%5e^m6+ow#*J8I*#V2J(m~4Yn9bS`dzu zaTU-@@vHxWEBqD{s>gD9S93@2=>!+F>S>58o;lg4u5gqOJ_M#-2iGxbGd#qhLW|tf zbvk)zt?)4QAUgV&(-B~QOi(kR+&U|B|Dh^p1?_1PA+=T2>x-Jc?ahPbz)(6mzA3zn zp#&JFDWhq6*BN+pK6WA~^hMYjOon!Nx)YombX0)w4=p^T$W0d*w%8~*<ssyx_l4ax z3yzbe3K^s*y#Jl-6VkV(ai9=d@R1pH*!FTY8ghW##F0n(U9LwzJ~r!IqF-0h%~ALl zqS=3l+8pWBo;7K(R|xTD_0HQ1Bd?@#zr$Dt&5X^K+YeoFBPE%oVc`Pjo8H>{+p&G_ z%L3ZZcS9_~5w)4~Ns=;5<^EgN85X24)gz;bOJ|Tm-R#s9jit{Y<Gy|bi83^0e+nPj z{z<H~2y78Q*0_fXali55Q)q8Jr%^id_c_u*Zw@K^yC<xpF}pd%%_ka;(}MO-jmKs~ zOmY9(>tF8ELh1{zppc{kuWD-qA|9r;kL&XDFD&M0!ITdK2P1J_*+*2*MM{2K7^$Y& z44Z-}gipi|*PHOz@8KyL)S{kVKwjd9hy#%?^XaQ+_T#7?;a4q1<e`o_DZy7zV#f3Z z-07r^?lbXRA-GM+;cqo-BX^kG>|8g=jIT1YC6k%&>8DKvOXTRa&4G8)<)T2A$L*m? zdq-K*tU1pT=!MfNS|2jIGJwy78TB9w=im?pB^MM0b^U5YoF}87)q;}%aJ8*Zj3~5Y z6`9p}(x#?m&gUIt=XnubB318aR6lAO?ZEAJ{Vu@K2sXtq4+xKgTy$LRaw){9N7Nv= zsGTIUZ;vq{RDo9Wx#19ONzZ&1+*)B5m~kSUJz(Q!k)YvVac=yk9yhwFFN7PA1O~Yt zAt6on@=elC!CFqp>sr$gPT?9V@G3TIyS*>~0gcEDu|yUaU=TaV6HXBYpU^DOum9r( zJiF>$$To+yx_8o2u&mLuyW;54%0_VLcVfmxTAPo#Bz8j=$nxrRoot)t?uO2Us*5>6 zh`_eo^tR(#G15JkrtC?{NBk<@ASk!MB?i;<=2_zaOhNnapTsk}btyDEhZO!FB5`}s zuqBC9=@PPyD6{dK0i+*EW&Xim#{gM!s5x3C*5s4`&xmPLy)1P=vnIouoU{5{Be=f5 z9N47XX>?RA>Za?kS!>7*4RpwB2sLc+AY-XdIMw=$M*1JtOpd>U?3me~-abbbJ+FV* zMHkJ3nks`ROxN)vVjg$ZE*Ne=1NC>3kTTJlo6ys@+b7Q$aKht8R!^==I9BdoQ)$Yx znwxbzy(*fgpl~#E*7J~<8|S_%6*N0ACC<C2G{0jcKhYpd6&JfKd0o9JXS*Zl6WVV9 zza7k8V!lIk8Xm?{*UF#Oi^sNhd3hKw&Geb$yj9UF@>A8}rz8qeiZ@Y#G_2${9n`ie z3jV5%NCi+Qf0AGR0}sJ7sn`Ye{3mUM&EvX}$@g-j60uc{ul7sLR*-!Z=mZMmkpFtJ z@h_G-AHf7!TIg6@l~dPi)BftQfduV(Udn@bx9dCL-+Xd;{`2LoyR|F1y!Crh>qXJh z_n4O69kSadbsV)_z~MHLge!OPQnhq(d4=)BJ2AY%sP@ziweV1#NpDVpJf4=Wfg|O0 zsj=sVtG&n!yS^O7qo^DDrKsJfd~U~!puDDaf-UnOg_)%^`_)SsiDp=75Bn8>Z7J3* zQ?<r}KU8g6&$Rtnm+A>r7T>^9k#+03y+4E(I@fHB;1G=Y5R`#1?E!?mAnBgxs>wc> z0n-<0+UmvS&(P{)bmuFD!freFnK{$KjD;DLGJ)i=2~-;oRc$|%$!(xNt*3Pr!;RZS z4g;?H$JImsZyJRz@Q=YP=P>glbzvDRjg2rF5{gF3RIBD#hik_V4-6<W!c%}E@=08z zKd<62(RK5PN~j1PgD$t)FEauneFvDZ3k*2{`s4N=#J^>h^KZl~upa*OXxl%ul<6HR z3~6H-HZ;vP*v{|XVKhtt-4R_Ct#Z>Ac73Vi2!Dqi?hjUK3k{^!wug_pR)nDH1>U!G zL;2jH->`qUqlnGiYG%1t*LbI=9<!Eb4@D_L&{(Rx&^}go%Ls^_)!*c<=7n*fLEX*K z$LfJBn{qIlJ@%DpSx5R)?hTn5#Znf>yVRG}yhw}dS-v|x_C^+=#nH`tIAw3A1V$Sw z-q{#F)dk19%5<g~#$@x%g?Rywj`tw7PffB!HLA2O6Z+=29hQs7*8mQB?TsH9p7LRX zNFV-u6_W4^>iC7M?&Q;7R)aHF+~l2*v^gd%xYdokT`#w;_+@>yzXu@dWs_kU!%^_+ z_1k^v9}t!{+G*G=MGY-mr<ZFwx&7PTxdj`^n1An%)=>$m*W98{@xji_S!B^~p~Cse zqKz1-kGaqgq!O-z28K*gIj2Gr?>Uec;UG8)761P2#oo}->AGW`yGOM^j4Jl&gSu5= zhqMcBHJz7Q2YyL?qWwrS+zigU^%KdO)j0_^Pkk`d=LcCsVVxYsoz^7|`0%{XFSax< z28@~*%+3<*Kq&0So2L7bz?p7h?BRSShZ66dB{b4PT_xK=j<X?*2)`d-B{T*q#bb94 z0#DtvfCn%nzV6-zuOPouKI}9Tw8&2;=lqEhek~lkjSYJ3dkq-h7C@Z7Wq8O3d8I|+ z2*jqz7yEtIJM%+(&np;{==V{F0`<p)*^Vdv1%laWB(4K_0&-y<R6#3`&5r!<s(d_q zAa&U6^cP3Wn#3Xqhtsbw<o>vzz2#k2FgfDb+?=KUK>O);{eQf~3Xp8T=bvV81pn=Y zwx%UZ`-KOIeWmKX?TNSUg|~LCl?!lMHEjbk7_Z&6ZK;ZHd?J~+rU?GB9<tTC1lee% za95$;DV(|U`YNZ_b=hyjbwXf~&(JqnD!upc5`C!DWVLBog8Ctl^edh#@}rK$U%L;# z&>01Txd<NY|LO0Iy>#(syB8Gt-uvkQw^Z1?Iu2;Ftl>sM!kkfS4B%v|G7}u}6g*;0 zMeA~J$W>hQ8-6bDeHCobH;a2e2z5L>^FaT2B`GW<CK(tM7THPT<U!C&940Ch9d&<g zg+^d#OhtjfcS>%bp_IKx55UKO54=hIXM_bKT2X@9&4FZPw`?E&-3pD!(3ma1IA8<; zqf8p8VC!@K+HITcu&fQaA91=^6+XCZN~wT^B~TQ{sVfcxcjKc66CemzbRLos9r3x7 zXZ&kNJp8~bZpN4g<d+B?3Iv<)#l7}QeBy9yPmFhewdBNEkN|qA1-Z`4dZQ~fTSNJ+ zPo$=$27GSmYUZWg#$uSaB+VH9=Xeeg`I>?KAKM+Ra{u7l4Z-)2!ftLJzQ<;d-9?3@ zNp;a(8P8~cvkjX2Aie-?&B_VJlFBAr6MIg}HZ$x{z2@?XX+XBw#AIDV-PcZ>^qbtb zr5jWvwM&*p=hA>AHH!?S%B5PU$`_Gxz+D)rc~!hp3q6$qne)4yp1Ag%n*93@ulz@7 zUQYUtEk+paVuD~?`c)9DbDSXbGdeN~vK6L6Gr);XrzhM{)Q)84yu-<b_Gxu-`<nPN z8{d6V5q%_ghN-83b1gi0$Y~}l3|||N8aPM3enUB!(4Zl9LhUdq=oZ5iNj;pYn5EKO zTgo1g%7b_g^$Ab~qjKF->V(P|n1OQ7pc|9b%XElszmGGEz3NF3f!8{^c&&s)j`P(2 z>WVL4v`+F}heG^lnc}ksQ`oa23VcwC;?MZ$DU_FbVQAvZiyPZIvX~+?25nLp;}ex7 zR;Q@o&mf}CcgIGJ#&QPD_*B($D}=1dF?yFXp7WhFPuV*2c#op>I>t}6O@fE_omr8y zlSu;-Kzrb{CX+#8U`N2n%V6uHFu{|K_%yFbqzc<+EB)JO!Y?qd$OnIKh|^gi+dg`= zVM3C=Pf*TDxg<+gIUsuno_mL4=cI{GNP>%N^1Hg$Sk~Mr#zdM;2o_<AWEmw3iY!Ai z>>1rYei)i{SMGgYOd%Wdk}7GWlixH=s~R>U!;EH1*jqcFOGfVAV#p_nl%)^cFUai3 zzXr0I#l9KI^`NVDuT9LZn;>v9PnrcE8*CvN$JxBlaozwHM4w^Tn1SWn4E~VJ4~j2n zjB?i3`^UqPn#IRmO&sgHQY_@aDF~$&;ryzsb43JI|8ILr=e97UAy&-rWR^UF;vLNv zCW__#GN)r9qdlHg=j1T0xit#X-CYbS{78J0bi;EEbzf-<-dSgygtL3yCuuT1G^Ux` zjRJAEs5o=~b4$Z!CNb=iplr6iBE9PN4o;p)BvW(0Bm@ZWD5v=ulf7RX=cav0{glWt zOP?%#SXMZ`(o)$NBy(0)(}Z=qoM(F8c(LPBA&}knZM!Vv+GxU}(7!ILbP3}#?|O?s zz3bNT#w2Jd>jasb=Q;u0ZIv>+qUy(bbc|vXaqM;7v2Y5ckU$7U=kgJ@fdL1Me?x#B z3WQry)kTAGCi2S+dmqb7)|G`qn$zfl#dC)lwrBY?j)gmtT*f$5vc-gCpngAvka5Pf z9qY0R`)_jaGDnqv6zm4x&43_VnntAm%0gTRmxSl-VJC8+R>nC$t%9s-^$R&@*rB>l z{Zt5ul&42XKVTxH$cqD`G|CdHA@Qmf1$fT96<Z{lqLRya0f7TDAR9Wr+z=_-UbBjs zMa!VP0S7vyjN)k%@9r%*{F8Uk`TP5a&69nlQLo3OhW3f`LjDXv<D$TX0tpr|cdXPr zEd*Qf0*!W(Tu={eK#qEElaG`&t*HV-@C_7Ne`J*{Ay%#!%=ub)W$Iwr$^ZdxZ6h|% zP@7o4H$gGj9t1}uO=X`j__n^GZ|tAnk}@7=0|=~gpVdCrP-NC33bayj%*5lGsvrMG z(-j*Nn7dI7s2k>~&=7C)*H39jRjDNKHIU9*pDj2vqg9BfV+EnMoK==yO2L5win0rk z#oUax^N=#7$SIa+7+k*8G-W%p=l8eKYOC754>EHbHSbPfR@wL$3;n=mn7T~C*dxLm zC><Ek=mDuG7|6+#iA=rwiIgz2-TuR4Ek(xfG1^{U)*_%0kW+ns{e0}S%O-WyXm&tx zr=qpR=ry6By>!(pD31A1NPH++z~og@Shaa&ugt-QIbD&-z$E*YHoM{sT9dJkqs?B0 z(Z}yp?f#R^`^3mew0Gw2*H;I?9flRWPMEh{A&?C^OG5r+h}v0Ev^w)EiQaY*6xW9i z%e6v6(Y)TrOyRlTUmfNAHR|`k0@HNg=Y{yT1dj;2RTF_Ihni#aDb1V0;~6zkW}PNS z!6%%uXqKh<)+X041t5{?S-SA-s^dc&D~*YQA*eeUImDZOyWvUyw2-VXOJtGX7;^v? z!0MPLxTxK)KPN=y)1ey%pC~HWQx@&=>f3w)-)3sT{6sX^K}8V7NA7u=7k_+P;tb2) zSq0ufXka0`eRtD{;j4gg7$r8Ot{4Ori)6asb4LpkiI{wFA<fv>jVqxbfg>Mnb7}@4 zfJP&cQyPFSAf$%cQW+#J#tVRlnTlI;QMy6f-oH5!Jx(ICtGKR5vUuUqT{acx6=9zT zUoAMpVKa|n<Ql3L#>OYr>zOn`|NGB4c4Uqz;((GK<4onOVXN+Tt$yTu5P&A@T=XQu zC#l@LuQC;AiDHBH#C)_S9k9l@dR%+Hw~rxecsA~Q2U;U4=$yR`4SnFnOok*!s#Ge{ z7t62InqJOAQLgXM&%Lo!1?CK?NTJzmJsFSw7^5AgC4}QpkK}>h!zd33;~7V961u@0 z4JkWl{X6!hg=U=r{zmuDmez3~UnksnkTe792;B?J+}V@H!H6L%Lll!5(g<#KxgFEM zh&vUC2C*k4Xok2xpND9i6$zNAJ^}7<`xdh2ZlTCW6jR}Zl)?#O7}Kl76Oc_P5-l*u z*8PhIq~WSWQ+KF?6d|vt?;uP6{{(p%hUVR<agarLz{v0c51cWL$)ui&lI@p2o}ihv zE=(-EmA3Xm|ERN`fG~m~neQJ#p3JF&Z0=5or%0>Y?rAM?C_(OLl=9gS$`OIEJk;fR z3WhMAH9H9~wHYDZ-UqmQSLRB%^Hoev(cI!8Gg8oUzDPu{N+dzumT~4MPJw?lHUbxP z5RfI|etgkEd=Y8%h=<o~K6hH)XJS>3Ae?L`<xxQjrimh~XeC^Pf-oZBvhGI*u3qX0 zFR>M558Xi4E!PoN(?qwJyp@LSYM%=^8}-)8uaIJdDt3HOl>sfDj!}pQ8fy<<JpZ#9 z1dy;K(c{0I76SytXuPb7dZN~VGH5bpYQsj*ec&Vr1(%>N93-l1XS8CZn|)bgbvwW{ zp$wP2U+4m}I#Hiy?|os=f#q>)`H|aK?ljX*K&u2u9a2W!4a^B_6_l&>WbgcMGi>u+ zmL?H%27-Pp@|9)k37ewQfx{GZai~E!iTX;FTD@&|7V6zhA2WAOu2n5Bd<J9(X%93Y zT0`bOq2V{nJuH@Qr`j*vw62vKvbI#JbelM!JqWTv<r{tDw%yqJJ$}8qBsh?QS#d}} zq(F3n$E%F-8G?D6m=(!jxDLE|K{580rVh;>0w7Tg&?%&^TrKs}76KYq2Y|a**G|%8 z-vHf1fg?2aAi|Px44>#~>Xj~}F1<kLR{*%ieZZYq=<KMY?OE7#;k0cs=q${|f)vmT z$D0Xa0`*s3|Cz1xC_}trl)(_CUw|-y({OOJd>z&pp#8C*W!A@OqFeob*Ix`5RgpwW zfNxgAc~CyapvIP8D7O^G$5NPS-v9NJvX*t9R975ME7m+f9XY&D%`$l%UDK2lSTCt& z^xGtnNO$c_9pzGZSyIgo`QFB;ASFg$sF!vrvZ~}aZkmZktljD%97@W@of|22kX#_p zqkc9^F-y~rfa27cosB~~9jvR&rd+7nR!Q;<Xr8oe#v)6MQ4IoG{>nx$TTPMtYMMng zk1Z7V)`m{P*v5)9ww7J*w^{Xoz+8L6vPK>`9kMNd`PT*E*1If`+-GipB(RfuEE0fO zb7Kc>W`>yF2h<ugc?PyJAa6jdum&-Dd@jO3av2NY8hCkQg{3~JUiab_^f1&lNY#yd zIN7tOGriUo!tSm+XdZL}=u)<4mdt1rB)kfP2@PkHa!=wQLx-hC78-3{C7Driph|n7 zP}Tqh85w}F3<(Hy9~kkr=<>$$#~EL5ux!0=w(T|!!E@&{u+sZrP%GjA_OKWCPW_ph z;kBxh`KC)jo!ZWFVp%2xRis|9i(R8#cx%<z`+4!@kUGGOw!5Rit2MSYSZ<Zrcu<BN zLpJ_C0L01gr!84Pza~CNFl0cil`2u&PwZ_r2YgYc*K<PNW5q28GD3Ko=&uI=zn>r6 zAKve5<>Oc==}}@_>Cd#K?6F>3q}D%Q&$Rv4;^clDX|T7ru}ha<A4l5AiiV-Y@KA{9 zir)Y_SlLZQI@3i%{j6{ly8<l0HK$MvN>)mZUd~l@u#0yv0Bpk+qmIQg5l#%}Sk@71 z`I+~a_tYLO=aL22A>%gREW^Fn&)jW|(~UDV%|&Myj$&H~@GZ)kKx_%&>!HG)4O(0p zl;#=4Spv?J{Lpt%?TvyU0njGap7kks{9^Q9jv6G+j@R(Badn5Te<i4SeGL*^V+`8D ziJM3G;wEG7h=Z<au9=yEEz#1t360)^>sg<Y_08E5WRpOD0&kN=9f4)#U(4{j;{U1D zbHNR)bSCgcyL^D6RdNllYB~{|kAGg1Np8;3sJMwyToWbF^YN)5y*~W~CkEP6jUp!U zf{@@Xz4rb^oLK5Vz0M2bVtchn3X<1OwNVBo>jbaZA(!C&mA47UwD#}$z5spHJA8cK zR%H??=`*vs-1SGSYl3ZA*l|thS<UTr#zy|sBRwdF1eCL}1{g>X&?M<lK()l2Av?(x zffLWnt*(?$)SD`PDvE-i=*mKM=!i!*z-Syp#rP%8@QGjS9&;r9RMQs5@5bP&BBv!0 zSI~OU1`I*nB^HAwn@3&m0hY-lNQ2a@bam#ZTJ)(yu!`aF9z~TH7wcuD!brtYZLLBa zh^{^of<s$q*KtM?u{_F7b?5;Po>F&2!%PFyCxIKIxpeJa&LQl3+^;;ZRh|?vgGD49 zB7H$3G{C&t#mZ1Rd7O8*OQ3oNL<tl5m#%)XRpUvBYP(lRq`M)bA6I;G=t5@^3p;d* zC-j8JwR$12)Cc3t+Y?BL21^b%hV2z4w`!IrHJ`yCY3`U<!Xqn8q<i26MN^_|?<C)l zds4}_N0FgF0V@@z0)hfZYb4`xAu`CJq$xICi2xw$)7|IhnwC1P1LQXrvTQ~#Y&*~~ ztN8|b2&nrMA)X;7mC;}N7ZMdA-^x7PKG-ZTai~^Mv_+s0uq`C~wG=x@9H0eh+`r!c zUJ}Zl#rXq;NSytrplixp%lSCA_OPIj3+w1KNmMfoU*US2S;3lKx(~5)+79`xMBf_Q zE;T#J@iZ|j$^)ZKirS@n;dLYjtMV*YN<o)i3=G9XD!+19=^pv0@ea@)$zh0b7v|&7 z<ltFt=;>-xm^N|Hm2QqRG2CKS0Hf9>oY*`N%yKF&dLRAUTAIf#j!+lyREx;8A}GES z(3b1D@4s_J7N;=n5gY3Etjg7TXmz4<?_*)g#IWePi1ak%4G7@BrPlg8-wV-a5WVsZ z6&-O{zxc2ob;cH0&&{Z>d3uW&Dp;FRGx|E$Kdf+NGyryR(<c+F+|mqd-ohtY@@7$= zS`yzqs~pZCV38mWwPLe-IN;t80JpjM;rytDM+fiP3Z(Vsa6szCvgQy|qO4-#s<lxp zT45!{awSay=7XEgu9y{NO2fDJ3-w&&S#rD`eQH*xae-4{oLNK-RArGONxFqsB%0Xn zlL55gs3gN1kGXT~;Y_q2DBF1zsS9CoU(})@r7TkeidB?OESOu(7Y<~!>bt5u8+f9k zKOQSY8rebh+j%RBO^O+__dk`nyxts#69p$eJyDKd$0)+>9mtt!Wr{>LBKZ<kckih2 zZP<svT^S56w|RMW*bQBoC$Vn&%?txvPPfGT{B{<VwPS*gKZ<TYQT2RPRg)ofuvKak zyNY#@4UyX0woA3jsIskfFmY;}le!?9df!2$jS}(MX00mHseAdmf(4bWD|S6wCu4dN zGoJJfn%c7xb%3?8uFz4V$O4uE%^sYMujPLuc<f(==fy@SldUxlsd_W(`ORSTp{5lD znz37+%)u<N3XY<Pc+#>gX=7q?mAgkDRFxonB27MaDkOoD!g=h3vG8$KfHF!x)>$I_ zTtV2N<vzQ5;P8FT-y8cPtIE~2zkIR(>tHk@Mk5WcVkM$3<zFde7&>^W&Z$OUIV&Vr z1iSt!1N?-WY%*Iy3O_;+wZ#KI9s1|x{%(=QM_n@}iW*4Q6e+lSy3r)JP>L-J#0`bc ztq%kg*aal-&jev5&u5Ts*%<@}*vhpgg|iw8G8GwJCVemaJaEbdS+YQ`CifT9_OROy z=i_-@j)ucT>bCZi*++*nhI}Y?Y=gUp!mIl<0_{ES?8Soyu^09yK!f+nT>tIt%({dl zIFpeaUiTi@%0%Ei218V5yf`x5FWXK!z7BbEHVwcu@t62xwdkH-oL8N(^4K<QME~dx zNAH+j5zX3=|MgwZVWU2(MfWM=*EFj<)CYE;aFFL6uiLTk0i5Tc36Mkz^AhP%XMTH; z7F#&t!|3;P5ptiEu%bKJE`^FOm^pAzQ2qCi_-Dg}#no_U-GS?p*FI!q7*?9`^=!N; zGQH(%?dk&tyKilq6uWwJxB>D4-;Tn^<NW@x>$|qe5+#@`xBBnY<z48tnhkz62r+Rm z8YcP+7tq+pM{?M7P1bZXL)uB^$iqnf{B?i@r>D9DL26KyROe=+{(D>r`+yQxeOO?Y zi5cn9n5w-C8wys<?SeOWq;f7C9}r>E!C3GH64(m6J=B|Ph~rJ>>XpM=#90f6?29;g ziZ5;F+*<%$_L?phqnBWut2g>*ABN`IE}GnJskTbxv}-9uWk;FDXap+^#aT;;%9nNz zW_tizcbW_C9D?r#KT^!D+yK9m8xUD_6B}q_3n9rjP><vlYUu(Nl7ngs**C(|`i+W0 zVZKZRRGhmMMbb#i%xy_aLAW#ushMacK~RS<VojE{di0hQ3J)96_5KJ=u4xDU=tq0# zzJG3YV5sEprw{kzkm=Y(*2Xb{?oG$(W7R&iK3t~E<CCH<rPHucS5t3_30Im~o8UJq zEY*}w3=JNX34A~HDu5+J9%_>^g)i(*zxZwjatZs^tUuJK2?N3{hQ@Q-U1E&x4uggZ z9=e)8J)5;Zt*@=F6r-D~OWQ^dG>Nq^eoQ|EIcq2HU0(2_oU=q+m<DR8nR20qa!Yhs z${_7;1i@ZzlbtA%;_uzO<P!D^>qs=h$OQhOhP|BeqvXEOcv_>-N2=5Czq{kZ-R-V7 z?_ZuB=@8*R`uAg5+ClH9%)=@0>zC@QuhfSB1MYETvtF$?t24tiPQ!R+MK-J^(J*3d z?4sGGzP(<*pTbv5??W9%z>a>2LgVbL*KIwA!qIjRCSXgi?P^zcx;{rY;tB`FrmfBB z)-0ZUm+82dzbMkxPpP7#qAPhSr2j5k9lS>ADb>k9TB)$2$<(<dV}h*;o5V4I=zmQc z)hsWJN?o6#37l+68!&3C4m{FA1Q%1X%t)f1lIUifLps`fe#!zHgWNn-E4#JpV6!5^ zCJj)dAPe`6x$S-&^MHcPSBVnCSZub%NnVQH<@u=z)72!A2o}x<_~;+0+aZqits;M1 zbtm~Fu&7o#D^{$a?l@ay(_O~4{qat?8nCig^nTU54R&0JUF2TAS$L5a=QB*U@C-{h zXIRQP!-~!sR(8&?x&t=v<5o%4_i~~Jo%t?9Qb0vU%@2ShESu8T?8W}Kn(wisel%iE z{ctt9<~4+dYOqXEP{dcP^O`nv&K?VN{y<Hg#Ju~xKcMbf!H^BB`d%~ghM>WjX-x#8 zn%5EtrErlZhDTmeC|j8|5m0fCo;Fp>OqW-3b{YFD5rN$uXdb^^tC`#9bJvm-n{G%H zbwT&?q+XLaNYH41RUqwg^9z0P0NDBj_k^5u!zBi4Gos<`N21+{MwR?QnLY6tx?<a! zscnKhj%XlSNdLC7ge02IvzTK;#%M52YTA;`jpICK!|S##G9}O-!J7l+EzKFmb?h36 zj^ve;WjB`SLjmHhxOHhinX3umf~|~Afv8HdNQt&BK3V1{*NH&g?dvHLb@A@6p*`{V zt3MqB{CakLeR93Gv$i_Ey}CF(Y&UhO_i%$}@LbgzDbw~jSV;YW+~Dk1tyfgHVBMM; zrBSeEJFGQTbbFbsBA79|q4NGr$*_}Wm_%GGz{!u`0Vgy~tSKkfU$H>OKCD)7yQ~LR z!1=jVr_M%h0wJ9AeMA%aXyO8&9sI~YG3k!vr-&(}C=eL+HSAmW*)ZC8_69C<4TF^i z2aORtG{c%A^%~dpCu7>nm#2`C?A`fVW}1dzaIUpRXt?Mel01%&_Lblpzk=6AX(jdD z#eWV0{X38#jOOGICtMQSmeu;xSMAu|(RDWR4cI)kS|zI&(gM3lND5#8EYNkWQXy7R z>_b!}YIw**tUkP1YtT6Fj^~5y;WlUYPovYX^kdRRV-7&(at^TR2j*Xd%c=61lbW8Y zEO=W;*?t64Z_k!CE^jvykvO%W0SBNp8EkI5X2N30t7rnK3V9(T;n4c-G@WhE)J1UE z<(joMkgm=Y73y_u^B(OcVUO=}L0x3~)B1YXV@Lsk*bQCRC?n$6yDt2%E_5gmi)W&h zExO@Ge^*N0druyV((ce|W`u=R)&(#+5J0f-Uats>^q|1EHX=~ilvkv<8$k{f-iz0y ziP(6V#m`r%`3?y(=RA7KQ;RFEP8ef?P!30voS9U*C*jgY!iI=AhRHKz)^vop<*%Wt zkFT{VF$nOhaKfD$X>DRbb(fm&0EP}}Uy&t5s;}fXC@SnChGp~)OAzz}_rowiVDpvr zg~b>V8h9?oMw$m3>}uam91a*Fhw0jZ7$2Ow$DP;6clXCb1^yAej$S)whr8q5G!$8+ zYqB>!(D!Cg?o#VV3fz!JE{xK+WL-_4(y4B@`&wc3S7<x7%S4_5^S3{lVSrU5j?~7l zVjc9a89D;hNF6(p^sZ<MZXfJ-%n>K9VJz^(5C>iS7yK4XTY|M9j?P5$t;Q7^FYk+( zfTnU{kE0dILG!1QPn$bhX$0Q4R#=^3ffU8a%i;#WVJ&Gu$y)nYt<S`yC=ORYyOOt{ zDPK?p5O9BB0+eWRgz0$?2<cHZBSfwQh*mE>(L|-*mSg+Lj*K3mZ$?8?Toh)=-2Bm8 zc=i#DPN?X23<N+D&(-_i5TISGhZo;$Cv_I7z^$k&HN?qj_PYwa7s_*Wir*UA3-c4c zO~Nv--(Ju)!`Jbj*#-x`il2y(A!OX(_4^I@pr&H+*XY>SmyI3NK<$h}xo8H;XA6J* zfOi+kb+0n00S_KpZ$m%ZP%(H#O=^Spl1sj3@8gPb+>f2=e`xs0^O>gGc&5PtwsKo& zLKMMS;D$x-4m@F$9Y@tkX?*`<A5-{ZjW=f6x+;r2i?ou!tN|y-k**N~?k-PDsN1?U zom;is7&18r+3EE5>pQKlt3phpEmJQJF*Im=o(tfuc3Y#&QZ{P>ERpZl4&`L^DmzY_ zX3qO4a;giqUL<orEt^4}n*dj)b!?$PtD&<k<h;JPSV0x{RHo@v7r+!J$#`>}lAfGs z7tr*Am>P0e(s1vk0lKEqxzlmP033I8MinILkeddBWjV;gM1{o>Kx;-^a?g!pKtslr z%{7m0q2S$uY1nE+^si{mP{8AER8Peh`te0lT8C-P5Q6W3a7CfDIBAxr1Y^;X<gw<= zoPxZiC<o_ZFRaj{V4n4l(bgM^3}BU1O5$|#E*Gvdfgh_HgzO?Ua|r)JDfKaUvXB7i zF^<1Kbz8=v7V%$qov#4+V14Sx@aR7f8w}#D>L2DfMl2YQS}<&WbwLGKx<@69hd+o9 z>%U1hZ*bIhGax>9wF@<82ao0GtcfjhEJtnkHHVbu(I@CALVl#89VdxPvQi(f&#Mom z9-v_}B!C>8K?uo^1~E5n3J0Yspc^`#nCG1bKNVt(Mdpo7EFF=e#w|;;3VP-d^z7A1 zM1{Rw!+lg(otBo)OyHtzrf7_OVs#iE$Wu%bT<W=uF^yvp(<OVc9>=I-ZB;*WR#Zrp zcbj?^ms8FT)g26o>&uWrY*uLR2Sls-$RwO{9Oj%>P+6)akSYRNr&6pv_bs26YvJ%Y z7n%7=m8Uu>jp!QQeI5@SzBqk=roEZxK3w!j^Zpb@NFf4TSkKE28DdwJRRi=Q7*?wv zjsC@b)Yq@cPhd=m?H3%Q!_|IlS`XZ@g8LLPh!u1`j6>_~9aYd#2Zi3kUB0T%7uhf9 z8-0Y&Lzf8dJpLjt2=en$^(-B<G$0p2s@5T_v97MJpPL8*fhWjk2Th3SAh-xHz4H0Z zMC1j%@KmmOWeA`#kaa6;d0ib@Kbs}!Y2XP^B&yPVR75eR1Ev>-$Y;tW<rvcqkx^eS zLY*|-2%Q_J<(Sou%aD?0b&w1x>9E<Mcf7}oCN+<~zBpatvL8Qo2u+{2mwPzpEa#VU z?ey4^npFbC2;fIe%&C|%hCvVtaMSdhF(ZH_a+om6rGU0!oA*UG;)4HlV+6n5!bFU% zw=m^k<t@xeu=RNeQgqPR2RKv3$D9&j{05iHR7QQ&D{=!-xn7X;Vn)xcy+biJA))l9 z#R%w%`?4g-c8K}p6f1&4LPX+^A{<JxY~?C$`-}LHP^hwoa(R8lN@PPXf9aLgWtp<M zpM_dlp^8RNhn}VTD&<SR(X<*<HMN-)-nmR+P}I0!%K-jJNC9D(j4d#$;%(-NV`~&o znY{3q`6E!~P%>oYQQK3Bnw3S(R5a+QA<v8x2L`5grGvs2o3_@$G13*vc1g_EIT%FV z8V@cgPGMHA6+IKh6}`TAJVIrOg-U$Aslm5ky5V!$*u}?KcQ)kwKLVH`gOT$C>%rpA zc1h1&($AjUYYxoZ@PLOr;xSKn$}^6fxaB!7&WOo;J=5R0wI8_S<GC@Rpy~XWDt$A1 zdKaakp<`fTVdLQ9;S&%Ni6K5~COyGzNRmu?_Dp(;JEuyT^xU5<(`(;hE4|WYv2JUP z*i@Linl1CiS3OqgaKb~Mt+UPl{`1WSqs}^Qrwp0;WH~R}8RuLMa<ApszXGqgYL{G} zEOFCyH{^Niy-pfx`3e;%GNf3k5@pI&s-UIw#sbx<)TmQy%CLp%HE8tC2M63TX1CiO zxMPpKCQLeMpK&wVZFj^`hf3$8X~%ZVYU&y^YKnhe9Uj(Ke*ZK+zCIq>n>GK=d}-51 z^J=_(SgZ%PW_^15KW%E?tZhnv`S<syrR^UOTkM1Q*JeiJzu(0XZdmc@>+4DVw<eEw ykZ2PW`pN1D?QDeizop;x$J0+wrp>Y|y4{tt`fFXgJHnULqV9OUSvobz9RL6*=65mx literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-900-latin-ext.woff2 b/public/assets/fonts/lato-900-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f6329ce858f6d3c884b5f78579dde3cedc87eb9c GIT binary patch literal 5640 zcmV+j7We6QPew8T0RR9102T-U5C8xG04)Fj02QnN0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-900-latin.woff2 b/public/assets/fonts/lato-900-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..72a9bc3041b39faf6e4765020dc940cb38a111ff GIT binary patch literal 22504 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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/lato-OFL.txt b/public/assets/fonts/lato-OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/public/assets/fonts/lato-OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/index.php b/public/index.php index a88c923..72dc5b7 100644 --- a/public/index.php +++ b/public/index.php @@ -3,6 +3,11 @@ use App\Kernel; use Symfony\Component\HttpFoundation\Request; +// PHP nennt in jeder Antwort seine genaue Fassung („X-Powered-By: PHP/8.4.22"). Das nützt +// niemandem ausser dem, der nach einer Luecke genau dieser Fassung sucht. Auf gewoehnlichem +// Hosting laesst sich expose_php nicht umstellen, dieser Aufruf wirkt trotzdem. +header_remove('X-Powered-By'); + require dirname(__DIR__).'/config/bootstrap.php'; $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $request = Request::createFromGlobals(); diff --git a/scripts/browser-check.mjs b/scripts/browser-check.mjs index c5799c5..de5a478 100644 --- a/scripts/browser-check.mjs +++ b/scripts/browser-check.mjs @@ -31,6 +31,24 @@ try { if (200 === expected) assert.match(response.headers()['content-type'] ?? '', new RegExp(type), path); } results.push({ name: 'machine readable routes reachable', paths: 3, hasPosts }); + + // Die Schutzkopfzeilen einer öffentlichen Seite. Sie fehlen lautlos, wenn jemand eine Antwort + // an der Stelle vorbeibaut, die sie setzt - deshalb werden sie gemessen und nicht angenommen. + { + const seite = await context.request.get(origin + '/'); + const kopf = seite.headers(); + const csp = kopf['content-security-policy'] ?? ''; + assert.match(csp, /default-src 'self'/, 'Content-Security-Policy fehlt'); + assert.match(csp, /object-src 'none'/, 'Plugins müssen verboten bleiben'); + assert.match(csp, /frame-ancestors 'none'/, 'Die Seite darf nicht in einen fremden Rahmen'); + assert.match(csp, /base-uri 'none'/, 'Ein eingeschleustes <base> würde jeden Verweis umlenken'); + assert.equal(kopf['x-content-type-options'], 'nosniff'); + assert.match(kopf['referrer-policy'] ?? '', /strict-origin/); + assert.match(kopf['permissions-policy'] ?? '', /camera=\(\)/); + // Und was nicht dastehen darf: die Serverkennung verrät, wonach ein Angreifer suchen kann. + assert.ok(!('x-powered-by' in kopf) || !/php/i.test(kopf['x-powered-by']), 'X-Powered-By nennt die PHP-Fassung'); + results.push({ name: 'security headers', csp: csp.length }); + } await context.close(); // A load budget, measured rather than assumed: what a page actually transfers, and how many diff --git a/src/Controller/PageController.php b/src/Controller/PageController.php index e41a57e..90a1bd0 100644 --- a/src/Controller/PageController.php +++ b/src/Controller/PageController.php @@ -141,6 +141,10 @@ final class PageController extends AbstractController $response->headers->set('Cache-Control', 'no-store'); $response->headers->set('X-Content-Type-Options', 'nosniff'); $response->headers->set('Referrer-Policy', 'strict-origin-when-cross-origin'); + // Diese Website braucht weder Kamera noch Mikrofon, Standort oder Bewegungssensoren. Das + // hier zu sagen kostet nichts und nimmt einem eingeschleusten Skript - oder einer + // eingebetteten fremden Seite - die Möglichkeit, danach zu fragen. + $response->headers->set('Permissions-Policy', 'accelerometer=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), microphone=(), payment=(), usb=()'); $response->headers->set('Content-Security-Policy', sprintf( "default-src 'self'; script-src %s; style-src %s; font-src %s; img-src 'self' https: data:; frame-src %s; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'", $allowScript ? "'self'" : "'none'", diff --git a/src/EventSubscriber/AdminHeadersSubscriber.php b/src/EventSubscriber/AdminHeadersSubscriber.php index ca72e15..df36436 100644 --- a/src/EventSubscriber/AdminHeadersSubscriber.php +++ b/src/EventSubscriber/AdminHeadersSubscriber.php @@ -23,6 +23,7 @@ final class AdminHeadersSubscriber implements EventSubscriberInterface $headers->set('X-Robots-Tag', 'noindex, nofollow'); $headers->set('X-Content-Type-Options', 'nosniff'); $headers->set('Referrer-Policy', 'same-origin'); + $headers->set('Permissions-Policy', 'accelerometer=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), microphone=(), payment=(), usb=()'); // The preview must show the same typeface as the published page, so the font hosts are // allowed here as well. Everything else stays as narrow as on the public side. $headers->set('Content-Security-Policy', "default-src 'self'; script-src 'self'; style-src 'self' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' https:; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'"); diff --git a/tests/CmsTest.php b/tests/CmsTest.php index 422a2a2..231fcc6 100644 --- a/tests/CmsTest.php +++ b/tests/CmsTest.php @@ -879,6 +879,29 @@ final class CmsTest extends TestCase self::assertStringContainsString('Nächstes Projekt', $rand); } + public function testEveryPublicAnswerCarriesItsProtectiveHeaders(): void + { + // Diese Kopfzeilen fehlen lautlos, wenn jemand eine Antwort an der Stelle vorbeibaut, die + // sie setzt. Ein Test ist billiger als die Entdeckung im Betrieb. + $this->pages->publish('page-1', $this->pages->saveDraft('page-1', DemoContent::starter('Startseite'), 0), 1); + foreach (['/', '/gibt-es-nicht'] as $adresse) { + $antwort = $this->request($adresse); + $csp = (string) $antwort->headers->get('Content-Security-Policy'); + self::assertStringContainsString("default-src 'self'", $csp, $adresse); + self::assertStringContainsString("object-src 'none'", $csp, $adresse); + // Ein eingeschleustes <base> würde jeden Verweis der Seite umlenken. + self::assertStringContainsString("base-uri 'none'", $csp, $adresse); + self::assertStringContainsString("frame-ancestors 'none'", $csp, $adresse); + self::assertSame('nosniff', $antwort->headers->get('X-Content-Type-Options'), $adresse); + self::assertStringContainsString('camera=()', (string) $antwort->headers->get('Permissions-Policy'), $adresse); + } + + // Und der Vordereingang verrät nicht, welche PHP-Fassung hier läuft. + $index = (string) file_get_contents(__DIR__.'/../public/index.php'); + self::assertStringContainsString("header_remove('X-Powered-By')", $index); + self::assertStringContainsString('Header always unset X-Powered-By', (string) file_get_contents(__DIR__.'/../public/.htaccess')); + } + public function testABackgroundPictureShrinksForSmallScreensEvenWhenSetOnce(): void { // Gemessen auf der nachgebauten Startseite: das Telefon lud das Hintergrundbild mit 1920 diff --git a/tests/editor-model.test.mjs b/tests/editor-model.test.mjs index 63e27b0..7706ab3 100644 --- a/tests/editor-model.test.mjs +++ b/tests/editor-model.test.mjs @@ -1,5 +1,6 @@ import test from 'node:test'; import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; import { EditorHistory, createBlock, locate, insertBlock, duplicateBlock, moveBlock, upgradeDocument, effectiveDesign, setDesign, insertPreset, insertRow, blockPath, insertMedia, setEffect, isPluginBlock, blockLabel, blockIcon, canContain, isContainer, setStyle, effectiveStyle, hoverStyle, resetStyleDevice, clearStyle, copyStyle, SCHEMA_VERSION } from '../public/assets/editor-model.js'; import { readFile } from 'node:fs/promises'; import { designCss } from '../scripts/build-design.mjs'; @@ -64,6 +65,12 @@ test('v1 to v2 migration preserves all content and IDs, is idempotent and reject assert.deepEqual(migrated, { ...original, schemaVersion: 2 }); assert.deepEqual(upgradeDocument(structuredClone(migrated)), migrated); assert.throws(() => upgradeDocument({ ...original, schemaVersion: 999 })); + // Der Editor muss dieselbe Fassung kennen wie der Validator - sonst laesst sich in einem + // aktuellen Dokument nichts mehr einfuegen, ohne dass irgendwo eine Fehlermeldung erscheint. + // Genau das ist hier schon zweimal passiert, zuletzt bei v18. + const validator = readFileSync(new URL('../src/Content/DocumentValidator.php', import.meta.url), 'utf8'); + const hoechste = Math.max(...[...validator.matchAll(/schemaVersion >= (\d+)/g)].map(treffer => Number(treffer[1]))); + assert.equal(SCHEMA_VERSION, hoechste, `Der Editor kennt v${SCHEMA_VERSION}, der Validator kennt v${hoechste}.`); assert.equal(original.schemaVersion, 1); });