From bea07e73b1e758633fbbbc71c5e189fc3a88f641 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 06:54:55 +0000 Subject: [PATCH] =?UTF-8?q?TP2=20Abschlusspr=C3=BCfung:=20Rechtstexte=20(A?= =?UTF-8?q?VV,=206c,=20News-LB-Archiv,=20Livegang-Checkliste)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AVV Vorbemerkung (2): K16 der Textform-Aktivierung trägt nur Leistungsbeschreibung und AVV als PDF - AVV Nr. 9 Abs. 6, Anlage (Löschung), LB Nr. 8 Abs. 3 und Datenschutz 6c: das Einrichtungs-Ticket bleibt mit einer Kurzfassung der Einstellungen als Arbeitsnachweis (keine Daten von Gästen) - AVV Nr. 8 Abs. 2: "Gastdaten löschen" löscht nur wartende E-Mails; fehlgeschlagene behalten Adresse und Inhalt bis Nr. 9 Abs. 4 - Datenschutz § 7: Frist für Bestellungen ohne Abo (drei Jahre nach Ablauf des Jahres der Bestellung) - News-Leistungsbeschreibung vom 30.09.2026 unverändert archiviert (SHA-256-Pin), die geltende Datei verweist darauf - Kanzlei-Paket: Zitate, Q4/Q9/Q23, Livegang-Checkliste (Abschnitt 7.6/7.7), K23-Hinweis - build-legal-html: Rückwärtsschrägstrich in Navigationsadressen abgelehnt; TP1-Spezifikation E2 (ohne USt) - HTML, PDFs und Prüfsummen neu erzeugt (Terminplaner-Unterlagen und Datenschutzerklärung) Co-Authored-By: Claude Sonnet 5.5 --- docs/WEBklar-Datenschutzerklaerung.pdf | Bin 122459 -> 123230 bytes docs/WEBklar-Datenschutzerklaerung.pdf.sha256 | 2 +- docs/rechtliches/avv-terminplaner.md | 8 +- .../leistungsbeschreibung-terminplaner.md | 2 +- docs/rechtliches/termine-datenschutz-6c.md | 2 +- docs/rechtliches/termine-kanzlei-paket.md | 39 ++++++--- .../specs/2026-10-02-terminplaner-design.md | 2 +- public/datenschutz.html | 4 +- .../avv-terminplaner-2026-10-05.html | 8 +- .../avv-terminplaner-2026-10-05.pdf | Bin 106872 -> 109621 bytes .../avv-terminplaner-2026-10-05.pdf.sha256 | 2 +- ...sbeschreibung-terminplaner-2026-10-05.html | 2 +- ...gsbeschreibung-terminplaner-2026-10-05.pdf | Bin 81210 -> 81626 bytes ...reibung-terminplaner-2026-10-05.pdf.sha256 | 2 +- ...onen-leistungsbeschreibung-2026-09-30.html | 78 ++++++++++++++++++ .../funktionen-leistungsbeschreibung.html | 1 + scripts/build-legal-html.mjs | 4 +- test/buildLegalHtml.test.js | 2 +- test/legalTexts.test.js | 38 +++++++++ test/termineKanzleiPaket.test.js | 73 ++++++++++++++++ test/termineTicket.test.js | 24 +++++- test/termineVertragsunterlagen.test.js | 39 ++++++++- 22 files changed, 299 insertions(+), 33 deletions(-) create mode 100644 public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html diff --git a/docs/WEBklar-Datenschutzerklaerung.pdf b/docs/WEBklar-Datenschutzerklaerung.pdf index d94699ec3e0dba527fdf77834189ea6742006e5a..99be3626279f64e3b05a361fcf96095279452b97 100644 GIT binary patch delta 34035 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

#?zLKss9$8cx#PtX3#Gybd!R2TvK+pAD7 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 Kunde sieht, ändert und löscht die Termine im Kundenportal. Dort verarbeiten wir als Verantwortliche seine Einstellungen für den Terminplaner (Betriebsangaben, Leistungen, Namen und Zeiten der gebuchten Personen oder Plätze, Öffnungszeiten, Absagefristen und Texte), wie die übrigen Portal-Daten (Abschnitt 6) auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO. Bevor der Kunde den Terminplaner bestellt, füllt er im Kundenportal einen Fragebogen aus (Branche und Betrieb, Personen oder Plätze, Leistungen, Zeiten, Regeln, Angaben von Gästen, Benachrichtigungen und Website); seine Eingaben speichern wir als Entwurf seiner Einstellungen. Bestellt er nicht, löschen wir den Entwurf 90 Tage nach der letzten Änderung, bei der Löschung seines Kundenkontos zugleich mit dem Konto. Die Bestellung und ihren Nachweis beschreibt Abschnitt 7. Für jede Person oder jeden Platz kann der Kunde einen geheimen Link erzeugen, mit dem er die bestätigten Termine in seinem Kalenderprogramm abonniert; wer den Link kennt, sieht diese Termine. Der Kunde kann den Link jederzeit durch einen neuen ersetzen.

Im Namen des Kunden senden wir E-Mails an Gäste (Bestätigung der E-Mail-Adresse, Bestätigung, Änderung oder Absage eines Termins, Eingangsbestätigung eines Widerrufs und, wenn der Gast das gewählt hat, eine Erinnerung) und an den Kunden (neue Buchung, Absage, Widerruf). Der Versand läuft über den E-Mail-Dienst der Hetzner Online GmbH (Rechenzentrum Nürnberg, Abschnitt 8); als Absender erscheint der Kunde, Antworten gehen an ihn. Wir verschicken keine Werbung, setzen keine Tracking-Pixel ein und erhalten keine Kopie. Bis zum Versand liegt jede E-Mail in einer Warteschlange. Nach dem Versand löschen wir dort Empfängeradresse und Inhalt, den Eintrag selbst nach sieben Tagen; E-Mails, die nicht zugestellt werden konnten, löschen wir nach 48 Stunden.

Beim Aufruf einer Kundenwebsite mit Terminbuchung lädt der Browser das Programm der Terminbuchung von unserem Server (project.webklar.com) und schon beim Laden der Seite die Konfiguration mit den Texten und Leistungen. Ist die Terminbuchung unmittelbar in die Seite eingebaut, holt sie die freien Termine, sobald der Gast durchklickt; sitzt sie hinter einem Knopf, geschieht das erst nach dem Klick auf den Knopf. Dabei gelten die Protokolle in Abschnitt 3. Die Terminbuchung setzt keine Cookies und speichert nichts im Browser des Gastes. Zum Schutz vor Missbrauch und um die Zahl der Anfragen zu begrenzen (höchstens zehn Buchungen je zehn Minuten und je IP-Adresse), merken wir uns die Zeitpunkte der Aufrufe je IP-Adresse nur im Arbeitsspeicher des Servers, nicht dauerhaft; mit der Buchung speichern wir die IP-Adresse nicht. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; unser berechtigtes Interesse ist der sichere und störungsfreie Betrieb.

-

Löschfristen: Nicht bestätigte Buchungen löschen wir 48 Stunden nach Ablauf der Bestätigungsfrist von 30 Minuten, abgesagte oder abgelehnte Termine nach 30 Tagen, bestätigte Termine nach der Frist, die der Kunde eingestellt hat (Vorgabe 90 Tage, einstellbar von 14 bis 365 Tagen nach dem Termin). Nicht bestellte Entwürfe löschen wir 90 Tage nach der letzten Änderung. Endet das Wartungs-Abo oder schalten wir die Funktion ab, schalten wir den Terminplaner spätestens am folgenden Tag ab und löschen alle Termindaten und Einstellungen 30 Tage danach; beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schalten wir ihn mit den vorhandenen Daten wieder ein. In unseren Datensicherungen bleiben gelöschte Daten noch bis zu sieben Tage erhalten und werden dann überschrieben. Die Daten liegen auf unserem Server bei Hetzner im Rechenzentrum Falkenstein (Deutschland), wie die übrigen Portal-Daten (Abschnitt 3).

+

Löschfristen: Nicht bestätigte Buchungen löschen wir 48 Stunden nach Ablauf der Bestätigungsfrist von 30 Minuten, abgesagte oder abgelehnte Termine nach 30 Tagen, bestätigte Termine nach der Frist, die der Kunde eingestellt hat (Vorgabe 90 Tage, einstellbar von 14 bis 365 Tagen nach dem Termin). Nicht bestellte Entwürfe löschen wir 90 Tage nach der letzten Änderung. Endet das Wartungs-Abo oder schalten wir die Funktion ab, schalten wir den Terminplaner spätestens am folgenden Tag ab und löschen alle Termindaten und Einstellungen 30 Tage danach; beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schalten wir ihn mit den vorhandenen Daten wieder ein. Eine Ausnahme ist das Einrichtungs-Ticket, in dem wir die Einrichtung als Arbeitsnachweis festhalten (Abschnitt 6): Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen. In unseren Datensicherungen bleiben gelöschte Daten noch bis zu sieben Tage erhalten und werden dann überschrieben. Die Daten liegen auf unserem Server bei Hetzner im Rechenzentrum Falkenstein (Deutschland), wie die übrigen Portal-Daten (Abschnitt 3).

``` diff --git a/docs/rechtliches/termine-kanzlei-paket.md b/docs/rechtliches/termine-kanzlei-paket.md index 05950ee..b48f1ce 100644 --- a/docs/rechtliches/termine-kanzlei-paket.md +++ b/docs/rechtliches/termine-kanzlei-paket.md @@ -58,7 +58,7 @@ Der Terminplaner ist ein Buchungs-Widget für die Website eines Betriebs (zum Be 1. Ein täglicher Abgleich prüft das Wartungs-Abo. Endet es (auch durch Wechsel ins Hosting-Abo oder durch Widerruf des Abschlusses oder eines Wechsels), schaltet WEBklar den Terminplaner spätestens am folgenden Tag ab und informiert den Kunden mit der Mail K22. Ist etwas nicht lesbar, schaltet der Abgleich nichts ab und versucht es am nächsten Tag erneut. ⚖ Q7 2. Nach dem Abschalten nimmt der Terminplaner keine neuen Buchungen mehr an. Die Termine bleiben im Kundenportal sichtbar und als CSV-Datei exportierbar, Gäste können über ihren Link absagen, bereits angeforderte Erinnerungen laufen weiter, der Kunde informiert seine Gäste. -3. 30 Tage nach dem Abschalten löscht WEBklar alle Termindaten und die Einstellungen. Beginnt innerhalb dieser 30 Tage wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen ohne weitere Kosten wieder ein (Rückkehr, Mail K23). Nach der Löschung sind ein neuer Fragebogen und die Einrichtung für 149 € noch einmal nötig. ⚖ Q9 +3. 30 Tage nach dem Abschalten löscht WEBklar alle Termindaten und die Einstellungen; das Einrichtungs-Ticket des Teams bleibt als Arbeitsnachweis mit einer Kurzfassung der Einstellungen bestehen (keine Daten von Gästen). Beginnt innerhalb dieser 30 Tage wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen ohne weitere Kosten wieder ein (Rückkehr, Mail K23). Nach der Löschung sind ein neuer Fragebogen und die Einrichtung für 149 € noch einmal nötig. ⚖ Q9 4. Endet das Wartungs-Abo, bevor der Terminplaner freigeschaltet ist, erstattet WEBklar die 149 € vollständig. Der Abgleich schaltet den Terminplaner mit dem Grund „Abo endete vor Einrichtung“ ab und meldet dem Team die Erstattung (T19); die Erstattung löst der Inhaber in Stripe aus, es gibt keine automatische Rückzahlung. In diesem Fall gibt es keine automatische Rückkehr. ⚖ Q6 ### 2.4 Widerruf der Bestellung durch den Kunden @@ -240,7 +240,7 @@ Die Datei ist `docs/rechtliches/leistungsbeschreibung-terminplaner.md`; sie ist > > (2) Mit dem Abschalten nimmt der Terminplaner keine neuen Buchungen mehr an, und das Widget zeigt den Ausweichtext. Die Termine bleiben im Kundenportal sichtbar, und der Kunde kann sie als CSV-Datei exportieren. Gäste können über ihren Link absagen. Bereits angeforderte Erinnerungen laufen weiter. Der Kunde informiert seine Gäste. > -> (3) WEBklar löscht alle Termindaten und die Einstellungen 30 Tage nach dem Abschalten. +> (3) WEBklar löscht alle Termindaten und die Einstellungen 30 Tage nach dem Abschalten. Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen (Nummer 9 Abs. 6 des AVV Terminplaner). > > (4) Beginnt innerhalb dieser 30 Tage wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen ohne weitere Kosten wieder ein. Nach der Löschung ist eine neue Einrichtung nötig (neuer Fragebogen, neuer Preis nach Nr. 5). > @@ -282,7 +282,7 @@ Die Datei ist `docs/rechtliches/avv-terminplaner.md`; sie ist als Anlage A volls > (1) Der Kunde schließt diesen Vertrag, wenn er im Kundenportal die Einrichtung des Terminplaners bestellt und dabei per Haken diesem Vertrag und der Leistungsbeschreibung „Terminplaner“ („Leistungsbeschreibung“) in der angezeigten Fassung zustimmt. Das Portal speichert die Fassung, den Zeitpunkt, das Kundenkonto und die angemeldete Person. Anschließend sendet WEBklar dem Kunden eine E-Mail, die beide Texte und die Widerrufsbelehrung in dieser Fassung als PDF enthält und auf sie verlinkt. > -> (2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält die E-Mail nach Absatz 1 anschließend. +> (2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält anschließend eine E-Mail mit diesen beiden Texten als PDF. ⚖ Q10, Q21 @@ -328,7 +328,7 @@ Die Datei ist `docs/rechtliches/avv-terminplaner.md`; sie ist als Anlage A volls > > (5) Der Löschlauf läuft täglich; gelöscht wird frühestens nach Ablauf der jeweiligen Frist. Ist an einem Tag mehr zu löschen, als ein Lauf schafft, folgt der Rest im nächsten Lauf. > -> (6) Ist der Terminplaner abgeschaltet oder das Wartungs-Abo beendet, löscht WEBklar alle Termindaten und die Einstellungen 30 Tage danach. Bis dahin kann der Kunde die Termine im Kundenportal als CSV-Datei exportieren. Beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen wieder ein (Nr. 8 Abs. 4 der Leistungsbeschreibung). Früher löscht der Kunde einzelne Gastdaten selbst mit der Aktion „Gastdaten löschen“ (Nummer 8 Abs. 2); alle Daten löscht WEBklar auf Weisung des Kunden in Textform unverzüglich. +> (6) Ist der Terminplaner abgeschaltet oder das Wartungs-Abo beendet, löscht WEBklar alle Termindaten und die Einstellungen 30 Tage danach. Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen (zum Beispiel Betriebsangaben, Namen der Leistungen, die ersten acht Namen der Personen oder Plätze und die Wünsche des Kunden zum Einbau) und enthält keine Daten von Gästen; dafür gilt die Datenschutzerklärung von WEBklar (Abschnitt 6). Bis zur Löschung kann der Kunde die Termine im Kundenportal als CSV-Datei exportieren. Beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen wieder ein (Nr. 8 Abs. 4 der Leistungsbeschreibung). Früher löscht der Kunde einzelne Gastdaten selbst mit der Aktion „Gastdaten löschen“ (Nummer 8 Abs. 2); alle Daten löscht WEBklar auf Weisung des Kunden in Textform unverzüglich. > > (7) Entwürfe aus dem Fragebogen, aus denen keine Bestellung geworden ist, löscht WEBklar 90 Tage nach der letzten Änderung. > @@ -535,7 +535,7 @@ Alte Fassung (Stand 3a0b008), Abschnitt 2 derselben Leistungsbeschreibung zum Pr Die Bestellbestätigung K15 enthielt nach unserem Stand weder eine Belehrung noch Anhänge. Der Haken zitierte also § 356 Abs. 4 BGB und enthielt keinen Hinweis auf den Wertersatz (§ 357a Abs. 2 BGB), den die Leistungsbeschreibung nur allgemein nannte; der Preis war „inklusive Umsatzsteuer“ angegeben (richtig ist § 19 UStG, Q19). Lief bei diesen News-Altkunden, soweit sie Verbraucher sind, die Widerrufsfrist nach § 356 Abs. 3 BGB nicht an? Wenn ja: Sollen wir die Belehrung per Mail nachholen (Form, Inhalt, Zeitpunkt, Hinweis zum Wertersatz), oder genügt es, nur künftig die neuen Texte zu verwenden? Was gilt für bereits eingebaute und freigeschaltete News-Pinnwände (Erlöschen des Widerrufsrechts, Wertersatz)? Die Zahl der betroffenen Fälle liefert der Inhaber vor der Übergabe: [Anzahl der Bestellungen seit 2026-09-30 mit dem alten Text]. -**Fundstelle im Text.** Abschnitt 3.3 (neuer und früherer Haken), Abschnitt 3.2 (Belehrung der Funktionen, die die News künftig ebenfalls nutzt); Programm: `config.features.news` (neuer Haken; bestehende Bestellungen behalten den damals gespeicherten Text und die Fassung). Die alten Texte stammen aus dem Programmstand 3a0b008 (`server/config.js`, `public/vertragsunterlagen/funktionen-leistungsbeschreibung.html`). +**Fundstelle im Text.** Abschnitt 3.3 (neuer und früherer Haken), Abschnitt 3.2 (Belehrung der Funktionen, die die News künftig ebenfalls nutzt); Programm: `config.features.news` (neuer Haken; bestehende Bestellungen behalten den damals gespeicherten Text und die Fassung). Die alten Texte stammen aus dem Programmstand 3a0b008 (`server/config.js`, `public/vertragsunterlagen/funktionen-leistungsbeschreibung.html`). Die Leistungsbeschreibung der News-Pinnwand vom 30.09.2026 liegt unverändert unter `public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html` (unveränderte Kopie des Standes 3a0b008, durch eine Prüfsumme gesichert), weil Bestellungen seit dem 30.09.2026 auf ihr beruhen; die geltende Datei (Stand 05.10.2026) verweist am Anfang auf sie. **Unsere Annahme.** Nach unserer Lesart (kein Rechtsurteil) kann die Frist bei fehlender ordnungsgemäßer Belehrung nach § 356 Abs. 3 BGB nicht angelaufen sein. Der Inhaber entscheidet nach Ihrem Befund: Belehrung nur nachholen, wenn die Frist danach nicht lief; sonst gelten die neuen Texte nur für künftige Bestellungen. @@ -593,9 +593,9 @@ Zur Erstattung des Einrichtungspreises, wenn WEBklar den Terminplaner danach bee ### Q9: 30 Tage nach dem Abschalten: Anker, Rückkehr, Sicherungen -**Frage.** Der Terminplaner endet mit dem Wartungs-Abo; WEBklar schaltet ihn spätestens am folgenden Tag ab und löscht alle Termindaten und Einstellungen 30 Tage nach dem Abschalten. Bis dahin kann der Kunde die Termine im Kundenportal ansehen und als CSV-Datei exportieren; beginnt ein neues Wartungs-Abo, schaltet WEBklar ohne Kosten mit den vorhandenen Daten wieder ein (Rückkehr, nur beim Abschaltgrund „Abo beendet“, `abo_ende`). Fragen: (a) Ist der Anker (Zeitpunkt des Abschaltens, `disabledAt`, nicht der Tag des Abo-Endes) und die Frist von 30 Tagen mit Art. 28 Abs. 3 lit. g DSGVO vereinbar? (b) Darf die Rückkehr ohne neue Zustimmung zur Fassung automatisch erfolgen? (c) Gelöschte Daten bleiben in der täglichen Vollsicherung bis zu sieben Tage (Rückspielen holt der Löschlauf nach): genügt das? (d) Der tägliche Löschlauf löscht frühestens nach Ablauf der jeweiligen Frist, nicht sekundengenau; „48 Stunden“ und „30 Tage“ sind frühestmögliche Zeitpunkte (H4, A3). (e) Terminanfragen, die der Kunde bis zum angefragten Terminbeginn nicht beantwortet, gelten ab dann als abgelehnt, und die 30 Tage laufen ab diesem Zeitpunkt (AVV Nr. 9 Abs. 2). (f) Der Satz im Datenschutz-Absatz der Kunden-Website („Wird die Online-Terminbuchung abgeschaltet, zum Beispiel weil unser Vertrag mit WEBklar endet, werden alle Termindaten 30 Tage nach dem Abschalten gelöscht.“) und der Satz in Abschnitt 6c stimmen mit dem Programm überein, seit der tägliche Abgleich das Abschalten übernimmt. +**Frage.** Der Terminplaner endet mit dem Wartungs-Abo; WEBklar schaltet ihn spätestens am folgenden Tag ab und löscht alle Termindaten und Einstellungen 30 Tage nach dem Abschalten. Bis dahin kann der Kunde die Termine im Kundenportal ansehen und als CSV-Datei exportieren; beginnt ein neues Wartungs-Abo, schaltet WEBklar ohne Kosten mit den vorhandenen Daten wieder ein (Rückkehr, nur beim Abschaltgrund „Abo beendet“, `abo_ende`). Fragen: (a) Ist der Anker (Zeitpunkt des Abschaltens, `disabledAt`, nicht der Tag des Abo-Endes) und die Frist von 30 Tagen mit Art. 28 Abs. 3 lit. g DSGVO vereinbar? (b) Darf die Rückkehr ohne neue Zustimmung zur Fassung automatisch erfolgen? (c) Gelöschte Daten bleiben in der täglichen Vollsicherung bis zu sieben Tage (Rückspielen holt der Löschlauf nach): genügt das? (d) Der tägliche Löschlauf löscht frühestens nach Ablauf der jeweiligen Frist, nicht sekundengenau; „48 Stunden“ und „30 Tage“ sind frühestmögliche Zeitpunkte (H4, A3). (e) Terminanfragen, die der Kunde bis zum angefragten Terminbeginn nicht beantwortet, gelten ab dann als abgelehnt, und die 30 Tage laufen ab diesem Zeitpunkt (AVV Nr. 9 Abs. 2). (f) Der Satz im Datenschutz-Absatz der Kunden-Website („Wird die Online-Terminbuchung abgeschaltet, zum Beispiel weil unser Vertrag mit WEBklar endet, werden alle Termindaten 30 Tage nach dem Abschalten gelöscht.“) und der Satz in Abschnitt 6c stimmen mit dem Programm überein, seit der tägliche Abgleich das Abschalten übernimmt. (g) Das Einrichtungs-Ticket, in dem das Team die Einrichtung als Arbeitsnachweis festhält, bleibt nach der Löschung mit einer Kurzfassung der Einstellungen bestehen (Betriebsangaben, Namen der Leistungen, die ersten acht Namen der Personen oder Plätze, Wünsche des Kunden zum Einbau; keine Daten von Gästen). Leistungsbeschreibung Nr. 8 Abs. 3 und AVV Nr. 9 Abs. 6 sagen das; die Datenschutzerklärung (Abschnitt 6) nennt die Arbeitsnachweise und die Aufbewahrung bis zum Ablauf der Verjährungsfrist. Ist das neben der Löschpflicht des Art. 28 Abs. 3 lit. g DSGVO zulässig, auch wenn der Kunde die Löschung aller Daten anweist (AVV Nr. 9 Abs. 6)? -**Fundstelle im Text.** Abschnitt 3.4 (Nr. 8 Abs. 3 und 4), Abschnitt 3.5 (AVV Nr. 9, besonders Abs. 2, 6 und 8), Abschnitt 2.3; frühere Punkte H4, A3, C4 (Sicherungen), C7 (Satz in 6c); Mail K22 und Datenschutzerklärung 6c (Hausrunde); Programm: `LOESCHFRIST_TAGE`, `loescheAbgeschaltete`, `gleicheAboAb`. +**Fundstelle im Text.** Abschnitt 3.4 (Nr. 8 Abs. 3 und 4), Abschnitt 3.5 (AVV Nr. 9, besonders Abs. 2, 6 und 8), Abschnitt 2.3; frühere Punkte H4, A3, C4 (Sicherungen), C7 (Satz in 6c); Mail K22 und Datenschutzerklärung 6c (Hausrunde); Programm: `LOESCHFRIST_TAGE`, `loescheAbgeschaltete`, `gleicheAboAb`; Einrichtungs-Ticket: `termineTicketDetails`. **Unsere Annahme.** Ja. 30 Tage ab dem Abschalten sind angemessen, weil der Kunde in dieser Zeit Termine ansehen und exportieren kann und eine Rückkehr kostenlos ist. Die Rückkehr stellt den früheren Stand wieder her; die zugestimmte Fassung gilt weiter, eine neue Fassung braucht ihre Zustimmung nach AVV Nr. 12. Der Sicherungsüberhang von sieben Tagen folgt aus der täglichen Vollsicherung bei Hetzner (letzte sieben Tagessicherungen) und steht offen im Vertrag. @@ -763,11 +763,11 @@ Danach geht K16 mit Leistungsbeschreibung und AVV als PDF an den Kunden. Genügt **Frage.** Beim Klick auf „Zahlungspflichtig bestellen“ speichert das Portal als Nachweis die gezeigten Texte und Fassungen, den Zeitpunkt, die Stripe-Sitzung, IP-Adresse und Browserkennung, das Konto und die angemeldete Person. Die Datenschutzerklärung sagt dazu: -> Bestellen Sie eine Funktion (News-Pinnwand, Terminplaner), speichern wir als Nachweis die Texte und Fassungen, denen Sie zugestimmt haben, den Zeitpunkt Ihres Klicks auf „Zahlungspflichtig bestellen“, die Stripe-Sitzung, IP-Adresse und Browserkennung sowie Ihr Konto und die angemeldete Person. Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO; unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und der Zustimmungen, insbesondere für den Widerruf. Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet. Den Entwurf Ihres Fragebogens speichern wir bis zu 90 Tage nach Ihrer letzten Änderung und löschen ihn danach, wenn Sie nichts bestellt haben. +> Bestellen Sie eine Funktion (News-Pinnwand, Terminplaner), speichern wir als Nachweis die Texte und Fassungen, denen Sie zugestimmt haben, den Zeitpunkt Ihres Klicks auf „Zahlungspflichtig bestellen“, die Stripe-Sitzung, IP-Adresse und Browserkennung sowie Ihr Konto und die angemeldete Person. Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO; unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und der Zustimmungen, insbesondere für den Widerruf. Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet. Bestellen Sie ohne Abo (zum Beispiel nur die News-Pinnwand), löschen wir diese Angaben spätestens drei Jahre nach Ablauf des Jahres der Bestellung. Den Entwurf Ihres Fragebogens speichern wir bis zu 90 Tage nach Ihrer letzten Änderung und löschen ihn danach, wenn Sie nichts bestellt haben. -Ist die Speicherung der IP-Adresse und der Browserkennung für den Nachweis des Vertragsschlusses und der Zustimmungen erforderlich (Art. 6 Abs. 1 lit. f DSGVO) und die Aufbewahrung bis drei Jahre nach Ablauf des Jahres, in dem das letzte Abo endet, angemessen? Genügt die Information in der Datenschutzerklärung? +Ist die Speicherung der IP-Adresse und der Browserkennung für den Nachweis des Vertragsschlusses und der Zustimmungen erforderlich (Art. 6 Abs. 1 lit. f DSGVO) und die Aufbewahrung bis drei Jahre nach Ablauf des Jahres, in dem das letzte Abo endet, angemessen? Genügt die Information in der Datenschutzerklärung? Für Bestellungen ohne Abo (nur News) nennt die Erklärung eine eigene Frist: drei Jahre nach Ablauf des Jahres der Bestellung. Das Programm löscht diese Nachweise heute noch nicht; die Löschung wird vor Ablauf der ersten Frist (31.12.2029) nachgerüstet. Ist diese Frist angemessen? -**Fundstelle im Text.** Abschnitt 2.1 Schritt 4, Datenschutzerklärung § 7 (Hausrunde); Programm: `speichereZustimmung`, `zustimmungFuerSitzung`, `findDueDeletions` (Löschung der Nachweise gemeinsam mit den Abo-Daten des Kunden). +**Fundstelle im Text.** Abschnitt 2.1 Schritt 4, Datenschutzerklärung § 7 (Hausrunde); Programm: `speichereZustimmung`, `zustimmungFuerSitzung`, `findDueDeletions` (Löschung der Nachweise gemeinsam mit den Abo-Daten des Kunden; für Kunden ohne Abo noch offen, Abschnitt 7.7). **Unsere Annahme.** Ja: Der Nachweis dient dem Widerrufsrecht und der Beweisführung; die Frist entspricht der regelmäßigen Verjährung samt Ablauf des Jahres. @@ -937,6 +937,7 @@ Diese Punkte erledigt der Inhaber; kein Punkt ist Aufgabe der Kanzlei. Die Reihe - [ ] Die Platzhalter „ENTWURF (Mailrunde): …“ in `mails.danach` und `mails.bereit` des Terminplaners (Register in `server/config.js`) durch den endgültigen Wortlaut ersetzen. Sie stehen heute in K15 und K16 an Kunden. - [ ] Die Kopfkommentare von K22 und K23 („Texte sind Entwurf für die Mail-Überarbeitung“) in der Mail-Überarbeitung abarbeiten. +- [ ] K23 (Terminplaner läuft wieder) sagt „Deine Termine und Einstellungen sind unverändert da“. Für die Termine stimmt das nicht immer, weil der Löschlauf auch bei abgeschaltetem Terminplaner abgesagte und erledigte Termine nach ihren Fristen löscht. Den Satz in der Mail-Überarbeitung abschwächen. - [ ] Nach der Mail-Überarbeitung die gerenderten Mails K15 (mit den Zustimmungen) und K16 als **Anlage C** beilegen und der Kanzlei nachreichen; ihre Angemessenheit als Bestätigung auf einem dauerhaften Datenträger fragen Q3, Q20 und Q21. - [ ] G02 zeigt die Stornobedingungen und den Satz „Absagen richten sich nach den Stornobedingungen“ (Block `kein_widerruf`) auch bei kostenlosen Buchungen. Einen neutralen Satz festlegen, der für Buchungen ohne Preis passt (Q16). @@ -946,4 +947,20 @@ Diese Punkte erledigt der Inhaber; kein Punkt ist Aufgabe der Kanzlei. Die Reihe - [ ] Den Befund einarbeiten: Texte ändern, neues Fassungsdatum setzen, HTML und PDFs neu erzeugen, Archiv der Gästetexte und Prüfsummen nachziehen. Dieses Paket (`docs/rechtliches/termine-kanzlei-paket.md`) wird dabei nachgezogen; sein Test meldet jedes Zitat, das nicht mehr wörtlich im Programm oder in den Dokumenten steht. - [ ] Über die News-Altfälle entscheiden (Q4): Belehrung per Mail nachholen oder nur künftig die neuen Texte. - [ ] Die Fassung vor dem ersten fremden Betrieb ausdrücklich freigeben; erst danach die Adresse des ersten fremden Betriebs in die Pilotliste aufnehmen. -- [ ] Beim Livegang: das Schema-Skript des Portals (`scripts/feature-setup.mjs`, erst mit `--check`) vor dem ersten Löschlauf der Aufbewahrungsfristen ausführen, damit der Index auf den Zustimmungsnachweisen vorhanden ist; den Datenschutz-Abschnitt der Test-Website des Terminplaners auf den Endtext bringen. +- [ ] Beim Livegang die Reihenfolge in Abschnitt 7.6 einhalten; den Datenschutz-Abschnitt der Test-Website des Terminplaners auf den Endtext bringen. + +### 7.6 Livegang: Reihenfolge + +Diese Schritte gelten für den Tag, an dem die Betriebsart `on` gesetzt wird. Die Reihenfolge ist wichtig, vor allem: beide Schemata vor dem Code-Deploy und `on` als letzter Schritt. + +- [ ] Vor dem Code-Deploy das Schema des Terminplaners anlegen, erst mit `--check`: `node scripts/termine-setup.mjs` ergänzt in `termineConfig` die Spalte `fragebogen`, in `termineBookings` die Indizes `idx_status_ends` und `idx_status_updated` und in `termineOutbox` den Index `idx_booking`. Ohne sie scheitern Schreibzugriffe und Abfragen des neuen Programms (der Fragebogen, der tägliche Löschlauf und das Löschen von Gastdaten). +- [ ] Vor dem Code-Deploy das Schema der Funktionen anlegen, erst mit `--check`: `node scripts/feature-setup.mjs` (neue Felder von `portalFeatures` und die Collection `featureConsents` mit ihren Indizes). Der Zeitpunkt ist der Code-Deploy, nicht erst der erste Löschlauf der Aufbewahrungsfristen: Schon die erste Bestellung des neuen Programms schreibt die neuen Felder, und ohne Schema antwortet Appwrite mit „Unknown attribute“. +- [ ] Hat sich `public/datenschutz.html` geändert, das PDF der Datenschutzerklärung mit `scripts/build-legal-pdfs.sh datenschutz` neu drucken, nicht mit `all` (das druckt auch die PDFs der Abo-Bedingungen und des Leitfadens neu); die Prüfsumme `docs/WEBklar-Datenschutzerklaerung.pdf.sha256` gehört dazu. +- [ ] Den Code zu einer ruhigen Zeit deployen. Der Nachweis einer Buchung speichert die Fassung der Gästetexte, die der Server beim Speichern hat; bucht ein Gast genau während des Deploys, kann sie von der abweichen, die er auf dem Bildschirm sah. +- [ ] Nach dem Deploy die Uploads in WOMS „Rechtliches“ erledigen (Abschnitt 7.3). +- [ ] Nach dem Deploy und nur mit Freigabe des Inhabers: `scripts/feature-consent-felder-leeren.mjs` zuerst als Probelauf ausführen (ohne Argument oder mit `--dry-run`; schreibt nichts), die Liste prüfen und erst dann mit `--apply` ausführen. Das Skript leert IP-Adresse und Browserkennung der Bestellung an den Funktionsdokumenten (`portalFeatures`), soweit der Nachweis (`featureConsents`) sie trägt; neue Bestellungen speichern sie dort nicht mehr. +- [ ] Als allerletzten Schritt `TERMINE_ENABLED=on` setzen, nachdem alle Punkte oben und die Freigabe der Fassung (Abschnitt 7.5) erledigt sind. + +### 7.7 Nach dem Livegang + +- [ ] Die Löschfrist für die Nachweise von Kunden ohne Abo (nur News) umsetzen, bevor die erste Frist abläuft (31.12.2029). Die Datenschutzerklärung (Abschnitt 7) sagt für Bestellungen ohne Abo „spätestens drei Jahre nach Ablauf des Jahres der Bestellung“; der Löschlauf (`findDueDeletions`) erfasst heute nur Kunden mit einem Abo, ein Kunde ohne Abo ist nie fällig. Umsetzung: Kunden ohne Abo-Dokument, aber mit Nachweisen in `featureConsents`, mit dem Ankerjahr der letzten Bestellung in den Plan aufnehmen und nur die Nachweise und die Bestellangaben am Funktionsdokument löschen, nicht die Beiträge. diff --git a/docs/superpowers/specs/2026-10-02-terminplaner-design.md b/docs/superpowers/specs/2026-10-02-terminplaner-design.md index eba5d56..cb7534e 100644 --- a/docs/superpowers/specs/2026-10-02-terminplaner-design.md +++ b/docs/superpowers/specs/2026-10-02-terminplaner-design.md @@ -23,7 +23,7 @@ Die Funktion ersetzt die Kachel „Terminplaner · Kommt bald“ (`public/funkti | # | Entscheidung | |---|---| | E1 | Abrechnung: **einmalige Einrichtung + nur solange ein Wartungs-Abo läuft** (wie Website-Analyse). Endet das Abo, endet der Terminplaner. Hosting-Abo reicht nicht. | -| E2 | Einrichtungspreis **149 €** (brutto, einmalig, Stripe Checkout wie News). | +| E2 | Einrichtungspreis **149 €** (ursprünglich „brutto“, seit TP2 ohne USt nach § 19 UStG; einmalig, Stripe Checkout wie News). | | E3 | Umfang V1: **Personen und Plätze** (Einzelperson; Team mit Wahl der Person oder „egal“; buchbare Plätze wie Kabine, Hebebühne). Pro Leistung: **sofort verbindlich** oder **Anfrage** (Betrieb bestätigt). Gruppen/Kurse/Tische später. | | E4 | Der Gast **bestätigt seine E-Mail-Adresse per Link**, bevor der Termin gilt; der Slot ist so lange 30 Minuten reserviert. | | E5 | **Ein gemeinsames Widget**, je Kunde gestaltet (Farben, Schrift, Rundungen, Texte, Position) + offene, versionierte Schnittstelle für Sonderfälle. | diff --git a/public/datenschutz.html b/public/datenschutz.html index 06f8a72..dd7e043 100644 --- a/public/datenschutz.html +++ b/public/datenschutz.html @@ -100,12 +100,12 @@

Der Kunde sieht, ändert und löscht die Termine im Kundenportal. Dort verarbeiten wir als Verantwortliche seine Einstellungen für den Terminplaner (Betriebsangaben, Leistungen, Namen und Zeiten der gebuchten Personen oder Plätze, Öffnungszeiten, Absagefristen und Texte), wie die übrigen Portal-Daten (Abschnitt 6) auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO. Bevor der Kunde den Terminplaner bestellt, füllt er im Kundenportal einen Fragebogen aus (Branche und Betrieb, Personen oder Plätze, Leistungen, Zeiten, Regeln, Angaben von Gästen, Benachrichtigungen und Website); seine Eingaben speichern wir als Entwurf seiner Einstellungen. Bestellt er nicht, löschen wir den Entwurf 90 Tage nach der letzten Änderung, bei der Löschung seines Kundenkontos zugleich mit dem Konto. Die Bestellung und ihren Nachweis beschreibt Abschnitt 7. Für jede Person oder jeden Platz kann der Kunde einen geheimen Link erzeugen, mit dem er die bestätigten Termine in seinem Kalenderprogramm abonniert; wer den Link kennt, sieht diese Termine. Der Kunde kann den Link jederzeit durch einen neuen ersetzen.

Im Namen des Kunden senden wir E-Mails an Gäste (Bestätigung der E-Mail-Adresse, Bestätigung, Änderung oder Absage eines Termins, Eingangsbestätigung eines Widerrufs und, wenn der Gast das gewählt hat, eine Erinnerung) und an den Kunden (neue Buchung, Absage, Widerruf). Der Versand läuft über den E-Mail-Dienst der Hetzner Online GmbH (Rechenzentrum Nürnberg, Abschnitt 8); als Absender erscheint der Kunde, Antworten gehen an ihn. Wir verschicken keine Werbung, setzen keine Tracking-Pixel ein und erhalten keine Kopie. Bis zum Versand liegt jede E-Mail in einer Warteschlange. Nach dem Versand löschen wir dort Empfängeradresse und Inhalt, den Eintrag selbst nach sieben Tagen; E-Mails, die nicht zugestellt werden konnten, löschen wir nach 48 Stunden.

Beim Aufruf einer Kundenwebsite mit Terminbuchung lädt der Browser das Programm der Terminbuchung von unserem Server (project.webklar.com) und schon beim Laden der Seite die Konfiguration mit den Texten und Leistungen. Ist die Terminbuchung unmittelbar in die Seite eingebaut, holt sie die freien Termine, sobald der Gast durchklickt; sitzt sie hinter einem Knopf, geschieht das erst nach dem Klick auf den Knopf. Dabei gelten die Protokolle in Abschnitt 3. Die Terminbuchung setzt keine Cookies und speichert nichts im Browser des Gastes. Zum Schutz vor Missbrauch und um die Zahl der Anfragen zu begrenzen (höchstens zehn Buchungen je zehn Minuten und je IP-Adresse), merken wir uns die Zeitpunkte der Aufrufe je IP-Adresse nur im Arbeitsspeicher des Servers, nicht dauerhaft; mit der Buchung speichern wir die IP-Adresse nicht. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; unser berechtigtes Interesse ist der sichere und störungsfreie Betrieb.

-

Löschfristen: Nicht bestätigte Buchungen löschen wir 48 Stunden nach Ablauf der Bestätigungsfrist von 30 Minuten, abgesagte oder abgelehnte Termine nach 30 Tagen, bestätigte Termine nach der Frist, die der Kunde eingestellt hat (Vorgabe 90 Tage, einstellbar von 14 bis 365 Tagen nach dem Termin). Nicht bestellte Entwürfe löschen wir 90 Tage nach der letzten Änderung. Endet das Wartungs-Abo oder schalten wir die Funktion ab, schalten wir den Terminplaner spätestens am folgenden Tag ab und löschen alle Termindaten und Einstellungen 30 Tage danach; beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schalten wir ihn mit den vorhandenen Daten wieder ein. In unseren Datensicherungen bleiben gelöschte Daten noch bis zu sieben Tage erhalten und werden dann überschrieben. Die Daten liegen auf unserem Server bei Hetzner im Rechenzentrum Falkenstein (Deutschland), wie die übrigen Portal-Daten (Abschnitt 3).

+

Löschfristen: Nicht bestätigte Buchungen löschen wir 48 Stunden nach Ablauf der Bestätigungsfrist von 30 Minuten, abgesagte oder abgelehnte Termine nach 30 Tagen, bestätigte Termine nach der Frist, die der Kunde eingestellt hat (Vorgabe 90 Tage, einstellbar von 14 bis 365 Tagen nach dem Termin). Nicht bestellte Entwürfe löschen wir 90 Tage nach der letzten Änderung. Endet das Wartungs-Abo oder schalten wir die Funktion ab, schalten wir den Terminplaner spätestens am folgenden Tag ab und löschen alle Termindaten und Einstellungen 30 Tage danach; beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schalten wir ihn mit den vorhandenen Daten wieder ein. Eine Ausnahme ist das Einrichtungs-Ticket, in dem wir die Einrichtung als Arbeitsnachweis festhalten (Abschnitt 6): Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen. In unseren Datensicherungen bleiben gelöschte Daten noch bis zu sieben Tage erhalten und werden dann überschrieben. Die Daten liegen auf unserem Server bei Hetzner im Rechenzentrum Falkenstein (Deutschland), wie die übrigen Portal-Daten (Abschnitt 3).

7. Abos und Zahlung über Stripe

Schließen Sie eines unserer Abos ab, verarbeiten wir Name, E-Mail-Adresse, Rechnungsanschrift, das gewählte Abo und den gebuchten Zusatzspeicher, Abo- und Zahlungsstatus sowie Ihre Rechnungen. Zahlungsdaten wie Kartennummer oder IBAN geben Sie direkt bei unserem Zahlungsdienstleister ein. Wir erhalten davon nur eingeschränkte Angaben, etwa die Art des Zahlungsmittels und die letzten vier Ziffern.

Um Ihre Bestellungen nachweisen zu können, speichern wir bei jeder Bestellung Zeitpunkt, Version der Vertragsbedingungen, gegebenenfalls Ihre Angaben zum Leistungsbeginn sowie IP-Adresse und Browserkennung, im Kundenportal und als Angaben zum Abo bei Stripe. Das gilt für den Abschluss eines Abos, für den Wechsel vom Hosting-Abo ins Wartungs-Abo und für jede Bestellung von E-Mail-Zusatzspeicher. Außerdem halten wir Ihre Bestellungen und Änderungen als Vertragsereignisse mit Zeitpunkt und Status fest: Abschluss, Wechsel, Zusatzspeicher einschließlich Verringerungen, Kündigung und Widerruf. Bei Verringerungen, Kündigung und Widerruf speichern wir als Vertragsereignis nur Zeitpunkt und Status, keine IP-Adresse und Browserkennung. Den Stand Ihrer Bestellungen, etwa laufende Widerrufsfristen und die Einrichtung von Zusatzspeicher, sehen Sie im Kundenportal unter „Verträge“. Für uns sind die Vertragsereignisse zugleich die Aufgabenliste, um Änderungen am Zusatzspeicher umzusetzen. Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO. Unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und Ihrer Bestellungen. Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet.

-

Bestellen Sie eine Funktion (News-Pinnwand, Terminplaner), speichern wir als Nachweis die Texte und Fassungen, denen Sie zugestimmt haben, den Zeitpunkt Ihres Klicks auf „Zahlungspflichtig bestellen“, die Stripe-Sitzung, IP-Adresse und Browserkennung sowie Ihr Konto und die angemeldete Person. Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO; unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und der Zustimmungen, insbesondere für den Widerruf. Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet. Den Entwurf Ihres Fragebogens speichern wir bis zu 90 Tage nach Ihrer letzten Änderung und löschen ihn danach, wenn Sie nichts bestellt haben.

+

Bestellen Sie eine Funktion (News-Pinnwand, Terminplaner), speichern wir als Nachweis die Texte und Fassungen, denen Sie zugestimmt haben, den Zeitpunkt Ihres Klicks auf „Zahlungspflichtig bestellen“, die Stripe-Sitzung, IP-Adresse und Browserkennung sowie Ihr Konto und die angemeldete Person. Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO; unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und der Zustimmungen, insbesondere für den Widerruf. Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet. Bestellen Sie ohne Abo (zum Beispiel nur die News-Pinnwand), löschen wir diese Angaben spätestens drei Jahre nach Ablauf des Jahres der Bestellung. Den Entwurf Ihres Fragebogens speichern wir bis zu 90 Tage nach Ihrer letzten Änderung und löschen ihn danach, wenn Sie nichts bestellt haben.

Die Zahlungen wickelt die Stripe Payments Europe, Limited, 1 Grand Canal Street Lower, Grand Canal Dock, Dublin, D02 H210, Irland („Stripe“) ab. Stripe verarbeitet die Daten teils in unserem Auftrag und teils als eigener Verantwortlicher, etwa zur Betrugsvorbeugung und zur Erfüllung gesetzlicher Pflichten. Dabei können Daten an die Stripe, LLC in den USA übermittelt werden. Die Stripe, LLC ist nach dem EU-US Data Privacy Framework zertifiziert, für das ein Angemessenheitsbeschluss der EU-Kommission besteht. Auf der Zahlungsseite von Stripe gelten dessen Datenschutzhinweise: stripe.com/de/privacy. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO.

Beantragen Sie im Kundenportal eine Übernahmegutschrift, verarbeiten wir Ihre Angaben zum bisherigen Anbieter (Anbieter, Leistung, Domain, Rechnungsbetrag, bezahlter Zeitraum), Ihre Nachricht, die hochgeladenen Nachweise wie Rechnung oder Kündigungsbestätigung, die E-Mail-Adresse für unsere Antwort sowie Zeitpunkt und IP-Adresse Ihrer Bestätigung. Die Nachweise speichern wir auf unserem Server; unsere Mitarbeiter erhalten per E-Mail nur einen Hinweis auf den Antrag. Zur Prüfung fragen wir die öffentlichen DNS-Einträge der angegebenen Domain ab (Nameserver, Mailserver, IP-Adresse). Eine genehmigte Gutschrift buchen wir bei Stripe als Guthaben auf Ihr Kundenkonto. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO, für den Nachweis Ihrer Bestätigung Art. 6 Abs. 1 lit. f DSGVO. Nachweise zu abgelehnten Anträgen löschen wir sechs Monate nach der Entscheidung. Bei genehmigten Anträgen sind Antrag und Nachweise Beleg für die Gutschrift und werden wie in Abschnitt 9 beschrieben aufbewahrt.

Über die Seiten project.webklar.com/kuendigen.html und project.webklar.com/widerrufen.html können Sie Ihren Vertrag ohne Anmeldung kündigen oder widerrufen (§§ 312k, 356a BGB). Dabei verarbeiten wir Ihren Namen, Ihre E-Mail-Adresse, den gewählten Vertrag, beim E-Mail-Zusatzspeicher die Zahl der Pakete, die Sie kündigen, gegebenenfalls Ihre Kundennummer, bei der Kündigung außerdem Art und gewünschten Zeitpunkt der Kündigung und gegebenenfalls Ihre Begründung, sowie den Zeitpunkt, zu dem Ihre Erklärung bei uns eingegangen ist. Sind Sie im Kundenportal angemeldet, füllen wir Name, E-Mail-Adresse und Kundennummer aus Ihrem Konto vor. Wir nutzen die Angaben, um Ihre Erklärung zu bearbeiten: Anhand der E-Mail-Adresse ordnen wir sie Ihrem Abo zu, vermerken den Eingang beim Abo und tragen die Kündigung oder den Widerruf, soweit möglich, bei Stripe ein. Sie erhalten sofort eine Bestätigung des Eingangs mit Inhalt, Datum und Uhrzeit Ihrer Erklärung an die angegebene E-Mail-Adresse; unser Team erhält eine E-Mail mit diesen Angaben. Rechtsgrundlage ist Art. 6 Abs. 1 lit. c DSGVO (§§ 312k, 356a BGB) in Verbindung mit Art. 6 Abs. 1 lit. b DSGVO. Die IP-Adresse Ihres Aufrufs nutzen wir nur, um die Zahl der Anfragen zu begrenzen (höchstens zehn pro Stunde je IP-Adresse). Dafür merken wir uns die Zeitpunkte der Aufrufe je IP-Adresse nur im Arbeitsspeicher des Servers, nicht dauerhaft; mit Ihrer Erklärung speichern wir die IP-Adresse nicht. Im Übrigen gilt für den Aufruf Abschnitt 3. Ihre Erklärung und unsere Bestätigung bewahren wir wie die übrigen Vertragsdaten drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet auf; soweit die E-Mails Geschäftsbriefe sind, gilt die Frist aus Abschnitt 9.

diff --git a/public/rechtliches/avv-terminplaner-2026-10-05.html b/public/rechtliches/avv-terminplaner-2026-10-05.html index dd80625..d05ce7c 100644 --- a/public/rechtliches/avv-terminplaner-2026-10-05.html +++ b/public/rechtliches/avv-terminplaner-2026-10-05.html @@ -54,7 +54,7 @@

(1) Der Kunde schließt diesen Vertrag, wenn er im Kundenportal die Einrichtung des Terminplaners bestellt und dabei per Haken diesem Vertrag und der Leistungsbeschreibung „Terminplaner“ („Leistungsbeschreibung“) in der angezeigten Fassung zustimmt. Das Portal speichert die Fassung, den Zeitpunkt, das Kundenkonto und die angemeldete Person. Anschließend sendet WEBklar dem Kunden eine E-Mail, die beide Texte und die Widerrufsbelehrung in dieser Fassung als PDF enthält und auf sie verlinkt.

-

(2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält die E-Mail nach Absatz 1 anschließend.

+

(2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält anschließend eine E-Mail mit diesen beiden Texten als PDF.

(3) Dieser Vertrag ist ein eigener Vertrag für den Terminplaner. Er ergänzt den Auftragsverarbeitungsvertrag in Anlage 1 der Abo-Bedingungen. Für den Terminplaner geht er Anlage 1 vor; im Übrigen gilt Anlage 1 ergänzend. In Datenschutzfragen geht er den Abo-Bedingungen und der Leistungsbeschreibung vor.

@@ -118,7 +118,7 @@

(1) WEBklar leitet Anfragen von Gästen und Beschäftigten, die an WEBklar gerichtet sind, unverzüglich an den Kunden weiter. WEBklar unterstützt ihn mit geeigneten technischen und organisatorischen Maßnahmen bei der Beantwortung.

-

(2) Dafür bietet das Kundenportal die Aktion „Gastdaten löschen“ und den Export der Termine als CSV-Datei. Mit „Gastdaten löschen“ leert der Kunde Name, E-Mail-Adresse, Telefonnummer, Nachricht und Zusatzfelder einer Buchung; Status und Zeiten bleiben. Noch nicht versandte E-Mails zu dieser Buchung löscht WEBklar dabei, und die Links des Gastes werden ungültig. Eine noch nicht bestätigte Buchung verfällt von selbst (Nummer 9 Abs. 1).

+

(2) Dafür bietet das Kundenportal die Aktion „Gastdaten löschen“ und den Export der Termine als CSV-Datei. Mit „Gastdaten löschen“ leert der Kunde Name, E-Mail-Adresse, Telefonnummer, Nachricht und Zusatzfelder einer Buchung; Status und Zeiten bleiben. Dabei löscht WEBklar die E-Mails zu dieser Buchung, die noch auf den Versand warten, und die Links des Gastes werden ungültig. E-Mails, deren Versand endgültig fehlgeschlagen ist, behalten Empfängeradresse und Inhalt, bis WEBklar sie nach Nummer 9 Abs. 4 löscht (48 Stunden nach dem Fehlschlag). Eine noch nicht bestätigte Buchung verfällt von selbst (Nummer 9 Abs. 1).

(3) Verletzungen des Schutzes personenbezogener Daten meldet WEBklar dem Kunden unverzüglich, möglichst innerhalb von 24 Stunden nach Kenntnis, mit den Informationen, die zu diesem Zeitpunkt vorliegen.

@@ -140,7 +140,7 @@

(5) Der Löschlauf läuft täglich; gelöscht wird frühestens nach Ablauf der jeweiligen Frist. Ist an einem Tag mehr zu löschen, als ein Lauf schafft, folgt der Rest im nächsten Lauf.

-

(6) Ist der Terminplaner abgeschaltet oder das Wartungs-Abo beendet, löscht WEBklar alle Termindaten und die Einstellungen 30 Tage danach. Bis dahin kann der Kunde die Termine im Kundenportal als CSV-Datei exportieren. Beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen wieder ein (Nr. 8 Abs. 4 der Leistungsbeschreibung). Früher löscht der Kunde einzelne Gastdaten selbst mit der Aktion „Gastdaten löschen“ (Nummer 8 Abs. 2); alle Daten löscht WEBklar auf Weisung des Kunden in Textform unverzüglich.

+

(6) Ist der Terminplaner abgeschaltet oder das Wartungs-Abo beendet, löscht WEBklar alle Termindaten und die Einstellungen 30 Tage danach. Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen (zum Beispiel Betriebsangaben, Namen der Leistungen, die ersten acht Namen der Personen oder Plätze und die Wünsche des Kunden zum Einbau) und enthält keine Daten von Gästen; dafür gilt die Datenschutzerklärung von WEBklar (Abschnitt 6). Bis zur Löschung kann der Kunde die Termine im Kundenportal als CSV-Datei exportieren. Beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen wieder ein (Nr. 8 Abs. 4 der Leistungsbeschreibung). Früher löscht der Kunde einzelne Gastdaten selbst mit der Aktion „Gastdaten löschen“ (Nummer 8 Abs. 2); alle Daten löscht WEBklar auf Weisung des Kunden in Textform unverzüglich.

(7) Entwürfe aus dem Fragebogen, aus denen keine Bestellung geworden ist, löscht WEBklar 90 Tage nach der letzten Änderung.

@@ -185,7 +185,7 @@ MissbrauchsschutzEin verstecktes Feld (Honeypot), eine Mindestzeit bis zum Absenden des Formulars mit signiertem Formular-Token und eine Mindestantwortzeit schützen vor automatisierten Buchungen. Grenzen je IP-Adresse, je Website und je E-Mail-Adresse sowie das Mailbudget je Stunde (insgesamt und je Funktion) gelten nur im Arbeitsspeicher; ein Neustart leert sie. DatenminimierungPflicht sind immer nur Name und E-Mail-Adresse; ob Telefonnummer, Nachricht und Zusatzfelder abgefragt werden, legt der Kunde fest. Mit der Buchung werden keine IP-Adresse und kein Browser-Kennzeichen gespeichert. Der Nachweis der Zustimmungen besteht aus der Fassung der Gästetexte, dem Zeitpunkt, dem Text des Buchungsknopfs, der Anrede und Hashes der übrigen gezeigten Texte, nicht aus diesen Texten. Nach dem Versand einer E-Mail werden Empfängeradresse und Inhalt in der Warteschlange geleert. TrennungAlle Buchungen, Belegungen und Warteschlangeneinträge tragen die Kennung der Funktion (eines Terminplaners je Website-Projekt); das Kundenportal und die öffentliche Schnittstelle lesen immer nur die Daten der jeweiligen Funktion. Die Hintergrundläufe (Löschung, Versand der E-Mails, Erinnerungen) gehen die Dokumente aller Funktionen nacheinander durch und schreiben jeweils nur in das Dokument, um das es geht. Die Einstellungen liegen je Funktion in einem eigenen Dokument. - LöschungTäglicher Löschlauf für Buchungen, Belegungen, Warteschlange und Entwürfe nach den Fristen der Nummer 9; Termindaten und Einstellungen abgeschalteter Funktionen 30 Tage nach dem Abschalten. Vor der Löschung einer Buchung, einer abgeschalteten Funktion oder eines nicht bestellten Fragebogens wird der Zustand frisch gelesen; bei einem Lesefehler wird nichts gelöscht. + LöschungTäglicher Löschlauf für Buchungen, Belegungen, Warteschlange und Entwürfe nach den Fristen der Nummer 9; Termindaten und Einstellungen abgeschalteter Funktionen 30 Tage nach dem Abschalten; das Einrichtungs-Ticket bleibt als Arbeitsnachweis mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen (Nummer 9 Abs. 6). Vor der Löschung einer Buchung, einer abgeschalteten Funktion oder eines nicht bestellten Fragebogens wird der Zustand frisch gelesen; bei einem Lesefehler wird nichts gelöscht. ProtokolleDie Programmprotokolle des Terminplaners und der Tagesbericht enthalten nur Zählungen und Buchungsnummern, keine Namen, E-Mail-Adressen oder Nachrichten von Gästen. Server-Protokolle des Webservers werden nach 14 Tagen gelöscht (Anlage 2 der Abo-Bedingungen). DatensicherungTägliche Vollsicherung des Servers durch Hetzner; verfügbar sind die letzten sieben Tagessicherungen (§ 3 Abs. 5 der Abo-Bedingungen). RechenzentrumHetzner Online GmbH, Rechenzentren Falkenstein und Nürnberg (Deutschland). Hetzner ist nach ISO/IEC 27001 zertifiziert; der Geltungsbereich umfasst die Hosting-Dienstleistungen und die Rechenzentren. diff --git a/public/rechtliches/avv-terminplaner-2026-10-05.pdf b/public/rechtliches/avv-terminplaner-2026-10-05.pdf index a2c853da01f34fdee7fee85a9583d16fb0b4b821..94ed9a0fc28d30a90a0cf9875373fbd6ec091f90 100644 GIT binary patch delta 54355 zcmV($K;yso!Unb22C$?71vWJ?G&qx~0UiZ5H8C_elgt5M12Qo*lP&@lf2c>>fO9f4 z@(K(F=$`43{U8I{9l*~Ec_qMD$+oNo{P_mE$g0RyPxiUxbmst-+uh%&O{$cQRBmIVz_Ixq=7q4L`M=Y%aN;J4JOIo-Z|r>XskCHYkt7NHv%0{CVKh+{Tz} zbu=HitCVA6Gh(N8qGChN_57`mV0NRM7BEtA;kkN{{6e}KmO~dgFSrsfAH|> zc_Ex$@XnGyf44!W^K6`>e3@X4ffF&oj2voUtaTa$dP@!Zom z&PFjcC;lMRX$Y}qOLis-oHsf6;8M60R*sAdvDy$XC8EowmYfrlMB_45V~exp{69~>F-$9vCWbJNs%G@hjC6r z$lleN$SlUyTD{Ge2Y3F)xKV@gl+th?J$))qZzSu9HxApd(}Amnyo)msK5t}%G=tbk zf3C329Si6$9LS3P>gOa(pGuhuLt3LCRje&+gQoLhi%X>e zvnv$&Kt7}0%g$$Tb#{X}4#WkCAU&N=@?}uEmluWkKA~wKKH2P;3bUWleuu4xe`!u! zj*&L0gb@hMH;VqOi*zwHvxPg1pENVvY*a3PV+qQ`P}#z}=~E%s%=f7y@L*iU33=Z_ zH8D(#P-P!W={#TVUi~0yA1oeHZ%T3l zgWu9PMg!9uuB1%)x@d0OfI5E%f5eKxBpintd9T3HaQmPsStI@7^ukLA-0o0~ogZ8X zQ_;mn2HPO=uH&49m`jW^R%>C$H3(3zbrGDyZ8$JMI9Cn6j?9F#VmCm51OfIMefXlN z(SI68Qpx6$z>QKi^Kb`2^ng}(c?aczt@Hpi2FccH){wu^^ok2Jy>h{be`Y}jNMJ|~ zt(o8mCyA5DNRT&DAX|+J6JMIcJ==?odVw3LpDM;zdH4px{dzpJLU}_xBf3l1v+Z-b zOGo2lam033dv}YD-Ll!;%@wvwo4Z@XU-P>gH$gxor(KWs_MKR7o7*=V`9xDcenGTl zz93<Zp@$@lEh1(z|OMo*udLk}o zM}<+0jWN$b~V=h#ePhzxJ$b~A-KJDE?LDORr39#Eg})AX@a$+-CIHM{Z&T`9omUe;e|L-(=t{;=7v2cFnn; z6_z<@r`1!M$o__@Dzs2=uHeRML~^t9yt>4Jwflor0wkxW5KT%aOe~1H8}lNM73~k89Rp*+pHPP{G@PS%fuE2zRp}0E2n-@BdK&{iy zs@mAUQx>Q^44IG|U9l4-04V0OvFvOku&GjIPSq07e{$UhJb)H!m7qmv4Q%v5v*z1C zi_Fgv$g9afApk98X@N6pJs{mIROxu0^E`l0W0l%=o@EF`ZS(60I!rViJx(=n3{*YE6XJ^q$#pC*oeA5CzF*xDY>3t?8X?^ez%pxNHbMan>HrAruVo z!8RQwe?w$2Vgxq6#W7{O8xL${v`cIJgB#l4mg|bGb%EA16f}y1$&;VXMc#G;C;M4?@e_oKi&Y(ER7U2LeeUusc)GH+wMdl8X zypmn;Al0xjK2yRAUm!xg$w2}Y8e0y&K|;O73cK^G zcXi`LAR|rtIeg1#VbK+2MZ}>R{Ip)H+?%HHS`Ew#lY6Zu$C4{F`p)~S4kA(>No1Ah ze-UXbB!Cs8oG_uB*QpEjUJrVHVw=glaeH=le52S(o;euOs1ckAwFYk`Mk965TThVH zFJ!8t-LIpQSVLIX+4!=lDJIK8x8uY3;4;KOZv%ey7>i(Jn-Dfg;z)16932-pGax{+ z0r5Ylpq5m5bxyJhsifVM! z?vr}5vKV_MH|03mL+(S`WHHolkcwrVa!YeV=m#fyhWe?!yZaGhiy>!K7*;?fe=UX; zz(f%GumXg9JDLS=U}b&Wu2c?6={&H@{VR{`m zx^B#ZSm)8JieykX&L`4^D?GwhM2)2pH;_#}RzQX{$Q$bJj&YT0+To3voMmBgFz2W` zEDl|zg?{8%{2^Q79vWd|@QF<8pkTdcvOHXnv@n2C??$TT<@7cMxIYqH?m+fB5qss zK$fg6wyz3M*;Y@HP0<5Ae{Jfru-I(~-Gb}EwE;>HRyd_`#mTe@Ct6;eSZ5i74y` z&wBzx7oxI-G$s;6ktRg(%?Ia-azRI7Ynb*QDm$yppW8`jDTog`=2BZx+3(e)pXIs7 zUo>*8qf5<-E9NUTnL+(2OWG)ca$wJ?3P;~Q0kogJB{Ny)5A61ge}&Mw8u6pwcrf1k8q$oo8S9PHd@jct<(_6j^U6DIjdt$#gA3cky6R0W`q|=N zX`?Mf&wC6fX53=eI^46F3GD?#g;LEkv^N_h?AMLSk4yW{3%wB%l^rX@e>GXX^zwL- zzkkj+S3O&VlFl^5|_teH{SjEf4~3o>-+cb?tlFK?|=E*m%sks?}vZ* z>8F1@eE4t}4#_2(`}v1B5yfK ze$K5)#9mEy9dEgHLmvdV?RqA2Yg9*yu3$V+R4vYit*^=64>4jV`^h-wQ*}06IUhH2 ze~sU80d1C6Z4_8hoO?x0c2OfDnnJ&^I@l^woWONY&o6xjGd&CavPmgcq)+=Avx|vb zFZ7G9PP5k*KjxO#h0KGBSQnvm5D{R_v_}i3Cx9xk*K3pLT!oaNZR8#RkgdZ z-tS|h`TDt%p}pb6xiYB%FIp>5J+k8Bv~GN3l_8A;?)|g*T@p;Hu4ip@%@IrnoHS+SN)DgK=O`+&VDcc)mjK zi;j^r3rX4}=%k*|$v30^xAdwP!t92@lY|D(?A@NVtM*8`@_J%hH|lEr&0OsjjF~I7 z?QSdGzA;IR9@wlvfygSqVt%*Df38M}>#I8S^QY~9XJ1ne^k%WGXG)WYc|KGDqbD{+ z8Fe-m+uD|WXnz}B#}qt0g+^iyIQ;4uss})!fuJJUAWKsGOf}17@pGT0FgFJ~)nQfV zddB3OUdr{O^YnuMkE}m;$$GZ~^}#%ad@Po+K6-Dv=emq>Gvul5>fEX>;qxWBb>oN77xY(*DD<+eH&U09JeAMR0g&=lkh zp(Pm?8q?#MO(;MXE+$V1oYMr2unN&@Vto}&?3&v#!Py>#1g1r-6iSZI!`!HyE!3V+ zZEozu&rZLzS?(lzrHKMye`q*nMf;_6-aR`Fq$61{dBfXRzs0|1BX7U0@QRGL-&Pf1 zh1)ad?QOblq7!DN74i1llI%dne5-ZRiV`8K?@VLL*sJj(e`E0?ZAMu~56AZgk65J@>477A$H^*+(!lv`OUm% zo)dI4e>lBy>7Lv%A&uV3qK`&Y`}HsTDum_a0EH%jJ$fVbNe(cEppyyCrfO%GsA6J> z$(EVaoX70HbfEoMf0oR76H|!Q&cn2lv9@?yMJW(YNeg^-De|C;$LXEusmzYuykmGQ zivj)f>Bqybr&b0nH|J+Ht)SEd{O>)Fv5$O+w#-n(*tn}Rs(0WaYN9l=mCkoqyOF#_ z$tR+l-9&C2z9@7QD%tLs83Cu5Q^OheX>3EBaB#VZ>vtuPI1eqY-f6;`?-x4Cc{e%eWOP)S;sx0=FmrCgA^`qY= z*l^g9G}`7!_gu#9q;3Q9IXqgoF(8Tj{!r%V);x&XSPB9aP($TZkLs;uXHuW&X4M_cRvpOQD09pjBASc`O};?Mr&=V1mrw30 z!N*V?xPZx~9bn!S9`MfuO~Rb1-6LO{rnFTWWenNmGvj~YjqRk@h=%bM!IJM$kYPpA zpnmj-EK_=7J}P^d>sIG5xWVQpA)8+*>=^bt+NP>;WMgF3^BZ?0xRKz6auPQ_kgF2+ z^%a(Ze?8)tUo_2%-c-E8V_2OJ@O5VQ>o|!W)6jPGm=I>fijtrny&wJ_2?4i~H2SFO z{gc(8%QVhShw}8u9Fgd{|Ki1Dt?&ifC8|+mN&+{zETY;%62O??`uJnSk78U` zI4-DzL^iTVSGp^~EZHw*E72>R6`|&@Q>E*ju=LTg`U9<|XF8@#>zH?L>s5X4yod}g5?tXZ({`^04 zbe<2hQ5qHkf4g6PJXx`$0W>PaF}M^5QqhdwKiay#|JU##gV?b9$lT0a@uhi~5$e^Vd- zrcW;ao1@kghUK3|`^Ohp{o!vvJ>B!K|NHCrpMLxOf5WH4t<8Mv#~}@arjg8(7s-cI z4O%HZ52ahIOpL)2M8+R2 z3(baCe~&gLYm_-PigDCFP>d^!eCB=MfeUb^@L-{5ERMpADU#7{Wxvi0%F~CWQR~Sn zWD6*w<&frESr=kZZhO|@BE_Tl8Z3v31q2tVc-+myd@B{ajzOOvD`i&}_vr%Vut@&8 z=vG>T*X7N*A#?sa@@KqW9!|+=t2wW`%(=0Se@FpqQXs|rRxb1J6{{LsKfmBt6QWbu z`nd<6e*b{x7B2U<%fpjPLARL21)!A++E*<8F1b+t0|qFeYSrwFO%zWfu$5A^=fzGVoQ^$(;2u3szR3KZ5jjRKMB?kf+h2(}j zUyX$!XN|kMpWjNS6jF9xdSe~Me7;f1$?4?j$Zjy_NT8&Nr6f^xHry&eJ; z*qTA~_f8CTkeh@q?BFJiC7pnc<#{TWxo&iN*hj-*hqxs-Gx_=G8E*)mjvj*jC$uK$ z7d)qz&nU!Qr@5c@^TQ-t<;;Nxr`>Q4k8clQAC8;e-RPu zm*^L=&Dt-o7gET9asGP6FPI?P>7!eM5rblqeahBk4zlSi#y$xPK+h-k?LDJMhs;1y z$|n~Y_xj?)M`0Ng<4rP_5e%xZH)7OS;Pq&aYqY@Y1;`bzEV)mVACu%0B7b;c1tsT> zi@I=nyBHHv&SmS0w+joaUHFoyf6f>t_7uv&77xX@xjtG>M z0_o+qDh}p3pmTu}t9X;Skm977L%`{F*8_BUo|;wuU-w)x$*Q#n(m)W@O0i>=cX_s$Onga7?#_v3~w0& zCZL3FZIC&i%gv*%87T!yf2k#yf}_0hY^XTh%X>!Qm(Y&5g(+kqf@l{e6g)79eHMo7 z(5P0JTkM;}9)8<$uUu(Ak6Gh_U|L0PQs7*5486$xpBOCcA4uUHAR(@U4;M$j;RU&q z>?Ea_rh$#xvwGe*oxU@M@s>t)enX z2e+P&X+!(43Jz>QuG7Qq2IRssvqN+bM>SAt5<7DA9T;A;1sn?dcsNIriN(`jFG-IT zF+^^=(EA>t4&0bzj4X%Lw+3dByaNM3%MB>sKD11?~%i??EclC;k2p<>Lk0*5VP}s_0}oC@@>#yFFx?Ub8RSzd$C)|vp`cmFgH+E1rqKxo z(?cP|7H4(j2~jvxcuOG@*OQxCmUlgim<-K`Nsdh*FuFhdf8x|dvsmzL$(x>W0Ys|l zNCLf05NY4`0}jhXC9*NNi`3d+%v&FC;&V~gMdMMS50h*uk2#AIHWi+&Cpna5UwP0^UW3zd#X-uX_-rJH$?{3hAMS#= ze8Pqm=ivpie_&kDYG9Gu$htiWYP2<*i6=Sr0sC$-Q*D!YY;)qVA9NUrPQP+0@0bhP zpWaNHQ8}L|t8mpz0lkaUqFA9xKPoalWr7k*u47WOAfLj@A8S4OL@N* zJx(>7v`%?WN!^KUEe)7zhgyo7=6b*5P{^=_< zjYb7;{Ax#@`x-O=c*vd!qklYv(X}3vvYyQHC{3@Q_R_RswH+1ts4Nd5oN1 zSqHog9G8D@h&K86i(hKz-`^^+dIvDe3-ybXBK(jv`J{gDDelvQ^bXG1M&bePfvp- zRZy*`!GZo01e&3LF0POm!4+Kb27iIbVDcO!f4%@+NLRia1OoD8BZCHUk|*z&UlzOj ziij-K1h{7D!5&b9N8>E494n;8W1>M$Ouh?~c&8VBO71FP!15wl`qo5M&kt<#g}fqg z@#}Kx+D?E`g#=k%U`08B9|{u4b$f6wcW)8|+EYx(4PhjQdRGQNQJ4|4RORTsDP7Df ze`=6d^+L*NW5&NIzTCk3Ecg``_;tugO?xD)6-y=fK)keiGU#uUZFP%0y3Z~B+V2^( zD5fb2hBP?%@>Dd$_~%lP(5Xw3PXuha8RJqTr1Ad4yDu z#GV+G8!0U;1pp1aJjT_LO(qw^gQ`_xh6|i4oVQ{q!kr8vR4u$F9+j^W{8liE1_N0Y z*|dINh^f__xRfpO+u}2u{5y`t?lC&&5?FFDVkJYjr#jcrvEnl(iW0z-dV!f(f59ZA z{M|OSJU(fIJn6Gz*d~a_G99`_~CLE`^Qn|{tS^5b1 zo7_ZsEUnLI12}yquy~6ijy#&>wF7L*0v$CK)i9@a!|SjRe;BE)ItqD2 zU=O(rIsfxg(Q%fh*;PqByObx&1C{Vh4i}tQlcS(5 z#KYc{qqfNa|8cfUDL>jFCQ~)am5bFc$|1R5Y`8K;CCdP2c$sjHe+cKc6bk|QxJAX; zj#-_$HY^wptIFg~eHTr1c>(<{c{@3hBe+OM2Z79tz!>1UQn9&|$BNYQFZcTD2F=w9AC=7R0#D+FndSE#w z&y{1cdRva^5Iz4Y$5an;I}+sOOd;GVVL8EA7h+H=xwbBp`rDkrCgm6%1MnJcxnJIp zV(~ophabXT=E@_e{RR(ww`pkJ*p|QI%};s z)Nb7Q7cq|VC2BQGU6@sh=Q+6=-u}2$VK1X>nwb5Byc?)t zBxcdb$-fwx_6xx60S|Ujca)d5RWx;$vsU33LfYTnQ`p!-5w=Rl!`o4&iNR-OM%sFc z(1_ar;n(e0fBUr!t(|hg2TmEQSdxfWS|@P`cJ#)lxQ@H5gtI-$0@FMJz|^l zT7baTNW3P`xtdKd=Z%IOWidCjyt5VyGszKYVAZaOF;hpWz0C+wU`L2t*o+VzluX(q zL>+Ym}gh}pQWu+9CaOz= zeXlw5^dr6VR*EMEcMW&g=_lt13)$QvYdXnB||M{YF&!w zlV_eohBZ3sNXcVCSXx1>t==)kTVeJQnCcmbe-d{yg7~sRcuFk$$*kEb;9@^+pg?-l zCcmWh#H}6o=yLKoIK2zyej0o9?kzFUu{abGY_8oQ2nHTd!$sVQu}uY%RZmtCKndCF zQr49dOWtgS$s;#R?#!kLaPfMLVe(}=CQ`v=>-&(P3D#29%9PjS&)Dn`jEqMG9ipwt zf8Xsia74)oI3zf_jKv>ng{dUzNJM3nn@4=1V~v*hm|Z+Wxt8oZHuG^_4O668vpiq@ z3{KltXQUD=4cd>-hoLkwr*eH&sBsJrp%8)M%8@;^4ds+N6rq==Uy2hECTmpY5@=O(_7=S?ymI{)ioGrfDIiZdYU-&SVg8zlOe~stB zzCf|X6jDqru2r7;;q9Fw^opvME2s#t^aVB+U}1-1(j$7fyrG@|JNQG7f;O~VIOz&D zOGoly$8$|b1=+8mDK4)7V~vjdh>j?B_gW;&;)}xzNa#*pv?0%xcZ?M5AwqYX(FmLy zkazTySH8&O7qGG#emTTBZSv=kf5=yiuH1j1h6Z>?v6hcKfuCoqA!v~|0+$~uYQW+i zGL(F#;>2v2JAuRe1`I~X32^fBwY>c*r}FQ_?I6x&#p(VwnFwED*)<|P7g`G}(h(Mx zWu+^5wX||(Q<3a)q}MC%xpbvbobZfXAFe4~*-EVJSlUt%JZ0f$IjV1ye>joTCwrC# zAY)lEA98-Ec%wIh_hJw^l_lqHHErjhbSCK~5TSGF(70ezotICsfZ-(A8wOcx{0mqt zA#UGYQ6AY(CSOhn?D)DJgHM>r2Dw+8+PsNu3@(E?{c;$M1&WQ0=b+_ML9;}*#nYbiOZ|o)sGolsQQ_Zqp zR`zT4V244hVC0E&Q58|0+YA)=*>aKc#-XwvSSNE9PfZ*wVnks&5>hHmo%nSB#h;vb zDJ>THtb*XykJN)*Xhn7md3N3jrC><5MO7NLIofDpF+@-!$SWknf9Z;jg=C1du!%Ud zVndEY&piw|7GaI6$RojBw6R=YeE-iMetr4!#p@5Be*fX;_dovY)9{CnAOASKdNoV~ zb8781-Oq#i?VIWSqVYON$xkfLRVW^_`jcF@1)aPD)gCkr+|;PPCcT5+K)(+>GEyl8 zN}RodkAJMtMUgxfe>1>)MiASy&0&Q(uhB|BZFAnC=uA(*jZ;xxXTm%ciF@TR_&sGX2EGiPnWGiMo2?A`m#^uPRA_QkiT_}YnL z9r(XVoYRvSc{{PV!U*KShQc&KwiYWE*A`Rgn4pGcyuh%)Izd8>2TkX+(<8v$gxXtEnm#V(7 z*w1Oo&t39k#4HSSR@ z0tuNNvu+gx1Ni|2h7|gRUn-JPZA@RtHYv6(tMV2ye?j0%Oe|?>_>8n*s%^}4s9Lyc zwmdz|BY!Fa)DTARaae>|A80XQ$KD+ZHsmwaSm)LD42*Q-?J_#fR0YLGPI-V_j~x^$ z&y#qsnUpJ3X z2ItS?9G+CPK$AJ7xY=qIu55YX`hv5(*GY3q9roziu!md|3f67MHTWeoh{uStb>co9 zjpCkd!6B^SDeeU#ZzQ%m$ZBob#Zob7qi|Nxe;Zic6nQQhF>UJg@ScL~dBC0}Wmz8L z8B&(qPnYX{iUS3ENO1JjVO`jnDjIJ!*i-UeTC8EOmdliMpOLdi#GxLj4$F(_7JXr# zo^h6b`g2ANWy-)K)tTo;+4odR!+(t=Xo}4)hwTXe|my*lfN1b|5=f*AM#8P<=b{^}A7g6nauI?95=-IMK4hgW- zDT?xRtOD4vs*i!3zlr#4E7rRV#x6wwN>Sc0`j+#X90V5 zpl{3K6|8B!JM7kJGh{%}rLx!?PLY55ewJ ztX3ebd}xIb?H7VC_b4+uh*~>uv=TX&l~f-qW5a60+c6FTA6}tdBq#7JJE}}lK6Chl zEu`gX8O%bLuac){q*0S{4yeg8BN1(NwZ)u^zvIBtNED279MB8H2eo}~f7Z03>&j~_ z`K!rTs*I(~OGnoS^YGnuZxr0MmJ9cb&L;JaI{eY5UlQM^kBRru{_{_ zdEV|zi-wR{%&MTii;(oqxN*crK1fk3A z*bHB@p@PXEPoT)L?LHwn)LR1A`iX0xZ$_CD3*$&6Tzl|WcrnMbf5%V0;u0g~$n-~- zO0@0bCSiW6Q3|__|HP}57n}D&fV22=c}Av zz1X4Jry|uZ?(W=ET@pzAaJhUgFDJoMN$OWFT+!}KzTo7T5Ek@2%+Hvb6y<%4d)DHi zm`3@STt`Uc6PC0k{x~Z0vkfutmkM+w;p0Sn9jG?;fkj{tdaj z-6oS!8WWSHH7Wr#v(Po!0RdsNsy7e`fAxH2>V*>2ff6mOOQZj#cm-8PzaqQ9-ML))75#Pd-z>f0zkO zJXXk%L)Zmvwm1lVE13vZ)mfpsrxM5WYYel)QjE5Vl#&` z4u7eg=rTW2p1d;idNp5L~?S^8EmO4uQ zi!m%1L*I+PK{HU<2O@q3+gIKae|hao$7r^=6+?x_l-wZ7X^;o#TpnWaA)`nxEpPxS ztmj&Zy>wo_PUTI2ARD=(cp{vK{7}nl*%AAKw^6(Rj659IsGG!tO&QsUbWRG{9pjXE zBqeq%SWIY6`yXb02*VcEA>|cQqo=|-*WI&dU5L(cYDZXah|jqc^1KSlfA(NOuKb;% z?1e5&OCfzFUv_!+tvg?gg=eBG8_!8H0`hiH@?gC@7$T0zlDLX+XEU7K8 zx%w=F7Z4NTx@?*sOIuAYi@q&NgTY$LQjz$i;4GY+qtegbzix!2f1-^IJc}?52L&7D z;7Crg&#xMz7)F|f>kA-|9)V9%=ylIJS0O{m~%p%#6`eYx4e^J>LV zvAp@ImIa_LgF_uV`;=D}F+MQEXrdZ)*wmeDHoc*tg=$T8@>g07EbjAU=Bg%u&Oo);XIFEG;|( z*chF2i2)UH*bja1wcgs-u(5zq+_bX7AC3S3e;lG}$|7)VcC0%k?4r8~ zoro72D(**dojOk&9==k=Jj8y3T(`X=b+BUxL0<6?>l>^XH>UieOgB^W;vZK@U940i zpWq=%>hcN7bxv3>XHhlEh#6lvm)%?JvfNQ0cPk{}wRl87z=}-pYnDP(;G7BDR~-({@JK~^7n;{de0Fo)H@RZiY(Q^;8SaT~2FTA7Js*%dlv zVwA_K*TD%4uQ^Tv%#TAF4sws+%%L}j-!?uw(Zw)}e~UryrDM?HEf|>3Upky#wknO9 zlyiAZ9-%p0bSf4Gtw=|7554b*Ih8W@9n%rw^Ug~H@x(cA)Zm>}npYE%?ANr5Lw>jz zW2eh;7b$KW^?>$}bF!EOgnl{diUc{d6?uqQ`E792DqqXW7J`!AE8P+s`^Qx{<+#2P z29H?yf3L7Etl|yejBFw;4y^EMh82ZBl5X#gw z;v50A{&BVEZ`Bz)`ldMQ0V?luK?R(L>&T^NWgvO*L>wV%C|_ll49atTSOSKXfov-d z#!CXfA?AwV_?tM%Ax~^o$np0>(7XsLFY0iBf4FHy1#tf26vhkHsN$+tvFfQ@UvKYR zvA~y^rM#8`K%cw~rir}Qk;dPTTT>CgMVTBf+!O|NtRCsD zOd)Scz7R4_McPh|?+U*m7bz@BW~L3O(VsdjG{sdjn)Ho0_?oLX~4;H@LQMSkMHlpxa~I&5!@Vt-#?bvMg~UK}d|`ctEF^hdim> zkp?bK660^M1nAlZuOO$xB@qX6^y4&!P0H#ZH8~Oh%|b?Jk=V~uFCsJO}p&~Y012TNW6{g#}l3Jm>NGKCnygc+=v<8c;Lj5I>^B;2>FDR z=np64%V#d2a7D|baNSsX1>y#VN;Ef~A}`&SM_{1ei`WW0h9{4YB^G==q`k3xqnZ?) z4-Xj0`yMmnjc*`11??0xM`D-*f0g_9RnY3xTg9A@#x9-imP4~ks71#*!bL98jR|3)-Bp?;vXyf9_A!*Sqw~bT7V+e~=8yx{ce?@_ooCqwh z@PpO<@WN`X!!P=;%AP1EA^^}3*ZOM(|k*tiwt-?bX96`ag+`opM|Bz|{7HTGh zZ#@c;6hy8PAOyc1c&uPRau;(g31X$GrE_RJB?#?#?qsG#Nlw|8 z31V2TK#!4DCFV{aIGq` z61UNAV#2AzWei#2tA@zSwa8>h2}p|+k{n{A&a+av9#P|xz{q6aU|62^4y%t+&&Z@$ z(yq;Us12S(wO}deNXsuLxnb=|XnT!EkDLLY4&$r1HHJc95Maxfjs z&{^=C)wqb~>GFCKu;lIJMddl+_*2%ae*IR9c~jAeMCR=(QZNADHmC zg1k`CLask1Uy|B+Y=WFm3&^>grltqIfSfeyXuJ*#BBH#$2e&ml!rPJuY&nTgUh2PM zFU6U?e~LtCMIm9wyotCP9isb+k~vtq^?51|@lJ0NH>TToDwanPW{~t*Cmro*oJ&!k z$8IfaJvt^WryXOZZ@GRn#P0VVOA5DbG4T<=QOv4q%s1qBX|W$g@F4mhiUJmr?A20$KYvlvRo#(O zeWoHZv#WdPu>nD1v%4y95hqVXoEVMG5C0p~poYJWKi-!{C{`T-w(kLIfdc(f1mC?-+g!Hr>1}V z@z=Z2TWbgU&%b>$tpD)z`}WQ7 z>3{CD8odoZdON7$(|-@Il``q!lQ2eWmD2I_fq(cQj#eulj6QzgKFr_HQ7cdW{Nux) zn=uC!TnwiV-24S^G?j|v8~*SJH`=7Nb;mzf_TkU%Xj8P>rsD@OgAd?0%<}A@Vv70n zQZ~=SGbu-x_4Wtw8I$&CA%EX`2WHpnWdXfS+MO2A+vS7cjG?b3Unum9tr33sw6#fn z9z)bA4O(Th?ACzZ96b)t&ayT-CZnR;{;7GHx8FRgQN^S!eRCZEsX$i0xnB-r^4S){ zh8xW1`CY9F*80;RyjcdJa|nsCDY&DH#*Rj(=!?l)ELZz?Hp59W*AdUZWxny`N8b1{_te>Uj2s|UcY|z?YsYcKd9l& zoBQ|g?$ls%(8Kg-eK52izI|8xO?~{E)~iVW=BTxe!}3p~!@~=#{_yvo55M_e|M>0u zFTels{{8Y4mAu!An3)8B436KuT|RNjCSw`X>>~Qg6LSWq20nkr%u_QR6qA!r zZR0Fn+7eGzzO>F3{F+gxcT*q9-i&7D77wFIjvx!ajK-)KoDQ7l!!1B}prN+$U;xcYC6)>@v$K( zht2|?BCpZ3x{MZyPAh*Mm(SKRe#{*=mWeu8;*9Unn{6HW51)`}v(&W3LEF)q13)hA zn^ndyZtUV+iCxyaV5u_m&%t4Z)JxS@5i#{JQh{WRYe(n?`4} zPRTvqj(OD1`atLN!wmSMPL}Mf87A2=Dw9(r^Sq2hhiFsEj~9Q_PXi1l`|WYyXDq|e zIcKBD2k*c)<~8=CF+N$f+Lr5|g5Q9zJEQ45YCQo9|9FF^(Ya`JCX<+t*x2ag-1c0- z*`4in8eLGv`jt63GeGoKaDaXR|0zZ94EZUuJi|L1?aI#zo?(u6F>8`i<}|{$0d1@W z5NBtzN==I{pOb$?zG2t5g2M;Ot=#2$rSP24!R}uylL5jhnayJyt%)fqvVZQu z>(Xg=I=l7ebv`Cfy%C&tdOD+V=QnQ%E7Sb+3YH_+U_E9Ry`Eice$YaZaoA#u!neZD zaA0=f_F-Cm>Ol&tAFXC=ENbZ49edWJI?79 zOxQRF!LRPhlC3EAAo$p#9mlgWYJCotJMNRH#Vxn8!pc#*2n{Cm71;J7pEqA{!kDwq zk&tlnW$BDxg*yl$3IrUAjY9WBu~AsA0wW`_*TJT#pJy}6?5Y@aiez7lH^UyU>yN-8 zD-|-i9`1jF78lOac%PF#nZKE}5V##CdY9XAkDztoidpboJH|kG(5U!8Zex*mk%Pj* zny}sq8Ya2r$I$4WGl?vKu+Zmb%*h&k-c3GoFYQ_+63>Jqo`DzE#hw`Ft)`v| zLJF~0$8HD0Kllu2nl=ZxVix3YC5A>F-MyWSnI2uv&M31zS#Otz*z7e8AmEjPYzrFU z6E?Qr*qujvQH*qYB1|#ASHKp(4xFCx74ViRh7=et7H21+t1N{;_#xDsQLBYL6|yrk zki>svv}2ReDQ}X|#~s#8Mw__Ivk4{}$2h2v7KInS3T_#mA$SuMGsPXbWqcf=Yd~iE znO*qiM2$0GPwe9GLcyJg_<|v423y3=*`?Z+j$os~;2nCDMMp-hB`+2G+db2P-)LhZ~FFsI+yk>a`9}Soi8b^^c=NNb|Z~5|3`JbO{3|HXskZ6h{Bdm6>zZ)M`mCHDNZ^Rt4kpX{Xo#_V1iynWle4 z1(yi;(rO+`QrQ}E4l6L0+{!@*RzY#%%bS>zeQ`U2iz9+Fh1)62*?yP*r`=A_mq{3* zA1KcVTlU26tgAFDW?EqPNNrX>Pb>$jR?oICN2P)}Z+pvAAm>lyfqm%Jp@A(7mQDHm zc`m&OWb{$!<@j{3gL9`jG0P)TvPORq4+7o&asTKPq6+@}Bo@#QS~zF`pu-if2ZauUXE! zxZ9&lI{jfDhs(<8$QU5JpU7#n3VvM7Udpo#aEg@pIOBi?LIJz5Odf0ooc+N#YL6VQ z2a_ld3d`@2<-OOUJZTyz!gC@{L%2fGbb%!1sX0P znnFmfh&?3E6}Q+Yp57&4yiy!{C@N4w(%U1~_v8Z`IO!!ckjYXPsffGQUatj^0`p7| zMv9?o1v3Q)2+uPZf>_f|oPFe-2!NM%G29}403&3=-#86h&_;W+UR3fuL!yDcc7fpL^(X_E@ zvuHY?*_11I_9M0BH4znhH~kE4&uW*ZkRp?*KuMB4y_J7F!MEQ4Vfl5(@QU1%6c0Zm z_b72<_S57C1*SsSKw8`@YHqUqLM23HPJ_;>fI`!0T?rMp339rPG`fj7z zc9Dbm+O_+6Dxj-7)*ztS*&&{{ zYPA(&lZonnX^;!#R>UJAPbLp2LBDvDRop!le0C7@Zu0L;Vs@7zG;vV3C+*EjpKJ3X z#bva(bBbx1#`P$O98Q@Fz9rFg8@VKooFRX#Xgdj$`u0sVe4;L|n5*SBYn(NP)5=HQ z#Hb@&?-&Y@*Gb~eRr27le0Do3GQ-2kYvN(u`S=#n<>YQfJ~ujzW-j;ILy{S@EB$19 zJEkRJ{p!Uf=&ZFR<{AseKvJt8sVIkj9j9GxWB16;lQTH-PS(5x@HQ>9O};pC`C@2$n3eJ!c^5ZH)w8aqPliW`BPVwM*O%QIj15DxCy({&F?A~D|L2?SeC zKD}J3qo(?xLIq3AT~#QZviK0Fo5hNqABz*6Gl6FN$+e^42mL0uX9|hD8v&teV=?Vm zv7$+6i+5X?zY)hAypIHb;%+|TC`W%Im)BdF%f_SB=+~b7u!o+NoEW6tlJW|bJ#59G zLOj0}i&Tw00?qR9+4I7R_=1MEn^?-UI0K&EQV@N!i$q&T1!Nd8g_)e<$dcS9URAc! z+%Nu48KXT*;}q^hsB_it)b4?7vDO@mDkvy;aU=MSbxK?P?hYp0Mt~-?5u$&I5{%wt z7HLIAj=XBEQLD8O3*+l`*}UMTo{E7GVeQZ;U0wmw5n|n_9LF{DmahpFE7Zm0dsqrr4nbFGV2LYDZF|5n7W>9*PQ63dL|&CuTM=f@>SfeAu(*{LfC6QdW7>$d9`vU+ z%dZl*{K}3KW0QS>y>68A}}OEKsD?=&}ldn0ozTeleF7tLBE+e5ODtt*sc_sGVZ5 z3N(Z8?BN3%(|S}+2Te@DtQ)2En3W5bWRT2rIqiFGbD)3N?)Zs`I(QPRoJoi&Eo{>N z^(&Nm?h}nZamTodQ#KjP7--dFqWCfPusJ3G~aj}_?dJ~($qb`?Hh4siUo&R1s|7~NVJsMIWas~Fl=&9qv z+PkE+0xy4;u%h9OJeQCqyM-MzY6VfW5@w;o0{azsqD`oaResj7UVe|9Wgc2HRMZC= zOL@krJQQ}-f_Zvyl0P3_E}zllCK?+k@HiqKBZ@dXZ2Dlg332^k$1XpGs$r3pN5~GR z*EA+4M&|Po>q7}%3qHWMOfAsRn3>NmSRbJY4ZM0jR#<_gLgxqYl*-7!n{QpGos+{3Zo?_PW( z0n8np%rcAFx)ePlXIg$bZxiM2l0x5)_ry~omhZyr0UPJu%v=@to?3mUR~(r@bRVbn zvjBfHD?Y3Fcru(a(r?pM$Poya= zuPSQ&)ssm@T9GwPXt5t6{aOfzjygmz%F#1Z94@WgNy;U=#Yb%q^>3CqQaSCHDkg1g z5QU6;MTH{eBE4mRmhDiDVTWpB-VD_s>roM^fptIsw&^;%#BjtYp~8vE{n!q(dz*jA zu+j6u)TU<^s(A*vO{@?H?!wYB#38>r@iJpjvXDH(ry>`VrSex!FH7aG&?R7Hh>2S{ zrkKq6l`5zsIWT2qJwZ{d3}Q7tQf5wG$j2$QFCi5@2Zixt1#wuN4%<36m0>u(gyMu- zs=1Ad^4OQM{j0Dy{VG_VC~N%MBSL?>*VMBvZ`ZA*aGN6U|ggye$dA8v&v$y z{ckEgIXIRVF{Cs06Gfu%jKFv*^4`4Y7OOx&jw!CJEB?HYMqx=!=#Qh`DCR^#UFt4rA>7MQAN>>_4GD`H*<#4=ss z4i~C|Laqp+Gp+)yz2JAO3Sr@|WM=#&ufpo6xv;w)H!pT5Zx;sx*^R+C9{xhjzOcK8 zWWO9+cP#0=ebp~ag>-*Z%ildUj+boF7LbPkjLC%*b{QqE@wkviC3HE;yBRJ-p2y6~ zdl%nOcwvm<87!UxRy(zA-Xefggp8>$9xr4Zz=q=q5X zTijGd!W9BdF!Uh@H1hoXjv(aN2RhqmQs9Iu#KEhp2FTzfZpVL;9XFPoOx%nm!+3hn zCJh~#)Q|JhOdX3OF`avWx{5F;y!D{ir5w&;l(PA7=VOYhr4xg^+6r3_IJ^CXq$|pB z`_&m=YKyW&6Kbxf5U#^4Kymh*TvW91a1hd25Ql8ka+ON~R|wg>XawJsMzDJijse~b z@{Xr+#!@a4+);nW`UuZL4lWu_XuqEpa0TfMhtTq`u?9k{Pz0wtG7RX z`QwLQKK=BsFT` zZ)s4)MZbR)F-DG*M_Jy#j zR+QuBVjKbJKo{Z4+tD%NogBHKHGVk!AT6k78?_w!D&3|ht`KPK*Kg^%x!yadj>3GV zXI4#qo6Ro28co-JBB>p7NIE7wS4h{(kD6G;4WEA~`Rqb}D`$8)L80Cqy03QxKv#`1!A7BY zcIAKlPvFwR*=2d+3nhs3Okt=9`pHH3aXH%8gflP9IO=MWVt>`MY|BW z%7R$93CDZd6he3fhLD93_dCRL7~-&w)$>B-s8lcvSYN>nRrEmGA?2s2RLSPNjcWwZ zdjv!)a%7V9)4GP79SgO&hcG@RlkFOersoQN2W&5!>X)S!kxj^zI)r^l>w zPQ#DC-2Km;9kua~|LW;aMybJQGy3VW9;Sc){^`5n=?}mCeE04E;h#@7{fJgH~hk(@Uq}>rZ$3=}Ytw z++fr2^_RQ%O4<7l!`HvvX*GHqeDrou!`J^9-YaF&-`Jx88*(J5pqmfo70CcW9xlTS=;T0>ujSBWJJ_5 zPc|tRV?N#MBN$z;mkIPXX?L1HZy^?3|Yr!;7l&9Yhp zdUNzRJUYwV=$MR(ZvR&EH1EH8R-=kZTl(fYaeo}fPBNjn2w(HR&n`7P{#Vec*c`G@S}@4nC$nTVeM>(eK0DehDZ3t zoMdOSO7VRAq)~fkqc!^@(s2yo!w($XG%6d7)x<1*nQc&1CZ~9M#(jT43ogzNH^wKc z$f5CR8TRaR)SE+N`yF_!5*S@PQD_h=*7V19NUTyOU;K`g)dneC820;Rb4F#YN~fPZ zd?p`aw@2@V3usllumCp`lUL*mAHc2TA5sif2#j07*M-k8%aEuTj56->YJg*=o@59xfwk8!rjL%7kLi&G=iT*slugl6=!!WYg zGNLJTdA?Q1MkjY#^2HHW9MWQV;_mm);u4-f+)}aM7(n3c;bK5@+pW_PI^e^t2^N<2 znyw$`2*_J3W7NrdI)!vKL;@Y~?xfGq4xCghU{)+%)=5=Ztimu+i{&H3knciIJ24?H z1VWJ!OktEg-D`hl0Q0Dw^`5dmbli3#EXobfFZsSMJK9!*Cxl zy5y+igm)o4DPANsL_I^DA~=oOcmnyEegtl?i)~0Tn9R7-I=IGptEuh7JRy2rIV*<8 z3L1?HpO~(ONG&YO$t;X@8&6Oi2$tN6qJZK|Pt?6eMsFrE+y_Yst;Aauff zgjf|!B%XhR4Pe;qaKg7ys0p*T7V zjtinP$PJP z;i(l9K-ghi>8Gqz$UZfU;t_xiKU};I7_k*=d{Wdru$<2#VhDXR7Qke&0dP62XPei- zxzpPg{;i<_L&W4m`apdFgNRog%L7V^*bKy(S3nIG_2r3BM82g;euO&FFy>OY#L1Hh z5%Ygiyd|o^DcKsDLu;4ihFEPbZ}iK+VLFVgA{&S2hZM_!g}Dn;#^R-lSQm^#u~jd6&_>4)8adHCF;&O_ zjThzzp>Y8%Q>5sm)IS3A$Or@0b^!l8Iw=%kMEGHXfbH%7r(*!Ck$cbculNLIs_)u?*K@uB%z`6Db^)aFohNF zb=yYgQ4V6+2WGzz*}@5XoP9YAtw>?#gIW@BoXKHIqmk{LGCyZ3>;gu;yd3*ZhL(-Dv_nO#c#7q?| zf5>Fk>A^#?HSwg2<4|(B286v(w#^BsE(!! zIQpwrf~}CGrLBV^(Y!!|MHg=-d;?3hE!5VG*{3>j#(D>w=9 zks-H&6{f2~?ZQLRv{6EF7zbsS-E~ZbOsHq91a|zmgyLds;~fPZVLyk7^{9#uT}@`mT77wJtn76 zJ`!v~ISE}>;CU7TnFRu^AUj)^qQA<~hVd_S#o)umuKZ1dNOGD+p51?X1R0Z-1dE9y zx5+bRu;1u*l*H^h5uWWtxU}m;K#hjniNGA)w~{(uArO|QlgVrM^plYvVQ=7k!1Q!% z&7tXnD^6^iJFb#7p-UwboaVSsEN-2Js&KlKT*J;<3`G*(5m5R7qO-`=Yg2qd%`k6t zi(ARP)*bn?0L-#79dLhjAbF-kTcIi#rVJ~w5}XQ#VaW8l7|sK4SJF39t(&}tflkub zZB#b!^o{Z%S&XGqI$BaVcTOE*`4%BA%F1pO*hhFI?*7I57( zruxkwRV=p^yMY*FaU{L1F+6nIcdRhL8^i(zaLU2(j%ax~m?nSk1gF6BA^;tymPhv# z6(3;G4;@q$$Ow|CuL}TGl=Ko8pL`}2M?So@DSU!4!9a(VA$h@}VS$hoW)K2HqZQjt zTnD=1loV(GU(22p={uy zAnYtJnEf_UuTqT8likQ2LvgL=x6T=LWh=PsOnvzFyfS|g50=qGy#g$@>7XjgQOV17 z`z?bAYhz%^M&L>|jMcl64XUkblx)c9`HHfG@>=+}4D0hERfWDtZ0IXk4{RkM9uU(v z9S_(&@ATcD|NAe$zJLGj{>R_{@t41U{p9fB)yUxLnr3;ttHV$gj`0 z+UDRkM*70N;MdP<^3p47bY+H3+Kf)wWGrKlXOKA|6k~GQs_?a*Qs;vubO?R{zu-2L ztTleK`qSv04~m{S@F}wmc^YLKHd?Z$3u;?HdLCt$H$#Tkf8ydAYs^_Q=GUHteA^0q zN0fgfYHUVubUmVuuKOV+4VIHTTNOR3wa$W*@+zax6vmN@Q~DK@>6ms@(U4NCU4wdF zxj?p<+dz&}9Ako|wL9`S@@Ni&5r3uzCodyM-Y7|K%8IHr*#Lj5pxxyOVse=TZry-{ zqOhSvW9%!kMv>|5m5rD$czea}>KE*4Ec|~IK)|^iXP8z8mupyH*FLUtYhN!&Pl)UM zH`XAcoK!^(Sg4zXngvW_trj{>+@CvryEV&CTvn6KWtbgwF5}n->&Pr%gj~*WMCOsa zVM0H=C)dwZpdL7dO{quESSMavMKQ|HpJyX5Y3Vgxas7xF+?xr38%))}$~OJ-g?fLc zvNM8h%$C!KC?Ld;>wbCN&5_G^M(b+lc}j)@Xe+c)kYJ@0L$VyA7%m2JKig|bT%o%V zE^X(jHns}BVTtyP2lMqMHY^RtUKuZe(?MTXx2m2)azI;qjLKlJNbXn4<1!5b6X#=! ziqqMvU-77(ISg{#*~a>?^qef#ho^rT?b(96XZI6%Q6hMPiF*Tdtjyh*VqMIXAZ&da zu?s{-G{6mPt324TNnA(jW2S%Nn5GXzoCGhbi(G}hUDu{dP_ z*vFGA)Z_s6O09IMDU|0D%jXt~3_F%cZgg6Bm~27SA?O4HDaD4C7e5uZmDkJ8*;K(3 zw;DSnCmQt&I3h>=2&pwb#^uNzLQ8pY3O=0E{D`Lptbm7dHK1G&Bksq-$~)wh!@)Xs zh_QEQIu>TiYdf<8h$MM&n+ku1pkK~+$8b_bmM?@L_$P2-Lz1VX{!ILZ9d|Acc~a8Y zMqp^Jl+V9ntZbu6q-~JA^nArRC2sx3LNnQf%V4-P{B3Ezyb5sQUVJz{!?H3((6OVm zr(>v4uFmQi(h)};uZ7WhYB~9;7EhEMqaTsN{i?NO7d&VV&~ZA|108>P&gT_?4*LY_ zSqDvAy+`ia+fU0_S>?UkWNt{_Y9|K1!*ZUF*aeo8X1w47NDM)5T7l+}&cF|gIZ(!E zno`o3r+E6^|UhH5S=#%l6tA&9Z-A7jO1Y!1{J95rFsM zqLXyV(V{Ez=wU@)g_n|2>Xc&y_8O&kS8C42o2W*PgLPE!>i_V0}4K4eDC2bbf1%?Er%Uh{z^Pt#@$Ip+{g ziFWr-b1;4CR0e<7*?2)ZxT)AsRWSn9IKV|7aKQvP5V(}XGmnAwCu+(+bge(JJ2rTk zYQ?S1;LU!UFzTyZtxZ@*`s0>@f4RWCqoSuVC!MAJ?%5T3zjgtibi8RdFgapIJsmmK0lx)5Y=rZ~)*U;Ca`#0C4+E5`NR#rawCf&qv0l7e`qqTb5# zz9|L+(mPtS{N)*pIA2&^VXRhUUQupVYc}?eb{G4j+8%G%zYF%iZMmuhDo;XwE zh}JlVAMk$_edr5p(@#Xi%dw(eIQ_{pmYi^o%!gIWM84x^;>Xk~(;94Q#8t-e2*z4dl z$=al*#$_5{K(0RiKv>9s=XF_5MqVn~z8oT_Ek=L+j06Clu42kfeo)UV#g0Dt5Q!Y- zWx5Pd^oh%L+_Do+N5J~pa31Su?P--+C8{b)f56%%^3EG_$`*DsL@G>-qFKow*Xm3p zuF?rBQt%|%RM-a-1UlBRC~}T@U>SjaY~s+Ou6SM8-lVMni`hXraR2T@4R*%gS+3-Mwh0cYV}`c~AGmfyjOx5}%JNXUQHXCgy}8yN~V?nZ_v|N0ggdj56aB15k~ zGW0E~2@3HSJZ1V3A3ZB;$P3Q5Wn>q}Qpesn5Wa|Exx84!elFhRiiOCK=yWWAP?1zv zp*({npxTaVs3Qv`p{Ot>-f=iMRsj}Pg$G{fr-<-COw|v|%41u_Cd>ddmbsj)eZYUK zgU`?9obFfKrl+D}xVZQyHZ0-Pg@yftg)3O1LSA_Ja^un0QljcR>y5x5E@*RO2S5edf?#mMAk zztGuTkp)tbqRje2icVG{!YdzbWDtLutj_SvZ0A~VJ5`g2N)v8orj}Ul>>q2909cHtfc0#>gT{^d1dl;fO^;op1d>mE{7>n-;C+@X`QZ7N|X zCLFLc$BO;((1AGiyHCPfE(sr%-X-DT#(pE=1?qaazaABBQJ2rnu9sDjwozPBs zt!9`B*}ejdAIkTYH6PB zqkX2ZCq`_aF=8nn;;4TMtv37xFDL>v&AD3%z52&ouGcT)OkC~obg5+lD2uDZW zhj|CCy=6tPvLfX9aEOVPhr4(QMa=S$V(CD2p(RPL0v!Eh#UFoYUq{c!Oi8)=uGQZR zoH`)#kl3* z_4ctq%K5--n|D>UySiVloVUB0Eur8O)7-nuj!vtP)y6>gYPYq(Q15(DR5sIf0G@dP zcsJglC1Q2wTGxNm^JC75tg*7OTOeJR%f@a-Z4|jrP2y}oYlHp-cU;3)oTr0k^XAx@ z2hEYX9M3!lcB7*$@08!BpQcfHA1}zBpDv^g61epJ#bkQDf!DiVsq%89$#z<`P14I^1OdokhTx=diwt3L>VO$bmT&=?PSlA?HXAmu}nRVa00aJsxQHnQyemLtfUR zjT1wB*+LcU%*zb%Rk$;>c9o~NlEs}~sTMT$L9pK~E@mm0nYBe$u)rY_@f)w2PeB5U z*#I2xN#I!-dz>7{waO2TK0Y9GbaG{3Z3=jt?Ok1uoC#}~-Y52z-oqNwU7yL;CLVjDXo42qL)7@_RnBJMTjvh z-~IIT-%qH((E6$KZ$|6IfKilA!;=30fAd$%`IldQe0uj4Eg~20Ws3&|BPKZ~SGPct`__$39V_u#K z(c1{uPl#in&&zPphX`g{c#$oU(-E*=I7Ia1m_&5Z69#R)kK4UYf^-Rr0to}yO@V~v zgtNx*Y0WE28spjuUq4+lQi{rXe+Xd#9Zj)TC(T?MPL@v54ftTRx7Tl#)qH*CQ7i2O zAfGwJ(Tkl56tP*hXkZlcTv0nj+7>~kECQl)VZbOxSLY2X1Hn_Xx|ecsLa_}1jrKu# zieW(=jB;+py1)L@^0R=Oe*!W(D)cLOst~nVRPezrDv*sU?sW$@+=UkEbWS5I9)U*lD{Mq|Lt$z*W1E&TjRn4 zgypvB*Yy}dJ*F2z>$*>+W9_Hx!M$vEFNfHDDjjP-<$XV5I>tVw0MIYxrvbN$pgUMZ z@UQ>*^Iv}bSPSoC6}jm3)3MnVc=^pV*loFO47>!Wv$ zf%i$cA{(n!2AxZ~+6AqktN{qY?r{K>*Cqz<_YM)1wcbDsdmIR9@Mv`BDgEH{x1#W{ z!A*ezYmGC058Xk5^BBSwH>hA~v>0{p11F@}$_sxkC!97&0}8ZWf4D+ape$Tz9rIU+ z)6JY9C>@Nm;0DH^Y}3|9XCmzb5-DRSpzg>}e}$-8QS9>z%z-2*AdAFl2UnD1OogvJ zL}?w?b{uWS7>1-fG=_Q0tPUbT!)B#18cX!XUYD+{TJBNU^Q!(tqgqa~WoxHtMTxg^ zh4~vFf@a3>!ltXOf9v%D!FlJ8HP{T!q>BmFj@Qu`^^g$xtYlbv6RbowQ4wB)H2Aa- zW#_EPTh!V`65uVqv=(+;If()9c{S0G3Hn^3H3wDqQ&@ z{c$DJHohp!I1`OE12!}?vj+d>DM%5Ev4p@S{4#s1F%P|ye>hBg=)4eRs_`a~NNEh2 zIAqtwlz&=+EvkzYHrHLE0*mA#1CG~>C>{c`>`SL3Zuu!e|$>jz0=`)OuS>3RZ5T{cmiXNr^`X(2GT9rs4RC*^0cGty1fAdHdTc{ zL~(#IiV?p7Ok=`;m2$*v2uiaO@7S4!oS_{cXH6{DT0q%()Dl@+w1VC(#Qm*?*iNYX z3I%L}cP4i3?p1W;v}4Zj!c5zm5!i}(B`z8Wwkv*~f1SajAYaaPZm`EekRM_R0JEe9 z9W#jg$|SdB7vc&*S6zu~;i zXij&e=v@ix1H_56_U#t;K@nwOF}rvuV$Fp!)0K?*osJte&_q_lvoSYP zy_#R(m_ar{cfO1))w{k#E$V@LZt@sXZBVvef03L`7baz5C@xUc$M1e)_RbxU2eMTe zWk)JeN8HmYLlgsS;Jab0(5QfejS8gETy0dS*nEGZLXk~G?P+9-_V?-6fAl=u-}4~e z>ZM9#U&xr|0*~BKxeEyfqu4y%nD6kB?W(R2O=wfZ2R56CO#u?$xPey8_b`YX5%b=8 ze}fdIL|ZOO&+ih5a-UbBm>kcKao@H=vvDHIN{R<#M_ zZIokuAOrdR4q=D#`>~DmdD<|Y-_LK>o3dG-I!iSO74pN)`s9PC8D!kBKPh6bxc%`s zDs{`Qsn`&Dwe4VdS7yGn%<_{~SaQeWe2OVbaXvMh?);D@37y&^}A{ zxW`oxGWtZXwPWR(Yr8uWhzzGPf2;i#jTpLl^?*>&;LxL1H%ym5`WpQJ>fhY2G8EIJ zE;SYYSe)-4kDsZ(-}hMDeVZ;1tf`FEZpYXR@0dnE08KKL`VtS_%xC@LI_95T`U3Po z>=^zMr4xDOe_--&g2{ZB|MOz-k)$#!y92t0DAW( zEu+v-&~#6({F^c(&{>iM&LRU}ai2}*AW~etfl-Jl@dGK-16!;_o%2Wdn&+Ivrkp8wcKuZyf5xuA`3;`cz$?TKo1$$yTmY2??V|3I$HY3)gEtiSe_lc=Vr=q-d@oQg zV%O0HMp=!)V5da@<;fs2fkEYUCX%BrQ*uh9ago1V(`Qp52pC*fral-XlljEoJUC(x zFy(-9u=Wd5IUP%d>L>^p9q%EyVSITtqGYnU&Mn4EI+KSnWoA)Zho*}TL6Ie=IZ`y1 zfl)9e9c<^WdCtU|e;*nJaF%>Q1M)BhM@&F8)V&WOFVkU{>8;D8*l(7eCx*^Un+7ja zyok$hECXT}=vS3_V54B>23{G9UG{PymFFsa>ri`?)M9kUS2HRANmkCUDWoMRP2@ut zzYZ2DPe5FLYvfuSCTKB%6Y$j--M+1029`v3X{F)?%QsyRe>w7e6ft=Y+%G`L4GR?g zK|~#0oULv6}69yLYXUQ*`fA<}7g_}?@2Wx`kUYOeuqOwT_j5cAtgissHIHq`sDbAA^re>yXsx@k- zQ^jICQ(sCfEYe?GB#=?$LwYkYTWtYjRF)h8%NU9&YefMxf4^JSe^iOmM)nfKdLjhl z1G@l2U%wn|N2z z=E+l8e^9|bRAg=Bgty+Q39lC=jIgzdzx7M9>>8lKI299y zvV=lw%#zlp;~Veos0ahHCd^(FMPrcfW6u*$A2;qSK+820*;vm^<5`od*77}UoDf~2 zEUV}&pHUt)LxFWFr1CsAS}HnBco{-)yj+?mf9BW%^k$;#WM8t-e6|>uay_lVH%h zg_*E9>CU%oOf?2;}qs+VoWl{0XDL%?%JjLt*tc-BrtP*%zR_JzcSa%=*UsrkcSz3cK67aK~*b3ve@+ z5EVJ!ykxSomYsy$2H*vlX?HH+SXL<~cd#F>Lg>=?swU%~ouE2Jqplg2g)>syR zQ$9v)-dSFzF)nLc;eCyDCuUqVT5o`Je{p`N9U}L^7@}4oLQ_pR2*${C#pB=ZTo0)E z-|;wH=o~v&LxP$*jfts3`9)uS+w{+m*O`~#;ss00vn>2N24$>u*lIX7K5L?K7NGxz z7E%Gd)dqK-o~HtN30aGW?B`?4epah6tz?O5=h^2u&$;J$-#hWvVSYR!sBhyiB8HVNgPzNXz2U_b z@k=>_#t_uuFYc9jB(Kl1kmy}N6*d1_#Ww8lM9T`lz0;NevuPvC{uu3p-z@OJ2Z0-k z?>-H`w%;~f+xmsaTl{(-F7WH}=8}yjCWvVx#&LPoc_`^^z0*Y*yc)hH^rHA(k8S3Q z_GL7ICx$L9TbaNAwJpS%tMyU@u3mA{w6OK<8BvL?6vKtQ%XRT?b;XUN7kS#g1xEDo z_#`M@nsY_XM2XBo7J|U|EtZC zF|FP6>nHIdQ^sm`mj}P4Yo85L5Q_*84eRlL``o zjTYGfQ&;;TsEuz&>J78Z55tTOWfWXJ)|;-ISH}Js5oXMmN_|X|X?G&xyed7He`a{=Q$!qQW3shUHI+4VFCS|UbJ}b% zRj`|K>1O`&;2B#edLa$p7yEo}y?~d);AJ2#{>z=k#iHw<#zlrC%oM@W6g%Neg<-^#vuSFOzD0jpA} z>U$H-LZ&#kw@H@^u@4v@9>(Kmb9>Rt<;!2IZzao(2!4AhX)A4Vc}I3|S(#$e$_#oe zIcB+1=>pTk2vkf-oLkK4Tt|BHC~9px0oJWtq4^lpWfC(N7HL;LQy!n!@gr-VV`W{} zd~enV4PR*EnDdr*;QtwP^h+9Evq+lTswK>CJhv&+%)9j;3HyfHnEu>z_+y5Y%u1%0 zc*e$0#Uy4d@-CF0NW0U|x@;6(bv&vfNF}k_|15u6#e(G3<49b6vx-N_fRTFLP+Q)W zuv39jKa_K%K6;f<6p8jd6s8&HSzvOND1SYoOi_N{O?i?}bhvB7nQlQR$lk|wBc}2@ zCOA}IN&ZGkPd&Ut;=yL=QD>Y-9qU!i=|)R~ql%8Ez9!SSuX9hyhA#VlRd!={qj?bE zWb5o9V)?@>p{awCY(n8$$+z$w@V9A_8Gz3F@^}Os1^u%?x6FJ3{Q8I?D7B$E$}Pl6 zQ$JnU`f}sTarb}1*-jNJr4G8tI^9qIx=Op!Cnu~07kP_FsY5n>?Hw%^`L(rie}GF1 zwu5ORA2dF>&3*XcE!fT37P(A(a_8fZ3KxG}fQUv6U#h-$ZfmEeAak=NGZlY^$!c(A zutC?kmRc9qxiZ@^*fChaTW~s6@#ht|wi@tj^WDhc*3`Fe-Sgl>26d=UVrAsD3j}nr zTGxTf+s!Lm-Lr>+dl#RLG^8@q1BH$ct^K#>SE#L3>yNgxLLOVWU#fr4AXI4LiW&3t zBRx)@ugR}{+3XG_$}{4wR3T%f=BWwI!>jiJCkQ8iwA#KlwI^6?U%Jf z37%7`;EK)~XLii99NxY;`e-`tMqfci(u1@^Q9|0({YD(_a`+}9Un%B4=k)uCrcH+*P zf|D68+v3afK7@Y_%d!pr#;>{9xAfa>9%TJWcPbe-<~*_O<^OADc4a9O|8r~mlkU#u zQk4XM#8ipciyN=}^v;&HOyNWl1-TqU$xY5zen@pXeJH~HAI`4|F-M*EqAIwms zCU{kKu0|j7g~~{$N37W0 z`6(aHrJQa|fhq`DbUl=&tfs^3_u9!cJg#&`JL$$gleqJLGcuKFR3Z-;Ow z?d-KG(FopeKl~QTIVK)S_5tH~qxlb4wsU9XM?N|9s`M64zm}-0R;WE}ltwZPf9!m^ zM?QbJcV*mMm60ZHwhS+s9d1}uQg)n#WBn=5{Q%&>bJscdL)BTdTCPtuXx>&oHhO?X zes1&p%$MG7U6e7(vpYs)o~##Z8x8@4J45!+cb7cmZ9m}S*V{drT3n~J7zGBa(CB>y=n3^ z3JEZ}(*4=Z=ee=j>Jt?ONA9r3QQc!NDx*Sck5C-tmTVrTjd*})sgO*&~S|Y+zd&Y*h&$AUj%u4W%q%5^P zLKE%%Wop@Pvl?FQYK^};)}HWXrLWD!ZMoefg)iQCXufOXj%NSLGuq?m{NhD>nB#YE zT>ga{r*ZAE7AcNQu9~hZy;~KLeV%v54eRzGw_Z0tne(T8NVT`;FRcM7CPk*){dF zxHIDHj_KvthZ2%BbHzRPx`I6n#IMtl8|Cu=!)zhqr>$8#kA0qU5zN!L$c{71d7kmc zHaq*eIkc*<$KExw8UH=#^m*7PQ$eXFYQYW6+v1ygt0hSezH8oYi~e;3UpC)N2RQ}Q zUOOxK=neDj<#F{w480%fV~0~P>F4ox(Xu5;-ulw#(UWTaldaMIb02O#cNb=-AH#L~%T%%Dd^jWZ@zi-k&x{@w@!9D|x2h zEkyWrwPfag#@vh5Im%5Z`0yx$y{@4?TJx%Tre46(kA6Q{n+B_;qIpj15jpCJ3dec+ zTAaD6`kDE#jc>Y$K?v#GClQ7To3xw58pqgkoJK!?cBRlRd*<*{hm~x@K=Er@5n4RP zTc)x)MpbTUAoL!iNI3o^*C{tvd+iTR9+s!!jAa+l*UI=b|gFqE)Jw-6oE3Bd41V zPovpQjXKvYA*#_slU!G3f+wh(Odgf%Mpl}{3sO0Z+Enu@X|yrobLvlx23>wmE7EpF zLvSw1E=bYWjwac>g4s+tfQpUTD5Z!qo88qo8hZ95!^^s5y`;;vCqFm&Kknx$pU7p+ z^sY7hp==i-%Fi2J?Y(epMdRrYFI~EhIThuMiK$RaZOiVH1@7UhUbF&L1Tw`m8X_tI!60u})M%`I#YX zK=E|!L)G~pJF<&kOyWjgm?5*M8pv(*RiOOL$LG$ef;W4lH5J|>n|)Wna@@#Q4;#EN zK1=Ve_1ZY)pVJJcQvUcH^@+nj_%lD2N0p7}JZih(68)xo(lobxZoxUH0j1)-MxKw- zlqdC{a6XD4f1j=YaazA3esus%pINvIv$?>LD@WPL} z4?Saw?&OhSm%mi0#GBl7C>ek6G^=Fu34N$RwJFl0$hPjT_xbn5vaVENZ3CT_^DZu# zj)uB*uC3$uXGe7%bAdRw_K<8n$!qg$F{XNUl~)2hE0)%+~a<+_Q7IkBJ^N@0saw&yMU@*}-xZKgQ{g ztZ`B(NIku((3LK7-WW^F`-E+iNdm z*)gwklO%&9K64>s=ggXrrqn+qFb>mI)%K}t zISH!q^^F75q}XXPlZH?{ov*aHp}TohutDpSrh3!{SSX{R`==gSCQvdZ>A4~a5pS2Pof}`;F|eQ7rgHJu)uZ(og{&cx+{9ly}ZQ_vep| zZ{;p*W0*$GHD=r7YO9z7r!A~`bc-22Vdme!jKpLsrOvJyd2Q&`nT?`2`yy@GnWHiT z`of+p{Y)8dmaP(rz6}1r%>tWGJ}e2+k!@V7pU=Y87r7#|S{-K6$-#4SOnxWL#kNef zME-PW+5EdRRwTE7MLO`mqh73)cGM#=eQ`~3p%_wa@tKFuCTk1*=vV#X>=-;}p?cAN zGtk%Efm7+&PV(pUSP`aaKX+z38;VVfMfTGhYq3o|o?Q6(UK^8ZZj478X0q^xBNKIq z)$lM@DVE})ZN4wu{p7SCrtcINphIlZW~)5qMNGwkQ`a`Cq>l)Yk7T0Dy0hyq*Ljzg z`*qI*IWcdAiF+T<<*eOaTXFLa*@3XVZVn*af%wN$HEl1_!r}2J1R$b#7!;2AbIX%q zG@&bup$E4-N21&^x<@a&iVe^@``G9UJooaET1`v~Hh{QEh^_V&d~*>EXelhE8cn>- z*YV5slU8n8!VWzbRKOKO&+pdC697Gb9B1)?4Oc zUT#mQK9s{Zi&Db+Dq7wxEyrdIjPy)fC*IQD`RV06)9k$b)yCv&opNC__~;WxA2JSM zr&eCtnI&v4#L3fvv4M#?PSYfjKB2|Kfnic*_?F=jl2@8drcdISO%6xW;`L?p4pjn+ zC1Y>I1ugB*Zd`06f1FIg$vJ*jN%%xpNO6)hg-ALSFNu^D=a4!7UFNa!G#gtRZC}`P z#VO~ur%VI1s!wm;awi?X(k;z=f2I)@Q|!eZVkAa8X*gXv>@HMuH!oNlvTdOB>>2ao zd4XZP+^d+VbJTK-nGYYNv9~ePt9a#^+e>^C@#%i!T&B#x_$t*hJ8skK!y#!WrMaUW zU%}rYq>RLSkp~ntVTVm%10 z_7~^Z=XGbCLog?>!VG>1zH$y%=2LF3J2c;3HwvGZW2$hdv$Xgcq=>QZ?JfUQ1G%fl zM48A!Ay%xDYTAzN8b79GqbSu~Z8~hnHkiU@5g90o53CoE&G&AZi$9T~*r0%~^W#?S z;PIEe$(5dVBwf!UZK7-k1(Y`#(|Dilu(x&mqg_)%uynpz+4V>r(6wB9!ekNYjpxXFfrQ z*O2$0y^B}A?Cn}RmHzZv+swUaPP!X1S2^y#D$P`Vk&I-O^TTC$;~E=_>-aUA*7D#OSovitp58{jRo@Z2e@3HR z4)@mDVrXRi`gGFA<@{b}e*5u9xTjFCpnc76`0E{MZpZ1`@5WDk^ktwv6zWOtiUNp| zpL7;?SJ5RKNmLLBA|_=Ef&hM``~ctAQwi_i9~0gepAg>XpAz0br3nK}Y5B5nL8#za zTDfyxSFYN5>DgSdclYuX#L&ta*w}gs%AKQ?+k*+h5rmF_)9hh@DxCp>1=!Qk)Pisr z0crufPuB(#(&+(Qh9JN+%?LpQHW}PN$9@Y3@MiD>^v?vTPr*Qhg5YC;5zowknhbg% z@tGh!NZZ5Rk#GS40~()k1ODK+#zsmy^d4_of(SU!^-K@A_lzD8&D_1l^!plWm$8eP z+5k@`JKGh^QW597O=i-Md)8Uf$2m0GdfU2oh+@ z5e3`iS?0ixv&6^XX^kz!OL;k z1Y~vDAhK+FKse_B(@5Md(@r@$0Bsc=(3m4cV481VC_P8PeY0o@n!^QA`$}HR(I$nV z0LNSyh#I`P6Ts!-0OeK!A<;ZD(54}IQh)P|+La&pCr=v)&Z7s!^LKgvgUl`)v~nOB zDERpOJ!M(sYXgV#>44IFF%a`uz8R2}PY7;n9+kv&;JyO-Y36SU}vVVh(7Q&;!#Y2h@w%Q?Gcb4n68Ow^-1`yHxmp z>lwDo#=Zuy`-(0v)d6Lu14SyT+r`ZNueV`$S^JF>C>oLl?v}CtsTC}!m0da#|49cX zh~0CR-&nA~fxZKS?h^{A)&;QD48TY=0oku=OP~vEIoA+c(KVL9`5Fe`$8PIL zttGGkw(ivuu9bqV;97bJY=0V_tg{4lkx?g2aA@X#)enR1&BFCMUBavd&ek9KlM$F8 z47NWJ@6_vo^Ozo(sV8_bV}lhiTF(IZHxP(D0b6bj^Z*xX&}0joa%q^N%n;vFyF}lM7$snD}Hewd{^rtybpIp96-7k zY=E{NY2ZXJ69ftfb+bZHfceb7is{}{40_+Op1r)p2?LW}1qC?+zf1OlayqKuvPFoL zFyKo!FCf|@4n{!T9xq0i#P5j(LxVF*mJ|&#+s#U9jsaeG3vj~!A2f75ya2^NLae6< zOA!pcYcN7&fT1w}oTVqgRgc6}B*a1@B{rJ~0YhVA0Vz(M@(pq>cJ(n0LIb`^x}$4gxQO;F6n z{ypq(2KKS<$_I205LRC0X%R*k<~R2k0{0%kIgpbBxH0>jWA-@r7`zE`zBY&k+=tY5 z=L3Or>>lU0!DTFcn7}zD1LimDSOV)Fz%7uGgUI(8-wUch#t?yV>ES)(>LYuMWA_-x zj4%RYuY~~U5EcDz#<2v(-GRDSLI-hU_Zi3TG5&T$1Be)-0o>lu1K8IRbidid#k`UR z?Vt+yy%E~A0}cj+jIjdNqYOZQ&mO@)dhgl+_&!Wba9^0ccnUC&>VeK`Gm89!TO11H zR*FCjg4=aE92z7g2&laSv4Kj%{T2*|0iKL{0FrNrl!n_E47Vqk+L#^~En>%zpk2Dg z2sT#%Cf^+)q*$cTJxMyp835mjeG>nQ0*AtPNm#xmCb1_9d@o`HzTMf25f^J^4=4OP%y%w{|W+!5-j8fM1w5-ZGAX&PY^hCPmtV6ec;3t zJwWsR59`2Td)83_PEQfYF@e#aK#iuD4tPIJa5Vz8-!j1n=5YgBCw8fc{+@zx=)O#Q ztGUJR`40w%@H8hO)RBTs!qRL#O%2NGJiRAt@P|F(d!iCzAm_|J@x9fCFh}9A zJyAE`?-FPDgE$Nc@O|O}gg?p?@JFY!0argtfCfwbxQm|@4&R+ipv~y_(&fFd1t^uU z5v~#3a92{;Z%IKgDCsV{L=gcF+ZT2Z8L-tYOKW56YEKASU}6nM8A)?+J=hCh;Qw8$ zVEov%8u)*|y_d)k;-M+w_!NfShwr(mAPl$H-nX{kz8ye4?BV&3FuWJebW}Cf1PK`7 zFf5>vuFgtGVRsiVLHHiy2w2IDPty<@khfheS^$aZQUEZ^1q`I~i0|$*2uZp*V%K#9 zk$awmg6>9H_#RsbD6lfCFD!`KTQ>ifkHX=E&by;gdmX{h>O7|}C5YME3HwC#0 z2tOzxLEHO;_q+Z@3J)$>xP4r>{SLT&TDX0K?TZRV6A;%~&e11_7H@A2YBKCTW&af9~XQVmjyt-$P46t<uTfsfsf=qy)_J$(BPy0Rs ze%fOR1%BGoKN|eB=WrNs^SX=N0_a=h0uC>nIKF2pad(dk_R!rI4lV(jU>Dn;;bS*z zBQOs7yO#3>Ptcday{O11F`!|A0bBxl7Py44;LO|IHyd2Bw+Bh>+LcyLQ*FPEh|i*d z2mxY?%wW*LE-HgtP5(t3c7hE1n6>TQ9le}jV74AV&Hxd_qmgI?ID_`T{PRs3@}n~` z&`4Qqn6tXtJ4@Ar)4@<9|Irx~l)NJ-+3uwEYNIn$?PiEDmtLzey}07j&%q9CRx~^m ztkdGl;B$dqKiamy~$ZMX2z#Bh$GmQD)?n0-M2d?m}3y7K$1e2nSr)5 z3B31d1t&-ZpFVb4yB^jO*Gu+z9x^%f#;;9XFqEET>&MI+U1_;now8Qc%n6Lv=JJk4 zmO<$jwbV-dWWnz}XI^&Ey*_G1C3qAf=+Jw;O&5PW0JT&>!a@?wtIO8=GT`T+#wXHA zD9J{U^7uLRFV&^YBthgPp8!8PhpH$D<6384LKW?UbOaeW|KuN(RxN&Y>U}ZT-=n#ot$Ssn> zTLOysIp5BhuL8@xrOi7x&J-X<_-+R%Tw3vA&e-5pe8IouYqi;;k-TnN%#cd*IcD`< zkMsq)OC%{Ttw;p#9~b$BVAGQ#L22HiO?v=YdGQ7qpcDNN%9(UYrI?2Ijf9-w$dwQ; ztFH^!Le|y_SIrtJ>Afb@uhUXseEzL_TwFUZ=Q($(J5u{ zq^*?EVn<@JeR1`r0{&=2Ykr|rU@_Ydx~eB)-9>eq5b!T)EL&R-{Fx-4^OW&I-O={X zkp?_=J51j#f-ouK!SyvAB@X~SaS`V<3|pmpI1csC^-7O!mZ3FhP)(Uc}-%i z@bbD}G*x0D`7>pH1)8>KniA_nY%S--Z-_O~XhOMSY{=7{>*14gwXg2l_SC`aI6ibG?iF-(|Hs6wn8qBCh5*l3Mh3Flsn}{B9to$ z%7{-17Hgzon&8iQjmOa4*)Em|GmT~nZQAe&yt?tVz(I*$I*bC^S1{t*aM%y}sbRA% z)#U{1%*JZ!SNtH2U(mfI=!i$v5ff6xBuxSxqKRfxkD5-fZ^Ge1{Nu+=pnE7Z- zBz%j9{#u;v$X9*Qw{Wd+sW;#ut>bpzdb4JoET&1*Jq-9lXVU3*>8wYKL|q2&$&CrO z;F=vDuZ@P-&!QU%=}LS^W!9uHp4aM(D#;UzbWdoqXZ20!v>r2#3+Y@S(+L*EQoCK^ z#$SAV_+jBqNFwQrf5=IUv0>gZkPd53O%ZgAq!#^avM*c#2}4EmUsw|!yhwr>;W zUjL>Y6z%xUATZwSJ*k>9UlncJC6#y?>=6O;J_Pm!W=Qmn~+fYk8`O?`MKEHsYP8ZHyu zeTjdqMdW#Kvfj(!3g)BK^2}@V17wZ#J1A0C--r_x$`TKhD8Izd2|of+ZF3wuH7=y+ z%xlnMA4tzR)p0?_vqaUE#bCvR#PiAZis)p2fvjL@$EsiFpGKXDFFJpg%&PdjALWC_ z8hrIhl1q0LUtS$UDM6$GgG#l9BQBT83^qPllAn*sEEFo#5>U3J2qV$EB@t9F9&+>& z8%rUrq?2Y;{Q&i^;|7hgYuqxywBP8r`DNex-U=u6X1%j2!k{kXWI`WP|^bIo+=^+P4ZDJ?)qAKY2qiIZN}BD_19t`8GI1tRkCvoqa7P zQ-P(3VdtL_lCJNtkriiJTvD0dkH{~57urZ{JV8_Y@Wzg9i*C*mYlwjPa#YSzm&DJ| z#wc{;v_M{S+)RL9x1?)5ryQQESB~x{^ze@6Bo*n7{^Sm`Zx*c_TK!uD>7ygd+rqVi z_@yzkd#Rq2HBGO@m-s?F=oF;DhxAU+Dab6zgfNim(kNuvY|AqhaGLl`u@$iTPWdvP zxJ;}2plEt$@_mPA?K|JG?q5xz9pv?D`erAUY^mZ7#8V$n{@qa*%JPmX649rxsP_M?U!q-Y1gU8wvQnuWR`p! z##U{`Ct{=I77R8co>ZP|@zd9_=j z-f%MR&f)rxZ0-_v?0x>e>WoIdZ%X(BPfpJ0gl;;7JffU#zsg^K`LMf*#}uz?<@k+{ z_<4m|1%Z*gp$&Pa{Gp`^(p1Z|;6upB38@0|@#O#B825TG_weEEs^c zL=N8S%3N&;ciZ^qf#9#`MlV)H@uiR-hQERve;C&4PQH>*4$N+p01OpHsKqqMmtIJo zp=}JHIFs8Cgpo}-97Y%_iI*rnD>u~CKZm)KYZ@@?Lg%WTUp62-J+oq zZ1jAoFzTY!}}8 zlwFC3`17862P@m?nE?ga9>d1RC0s4X8kh}>KX!O(-FD4y6wZ z;+~8?R?`IUm9stjD07(7;ldCZWU^h0tlSq@yIVJN4 z%6CTYF(>tBHZ&FB?Me#XWrn3cW26`w86BTHw-b17)v@Q{!&9|4e|FYBS8%M4P-eU> z?9J<`-qD_+7V{zfy+n&GRm_8wuD(|-Mds_bnOg77e)?ozTQRw^xkaWCX}mDL{<9Q6 z7;#7L!cJmBs=BVhbewL(s_!`WLj%L*w_Ty#ckXD}+D74$cf7nl=4|zz5D5PINk&PC z#3yn)x&2#=N)QP%~=UI7Do{cx863{naQ*gRO%_(M0?rUnH;kBCAt@d+oM_sQ5g-!KPZ1O=Zt8CkT6L8i?3V#ziG1?u`CeY*_n8 zi@P@Cqyi_Gxcje<1yjc|OPrmimMv-`J6cJ@?ku?E-l+(ou@&s*WffL#lt&m)X$?hA zl3gtGQ(ZCYaEQW#(rdfJA(Y|A z6O z7$O<3(LMfiG8EGtDWBG7c)sfL^yxNSOoeaH!?uW#+~rht($r~<>_g*gk!1Hsrti)L zY9o*GD5nKGJwWveZ$D91O?!$-hjhit$5es$`|bEW4B^$e=xKLr;YNR6Prc&U7R{#j zlfZYMcDjd>bNAR!dDHFvFRLJN=pCEw?{a)W);o*wv zaRafHw`73Svt2Lz%^ZSK>VplX)2Zf!6D#|}+(!l7&qj%FUVj!;SwFwLDl;~~en&%| zGUjX%kKV*QLcjw;fxOgw+|ozffQKP=cqn~f!|Z{>StmUwHmZoD3E}dTyp1;YvSowu zuV(QsYo7V|H_Nk;+Byn6Tso&1`_CVDueMmOT=04p;d*p>eS5*@hZ-4o<+b_Yugz+2 zRwIjJW2w~M=H>IQsElNOe1tB@ps>|`|1?aUs;{=lrl9A|%Fh5i`Bc0Qs|SRYer+`4 z^hqh3va>HN5m#)Z`ynrLwMNEX`SR?8ZGGui!*8Z6sXsEKKjsskEm@2Jb%W6n7A_#=j`9v&v|fw5f5- zDX+q(_p`Cfs(Sf87g1&`Q(ree;k)>%#B7&s;%ZRH}ARj2N~ z(vNTSRk;$W(Z+Ne59Rmt=TfIqedQh$sPH&o@o%sXHYb2Io`Pbxd!2 z^t&*8Jf@|HPrVU{S&s_bsX2NxUM3kQCFwO8J8k^y0ro>E4eQ9x%!^q4ZI<3z|9lij z@aIhQ7p-wpxc0J{@VjSsefuGn`OkaulJkP_ikhc|&$--_4;K$&)K{9FjuwQfg`76v z5y_z}c+y$eVcn_xZq&U;q{yS%9ewrP2N@KfjC^SHTVG)E1}4(^{M2*(2P@ZSKYcJb zN z-7LaG6-jJ0rSCZ|j~&Iu-jCLfnRP-xjEWX*B8P{ZaR4^!&Y~}zrtp$|)NR~&w)lap zWA`RYmbM?i_o-!E^z@Mzlrh?$ALM(+zhM8?!Bo@xJ*lH1o`2-5 z4xIdX4`+Z$Tl@pIZxJUeEyka*7k)->8a-vnJPEztfALG7-Q6?OT=F-W5TZPbY3tvS zX(I_bpZYfg%V8rXDq6FrExWq!8kWXrbXq^AB?YjTqHn!q)4M>%mC)}*sl_##XhDO@ z;lPV|Ue5gRAobfTDK3q#hkq8YVrwS-g8^yD5j)+y+m1_s#* zrcie=;~r~fwQC0*ktV@Hm^8W)oM$e zO@YTh)RLKZ!sR>iZkV;4JQrq9_14bs-M8oX`kS+|19czJ%|G>W>Be> z8t16}7#I8Q6`qf*YP6q{?KGG`kQl-_CFS zT!g6%}uuI-;aG<$zmf40}l*x$?ly#Cnet#6&*o?mgSa&cRUtDLJWuk5VP zzm~iu|Ka4!$&d1$7V7ua_0@Zi7@J-&HApOZIkecj@xdLg;+bi3>zF(mjLa8ClJC1i zk6&9|nrr5qo1be(=bjjQbv5Fjc%KjaeF;~$@b~d55O)d=M>G_;T-8w?e^cj? zTomWdqfjX-n}06KgVWo}E+d!Rm6=g}oU4$vMc)2+MT3fOU1HLlu}2=l!~4eDEL&r1 z$ui0_m!2ordt0U9E1s5@|L`ZxTT3}5738X>uXeSS>X6%^K%HxqE z$qpV$WFOURp!)j9G=9Xa_|^`_e@4w}$Gdl;@NC@J7c{4b$NVo{E6>l*kNh~E9p`E_ zr|rWM{58ha`Ua&(?NdZ@?&{KckHGuSF5P)ea*UouO#AFDQdXVgE(ybAYr~4UCC6+j zpM{#QcF;#5E*e~SK78*JS**61lA~0c7q^uvX2~(ut@O^K-kN?+2(R!(m9#N|X%oDn z9*;OapvMzBQVSU=X86gSr80i|*ax1#M1lB;*b_1MM)c2+vZBJIF!={azSHhct8|CY z^%+}eeEwOU|9v$k&r`N)cxe1;LUoNI#g*{wr@D=d*)A=wQu3}m#VCEWOzHLXJLEBa zHmbjOcu2Dx|9y4zbfmQiGeeZGok-3TE5TETit+Ex^S^JcUb?AgNGYSIpYEkYqwTYD zu35Bt`^hQC%mT-qWBy()HTb~`44OJClp^iv9c*o`x3eO%A~&zS97Re|!$_A?p9mPF3r%nq;h2>{->UqE`mC zvJB#74=CfZGt6$6$(PC){Mh6dlhy1bOR`>w$FeTy zee){sV)D+FcwgO(){!X%O%dhRlP5{TfFrNGpesJ5RmF;iPx z`W_F?-&k0P5b^luzTAoRvF@!!y%F$kHXv1ur!{Iyqd!`s{$h1dUDoW@s%67_HX~9V zVSl$6P0F4dALHazLtP)R>4}=H_CyG5eywkxiIB%z@M$rPvZe>*is}7$VIhPSx%lm| zh1|$UlzbK1sgNwnwCvfSg@);VLiV$;QS}clh?$Uw$4~iOwE7N+d>Qc?2yAB6F)lcDAw<15G66(53i10$h`AQh>RzJ z?~5>fi-~k=jPG5?Ga?jcJH-#Tv9KRMlW-S!qo$~d|0bCjtyv6vlp#f-r!+Hl9{s5A z{*_pf!h{FbH0I65r(A4g-URc$rmR1ceOz2h#lsMRc;+(@7RtS& z%J}mPAYeNj5=#LdX2CHPsk9I_2n4%Zv|TYu2cd;oeuxT;(Nv3fflp@3Ksv*J%}7Rcoc|@CyRs}RmQ;3gpvZnOVC}AcJ~7YjUpUH z{{_S1P=v$eKVdK^5`jU*J4Ql;@o*I3fcej>P$(KpI4}JRhJ<4YwF!U0U)84;e;8;TS;9oE#0!uio z{R@V`V2K$-LeYPWCD4aLkuVtHoSg9bml-4yK`2c43x-CZ2`9yW!{FfSAPlUfI>-zX zi6Wdn|1}ng1b>z3pmazinox*#pd*S<<8%OqB{DV=`5&rAg06CKEDB1fe%aOk9}?pT z$IyQhLBR-h3kP6O!WsVo7=qYmP;f#K#DRWD!nFMtW=!~mL?H;ZXa55CU?@Um$3Yn3 z;Qjy%L##m*IvxT*Sn*gwZNY)=SVBe5-!L@v;0ys-!Xb%t0Y2Z67zQO2oE*T1*pnM{ zuHVWTL2RpY?$MAQ*O$YKr*MicHJH~_;EDv%Dsh$bXB zMF~j-;f4P_n{haz*o%Vh)}H-^5QGuA7z&CYR9GG82S*XZkOvq9^^bxg|ARv`QQSsB zQAF_z1;r3*u?`SM6KbXoz;J{Tz5_5U0*gNg1cf_jClpv#c2KP-7_r?^VA$VnZH*S!Uz-?un)#Ba4b>8Mu9Vy7$1gE%f3r^pDrFm zh$GY!{s|<&h}8urUN%u+4e9?R`BxAypCi&198Q#EfGHg4)VuNgcML$m5vYTnj)J3z z83eOOBBtROqQHp)^DklsalfZAem~7b!NIV1Pzwmq;|{{$I6}4N-`Ya#7VI8?!3afj z2Ve-IIDmr6C)%{op{|OhzOV|5IGN+FcEPI=7hu& zVF<;uf2$YV8WA}Z3P+UVqrjccuGT=y{F@yP!sD{Q7 z>Y4v#de^f+ZirGp6lS+3_1}(!4=4P+&4aG+nT0;(3Zi5idSi98q=;Mth>{ z9)$z#`KKTR{iDF_gvfSawnGd<5-%!XKK-XX393XxcWcl8)+)FaCNdok0|VtJ^!x3E zXmEcYEe?^1(F7Lv#{SN1&`@xlI*1U4Ak-osU=UOn5e!Qd zAJDMf!tlSxf_cN=!h!lngSE{>lE9I~2*GbG4thG6{}62!(QquGSo&|m;I}7#69(ym zUqrwUW;URE5Jf9A0zr%rfh1NnsQrVp1Pvy%L`)-a|L)8G&1^8>#_r&>12N9^40fD&v!0_*kfI$(sKNCi;D>lxq_E!k??B|^Q!7mn3;2qg# dJv_X?uNaZ>XP!U==#b#@LMtMou6vU9{{UT*iH!gN delta 51920 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 S@KA%j@K7p2L1j%9s{a9TVVcnZ diff --git a/public/rechtliches/avv-terminplaner-2026-10-05.pdf.sha256 b/public/rechtliches/avv-terminplaner-2026-10-05.pdf.sha256 index 880d406..70019f8 100644 --- a/public/rechtliches/avv-terminplaner-2026-10-05.pdf.sha256 +++ b/public/rechtliches/avv-terminplaner-2026-10-05.pdf.sha256 @@ -1 +1 @@ -93776bde9b84709dbb6b5065cbf6c31c27080744c8096804d5b6508f9e87c14b +3a10d5b588d05ef9f711fee796157b5c2a9170f39c5d7f2f4f015308d318e9ef diff --git a/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.html b/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.html index 2117d95..8ffb5ce 100644 --- a/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.html +++ b/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.html @@ -136,7 +136,7 @@

(2) Mit dem Abschalten nimmt der Terminplaner keine neuen Buchungen mehr an, und das Widget zeigt den Ausweichtext. Die Termine bleiben im Kundenportal sichtbar, und der Kunde kann sie als CSV-Datei exportieren. Gäste können über ihren Link absagen. Bereits angeforderte Erinnerungen laufen weiter. Der Kunde informiert seine Gäste.

-

(3) WEBklar löscht alle Termindaten und die Einstellungen 30 Tage nach dem Abschalten.

+

(3) WEBklar löscht alle Termindaten und die Einstellungen 30 Tage nach dem Abschalten. Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen (Nummer 9 Abs. 6 des AVV Terminplaner).

(4) Beginnt innerhalb dieser 30 Tage wieder ein Wartungs-Abo, schaltet WEBklar den Terminplaner mit den vorhandenen Daten und Einstellungen ohne weitere Kosten wieder ein. Nach der Löschung ist eine neue Einrichtung nötig (neuer Fragebogen, neuer Preis nach Nr. 5).

diff --git a/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf b/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf index ebacd9c0b77b80de4a78a79d722a404b064f4a05..0a98f3346befdf1568c4c89056af80201c72c528 100644 GIT binary patch delta 16090 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 delta 15689 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 O3?PKe%n}Ncg#QE0)MNet diff --git a/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf.sha256 b/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf.sha256 index 9ff7cbf..50bb041 100644 --- a/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf.sha256 +++ b/public/rechtliches/leistungsbeschreibung-terminplaner-2026-10-05.pdf.sha256 @@ -1 +1 @@ -68039f8293eec7128135e96060b8e04f7e6301de123e099c180feb86530f39f7 +da26e937921ef71a5d874551fd085ce63feb9b8663e37571f1a901e75b859473 diff --git a/public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html b/public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html new file mode 100644 index 0000000..ba7197b --- /dev/null +++ b/public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html @@ -0,0 +1,78 @@ + + + + + + + Leistungsbeschreibung Funktionen – News-Pinnwand – WEBklar + + + + + + diff --git a/public/vertragsunterlagen/funktionen-leistungsbeschreibung.html b/public/vertragsunterlagen/funktionen-leistungsbeschreibung.html index b4245cb..d46b0c4 100644 --- a/public/vertragsunterlagen/funktionen-leistungsbeschreibung.html +++ b/public/vertragsunterlagen/funktionen-leistungsbeschreibung.html @@ -41,6 +41,7 @@
WEBKLAR

Leistungsbeschreibung: Funktionen – News-Pinnwand

Stand 05.10.2026

+

Frühere Fassung vom 30.09.2026: Leistungsbeschreibung (Stand 30.09.2026)

Das Wichtigste auf einen Blick diff --git a/scripts/build-legal-html.mjs b/scripts/build-legal-html.mjs index 0a250fd..a9e8923 100755 --- a/scripts/build-legal-html.mjs +++ b/scripts/build-legal-html.mjs @@ -176,9 +176,9 @@ const STYLE = (seitenkopf) => ` :root { color-scheme: light; } } ` -/** Adresse eines Links der Navigation: relativ zur Wurzel ("/…", nicht "//") oder https. */ +/** Adresse eines Links der Navigation: relativ zur Wurzel ("/…", nicht "//") oder https; kein Rückwärtsschrägstrich (Browser lesen ihn wie "/"). */ function pruefeHref(href) { - if (typeof href !== 'string' || !(/^\/(?!\/)/.test(href) || /^https:\/\/[^\s"'<>]+$/.test(href)) || /[\s"'<>]/.test(href)) { + if (typeof href !== 'string' || !(/^\/(?!\/)/.test(href) || /^https:\/\/[^\s"'<>]+$/.test(href)) || /[\s"'<>\\]/.test(href)) { throw new Error(`render: ungültige Adresse in der Navigation: ${String(href).slice(0, 60)}`) } return href diff --git a/test/buildLegalHtml.test.js b/test/buildLegalHtml.test.js index 54b4d24..850eabd 100644 --- a/test/buildLegalHtml.test.js +++ b/test/buildLegalHtml.test.js @@ -215,7 +215,7 @@ test('generator_lehnt_unbekannte_syntax_ab: Codeblock, Zitat, Bild, Link, rohes assert.throws(() => render('# Titel\n\n**Fassung 2026-10-06**\n', META), /Fassung 2026-10-05/) // Meta: Fassung im Format, Adressen der Navigation nur relativ oder https assert.throws(() => render(`${KOPF}Text\n`, { ...META, fassung: '5.10.2026' }), /fassung/) - for (const href of ['javascript:alert(1)', '//evil.example/x', 'http://example.com', '/x"onmouseover="y', 'data:text/html,x']) { + for (const href of ['javascript:alert(1)', '//evil.example/x', 'http://example.com', '/x"onmouseover="y', 'data:text/html,x', '/\\evil.example/x', '/x\\y', 'https://example.com\\@evil.example/']) { assert.throws(() => render(`${KOPF}Text\n`, { ...META, nav: [{ href, text: 'x' }] }), /Adresse in der Navigation/, href) } assert.throws(() => parse(42), TypeError) diff --git a/test/legalTexts.test.js b/test/legalTexts.test.js index 0feb537..e86acb8 100644 --- a/test/legalTexts.test.js +++ b/test/legalTexts.test.js @@ -2,6 +2,8 @@ import { test } from 'node:test' import assert from 'node:assert/strict' import { readFileSync } from 'node:fs' import { createHash } from 'node:crypto' +import { spawnSync } from 'node:child_process' +import { fileURLToPath } from 'node:url' const { config } = await import('../server/config.js') @@ -446,6 +448,39 @@ test('Fassung 4 archiviert: HTML bis auf den PDF-Link bytegleich, PDF bytegleich assert.ok(archived.includes('Version 4 · Stand 30.09.2026')) }) +// = `git show 3a0b008:public/vertragsunterlagen/funktionen-leistungsbeschreibung.html | sha256sum` (News-Leistungsbeschreibung, Stand 30.09.2026). +// Bestellungen seit dem 30.09.2026 haben diesem Text zugestimmt; die geltende Datei (Stand 05.10.2026) ersetzt ihn nur für künftige Bestellungen. +const NEWS_LB = 'public/vertragsunterlagen/funktionen-leistungsbeschreibung.html' +const NEWS_LB_ARCHIV = 'public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html' +const NEWS_LB_ARCHIV_SHA256 = '88a34b43362f0e403c5d0d64c2503d34de47860cacdab498f3cd72cee6df5bbc' + +test('News-Leistungsbeschreibung vom 30.09.2026 unverändert archiviert; die geltende Datei verweist darauf', () => { + assert.equal(sha256(NEWS_LB_ARCHIV), NEWS_LB_ARCHIV_SHA256, 'das Archiv darf nie verändert werden (Bestellungen seit 2026-09-30 beruhen darauf)') + const alt = read(NEWS_LB_ARCHIV) + assert.ok(alt.includes('

Stand 30.09.2026

')) + assert.ok(alt.includes('§ 356 Abs. 4 BGB') && alt.includes('30,00 € einmalig, inklusive Umsatzsteuer'), 'der alte Wortlaut, nicht der berichtigte') + assert.ok(!alt.includes('Frühere Fassung'), 'das Archiv trägt keinen Verweis (byte-identisch mit dem Stand 3a0b008)') + // die geltende Datei bleibt die berichtigte Fassung und nennt die frühere mit Link auf das Archiv + const neu = read(NEWS_LB) + assert.notEqual(sha256(NEWS_LB), NEWS_LB_ARCHIV_SHA256) + assert.ok(neu.includes('

Stand 05.10.2026

')) + assert.ok(neu.includes('

Frühere Fassung vom 30.09.2026: Leistungsbeschreibung (Stand 30.09.2026)

')) + assert.equal(neu.split('funktionen-leistungsbeschreibung-2026-09-30.html').length - 1, 1, 'genau ein Verweis') + // Rest der geltenden Datei unverändert gegenüber der Fassung ohne die neue Zeile: nur diese eine Zeile kam hinzu + const ohneZeile = neu.split('\n').filter((z) => !z.includes('Frühere Fassung vom 30.09.2026')).join('\n') + assert.ok(ohneZeile.includes('Der Einbau kostet 30,00 € einmalig (ohne Umsatzsteuer gemäß § 19 UStG).') && !ohneZeile.includes('§ 356 Abs. 4')) +}) + +test('News-Leistungsbeschreibung vom 30.09.2026: das Archiv ist bytegleich mit dem Stand 3a0b008 (nur mit Git-Verlauf)', (t) => { + const r = spawnSync('git', ['show', '3a0b008:public/vertragsunterlagen/funktionen-leistungsbeschreibung.html'], { + cwd: fileURLToPath(new URL('..', import.meta.url)), + timeout: 20000, + maxBuffer: 1 << 20, + }) + if (r.status !== 0) return t.skip('Git-Verlauf mit 3a0b008 nicht vorhanden') + assert.ok(Buffer.compare(r.stdout, readFileSync(file(NEWS_LB_ARCHIV))) === 0, 'das Archiv weicht vom Stand 3a0b008 ab') +}) + test('Fassung 5: Unterstützung am Ende von § 4 Abs. 4, Abs. 7 verweist auf Satz 1, 2 und 4', () => { const text = strip(read(CUR)) // "Dazu zählen" bleibt direkt hinter Satz 1 und bezieht sich weiter auf die aufgewendete Zeit @@ -544,6 +579,8 @@ test('legal_datenschutz_termine: Abschnitt 6c steht zwischen 6b und 7 und nennt assert.ok(text.includes('schon beim Laden der Seite') && text.includes('Konfiguration mit den Texten und Leistungen')) // Ende des Abos (Wortlaut der Vorgabe) assert.ok(text.includes('Endet das Wartungs-Abo oder schalten wir die Funktion ab, schalten wir den Terminplaner spätestens am folgenden Tag ab und löschen alle Termindaten und Einstellungen 30 Tage danach; beginnt innerhalb dieser Frist wieder ein Wartungs-Abo, schalten wir ihn mit den vorhandenen Daten wieder ein.')) + // Ausnahme: das Einrichtungs-Ticket (Kurzfassung der Einstellungen, Arbeitsnachweis) bleibt, ohne Daten von Gästen (AVV Nr. 9 Abs. 6) + assert.ok(text.includes('wieder ein. Eine Ausnahme ist das Einrichtungs-Ticket, in dem wir die Einrichtung als Arbeitsnachweis festhalten (Abschnitt 6): Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen. In unseren Datensicherungen')) assert.ok(text.includes('bleiben gelöschte Daten noch bis zu sieben Tage erhalten')) // die Verbote der Nachbartests gelten auch hier for (const verboten of ['Abschnitt 6 und 7', 'spätestens nach 24 Stunden', 'Endet die Zusammenarbeit, schalten wir', 'Unterauftragsverarbeiter', 'im Rahmen des Wartungs-Abos']) assert.ok(!text.includes(verboten), `noch da: ${verboten}`) @@ -573,6 +610,7 @@ test('legal_datenschutz_funktionsbestellung: Abschnitt 7 nennt den Nachweis der const absatz = 'Bestellen Sie eine Funktion (News-Pinnwand, Terminplaner), speichern wir als Nachweis die Texte und Fassungen, denen Sie zugestimmt haben, den Zeitpunkt Ihres Klicks auf „Zahlungspflichtig bestellen“, die Stripe-Sitzung, IP-Adresse und Browserkennung sowie Ihr Konto und die angemeldete Person. ' + 'Rechtsgrundlagen sind Art. 6 Abs. 1 lit. b, c und f DSGVO; unser berechtigtes Interesse ist der Nachweis des Vertragsschlusses und der Zustimmungen, insbesondere für den Widerruf. ' + 'Diese Angaben löschen wir drei Jahre nach Ablauf des Jahres, in dem Ihr letztes Abo endet. ' + + 'Bestellen Sie ohne Abo (zum Beispiel nur die News-Pinnwand), löschen wir diese Angaben spätestens drei Jahre nach Ablauf des Jahres der Bestellung. ' + 'Den Entwurf Ihres Fragebogens speichern wir bis zu 90 Tage nach Ihrer letzten Änderung und löschen ihn danach, wenn Sie nichts bestellt haben.' assert.ok(abos.includes(absatz), 'Absatz zur Funktionsbestellung (wörtlich) fehlt') assert.equal(abos.split('Bestellen Sie eine Funktion').length - 1, 1) diff --git a/test/termineKanzleiPaket.test.js b/test/termineKanzleiPaket.test.js index 0ac1b1d..40d5061 100644 --- a/test/termineKanzleiPaket.test.js +++ b/test/termineKanzleiPaket.test.js @@ -505,6 +505,79 @@ test('paket_konsistenz_abo_ende: LB Nr. 8, AVV Nr. 9, 6c und K22 nennen 30 Tage assert.ok(drei.includes('30 Tage') && drei.includes('Rückkehr') && drei.includes('spätestens am folgenden Tag')) }) +test('paket_checkliste_livegang: Abschnitt 7.6 nennt die Schritte vor, bei und nach dem Deploy in fester Reihenfolge; Skripte, Indizes und Fristen stimmen mit dem Code überein', () => { + const sieben = abschnitt(7) + const [, ab76] = sieben.split('### 7.6 ') + assert.ok(ab76, 'Abschnitt 7.6') + const [livegang, nachher] = ab76.split('### 7.7 ') + assert.ok(nachher, 'Abschnitt 7.7') + const punkte = (text) => text.split('\n').filter((z) => z.startsWith('- [ ] ')) + const l = punkte(livegang) + const folge = [ + 'scripts/termine-setup.mjs', // (a) Schema des Terminplaners vor dem Code-Deploy + 'scripts/feature-setup.mjs', // (b) Schema der Funktionen vor dem Code-Deploy + 'scripts/build-legal-pdfs.sh datenschutz', // (c) nur das PDF der Datenschutzerklärung + 'ruhigen Zeit', // (d) Deploy bei wenig Verkehr + 'Uploads in WOMS', // Uploads nach dem Deploy + 'scripts/feature-consent-felder-leeren.mjs', // (f) mit Freigabe des Inhabers + 'TERMINE_ENABLED=on', // (e) als allerletzter Schritt + ] + assert.equal(l.length, folge.length, 'sieben Schritte') + folge.forEach((wort, i) => assert.ok(l[i].includes(wort), `Schritt ${i + 1} nennt „${wort}“: ${l[i].slice(0, 80)}`)) + assert.ok(l[0].includes('--check') && l[1].includes('--check'), 'beide Schema-Skripte erst mit --check') + assert.ok(l[1].includes('Code-Deploy, nicht erst der erste Löschlauf'), '(b) Zeitpunkt: vor dem Code-Deploy') + assert.ok(!PAKET.includes('vor dem ersten Löschlauf der Aufbewahrungsfristen ausführen'), 'der alte Zeitpunkt steht nirgends mehr') + assert.ok(l[2].includes('nicht mit `all`'), '(c) nicht all') + assert.ok(l[3].includes('Fassung der Gästetexte, die der Server beim Speichern hat'), '(d) der Nachweis speichert die Fassung des Servers') + assert.ok(l[5].includes('nur mit Freigabe des Inhabers') && l[5].includes('Probelauf') && l[5].includes('--dry-run') && l[5].includes('--apply'), '(f) Probelauf, dann --apply, mit Freigabe') + assert.ok(l[6].startsWith('- [ ] Als allerletzten Schritt `TERMINE_ENABLED=on`'), '(e) TERMINE_ENABLED=on zuletzt') + assert.ok(sieben.indexOf('TERMINE_ENABLED=on') > sieben.indexOf('scripts/feature-consent-felder-leeren.mjs'), 'on nach allen anderen Schritten') + assert.equal(sieben.split('TERMINE_ENABLED=on').length - 1, 1, 'on wird nur an dieser Stelle gesetzt') + + // (a) die genannten Spalten und Indizes stehen im Schema; (b)/(f) die Skripte gibt es und sagen dasselbe wie die Checkliste + const schema = lies('server/services/termine/schema.js') + assert.match(schema, /str\('fragebogen', 20000\)/) + for (const index of ['idx_status_ends', 'idx_status_updated', 'idx_booking']) { + assert.ok(schema.includes(`'${index}'`), `${index} im Schema`) + assert.ok(l[0].includes(`\`${index}\``), `Schritt 1 nennt ${index}`) + } + assert.ok(l[0].includes('`fragebogen`') && l[0].includes('`termineConfig`') && l[0].includes('`termineBookings`') && l[0].includes('`termineOutbox`')) + assert.match(lies('scripts/feature-setup.mjs'), /Vor dem Code-Deploy ausfuehren/) + assert.match(lies('scripts/termine-setup.mjs'), /--check/) + const pdfs = lies('scripts/build-legal-pdfs.sh') + assert.ok(pdfs.includes('\ndatenschutz)\n') && pdfs.includes('\nall)\n'), 'build-legal-pdfs.sh kennt datenschutz und all') + const leeren = lies('scripts/feature-consent-felder-leeren.mjs') + assert.ok(leeren.includes('--dry-run') && leeren.includes('--apply') && leeren.includes('Standard ist der Probelauf')) + + // (g) Kunden ohne Abo: der Löschlauf erfasst sie heute nicht, die Datenschutzerklärung nennt die Frist; die erste Frist läuft Ende 2029 ab + const g = punkte(nachher) + assert.equal(g.length, 1) + assert.ok(g[0].includes('31.12.2029') && g[0].includes('`findDueDeletions`') && g[0].includes('ohne Abo')) + assert.match(lies('server/services/retention.js'), /Kunden ohne Abo, zum Beispiel nur mit News, sind nie faellig/, 'steht das nicht mehr im Code, ist die Löschung umgesetzt: Punkt 7.7 und Q23 anpassen') + assert.ok(mailText('public/datenschutz.html').includes('Bestellen Sie ohne Abo (zum Beispiel nur die News-Pinnwand), löschen wir diese Angaben spätestens drei Jahre nach Ablauf des Jahres der Bestellung.')) + assert.ok(abschnitt(4).includes('Für Bestellungen ohne Abo (nur News) nennt die Erklärung eine eigene Frist') && abschnitt(4).includes('(31.12.2029)')) + + // (h) K23 verspricht „unverändert da“; der Löschlauf löscht auch bei abgeschaltetem Terminplaner Termine nach ihren Fristen + const vier = punkte(abschnitt(7).split('### 7.4 ')[1].split('### 7.5 ')[0]) + assert.ok(vier.some((z) => z.includes('K23') && z.includes('unverändert da') && z.includes('abschwächen')), '(h) K23 in 7.4') + assert.ok(mailText('server/mail-templates/K23 Terminplaner laeuft wieder.html').includes('Deine Termine und Einstellungen sind unverändert da')) + assert.match(lies('server/services/termine/jobs.js'), /portalFeatures featureKey termine, active oder disabled/) + + // 7.5 verweist auf 7.6 + assert.ok(abschnitt(7).split('### 7.5 ')[1].split('### 7.6 ')[0].includes('Abschnitt 7.6')) +}) + +test('paket_ausnahme_einrichtungs_ticket_und_archiv: Q4, Q9 und Abschnitt 2.3 nennen das archivierte News-Dokument und die Ausnahme der Löschung', () => { + const alle = abschnitt(4) + const q4 = alle.split('### Q4: ')[1].split('### Q5: ')[0] + assert.ok(q4.includes('`public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html`')) + assert.ok(existsSync(new URL('../public/vertragsunterlagen/funktionen-leistungsbeschreibung-2026-09-30.html', import.meta.url))) + assert.ok(q4.includes('unveränderte Kopie des Standes 3a0b008') && q4.includes('Prüfsumme')) + const q9 = alle.split('### Q9: ')[1].split('### Q10: ')[0] + assert.ok(q9.includes('(g) Das Einrichtungs-Ticket') && q9.includes('Leistungsbeschreibung Nr. 8 Abs. 3 und AVV Nr. 9 Abs. 6')) + assert.ok(abschnitt(2).split('### 2.3 ')[1].split('### 2.4 ')[0].includes('das Einrichtungs-Ticket des Teams bleibt als Arbeitsnachweis')) +}) + // ------------------------------------------------------------------------------------------------ Fragen Q1 bis Q26 (Task F15b) const FRAGE_TEILE = ['**Frage.**', '**Fundstelle im Text.**', '**Unsere Annahme.**', '**Alternative.**'] diff --git a/test/termineTicket.test.js b/test/termineTicket.test.js index 8773269..f584c0e 100644 --- a/test/termineTicket.test.js +++ b/test/termineTicket.test.js @@ -10,7 +10,7 @@ import { TERMINE_DATETIMES } from '../server/services/termine/schema.js' // stehen Kopfzeilen, der Hinweis und der Verweis im Ticket. websiteProjects, workorders und customers legt das Setup-Skript nicht // an: ohne Schema im Nachbau. const aw = await startAppwriteMock({ - schema: { portalFeatures: schemaKeys('portalFeatures'), termineConfig: schemaKeys('termineConfig') }, + schema: { portalFeatures: schemaKeys('portalFeatures'), termineConfig: schemaKeys('termineConfig'), termineBookings: schemaKeys('termineBookings') }, datetimes: TERMINE_DATETIMES, }) after(() => aw.close()) @@ -191,6 +191,28 @@ test('termineTicketDetails: Namen mit Markup bleiben Text, halbe Zeichenpaare we assert.ok((await termineTicketDetails(ctxFuer(doc, projekt, null))).includes('Kunde: c1')) }) +test('Ticket als bleibender Arbeitsnachweis (AVV Nr. 9 Abs. 6): Betriebsangaben, Leistungsnamen, nur die ersten acht Personen, Wünsche des Kunden - und nichts von den Gästen', async () => { + const e = einstellung() + e.ressourcen = Array.from({ length: 10 }, (_, i) => ({ + id: `r_tk${String(i).padStart(5, '0')}`, typ: 'person', name: `Mitarbeiter ${i + 1}`, aktiv: true, plan: { 1: [['09:00', '12:00']] }, feedToken: neuerFeedToken(), + })) + const fb = { einbau: { modus: 'inline', knopfText: '', stelle: 'Startseite', gestaltung: '', bemerkung: 'Bitte vor dem 20.10.' } } + const { doc } = await bestelle({ e, fb }) + // eine Buchung dieses Terminplaners mit allen Angaben des Gastes: nichts davon darf ins Ticket gelangen + aw.seed('termineBookings', { + $id: 'b_tk1', featureId: doc.$id, customerId: 'c1', status: 'bestaetigt', leistungName: e.leistungen[0].name, ressourceName: 'Mitarbeiter 1', + gastName: 'Erika Gastgeberin', gastEmail: 'erika.gast@example.test', gastTelefon: '0171 5550000', gastNachricht: 'Bitte ohne Föhn', gastZusatz: '{"allergie":"Nuss"}', absageGrund: 'Krank', + }) + const text = await termineTicketDetails(ctxFuer(doc)) + assert.ok(text.includes('Projekt: Salon Haarlinie') && text.includes('Kunde: Kunde Eins'), 'Betriebsangaben') + assert.ok(text.includes(BETRIEB.telefon), 'Telefon des Betriebs (Ausweichtext im Einbau-Code)') + for (const l of e.leistungen) assert.ok(text.includes(l.name), `Leistung ${l.name}`) + for (let i = 1; i <= 8; i += 1) assert.ok(text.includes(`Mitarbeiter ${i}`), `Mitarbeiter ${i}`) + assert.ok(!text.includes('Mitarbeiter 9') && !text.includes('Mitarbeiter 10') && text.includes('und 2 weitere'), 'nur die ersten acht Namen') + assert.ok(text.includes('Bemerkung: Bitte vor dem 20.10.') && text.includes('Stelle: Startseite'), 'Wünsche des Kunden zum Einbau') + for (const gast of ['Erika', 'Gastgeberin', 'erika.gast', '0171', 'Föhn', 'Nuss', 'Krank']) assert.ok(!text.includes(gast), `keine Gastdaten: ${gast}`) +}) + test('termineTicketDetails: Gesundheit (Physiotherapie) und Maximalbefuellung: enthaelt Physio und bleibt hoechstens 7000 Zeichen', async () => { const e = maximalEinstellung() const meldungen = gesundheitsMeldungen(e) diff --git a/test/termineVertragsunterlagen.test.js b/test/termineVertragsunterlagen.test.js index 5cb1dd0..b9dae41 100644 --- a/test/termineVertragsunterlagen.test.js +++ b/test/termineVertragsunterlagen.test.js @@ -625,7 +625,10 @@ test('avv_inhalt: Abschluss, Zwecke ohne Eigennutz, Datenarten, Weisungen, Daten assert.ok(vorbemerkung.includes('Das Portal speichert die Fassung, den Zeitpunkt, das Kundenkonto und die angemeldete Person.')) assert.ok(vorbemerkung.includes('Anschließend sendet WEBklar dem Kunden eine E-Mail, die beide Texte und die Widerrufsbelehrung in dieser Fassung als PDF enthält')) assert.ok(vorbemerkung.includes('Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform')) - assert.ok(vorbemerkung.includes('Der Kunde erhält die E-Mail nach Absatz 1 anschließend.')) + // T1: In der Textform-Aktivierung trägt K16 nur Leistungsbeschreibung und AVV als PDF (ohne Widerrufsbelehrung, ohne Links): der Text verspricht nicht die E-Mail nach Absatz 1 + assert.ok(vorbemerkung.includes('Der Kunde erhält anschließend eine E-Mail mit diesen beiden Texten als PDF.')) + assert.ok(!vorbemerkung.includes('E-Mail nach Absatz 1 anschließend'), 'der Satz verwies auf die Mail mit Belehrung und Links') + assert.match(lies('server/routes/admin/funktionenAdmin.js'), /featureLegalAttachments\('termine', \{ ohne: \['widerruf'\] \}\)/, 'K16 der Textform-Aktivierung: nur Leistungsbeschreibung und AVV') assert.ok(vorbemerkung.includes('Für den Terminplaner geht er Anlage 1 vor')) assert.ok(vorbemerkung.includes('Anlage 1 der Abo-Bedingungen')) @@ -673,6 +676,37 @@ test('avv_inhalt: Abschluss, Zwecke ohne Eigennutz, Datenarten, Weisungen, Daten assert.ok(nr12.includes('Im Übrigen gilt § 16 der Abo-Bedingungen.')) }) +test('avv_ausnahmen_loeschung: Einrichtungs-Ticket bleibt (Nr. 9 Abs. 6, Anlage, LB Nr. 8 Abs. 3); fehlgeschlagene E-Mails behalten Adresse und Inhalt bis Nr. 9 Abs. 4 (Nr. 8 Abs. 2)', () => { + // T2: das Einrichtungs-Ticket (workorders.details = Kurzfassung der Einstellungen, ticketDetails.js) wird beim Löschlauf nicht angefasst + const ticket = 'Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen' + const nr9 = avvNr(9) + const abs6 = nr9.slice(nr9.indexOf('(6) '), nr9.indexOf('(7) ')) + assert.ok(abs6.includes(ticket)) + assert.ok(abs6.includes('(zum Beispiel Betriebsangaben, Namen der Leistungen, die ersten acht Namen der Personen oder Plätze und die Wünsche des Kunden zum Einbau) und enthält keine Daten von Gästen; dafür gilt die Datenschutzerklärung von WEBklar (Abschnitt 6).')) + // Reihenfolge: erst die Löschung nach 30 Tagen, dann die Ausnahme, dann der Export; „Bis dahin“ hätte sich auf die Datenschutzerklärung beziehen lassen + assert.ok(abs6.indexOf('30 Tage danach.') < abs6.indexOf(ticket) && abs6.indexOf(ticket) < abs6.indexOf('Bis zur Löschung kann der Kunde die Termine')) + assert.ok(!abs6.includes('Bis dahin')) + assert.ok(tomZeilen()['Löschung'].includes('das Einrichtungs-Ticket bleibt als Arbeitsnachweis mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen (Nummer 9 Abs. 6)')) + assert.ok(norm(abschnitt(LB, 8).text).includes('Eine Ausnahme ist das Einrichtungs-Ticket, in dem WEBklar die Einrichtung als Arbeitsnachweis festhält: Es bleibt mit einer Kurzfassung der Einstellungen bestehen und enthält keine Daten von Gästen (Nummer 9 Abs. 6 des AVV Terminplaner).')) + // die Zahl „acht“ ist die der Kurzfassung (einbauanleitung.js KURZ_NAMEN); die Kurzfassung hat keinen Zugriff auf Buchungen (ticketDetails.js liest nur den Stand der Einstellungen) + assert.match(lies('server/services/termine/einbauanleitung.js'), /const KURZ_NAMEN = 8\b/) + assert.doesNotMatch(lies('server/services/termine/ticketDetails.js'), /termineBookings|buchungen\.js|gastName|gastEmail/) + // Datenschutzerklärung Abschnitt 6 nennt die Arbeitsnachweise und die Aufbewahrung bis zur Verjährung + const ds = norm(lies('public/datenschutz.html').replace(/<[^>]+>/g, ' ')) + assert.ok(ds.includes('unsere Arbeitsnachweise') && ds.includes('bis zum Ablauf der Verjährungsfrist (in der Regel drei Jahre)')) + + // T3: „Gastdaten löschen“ löscht nur Einträge im Status wartet (verwerfeWartende); Einträge im Status fehler behalten Adresse und Inhalt bis 48 Stunden nach dem Fehlschlag + const nr8 = avvNr(8) + assert.ok(nr8.includes('Dabei löscht WEBklar die E-Mails zu dieser Buchung, die noch auf den Versand warten, und die Links des Gastes werden ungültig.')) + assert.ok(nr8.includes('E-Mails, deren Versand endgültig fehlgeschlagen ist, behalten Empfängeradresse und Inhalt, bis WEBklar sie nach Nummer 9 Abs. 4 löscht (48 Stunden nach dem Fehlschlag).')) + assert.ok(!nr8.includes('Noch nicht versandte E-Mails zu dieser Buchung löscht WEBklar dabei'), 'der alte Satz versprach mehr, als verwerfeWartende löscht') + const verwerfe = /export async function verwerfeWartende[\s\S]*?\n\}\n/.exec(OUTBOX)?.[0] + assert.ok(verwerfe, 'verwerfeWartende') + assert.ok(verwerfe.includes("Query.equal('status', 'wartet')") && !verwerfe.includes("'fehler'"), 'verwerfeWartende löscht nur den Status wartet') + assert.match(OUTBOX, /const FEHLER_BEHALTEN_MS = 48 \* STUNDE_MS/) + assert.ok(avvNr(9).includes('löscht WEBklar mit Empfängeradresse und Inhalt 48 Stunden nach dem endgültigen Fehlschlag')) +}) + /** * Fundstellen der Anlage TOM: jede Zeile der Tabelle nennt hier, wo im Code, in den Tests oder in den Abo-Bedingungen ihre * Aussage gesichert ist. { datei, hat } = die Datei enthält das Muster; { datei, nicht } = die Datei enthält es nicht. @@ -730,6 +764,9 @@ const TOM_FUNDSTELLEN = { { datei: 'server/services/termine/entwuerfe.js', hat: /const funktion = await holeOderNull\(config\.collections\.portalFeatures, id\)/ }, // die Warteschlange löscht die gelisteten Einträge ohne erneutes Lesen (nur Buchungen, abgeschaltete Funktionen und Entwürfe lesen frisch) { datei: 'server/services/termine/outbox.js', hat: /await deleteDocument\(col\(\), eintrag\.\$id\)/ }, + // das Einrichtungs-Ticket (Kurzfassung der Einstellungen, ohne Daten von Gästen) bleibt als Arbeitsnachweis + { datei: 'server/services/termine/ticketDetails.js', hat: /const \{ kurz \} = einbauanleitung\(/ }, + { datei: 'server/services/termine/einbauanleitung.js', hat: /const KURZ_NAMEN = 8 / }, ], 'Protokolle': [ { datei: 'test/termineJobs.test.js', hat: /kein Gastname und keine Gastadresse im Log/ },
+ + +
WEBKLAR
+

Leistungsbeschreibung: Funktionen – News-Pinnwand

+

Stand 30.09.2026

+ +
+ Das Wichtigste auf einen Blick + + + + + +
LeistungEinbau der News-Pinnwand in Ihre Website durch WEBklar; Pflege der Beiträge durch Sie im Kundenportal
Preis30,00 € einmalig, inklusive Umsatzsteuer, keine laufenden Kosten
Dauer des Einbausmeist innerhalb von 1–2 Wochen (keine verbindliche Zusage)
WiderrufVerbraucher können innerhalb von 14 Tagen widerrufen; das Recht kann nach § 356 Abs. 4 BGB erlöschen (Abschnitt 6)
+
+ +

1. Leistung

+

Wir bauen die News-Pinnwand in die Website ein, die Sie für das gewählte Projekt bei uns im Kundenportal führen. Die Pinnwand zeigt Ihre Beiträge als Zettel mit Titel, Text und Foto; pro Seite erscheinen sechs Beiträge, die neuesten zuerst. Die Beiträge schreiben, ändern und löschen Sie selbst im Kundenportal im Bereich „Funktionen“. Sie wählen je Beitrag Zettelfarbe und Anzeigedauer; danach verschwindet der Beitrag von Ihrer Website. Hochgeladene Fotos werden verkleinert, alle Metadaten einschließlich Aufnahmeort (GPS) werden entfernt.

+

Änderungen an der Website, die über den Einbau der Pinnwand hinausgehen, sind nicht Teil dieser Leistung.

+ +

2. Preis

+

Der Einbau kostet 30,00 € einmalig, inklusive Umsatzsteuer. Die Nutzung der Pinnwand danach kostet nichts; es entstehen keine laufenden Kosten und kein Abo. Sie bezahlen bei der Bestellung im Kundenportal über Stripe und erhalten eine Rechnung.

+ +

3. Einbau und Freischaltung

+

Mit Ihrer Bestellung legen wir einen Auftrag für den Einbau an. Der Einbau ist erfahrungsgemäß meist innerhalb von 1–2 Wochen abgeschlossen. Das ist eine Einschätzung und keine verbindliche Zusage eines Termins. Nach Abschluss des Einbaus schalten wir die Funktion für Sie frei; ab dann erscheinen Ihre Beiträge auf der Website.

+ +

4. Ende der Zusammenarbeit

+

Auf Ihren Wunsch schalten wir die Pinnwand ab; das tun wir auch, wenn die Zusammenarbeit endet und wir die Funktion bei Ihnen abschalten. Ihre Beiträge und Fotos werden gelöscht, wenn Sie sie selbst löschen, andernfalls nach den Fristen der Datenschutzerklärung (Abschnitt 6a, dort Abschnitt 7).

+ +

5. Ihre Inhalte

+

Sie sind für die Inhalte Ihrer Beiträge und Fotos verantwortlich. Sie versichern, dass Sie die nötigen Rechte an Texten und Fotos haben und dass die Inhalte keine Rechte Dritter verletzen, etwa Urheberrechte, Persönlichkeitsrechte oder das Recht am eigenen Bild abgebildeter Personen.

+ +

6. Widerrufsrecht

+

Sind Sie Verbraucher, können Sie diesen Vertrag innerhalb von 14 Tagen ohne Angabe von Gründen widerrufen. Die Frist beginnt mit dem Vertragsschluss. Zum Widerruf genügt eine eindeutige Erklärung an uns, zum Beispiel über project.webklar.com/widerrufen.html.

+

Verlangen Sie ausdrücklich, dass wir vor Ablauf der Widerrufsfrist mit dem Einbau beginnen, müssen Sie uns bei einem Widerruf einen angemessenen Betrag für die bis dahin erbrachte Leistung zahlen. Das Widerrufsrecht erlischt nach § 356 Abs. 4 BGB, wenn wir die Leistung vollständig erbracht haben und Sie vorher ausdrücklich zugestimmt haben, dass wir vor Ablauf der Widerrufsfrist beginnen, und Ihre Kenntnis bestätigt haben, dass Sie Ihr Widerrufsrecht bei vollständiger Vertragserfüllung verlieren.

+ +

Anbieter: WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler. Es gelten ergänzend die Vertragsbedingungen und die Datenschutzerklärung.

+