feat: add datenschutz
This commit is contained in:
parent
b3d158d52c
commit
3e0875a0d7
5 changed files with 274 additions and 20 deletions
|
|
@ -16,7 +16,7 @@ import DarkModeToggle from "./DarkModeToggle.astro";
|
||||||
<!-- Mobile Drawer -->
|
<!-- Mobile Drawer -->
|
||||||
<nav
|
<nav
|
||||||
id="mobile-drawer"
|
id="mobile-drawer"
|
||||||
class="fixed top-0 right-0 h-full w-64 bg-white dark:bg-gray-800 shadow-xl transform translate-x-full transition-transform duration-300 ease-in-out z-50"
|
class="fixed top-0 right-0 h-full w-48 bg-white dark:bg-gray-800 shadow-xl transform translate-x-full transition-transform duration-300 ease-in-out z-50"
|
||||||
>
|
>
|
||||||
<!-- Close button in drawer -->
|
<!-- Close button in drawer -->
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import MobileNav from "./MobileNav.astro";
|
||||||
>
|
>
|
||||||
<div class="max-w-full lg:px-16 md:px-8 px-2 py-4">
|
<div class="max-w-full lg:px-16 md:px-8 px-2 py-4">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<!-- Site Title - stays on far left -->
|
|
||||||
<h2 class="font-bold text-xl mb-0 font-mono flex">
|
<h2 class="font-bold text-xl mb-0 font-mono flex">
|
||||||
<a
|
<a
|
||||||
href="/"
|
href="/"
|
||||||
|
|
@ -20,20 +19,14 @@ import MobileNav from "./MobileNav.astro";
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<!-- Center container aligned with content -->
|
|
||||||
<div class="flex-1 flex justify-center">
|
<div class="flex-1 flex justify-center">
|
||||||
<div class="max-w-2xl w-full flex justify-end lg:justify-start">
|
<div class="max-w-2xl w-full flex justify-end lg:justify-start">
|
||||||
<!-- Desktop: Nav Menu aligned with content -->
|
|
||||||
<DesktopNav />
|
<DesktopNav />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Right side: Dark Mode Toggle + Mobile Menu -->
|
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
<!-- Dark Mode Toggle - always visible -->
|
|
||||||
<div class="hidden lg:block"><DarkModeToggle /></div>
|
<div class="hidden lg:block"><DarkModeToggle /></div>
|
||||||
|
|
||||||
<!-- Mobile Navigation Toggle - only on mobile -->
|
|
||||||
<MobileNav />
|
<MobileNav />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -46,13 +46,10 @@ const {
|
||||||
>
|
>
|
||||||
<div id="theme-overlay" class="theme-overlay"></div>
|
<div id="theme-overlay" class="theme-overlay"></div>
|
||||||
|
|
||||||
<!-- Mobile Navigation Drawer (at body level for proper positioning) -->
|
|
||||||
<MobileNavDrawer />
|
<MobileNavDrawer />
|
||||||
|
|
||||||
<!-- Header -->
|
|
||||||
<TopHeader />
|
<TopHeader />
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main class="flex-1">
|
<main class="flex-1">
|
||||||
<div class={`${className} mx-auto`}>
|
<div class={`${className} mx-auto`}>
|
||||||
<PageHeadline title={title} subtitle={subtitle} />
|
<PageHeadline title={title} subtitle={subtitle} />
|
||||||
|
|
@ -60,7 +57,6 @@ const {
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
||||||
258
src/pages/datenschutz/index.astro
Normal file
258
src/pages/datenschutz/index.astro
Normal file
|
|
@ -0,0 +1,258 @@
|
||||||
|
---
|
||||||
|
import Link from "../../components/Link.astro";
|
||||||
|
import BaseLayout from "../../layouts/BaseLayout.astro";
|
||||||
|
---
|
||||||
|
|
||||||
|
<BaseLayout title="Datenschutz (Germany)">
|
||||||
|
<h2>Datenschutzerklärung</h2>
|
||||||
|
<p>
|
||||||
|
Im Folgenden möchten wir Sie aufklären, wie Ihre Daten von uns verarbeitet
|
||||||
|
werden.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>Verantwortlich im Sinne der DSGVO ist:</strong><br />
|
||||||
|
<span class="placeholder">Alexander Daichendt</span><br />
|
||||||
|
<span class="placeholder">Wiesenweg 10a, 85464 Neufinsing</span><br />
|
||||||
|
<span class="placeholder">datenschutz@daichendt.one</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Sollten Sie per E-Mail oder über Kontaktformular mit uns Kontakt aufnehmen,
|
||||||
|
werden die mitgeteilten Daten von uns gespeichert, um Ihr Anliegen zu
|
||||||
|
bearbeiten.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p><strong>Zu den verarbeiteten Daten zählen:</strong></p>
|
||||||
|
<ul>
|
||||||
|
<li><span class="placeholder">[Ihr Name]</span></li>
|
||||||
|
<li><span class="placeholder">[Ihre E-Mail-Adresse]</span></li>
|
||||||
|
<li><span class="placeholder">[Ihre Telefonnummer]</span></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Wir werden die Daten löschen, sobald die Speicherung nicht mehr erforderlich
|
||||||
|
ist oder die Verarbeitung einschränken, falls gesetzliche
|
||||||
|
Aufbewahrungspflichten bestehen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Betroffenenrechte</h2>
|
||||||
|
<p>
|
||||||
|
Sie haben als betroffene Person, das Recht auf Auskunft, das Recht auf
|
||||||
|
Berichtigung oder Löschung, das Recht auf Einschränkung der Verarbeitung und
|
||||||
|
das Recht auf Widerspruch gegen die Verarbeitung Ihrer Daten. Sofern Sie uns
|
||||||
|
eine Einwilligung erteilt haben, können Sie diese jederzeit mit Wirkung für
|
||||||
|
die Zukunft widerrufen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Bitte richten Sie Ihren Widerspruch formlos an die obige Adresse.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Darüber hinaus haben Sie das Recht auf Datenübertragbarkeit. Sie haben
|
||||||
|
weiter das Recht, sich bei einer Aufsichtsbehörde über die Verarbeitung zu
|
||||||
|
beschweren. Eine Liste der entsprechenden Behörden finden Sie unter: <Link
|
||||||
|
href="https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html"
|
||||||
|
>https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html</Link
|
||||||
|
>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="legal-note">
|
||||||
|
<h3>Rechtliche Hinweise</h3>
|
||||||
|
<h4>Betroffenenrechte</h4>
|
||||||
|
<p>
|
||||||
|
Sollte die Datenverarbeitung nicht auf Einwilligung des Betroffenen
|
||||||
|
beruhen (siehe Kontaktformular), muss das Widerrufsrecht nicht angegeben
|
||||||
|
werden (Art. 13 Abs. 2 lit. c DSGVO).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Cloudflare</h2>
|
||||||
|
<p>
|
||||||
|
Wir nutzen das Content Delivery Network (CDN) von Cloudflare Germany GmbH,
|
||||||
|
Rosental 7, c/o Mindspace, 80331 München Deutschland (Cloudflare), um die
|
||||||
|
Sicherheit und die Auslieferungsgeschwindigkeit unserer Website zu erhöhen.
|
||||||
|
Dies entspricht unserem berechtigten Interesse (Art. 6 Abs. 1 lit. f DSGVO).
|
||||||
|
Ein CDN ist ein Netzwerk aus weltweit verteilten Servern, das in der Lage
|
||||||
|
ist, optimiert Inhalte an den Websitenutzer auszuliefern. Für diesen Zweck
|
||||||
|
können personenbezogene Daten in Server-Logfiles von Cloudflare verarbeitet
|
||||||
|
werden. Bitte vergleichen Sie die Ausführungen unter „Hosting".
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Cloudflare ist Empfänger Ihrer personenbezogenen Daten und als
|
||||||
|
Auftragsverarbeiter für uns tätig. Die entspricht unserem berechtigten
|
||||||
|
Interesse im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO, selbst kein Content
|
||||||
|
Delivery Network zu betreiben.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht der Verarbeitung zu widersprechen. Ob der Widerspruch
|
||||||
|
erfolgreich ist, ist im Rahmen einer Interessenabwägung zu ermitteln.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Die Verarbeitung der unter diesem Abschnitt angegebenen Daten ist weder
|
||||||
|
gesetzlich noch vertraglich vorgeschrieben. Die Funktionsfähigkeit der
|
||||||
|
Website ist ohne die Verarbeitung nicht gewährleistet.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Ihre personenbezogenen Daten werden von Cloudflare so lange gespeichert, wie
|
||||||
|
es für die beschriebenen Zwecke erforderlich ist.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Weitere Informationen zu Widerspruchs- und Beseitigungsmöglichkeiten
|
||||||
|
gegenüber Cloudflare finden Sie unter: Cloudflare DPA
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Cloudflare hat Compliance-Maßnahmen für internationale Datenübermittlungen
|
||||||
|
umgesetzt. Diese gelten für alle weltweiten Aktivitäten, bei denen
|
||||||
|
Cloudflare personenbezogene Daten von natürlichen Personen in der EU
|
||||||
|
verarbeitet. Diese Maßnahmen basieren auf den EU-Standardvertragsklauseln
|
||||||
|
(SCCs). Weitere Informationen finden Sie unter: <Link
|
||||||
|
href="https://www.cloudflare.com/cloudflare_customer_SCCs-German.pdf"
|
||||||
|
>https://www.cloudflare.com/cloudflare_customer_SCCs-German.pdf</Link
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Hosting</h2>
|
||||||
|
<p>
|
||||||
|
Sofern Sie sich als Besucher weder registrieren noch einloggen, erheben wir
|
||||||
|
in sog. Logfiles folgende Daten, die Ihr Browser übermittelt:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
IP-Adresse, Datum und Uhrzeit der Anfrage, Zeitzonendifferenz zur Greenwich
|
||||||
|
Mean Time, Inhalt der Anforderung, HTTP-Statuscode, übertragene Datenmenge,
|
||||||
|
Website, von der die Anforderung kommt und Informationen zu Browser und
|
||||||
|
Betriebssystem.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Das ist erforderlich, um unsere Website anzuzeigen und die Stabilität und
|
||||||
|
Sicherheit zu gewährleisten. Dies entspricht unserem berechtigten Interesse
|
||||||
|
im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Wir setzen für die Zurverfügungstellung unserer Website folgenden Hoster
|
||||||
|
ein: Cloudflare
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Dieser ist Empfänger Ihrer personenbezogenen Daten und als
|
||||||
|
Auftragsverarbeiter für uns tätig. Dies entspricht unserem berechtigten
|
||||||
|
Interesse im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO, selbst keinen Server
|
||||||
|
in unseren Räumlichkeiten vorhalten zu müssen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht der Verarbeitung zu widersprechen. Ob der Widerspruch
|
||||||
|
erfolgreich ist, ist im Rahmen einer Interessenabwägung zu ermitteln.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Die Verarbeitung der unter diesem Abschnitt angegebenen Daten ist weder
|
||||||
|
gesetzlich noch vertraglich vorgeschrieben. Die Funktionsfähigkeit der
|
||||||
|
Website ist ohne die Verarbeitung nicht gewährleistet.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="technical-note">
|
||||||
|
<h3>Technische Hinweise</h3>
|
||||||
|
<p>
|
||||||
|
Neben den Server-Logfiles können auch von der verwendeten Applikation und
|
||||||
|
deren Plugins personenbezogene Daten verarbeitet werden. Darunter fallen
|
||||||
|
u.a. die Protokollierung fehlerhafter Anmeldeversuche, oder Zugriffe auf
|
||||||
|
nicht existierende Seiten (404). Dies sollte überprüft und entsprechend
|
||||||
|
ergänzt werden.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Im Falle eine Speicherung, sollte ebenfalls angegeben werden, wie lange
|
||||||
|
diese erfolgt und ob und ab wann eine Anonymisierung der erhobenen Daten
|
||||||
|
stattfindet.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-note">
|
||||||
|
<h3>Rechtliche Hinweise</h3>
|
||||||
|
<p>
|
||||||
|
Grundsätzlich ist ein Auftragsverarbeitungsvertrag mit dem Hoster
|
||||||
|
abzuschließen. Das bayerische Landesamt für Datenschutzaufsicht hat für
|
||||||
|
das Hosting rein statischer Websites eine Ausnahme gemacht. Für den Fall,
|
||||||
|
dass die Webseite der Selbstdarstellung dient, z.B. von Vereinen oder
|
||||||
|
Kleinunternehmen, keine personenbezogenen Daten an den Betreiber fließen
|
||||||
|
und kein Tracking stattfindet, liegt keine Auftragsverarbeitung vor.
|
||||||
|
Weiter heißt es: „Die Tatsache, dass auch beim Hosting von statischen
|
||||||
|
Webseiten zwangsläufig IP-Adressen, d.h. personenbezogene Daten,
|
||||||
|
verarbeitet werden müssen, führt nicht zur Annahme einer
|
||||||
|
Auftragsverarbeitung. Das wäre nicht sachgerecht. Die (kurzfristige)
|
||||||
|
IP-Adressenspeicherung ist vielmehr noch der TK-Zugangsvermittlung des
|
||||||
|
Website-Hosters nach dem TKG zuzurechnen und dient in erster Linie
|
||||||
|
Sicherheitszwecken des Hosters." (<Link
|
||||||
|
href="https://www.lda.bayern.de/media/veroeffentlichungen/FAQ_Hosting_keine_Auftragsverarbeitung.pdf"
|
||||||
|
>https://www.lda.bayern.de/media/veroeffentlichungen/FAQ_Hosting_keine_Auftragsverarbeitung.pdf</Link
|
||||||
|
>) Es sollte deshalb überprüft werden, ob der Hoster Tracking und
|
||||||
|
Auswertungstools zur Verfügung stellt und ob und wie lange Logfiles
|
||||||
|
aufbewahrt werden.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Weitere Zwecke der Datenverarbeitung</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Gewährleistung der Stabilität und Sicherheit der Website</li>
|
||||||
|
<li>Auswertung der Systemsicherheit und -Stabilität</li>
|
||||||
|
<li>Optimierung der Website</li>
|
||||||
|
<li>Überprüfung, ob rechtswidrige Nutzung stattgefunden hat</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="legal-note">
|
||||||
|
<h3>Widerspruchs- und Beseitigungsmöglichkeit</h3>
|
||||||
|
<p>
|
||||||
|
Der häufig verwendete Hinweis, dass seitens des Nutzers keine
|
||||||
|
Widerspruchsmöglichkeit bestehe, entspricht nicht der gesetzlichen
|
||||||
|
Vorgabe. Wird die Verarbeitung auf das berechtigte Interesse des
|
||||||
|
Verantwortlichen gestützt (Art. 6 Abs. 1 lit.f DSGVO), so ist das Recht
|
||||||
|
auf Widerspruch nicht per se ausgeschlossen. Ob dieser jedoch Erfolg hat,
|
||||||
|
ist im Rahmen einer Interessenabwägung zu ermitteln. Auch wenn in der
|
||||||
|
Praxis das berechtigte Interesse des Websitebetreibers wohl überwiegen
|
||||||
|
wird, folgt daraus kein Ausschluss des Widerspruchrechts. Eine solche
|
||||||
|
Formulierung sollte korrigiert werden, da sie dazu führen kann, dass der
|
||||||
|
Betroffene an der Ausübung seines Widerspruchrechts gehindert wird.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Empfänger</h3>
|
||||||
|
<p>
|
||||||
|
Gemäß Art. 13. Abs. 1 lit. e DSGVO, besteht die Pflicht „die Empfänger
|
||||||
|
oder Kategorien von Empfängern der personenbezogenen Daten" anzugeben.
|
||||||
|
Häufig wird vertreten, dass vorrangig Empfänger namentlich und mit
|
||||||
|
Anschrift zu benennen sind und nur hilfsweise auf Kategorien
|
||||||
|
zurückgegriffen werden darf. Eine andere Auffassung vertritt ein Wahlrecht
|
||||||
|
zwischen der namentlichen Nennung und der Angabe von Kategorien. (Vgl.
|
||||||
|
Daum: Pflichtangaben auf Webseiten MMR 2020 643 (646) m.w.N.) Demnach wäre
|
||||||
|
es ausreichend als Kategorie „Hoster" anzugeben. Für diese Auffassung
|
||||||
|
spricht jedoch, wenn überhaupt, nur die Übersichtlichkeit. Dem Sinn und
|
||||||
|
Zweck der Vorschrift entspricht es aber vielmehr den Namen und die
|
||||||
|
Anschrift anzugeben, zumal dieser im Rahmen des Hostings bereits feststeht
|
||||||
|
(Vgl. Lorenz: Datenschutzrechtliche Informationspflichten (VuR 2019, 213
|
||||||
|
(216)).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Speicherdauer</h3>
|
||||||
|
<p>
|
||||||
|
Für die Feststellung der Speicherdauer sollten die Server- und
|
||||||
|
Applikationseinstellungen überprüft werden, auch um Widersprüche zwischen
|
||||||
|
den angebenden Zwecken zu vermeiden. So kann es beispielsweise zu
|
||||||
|
Unstimmigkeiten kommen, wenn angegeben wird, dass nach jeder Sitzung die
|
||||||
|
Daten gelöscht werden, diese aber gleichzeitig der Stabilität und
|
||||||
|
Sicherheit dienen sollen. Eine allgemeine Mitteilung, die Daten würden so
|
||||||
|
lange gespeichert werden, wie es für die angegebenen Zwecke erforderlich
|
||||||
|
ist, ist nicht ausreichend (Vgl. Simitis/Hornung/Spiecker gen. Döhmann,
|
||||||
|
Datenschutzrecht, Art. 13 Rn 15). Ausreichend ist aber gem. Art. 13 Abs. 2
|
||||||
|
lit a. DSGVO die Angabe von Kriterien für die Festlegung der
|
||||||
|
Speicherdauer.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</BaseLayout>
|
||||||
|
|
@ -55,20 +55,26 @@ const skills = {
|
||||||
<BaseLayout
|
<BaseLayout
|
||||||
title="Hi, my name is Alex!"
|
title="Hi, my name is Alex!"
|
||||||
subtitle="Software Engineer, Linux Enthusiast, Lightweight Systems Advocate"
|
subtitle="Software Engineer, Linux Enthusiast, Lightweight Systems Advocate"
|
||||||
className="w-full py-16 gap-16 flex flex-col"
|
className="w-full py-16 flex flex-col"
|
||||||
>
|
>
|
||||||
<section
|
<section
|
||||||
class="max-w-8xl mx-auto grid grid-cols-[auto,1fr,auto] items-start gap-8"
|
class="max-w-8xl mx-auto
|
||||||
|
grid grid-cols-1 lg:grid-cols-[auto,1fr,auto]
|
||||||
|
items-center md:items-start
|
||||||
|
gap-8
|
||||||
|
py-8 md:py-12"
|
||||||
>
|
>
|
||||||
<div class="w-64 hidden md:block"></div>
|
<!-- Left Spacer: Already responsive, no changes needed -->
|
||||||
|
<div class="w-72 hidden md:block"></div>
|
||||||
|
|
||||||
<div class="max-w-2xl px-4">
|
<!-- Main Content: Add order to place it below the image on mobile -->
|
||||||
<p>
|
<div class="max-w-2xl px-4 order-2 md:order-none">
|
||||||
|
<p class="mb-4">
|
||||||
I am a privacy-first software engineer passionate about building web
|
I am a privacy-first software engineer passionate about building web
|
||||||
applications that are efficient, user-friendly, and respectful of your
|
applications that are efficient, user-friendly, and respectful of your
|
||||||
data.
|
data.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p class="mb-4">
|
||||||
I help clients design and develop sleek, standards-compliant web
|
I help clients design and develop sleek, standards-compliant web
|
||||||
solutions, always prioritizing usability over visual clutter. With
|
solutions, always prioritizing usability over visual clutter. With
|
||||||
hands-on experience in Rust, Node.js and many more, I believe in using
|
hands-on experience in Rust, Node.js and many more, I believe in using
|
||||||
|
|
@ -80,8 +86,9 @@ const skills = {
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<!-- Picture: Place it first on mobile using order -->
|
||||||
<Picture src={me} alt="me" class="w-64 h-auto" />
|
<div class="px-4 order-1 md:order-none">
|
||||||
|
<Picture src={me} alt="me" class="w-48 md:w-64 h-auto mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue