<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml-stylesheet href="https://maik.io/pretty-feed-v3.xsl" type="text/xsl"?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Resilience on maik.io</title>
    <link>https://maik.io/tags/resilience/</link>
    <description>Recent content in Resilience on maik.io</description>
    <generator>maik.io</generator>
    <language>de-de</language>
    <lastBuildDate>Wed, 17 Jun 2026 08:24:00 +0200</lastBuildDate>
    <atom:link href="https://maik.io/tags/resilience/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Frankreich und Deutschland zur digitalen Souveränität</title>
      <link>https://maik.io/notes/2026-06-17-frankreich-und-deutschland-zur-digitalen-souveraenitaet/</link>
      <pubDate>Wed, 17 Jun 2026 08:24:00 +0200</pubDate>
      <guid>https://maik.io/notes/2026-06-17-frankreich-und-deutschland-zur-digitalen-souveraenitaet/</guid>
      <description>&lt;p&gt;Das &lt;a href=&#34;https://www.entreprises.gouv.fr/files/files/presse/2026/20260617-franco-german-joint-paper-digital-on-sovereignty.pdf&#34; target=&#34;_blank&#34; &gt;gemeinsame Papier von Frankreich und Deutschland zur digitalen Souveränität&lt;/a&gt; vom 17. Juni 2026 legt einen politischen Rahmen fest, mit dem Europa seine kritischen Abhängigkeiten von digitalen Technologien, Ressourcen, Produkten und Diensten aus Drittstaaten verringern soll. Diese Abhängigkeiten ziehen sich durch die gesamte technologische Kette, von der IT-Infrastruktur über Software bis hin zu Datenverarbeitung und künstlicher Intelligenz.
Das Papier bündelt defensive und proaktive Maßnahmen, verbindet Resilienz, Wettbewerbsfähigkeit und technologische Fähigkeiten und definiert digitale Souveränität über sechs Kerndimensionen. Konkrete Schwächen bleiben allerdings sichtbar.
Das Papier ist rechtlich nicht bindend, klammert Verteidigung und nationale Sicherheit aus, schafft keine Beschaffungsauflagen für Unternehmen und begründet keine Investitions- oder Ausgabenpflichten für Mitgliedstaaten. Es nennt keine Fristen, keine Finanzierung und keine messbaren Ziele und überlässt die praktische Umsetzung späteren EU-Gesetzgebungsverfahren. Zentrale Begriffe wie &amp;ldquo;vertrauenswürdige Partner&amp;rdquo; oder &amp;ldquo;sensibelste Daten&amp;rdquo; bleiben unscharf, und viele Vorgaben stehen unter dem Vorbehalt der Verhältnismäßigkeit und offener Märkte, was den verbindlichen Kern verwässert.
Es wird daher ein
Vermutlich ist es nur ein weiteres Paper, das vorerst keine Veränderung bewirkt.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Das <a href="https://www.entreprises.gouv.fr/files/files/presse/2026/20260617-franco-german-joint-paper-digital-on-sovereignty.pdf" target="_blank" >gemeinsame Papier von Frankreich und Deutschland zur digitalen Souveränität</a> vom 17. Juni 2026 legt einen politischen Rahmen fest, mit dem Europa seine kritischen Abhängigkeiten von digitalen Technologien, Ressourcen, Produkten und Diensten aus Drittstaaten verringern soll. Diese Abhängigkeiten ziehen sich durch die gesamte technologische Kette, von der IT-Infrastruktur über Software bis hin zu Datenverarbeitung und künstlicher Intelligenz.
Das Papier bündelt defensive und proaktive Maßnahmen, verbindet Resilienz, Wettbewerbsfähigkeit und technologische Fähigkeiten und definiert digitale Souveränität über sechs Kerndimensionen. Konkrete Schwächen bleiben allerdings sichtbar.
Das Papier ist rechtlich nicht bindend, klammert Verteidigung und nationale Sicherheit aus, schafft keine Beschaffungsauflagen für Unternehmen und begründet keine Investitions- oder Ausgabenpflichten für Mitgliedstaaten. Es nennt keine Fristen, keine Finanzierung und keine messbaren Ziele und überlässt die praktische Umsetzung späteren EU-Gesetzgebungsverfahren. Zentrale Begriffe wie &ldquo;vertrauenswürdige Partner&rdquo; oder &ldquo;sensibelste Daten&rdquo; bleiben unscharf, und viele Vorgaben stehen unter dem Vorbehalt der Verhältnismäßigkeit und offener Märkte, was den verbindlichen Kern verwässert.
Es wird daher ein
Vermutlich ist es nur ein weiteres Paper, das vorerst keine Veränderung bewirkt.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Souveränität in sechs Dimensionen</title>
      <link>https://maik.io/notes/2026-06-03-souveranitat-in-sechs-dimensionen/</link>
      <pubDate>Wed, 03 Jun 2026 06:50:40 +0200</pubDate>
      <guid>https://maik.io/notes/2026-06-03-souveranitat-in-sechs-dimensionen/</guid>
      <description>&lt;p&gt;Tagesspiegel Background schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/bmds-definiert-souveraenitaet-in-sechs-dimensionen&#34; title=&#34;Digitale Souveränität: BMDS definiert Souveränität in sechs Dimensionen - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Digitale Souveränität: BMDS definiert Souveränität in sechs Dimensionen&lt;/a&gt;«&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Durchsetzungsfähigkeit&lt;/li&gt;
&lt;li&gt;Fähigkeit zur Entwicklung, Bereitstellung und Nutzung von Technologien&lt;/li&gt;
&lt;li&gt;Fähigkeit und Kapazität zur wirtschaftlichen Wertschöpfung&lt;/li&gt;
&lt;li&gt;Schutz sensibler Daten&lt;/li&gt;
&lt;li&gt;Substituierbarkeit und Interoperabilität von Systemen&lt;/li&gt;
&lt;li&gt;Resilienz der Infrastruktur&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Der Stand ist noch vorläufig, bietet aber interessante Einblicke.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Tagesspiegel Background schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/bmds-definiert-souveraenitaet-in-sechs-dimensionen" title="Digitale Souveränität: BMDS definiert Souveränität in sechs Dimensionen - Tagesspiegel Background" target="_blank" >Digitale Souveränität: BMDS definiert Souveränität in sechs Dimensionen</a>«</p>
<blockquote>
<ul>
<li>Durchsetzungsfähigkeit</li>
<li>Fähigkeit zur Entwicklung, Bereitstellung und Nutzung von Technologien</li>
<li>Fähigkeit und Kapazität zur wirtschaftlichen Wertschöpfung</li>
<li>Schutz sensibler Daten</li>
<li>Substituierbarkeit und Interoperabilität von Systemen</li>
<li>Resilienz der Infrastruktur</li>
</ul>
</blockquote>
<p>Der Stand ist noch vorläufig, bietet aber interessante Einblicke.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Eine Orientierung bietet</title>
      <link>https://maik.io/notes/2026-05-31-eine-orientierung-bietet/</link>
      <pubDate>Sun, 31 May 2026 19:34:08 +0200</pubDate>
      <guid>https://maik.io/notes/2026-05-31-eine-orientierung-bietet/</guid>
      <description>&lt;p&gt;Stefan Krempl schreibt in »&lt;a href=&#34;https://www.heise.de/news/Kritik-an-BSI-Rahmen-Scheinsouveraenitaet-fuer-die-europaeische-Cloud-11312411.html?seite=all&#34; title=&#34;Kritik an BSI-Rahmen: Scheinsouveränität für die europäische Cloud?&#34; target=&#34;_blank&#34; &gt;Kritik an BSI-Rahmen: Scheinsouveränität für die europäische Cloud?&lt;/a&gt;« für heise.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Die heise online vorliegende CISPE-Analyse macht große Schlupflöcher im C3A-Katalog aus. So sehe das Framework zwar vor, dass der primäre Cloud-Anbieter unter europäischer Kontrolle stehen müsse. Bei den weitaus wichtigeren Subunternehmern weiche das BSI diese Linie aber drastisch auf: Für sie wird lediglich eine registrierte Hauptniederlassung in Deutschland oder der EU verlangt.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Stefan Krempl schreibt in »<a href="https://www.heise.de/news/Kritik-an-BSI-Rahmen-Scheinsouveraenitaet-fuer-die-europaeische-Cloud-11312411.html?seite=all" title="Kritik an BSI-Rahmen: Scheinsouveränität für die europäische Cloud?" target="_blank" >Kritik an BSI-Rahmen: Scheinsouveränität für die europäische Cloud?</a>« für heise.de</p>
<blockquote>
<p>Die heise online vorliegende CISPE-Analyse macht große Schlupflöcher im C3A-Katalog aus. So sehe das Framework zwar vor, dass der primäre Cloud-Anbieter unter europäischer Kontrolle stehen müsse. Bei den weitaus wichtigeren Subunternehmern weiche das BSI diese Linie aber drastisch auf: Für sie wird lediglich eine registrierte Hauptniederlassung in Deutschland oder der EU verlangt.</p>
</blockquote>
<p>Anfangs habe ich den Katalog ebenfalls kritisch gesehen. Nachdem ich aber viele Definitionen und Vorgaben zur Souveränität gelesen habe, die von Akteuren aus der öffentlichen Verwaltung stammen, bin ich zu einer anderen Einschätzung gekommen. Definitionen lassen sich zwar einmal festlegen, doch der politische Diskurs entwickelt sich weiter und überholt sie. Wer zurückblickt, erkennt, dass Souveränität über die Jahre immer wieder einen anderen Schwerpunkt bekommen hat. Ich halte all diese Definitionen für sinnvoll, weil sie ein gemeinsames Ziel verfolgen. Sie sollen helfen, neues Wissen aufzubauen, bestehendes zu sichern und Entscheidungen bewusst zu treffen.</p>
<p>Der C3A kann nur ein Leitfaden sein und keine feste Vorgabe oder Verordnung. Die Welt verändert sich zu schnell, und die Abhängigkeiten sind zu groß. Ähnlich wie bei der IT-Sicherheit können Entscheidungsträger vor allem Risiken abwägen und minimieren. Vollständige Souveränität wird es ebenso wenig geben wie vollständige Sicherheit. Aus diesem Grund halte ich den C3A als Leitfaden für gut, weil er Entscheidungsträgern eine Orientierung bietet.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Cloud Sovereignty Criteria in Europe</title>
      <link>https://maik.io/notes/2026-05-15-cloud-sovereignty-criteria-in-europe/</link>
      <pubDate>Fri, 15 May 2026 19:38:17 +0200</pubDate>
      <guid>https://maik.io/notes/2026-05-15-cloud-sovereignty-criteria-in-europe/</guid>
      <description>&lt;p&gt;Die Studie »&lt;a href=&#34;https://www.bitkom.org/EN/List-and-detailpages/Publications/Cloud-Sovereignty-Criteria-in-Europe&#34; title=&#34;Cloud Sovereignty Criteria in Europe | Position Paper 2026 | Bitkom e. V.&#34; target=&#34;_blank&#34; &gt;Cloud Sovereignty Criteria in Europe&lt;/a&gt;« von Bitkom e.V. skizziert Leitlinien für eine europäische Cloud-Politik, die digitale Souveränität stärkt, ohne den Binnenmarkt zu zersplittern. Kernaussage ist, dass Schutzmaßnahmen ausgewogen, evidenzbasiert und verhältnismäßig ausgestaltet sein müssen, nicht diskriminierend wirken dürfen und vollständig mit EU-Recht sowie internationalen Handelsverpflichtungen wie WTO GPA und GATS vereinbar bleiben sollen. Anforderungen sollen klar definiert und flexibel anwendbar sein, um unnötige Komplexität, Rechtsunsicherheit und zusätzliche Belastungen für Anbieter und Nutzer zu vermeiden. Herausgegeben wurde die Publikation 2026 von Bitkom e.V. in Berlin.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Die Studie »<a href="https://www.bitkom.org/EN/List-and-detailpages/Publications/Cloud-Sovereignty-Criteria-in-Europe" title="Cloud Sovereignty Criteria in Europe | Position Paper 2026 | Bitkom e. V." target="_blank" >Cloud Sovereignty Criteria in Europe</a>« von Bitkom e.V. skizziert Leitlinien für eine europäische Cloud-Politik, die digitale Souveränität stärkt, ohne den Binnenmarkt zu zersplittern. Kernaussage ist, dass Schutzmaßnahmen ausgewogen, evidenzbasiert und verhältnismäßig ausgestaltet sein müssen, nicht diskriminierend wirken dürfen und vollständig mit EU-Recht sowie internationalen Handelsverpflichtungen wie WTO GPA und GATS vereinbar bleiben sollen. Anforderungen sollen klar definiert und flexibel anwendbar sein, um unnötige Komplexität, Rechtsunsicherheit und zusätzliche Belastungen für Anbieter und Nutzer zu vermeiden. Herausgegeben wurde die Publikation 2026 von Bitkom e.V. in Berlin.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Cloud Souveränität</title>
      <link>https://maik.io/notes/2026-04-27-cloud-souveraenitaet/</link>
      <pubDate>Mon, 27 Apr 2026 16:18:00 +0200</pubDate>
      <guid>https://maik.io/notes/2026-04-27-cloud-souveraenitaet/</guid>
      <description>&lt;p&gt;Benjamin Hilbricht und Oliver Voß schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/die-bsi-kriterien-fuer-souveraene-clouds&#34; title=&#34;C3A-Katalog: Die BSI-Kriterien für souveräne Clouds - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;C3A-Katalog: Die BSI-Kriterien für souveräne Clouds&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Strategische Souveränität: Der Cloud-Anbieter muss EU- oder deutschem Recht unterliegen. Deutsche oder EU-Behörden müssen eine effektive Kontrolle vornehmen können. Wenn sich ein amerikanischer, chinesischer oder sonstiger Nicht-EU-Akteur in einen Cloud-Anbieter einkauft oder ihn übernimmt, muss das Unternehmen drei Monate im Voraus seine Kunden davor warnen.&lt;/li&gt;
&lt;li&gt;Rechtliche Souveränität: Einmal im Jahr muss der Cloud-Anbieter Nicht-EU-Gesetze identifizieren, die sich auf sein Geschäft auswirken, und eine Risikoanalyse vornehmen. Ein Beispiel wäre der US Cloud Act. Außerdem enthält der Abschnitt ein Kriterium für den Verteidigungsfall. Als souverän gelten Cloud-Anbieter, die Wissen, Fähigkeiten und Personal vorhalten, sodass der Staat die Cloud-Services im Verteidigungsfall selbst steuern kann.&lt;/li&gt;
&lt;li&gt;Datensouveränität: Dieser Punkt ist sehr umfangreich. Hier spezifizieren Kriterien, ob und wie viel Kontrolle die Kunden über die Metadaten und Daten haben und wo diese gespeichert werden. Es wird verlangt, dass der Cloud-Anbieter ein externes Management für kryptografische Schlüssel zulässt. Dadurch würde gewährleistet, dass er Kundendaten nicht selbst entschlüsseln kann. Auch die Möglichkeit, die Nutzeridentitäten außerhalb der Cloud zu managen, gilt als Muss.&lt;/li&gt;
&lt;li&gt;Betriebssouveränität: Auch dieser Punkt ist sehr umfangreich. Unter anderem finden sich hier die eingangs erwähnten Kriterien, dass die Rechenzentren 90 Tage lang ohne jegliche Verbindung zu Nicht-EU-Staaten laufen können müssen. „Wir müssen die Kabel zu den US-Backbones physisch rausziehen können und trotzdem muss ein Rechenzentrum in Europa betriebsfähig bleiben“, sagt BSI-Vize Caspers.&lt;/li&gt;
&lt;li&gt;Lieferketten: Hier müssen souveräne Unternehmen ihre Abhängigkeiten in Software, Hardware und Diensten inventarisieren und am besten einen dokumentierten Prozess für den Problemfall vorhalten.&lt;/li&gt;
&lt;li&gt;Technologische Souveränität: Hier verlangt das Bundesamt, dass es ein Backup des Quellcodes auf einem Speicher in der EU gibt. Der Code darf nicht älter sein als 24 Stunden und muss dokumentiert sein. Cloud-Anbieter, die in Deutschland tätig sein wollen, müssen für den Notfall eine Strategie vorhalten, wie sie ihre Dienste weiter liefern können. Zusätzlich können sie nachweisen, dass sie eigene Leute haben, die die Entwicklung und Wartung der Dienste übernehmen können, falls die Lieferung aus dem EU-Ausland abbricht.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Der Artikel ist auch über das oben genannte Zitat hinaus interessant. Den C3A-Katalog kann man &lt;a href=&#34;https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/CloudComputing/C3A_Cloud_Computing_Autonomy.pdf?__blob=publicationFile&#34; target=&#34;_blank&#34; &gt;hier&lt;/a&gt; einsehen.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Benjamin Hilbricht und Oliver Voß schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/die-bsi-kriterien-fuer-souveraene-clouds" title="C3A-Katalog: Die BSI-Kriterien für souveräne Clouds - Tagesspiegel Background" target="_blank" >C3A-Katalog: Die BSI-Kriterien für souveräne Clouds</a>« für tagesspiegel.de</p>
<blockquote>
<ol>
<li>Strategische Souveränität: Der Cloud-Anbieter muss EU- oder deutschem Recht unterliegen. Deutsche oder EU-Behörden müssen eine effektive Kontrolle vornehmen können. Wenn sich ein amerikanischer, chinesischer oder sonstiger Nicht-EU-Akteur in einen Cloud-Anbieter einkauft oder ihn übernimmt, muss das Unternehmen drei Monate im Voraus seine Kunden davor warnen.</li>
<li>Rechtliche Souveränität: Einmal im Jahr muss der Cloud-Anbieter Nicht-EU-Gesetze identifizieren, die sich auf sein Geschäft auswirken, und eine Risikoanalyse vornehmen. Ein Beispiel wäre der US Cloud Act. Außerdem enthält der Abschnitt ein Kriterium für den Verteidigungsfall. Als souverän gelten Cloud-Anbieter, die Wissen, Fähigkeiten und Personal vorhalten, sodass der Staat die Cloud-Services im Verteidigungsfall selbst steuern kann.</li>
<li>Datensouveränität: Dieser Punkt ist sehr umfangreich. Hier spezifizieren Kriterien, ob und wie viel Kontrolle die Kunden über die Metadaten und Daten haben und wo diese gespeichert werden. Es wird verlangt, dass der Cloud-Anbieter ein externes Management für kryptografische Schlüssel zulässt. Dadurch würde gewährleistet, dass er Kundendaten nicht selbst entschlüsseln kann. Auch die Möglichkeit, die Nutzeridentitäten außerhalb der Cloud zu managen, gilt als Muss.</li>
<li>Betriebssouveränität: Auch dieser Punkt ist sehr umfangreich. Unter anderem finden sich hier die eingangs erwähnten Kriterien, dass die Rechenzentren 90 Tage lang ohne jegliche Verbindung zu Nicht-EU-Staaten laufen können müssen. „Wir müssen die Kabel zu den US-Backbones physisch rausziehen können und trotzdem muss ein Rechenzentrum in Europa betriebsfähig bleiben“, sagt BSI-Vize Caspers.</li>
<li>Lieferketten: Hier müssen souveräne Unternehmen ihre Abhängigkeiten in Software, Hardware und Diensten inventarisieren und am besten einen dokumentierten Prozess für den Problemfall vorhalten.</li>
<li>Technologische Souveränität: Hier verlangt das Bundesamt, dass es ein Backup des Quellcodes auf einem Speicher in der EU gibt. Der Code darf nicht älter sein als 24 Stunden und muss dokumentiert sein. Cloud-Anbieter, die in Deutschland tätig sein wollen, müssen für den Notfall eine Strategie vorhalten, wie sie ihre Dienste weiter liefern können. Zusätzlich können sie nachweisen, dass sie eigene Leute haben, die die Entwicklung und Wartung der Dienste übernehmen können, falls die Lieferung aus dem EU-Ausland abbricht.</li>
</ol>
</blockquote>
<p>Der Artikel ist auch über das oben genannte Zitat hinaus interessant. Den C3A-Katalog kann man <a href="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/CloudComputing/C3A_Cloud_Computing_Autonomy.pdf?__blob=publicationFile" target="_blank" >hier</a> einsehen.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Sovereign Disaster Recovery Pack</title>
      <link>https://maik.io/notes/2026-04-15-sovereign-disaster-recovery-pack/</link>
      <pubDate>Wed, 15 Apr 2026 21:52:44 +0200</pubDate>
      <guid>https://maik.io/notes/2026-04-15-sovereign-disaster-recovery-pack/</guid>
      <description>&lt;p&gt;Vier europäische Technologieunternehmen – Cubbit, SUSE, Elemento Cloud und StorPool – haben auf dem European Data Summit in Berlin ein nach eigenen Angaben europaweit erstes vollständig integriertes „Sovereign Disaster Recovery Pack“ vorgestellt.
Im Mittelpunkt steht weniger eine einzelne neue Technologie als der strategische Ansatz. Erstmals wird ein kompletter, sofort einsatzbereiter europäischer Infrastruktur-Stack für einen klar definierten Anwendungsfall gebündelt angeboten: Disaster Recovery.
Die Initiative verweist dabei ausdrücklich auf geopolitische Risiken, etwa mögliche „Kill-Switch“-Szenarien durch außereuropäische Anbieter. Gleichzeitig versteht sie Disaster Recovery als pragmatischen Einstieg in eine weitergehende Cloud-Souveränitätsstrategie im Sinne des EuroStack-Konzepts.
Weitere Informationen enthält die offizielle &lt;a href=&#34;https://blog.cubbit.io/sovereign-disaster-recovery-pack/&#34; title=&#34;Four European tech companies unveil Europe’s first fully sovereign disaster recovery pack at the European Data Summit&#34; target=&#34;_blank&#34; &gt;Pressemeldung&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Vier europäische Technologieunternehmen – Cubbit, SUSE, Elemento Cloud und StorPool – haben auf dem European Data Summit in Berlin ein nach eigenen Angaben europaweit erstes vollständig integriertes „Sovereign Disaster Recovery Pack“ vorgestellt.
Im Mittelpunkt steht weniger eine einzelne neue Technologie als der strategische Ansatz. Erstmals wird ein kompletter, sofort einsatzbereiter europäischer Infrastruktur-Stack für einen klar definierten Anwendungsfall gebündelt angeboten: Disaster Recovery.
Die Initiative verweist dabei ausdrücklich auf geopolitische Risiken, etwa mögliche „Kill-Switch“-Szenarien durch außereuropäische Anbieter. Gleichzeitig versteht sie Disaster Recovery als pragmatischen Einstieg in eine weitergehende Cloud-Souveränitätsstrategie im Sinne des EuroStack-Konzepts.
Weitere Informationen enthält die offizielle <a href="https://blog.cubbit.io/sovereign-disaster-recovery-pack/" title="Four European tech companies unveil Europe’s first fully sovereign disaster recovery pack at the European Data Summit" target="_blank" >Pressemeldung</a></p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Digitale Souveränität messbar machen</title>
      <link>https://maik.io/notes/2026-03-26-kriterien-fur-digitale-souveranitaet/</link>
      <pubDate>Thu, 26 Mar 2026 07:31:40 +0200</pubDate>
      <guid>https://maik.io/notes/2026-03-26-kriterien-fur-digitale-souveranitaet/</guid>
      <description>&lt;p&gt;Das ZenDiS hat ein Diskussionspapier »&lt;a href=&#34;https://www.zendis.de/media/pages/newsroom/publikationen/konsultationsprozesskriterien/97c259289f-1774439296/zendis_diskussionspapier-kriterien-bewertung-digitaler-souveraenitaet.pdf&#34; target=&#34;_blank&#34; &gt;Kriterien für Digitale Souveränität&lt;/a&gt;« veröffentlicht, das Kriterien zur Bewertung digitaler Souveränität für die öffentliche Verwaltung festlegen soll. Vorgesehen sind ein Kriterienkatalog, ein Souveränitätscheck und eine risikobasierte Methodik. Die Konsultationsphase läuft bis Mai 2026.&lt;/p&gt;
&lt;p&gt;Zwei Details im Papier fallen auf. Als Plattform für den Konsultationsprozess empfiehlt das Papier openCode. Betrieben wird openCode vom ZenDiS selbst. Außerdem soll es für KI eine gesonderte Regelung geben. Warum, erklärt das Papier nicht.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Das ZenDiS hat ein Diskussionspapier »<a href="https://www.zendis.de/media/pages/newsroom/publikationen/konsultationsprozesskriterien/97c259289f-1774439296/zendis_diskussionspapier-kriterien-bewertung-digitaler-souveraenitaet.pdf" target="_blank" >Kriterien für Digitale Souveränität</a>« veröffentlicht, das Kriterien zur Bewertung digitaler Souveränität für die öffentliche Verwaltung festlegen soll. Vorgesehen sind ein Kriterienkatalog, ein Souveränitätscheck und eine risikobasierte Methodik. Die Konsultationsphase läuft bis Mai 2026.</p>
<p>Zwei Details im Papier fallen auf. Als Plattform für den Konsultationsprozess empfiehlt das Papier openCode. Betrieben wird openCode vom ZenDiS selbst. Außerdem soll es für KI eine gesonderte Regelung geben. Warum, erklärt das Papier nicht.</p>
<p>Beides muss kein Problem sein. Erklärungsbedarf besteht trotzdem, denn solche Diskussionspapiere beeinflussen Beschaffungsentscheidungen in Behörden.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Kill-Switch-Szenario realistisch</title>
      <link>https://maik.io/notes/2026-03-21-kill-switch-szenario-realistisch/</link>
      <pubDate>Sat, 21 Mar 2026 11:29:16 +0100</pubDate>
      <guid>https://maik.io/notes/2026-03-21-kill-switch-szenario-realistisch/</guid>
      <description>&lt;p&gt;Moritz Förster schreibt in »&lt;a href=&#34;https://www.heise.de/news/Cloud-Abhaengigkeit-Fast-die-Haelfte-der-Firmen-hat-keinen-Plan-B-11219886.html?seite=all&#34; title=&#34;Studie: Mehrheit der DACH-Unternehmen hält Cloud-Abschaltung für realistisch&#34; target=&#34;_blank&#34; &gt;Studie: Mehrheit der DACH-Unternehmen hält Cloud-Abschaltung für realistisch&lt;/a&gt;« für heise.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unternehmen in der DACH-Region betrachten ihre Abhängigkeit von großen Cloud-Anbietern zunehmend als strategisches Risiko. Laut einer aktuellen Studie von Lünendonk &amp;amp; Hossenfelder halten 83 Prozent der befragten Unternehmen ein sogenanntes Kill-Switch-Szenario für realistisch – also die Möglichkeit, dass ein Cloud-Provider den Zugang zu kritischen IT-Services einseitig einschränkt oder komplett abschaltet. Gleichzeitig verfügen nur 57 Prozent über eine Exit-Strategie für den Wechsel des Providers. Fast die Hälfte hat demnach keinen Plan B für den Ernstfall.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Moritz Förster schreibt in »<a href="https://www.heise.de/news/Cloud-Abhaengigkeit-Fast-die-Haelfte-der-Firmen-hat-keinen-Plan-B-11219886.html?seite=all" title="Studie: Mehrheit der DACH-Unternehmen hält Cloud-Abschaltung für realistisch" target="_blank" >Studie: Mehrheit der DACH-Unternehmen hält Cloud-Abschaltung für realistisch</a>« für heise.de</p>
<blockquote>
<p>Unternehmen in der DACH-Region betrachten ihre Abhängigkeit von großen Cloud-Anbietern zunehmend als strategisches Risiko. Laut einer aktuellen Studie von Lünendonk &amp; Hossenfelder halten 83 Prozent der befragten Unternehmen ein sogenanntes Kill-Switch-Szenario für realistisch – also die Möglichkeit, dass ein Cloud-Provider den Zugang zu kritischen IT-Services einseitig einschränkt oder komplett abschaltet. Gleichzeitig verfügen nur 57 Prozent über eine Exit-Strategie für den Wechsel des Providers. Fast die Hälfte hat demnach keinen Plan B für den Ernstfall.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Suchmaschinen als strategische öffentliche Infrastruktur</title>
      <link>https://maik.io/notes/2026-03-18-suchmaschinen-als-strategische-oeffentliche-infrastruktur/</link>
      <pubDate>Thu, 12 Mar 2026 07:57:16 +0200</pubDate>
      <guid>https://maik.io/notes/2026-03-18-suchmaschinen-als-strategische-oeffentliche-infrastruktur/</guid>
      <description>&lt;p&gt;Tagesspiegel Background schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/souveraene-suchindizes-fuer-eu-staaten-gefordert&#34; title=&#34;Digitale Souveränität: Souveräne Suchindizes für EU-Staaten gefordert - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Digitale Souveränität: Souveräne Suchindizes für EU-Staaten gefordert&lt;/a&gt;«&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Die Organisation schlägt vor, dass die EU-Mitgliedstaaten entweder selbst in den Aufbau souveräner Suchinfrastrukturen investieren oder bestehende europäische Suchmaschinen als Standard in der öffentlichen Verwaltung einführen. Aktuell werde bereits an souveränen Suchindizes für Frankreich und Deutschland gearbeitet. Die Initiative betont, dass Suchmaschinen als strategische öffentliche Infrastruktur zu behandeln seien – vergleichbar mit Energie- oder Telekommunikationsnetzen.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Tagesspiegel Background schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/souveraene-suchindizes-fuer-eu-staaten-gefordert" title="Digitale Souveränität: Souveräne Suchindizes für EU-Staaten gefordert - Tagesspiegel Background" target="_blank" >Digitale Souveränität: Souveräne Suchindizes für EU-Staaten gefordert</a>«</p>
<blockquote>
<p>Die Organisation schlägt vor, dass die EU-Mitgliedstaaten entweder selbst in den Aufbau souveräner Suchinfrastrukturen investieren oder bestehende europäische Suchmaschinen als Standard in der öffentlichen Verwaltung einführen. Aktuell werde bereits an souveränen Suchindizes für Frankreich und Deutschland gearbeitet. Die Initiative betont, dass Suchmaschinen als strategische öffentliche Infrastruktur zu behandeln seien – vergleichbar mit Energie- oder Telekommunikationsnetzen.</p>
</blockquote>
<p>Ich halte das für eine nutzlose Forderung. Es ist fraglich, ob neue Suchmaschinen in absehbarer Zeit mit der Qualität bestehender Angebote mithalten können, ohne enorme Summen zu investieren. Zugleich verändert Künstliche Intelligenz den Markt grundlegend.</p>
<p>Wer langfristig denkt, sollte an Lösungen für ein Web3 arbeiten, in dem es keinen zentralen Zugangspunkt für Suchanfragen gibt. Das wäre ein souveräner Ansatz. Alles andere wirkt wie Symbolpolitik.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Externer Dienstleister beauftragt</title>
      <link>https://maik.io/notes/2026-02-16-externer-dienstleister-beauftragt/</link>
      <pubDate>Mon, 16 Feb 2026 12:33:13 +0200</pubDate>
      <guid>https://maik.io/notes/2026-02-16-externer-dienstleister-beauftragt/</guid>
      <description>&lt;p&gt;Oliver Heidinger schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/digitale-souveraenitaet-beginnt-beim-risikomanagement&#34; title=&#34;Souveräne Infrastruktur: Digitale Souveränität beginnt beim Risikomanagement - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Souveräne Infrastruktur: Digitale Souveränität beginnt beim Risikomanagement&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Gerade in der Lieferkettensicherheit liegt oftmals eine Schwachstelle von Open-Source-Entwicklungen. Wer Open-Source-Software ‚kostenfrei‘ nutzen möchte, muss selbst erheblich in Wissen und Programmierfähigkeiten investieren. Denn insbesondere beim Einsatz von Open-Source-Produkten in zertifizierten sicheren Betriebsumgebungen muss zu jedem Zeitpunkt sichergestellt sein, dass neu aufgetretene Sicherheitslücken schnell geschlossen werden können. Kann man diese Anforderungen selber nicht erfüllen, muss hierfür ein externer Dienstleister beauftragt werden. So entstehen neue Abhängigkeiten.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Oliver Heidinger schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/digitale-souveraenitaet-beginnt-beim-risikomanagement" title="Souveräne Infrastruktur: Digitale Souveränität beginnt beim Risikomanagement - Tagesspiegel Background" target="_blank" >Souveräne Infrastruktur: Digitale Souveränität beginnt beim Risikomanagement</a>« für tagesspiegel.de</p>
<blockquote>
<p>Gerade in der Lieferkettensicherheit liegt oftmals eine Schwachstelle von Open-Source-Entwicklungen. Wer Open-Source-Software ‚kostenfrei‘ nutzen möchte, muss selbst erheblich in Wissen und Programmierfähigkeiten investieren. Denn insbesondere beim Einsatz von Open-Source-Produkten in zertifizierten sicheren Betriebsumgebungen muss zu jedem Zeitpunkt sichergestellt sein, dass neu aufgetretene Sicherheitslücken schnell geschlossen werden können. Kann man diese Anforderungen selber nicht erfüllen, muss hierfür ein externer Dienstleister beauftragt werden. So entstehen neue Abhängigkeiten.</p>
</blockquote>
<p>Zu keinem Zeitpunkt ging es darum, Software ohne eingekauften Support zu nutzen. Der Unterschied liegt woanders. Es gibt nicht den einen festen Dienstleister. Da die Software offen verfügbar ist, können verschiedene Anbieter Support leisten. Ob und in welchem Umfang sie das tun, wird vertraglich geregelt. Das passiert übrigends jeden Tag, in jedem Rechenzetrum, Stichwort Red Hat.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Digitale Souveränität jenseits der Mythen</title>
      <link>https://maik.io/notes/2026-02-10-digitale-souveraenitaet-jenseits-der-mythen/</link>
      <pubDate>Tue, 10 Feb 2026 20:00:00 +0200</pubDate>
      <guid>https://maik.io/notes/2026-02-10-digitale-souveraenitaet-jenseits-der-mythen/</guid>
      <description>In diesem Beitrag räume ich mit einigen Mythen auf, die mir seit Monaten immer wieder begegnen und die aus meiner Sicht grundlegend falsch sind.</description>
      <content:encoded>
      <![CDATA[


<div class="goat svg-container ">
  
    <svg
      xmlns="http://www.w3.org/2000/svg"
      font-family="ui-monospace, SFMono-Regular, 'SF Mono',Menlo, Monaco, Consolas, monospace;"
      
        viewBox="0 0 1104 793"
      >
      <g transform='translate(8,16)'>
<circle cx='272' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='272' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='272' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='272' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='272' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='272' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='288' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='304' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='320' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='336' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='352' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='368' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='384' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='16' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='32' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='400' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='32' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='416' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='32' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='432' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='32' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='448' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='32' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='464' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='480' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='496' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='512' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='528' cy='752' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='544' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='560' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='576' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='592' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='608' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='624' cy='736' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='640' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='480' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='656' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='664' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='464' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='496' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='512' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='528' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='672' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='680' cy='48' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='64' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='80' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='544' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='688' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='448' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='672' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='704' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='712' cy='720' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='96' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='128' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='432' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='560' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='656' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='688' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='720' cy='704' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='112' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='144' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='208' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='576' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='736' cy='640' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='160' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='176' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='192' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='224' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='416' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='592' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='752' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='240' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='256' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='608' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='768' cy='624' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='272' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='288' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='304' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='784' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='800' cy='320' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='800' cy='336' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='800' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='800' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='800' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='816' cy='352' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='816' cy='368' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='816' cy='384' r='6' stroke='currentColor' fill='currentColor'></circle>
<circle cx='816' cy='400' r='6' stroke='currentColor' fill='currentColor'></circle>
</g>

      

      <style>
        svg circle[fill="#fff"] {
          fill: none;
          stroke: var(--primary);
        }
        svg circle[fill="currentColor"] {
          fill: var(--primary);
          stroke: var(--primary);
        }
      </style>
    </svg>
  
</div>
<p>Ich befasse mich seit mehreren Jahren intensiv mit digitaler Souveränität. Das begann lange bevor der Begriff zum Modewort wurde und dabei an Kontur verlor.</p>
<h2 id="mythos-1-digitale-souveränität-nur-mit-open-source">Mythos 1: Digitale Souveränität nur mit Open Source?</h2>
<p>Open Source wird häufig mit digitaler Souveränität gleichgesetzt. Diese Gleichsetzung greift zu kurz. Open Source kann den Vendor Lock-in verringern, ihn aber nicht vollständig vermeiden.
Der öffentliche Diskurs richtet sich oft auf große und vergleichsweise leicht umsetzbare Migrationen. Dazu zählen Groupware wie E-Mail, Kalender und Kontakte, Kommunikationsplattformen oder Office-Lösungen. Solche Wechsel lassen sich politisch gut vermitteln, auch weil es inzwischen ausreichend nutzbare Alternativen gibt. Die zentrale Herausforderung liegt dabei weniger in der Technik als in den finanziellen Rahmenbedingungen.</p>
<p>Deutlich komplizierter ist die Lage bei hochspezialisierten Fachanwendungen. In diesen Bereichen gibt es häufig nur wenige oder gar keine Alternativen. Ein Grund ist, dass Open-Source-Software oft aus privaten Initiativen hervorgeht. Sobald spezielle Hardware erforderlich ist oder das Problem nur einen sehr kleinen Nutzerkreis betrifft, setzen sich meist proprietäre Lösungen durch.</p>
<p>Das führt dazu, dass kleine und spezialisierte Anwendungen nur von wenigen Anbietern entwickelt und betrieben werden. Hinzu kommt spezifisches Domänenwissen über Technik, Prozesse oder auch veraltete Programmiersprachen und Systeme. Unter diesen Bedingungen spielt es praktisch keine Rolle, ob der Quellcode offen oder geschlossen ist. Realistisch können nur wenige Anbieter solche Produkte betreiben und weiterentwickeln.</p>
<p>Häufig wird an dieser Stelle darauf verwiesen, dass Open Source grundsätzlich den Eigenbetrieb von Software ermögliche. Formal ist das richtig. In der Praxis bleibt es jedoch meist theoretisch. Das notwendige Spezialwissen ist selten und entsprechend teuer. Der Markt ist klein, wodurch faktisch erneut ein Vendor Lock-in entsteht, unabhängig vom Lizenzmodell.</p>
<p>Open Source kann Abhängigkeiten reduzieren. Einen vollständigen Schutz vor Vendor Lock-in bietet es jedoch nicht.</p>
<h2 id="mythos-2-souveränität-mit-proprietärer-software-ist-unmöglich-erreichbar">Mythos 2: Souveränität mit proprietärer Software ist unmöglich erreichbar</h2>
<p>Häufig heißt es, digitale Souveränität lasse sich mit proprietärer Software grundsätzlich nicht erreichen, weil stets eine Abhängigkeit vom Hersteller bestehe. Dass solche Abhängigkeiten auch bei Open-Source-Software auftreten können, ist bereits beschrieben worden.
Hilfreich ist es, den sperrigen Begriff der digitalen Souveränität durch „Selbstbestimmtheit“ zu ersetzen. Dann wird deutlicher, worum es geht und dass dieses Ziel unter bestimmten Voraussetzungen auch mit nicht freier Software erreichbar sein kann.</p>
<p>Digitale Souveränität bedeutet nicht zwangsläufig freie Software. Im Kern geht es um die Vermeidung von Lock-in-Effekten, um Möglichkeiten zur Mitgestaltung und um Transparenz.</p>
<p>Denkbar ist etwa ein Produkt, das auf offenen Standards basiert, sodass Daten jederzeit importiert und exportiert werden können. Offene Schnittstellen erlauben die freie Nutzung der eigenen Daten. Der Hersteller ist bereit, gegen ein angemessenes Entgelt individuelle Anforderungen umzusetzen, und gewährt Einblick in den Quellcode, ohne ihn unter eine freie Lizenz zu stellen. Juristisch wie kaufmännisch ist ein solches Modell möglich.</p>
<p>Warum ist es dennoch selten? Unternehmen müssen nicht nur kurzfristig wirtschaftlich arbeiten, sondern auch langfristige Planungssicherheit gewährleisten. Insbesondere börsennotierte Firmen sind verpflichtet, verlässliche Perspektiven für Investoren zu bieten. Daraus entstehen Geschäftsmodelle, die auf wiederkehrende Einnahmen ausgerichtet sind.</p>
<p>Unabhängig von Unternehmensphilosophie oder guten Absichten sind Hersteller darauf angewiesen, Kunden zu binden. Nur so lassen sich Weiterentwicklung, Personal und Betrieb finanzieren. Die beschriebenen offenen Modelle stellen für viele Anbieter daher ein erhebliches wirtschaftliches Risiko dar.</p>
<p>Realistisch bleiben meist nur Geschäftsmodelle, wie sie teilweise im Open-Source-Umfeld zu finden sind, etwa über Dienstleistungen, Support oder individuelle Anpassungen.</p>
<p>Zusammengefasst gilt: In der Theorie können auch proprietäre Produkte digitale Souveränität fördern. In der Praxis scheitert dies am Geschäftsmodell.</p>
<h2 id="mythos-3-ist-open-source-automatisch-und-immer-sicherer">Mythos 3: Ist Open Source automatisch und immer sicherer?</h2>
<p>Ein weiterer Mythos besagt, Open Source sei grundsätzlich sicherer als proprietäre Software. Auch diese Annahme greift zu kurz.
Zwar ist offen einsehbarer Code grundsätzlich überprüfbar. Daraus ergibt sich jedoch nicht automatisch ein höheres Sicherheitsniveau. Sicherheit entsteht erst dann, wenn der Code tatsächlich geprüft wird. Ein Blick auf Plattformen wie GitHub zeigt, dass es Millionen von Projekten gibt, die nie auditiert wurden.</p>
<p>Die Vorstellung, für jede Open-Source-Lösung stünden ausreichend qualifizierte Prüfer bereit, ist unrealistisch. Regelmäßige Sicherheitsprüfungen müssen organisiert oder eingekauft werden. Beides ist aufwendig und teuer.</p>
<p>Bei proprietärer Software übernimmt der Hersteller diese Verantwortung gegen Bezahlung, auch bei Spezial- oder Nischenprodukten. Das setzt Vertrauen voraus, das nur eingeschränkt überprüfbar ist. Externe Audits unterscheiden sich darin jedoch kaum.</p>
<p>Ausschlaggebend ist daher nicht die Lizenzform. Entscheidend ist, ob eine Software genug Verbreitung, Aufmerksamkeit und Ressourcen erhält, um dauerhaft geprüft und gepflegt zu werden.</p>
<h2 id="mythos-4-digitale-souveränität-lässt-sich-durch-beschaffung-herstellen">Mythos 4: Digitale Souveränität lässt sich durch Beschaffung herstellen</h2>
<p>Wie bereits beschrieben wird digitale Souveränität oft mit Selbstbestimmtheit im Digitalen gleichgesetzt. Schon daraus ergibt sich, dass reine Beschaffung nicht ausreicht.</p>
<p>Souverän handeln kann nur, wer über Wissen verfügt. Ohne Klarheit über eingesetzte Dienste, Lock-in-Effekte, Architektur und Sicherheitsfragen ist selbstbestimmtes Handeln nicht möglich. Entscheidungen werden dann von äußeren Zwängen bestimmt.</p>
<p>In diesem Zusammenhang stellen sich grundlegende Fragen:</p>
<ul>
<li>Wie funktioniert die eingesetzte Technik?</li>
<li>Welche Daten liegen wo?</li>
<li>Ist die Lieferkette langfristig abgesichert?</li>
<li>Welche Abhängigkeiten bestehen?</li>
<li>Wie aufwendig ist ein Technologiewechsel?</li>
<li>Kann der Anbieter kurzfristig gewechselt werden, ohne die Organisation wirtschaftlich zu gefährden?</li>
<li>Ist das notwendige Know-how vorhanden?</li>
<li>Wie angreifbar ist die eingesetzte Software?</li>
</ul>
<p>Nur Organisationen, die diese Fragen für sich beantworten können, sind in der Lage, eigenständig Entscheidungen zu treffen. Das kann auch bedeuten, sich bewusst für proprietäre Systeme zu entscheiden, mit einem klaren Verständnis der Folgen. Ebenso kann es bedeuten, sich gezielt dagegen zu entscheiden.</p>
<h2 id="mythos-5-vollständige-souveränität-scheitert-auf-chip-ebene">Mythos 5: Vollständige Souveränität scheitert auf Chip-Ebene</h2>
<p>Häufig wird behauptet, vollständige Souveränität sei unmöglich, weil die Chipproduktion nicht im eigenen Land stattfindet. Das ist nicht falsch, greift aber zu kurz. Die Herstellung von Computerchips ist global organisiert und so groß, dass einzelne Akteure kaum vollständig ausgeschlossen oder dauerhaft vom Markt gedrängt werden können. Das zeigte sich in den vergangenen Monaten, als die USA versuchten, China von der Lieferung von KI-Chips abzuschneiden. Über Zwischenhändler gelangten die benötigten Komponenten dennoch ans Ziel. Und wo das nicht geschieht, entsteht in der Regel ein Markt, der die Lücke füllt.
Deutlich schwieriger ist es, souveräne Alternativen dort aufzubauen, wo der Markt keine Lösungen hervorbringt. Das betrifft Bereiche mit geringem Bedarf. Der Fachkräftemangel verschärft diese Situation zusätzlich.</p>
<p>Vollständige digitale Souveränität ist ohnehin nicht erreichbar. Die Computerindustrie befindet sich in ständigem technologischen und wirtschaftlichen Wandel. Dadurch verändert sich auch die Ausgangslage fortlaufend. Ähnlich wie in der IT-Sicherheit geht es weniger um einen festen Endzustand als um kontinuierliche Arbeit, um einen selbst definierten Stand zu halten.</p>
<h2 id="aktuelle-lage-und-ein-ausblick">Aktuelle Lage und ein Ausblick</h2>
<p>In Deutschland und Europa ist ein Teil der digitalen Souveränität verloren gegangen. Kompetenzen wurden nicht mehr aufgebaut oder gepflegt. Stattdessen kauften öffentliche und private Akteure Dienstleistungen und Produkte großer Tech-Anbieter ein, mit dem Hinweis auf angebliche wirtschaftliche Vorteile. Diese Annahme hat sich als falsch erwiesen. Die Abhängigkeit ist teuer geworden, zugleich ging Know-how verloren oder konnte mit der technischen Entwicklung nicht Schritt halten. Der Rückstand ist real und aufholbar. Alles, was es dafür braucht, ist politischer und privatwirtschaftlicher Wille.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Proprietäre Systeme würden immer eine strukturelle Abhängigkeit erzeugen</title>
      <link>https://maik.io/notes/2026-02-09-proprietaere-systeme-wuerden-immer-eine-strukturelle-abhaengigkeit-erzeugen/</link>
      <pubDate>Mon, 09 Feb 2026 12:01:15 +0200</pubDate>
      <guid>https://maik.io/notes/2026-02-09-proprietaere-systeme-wuerden-immer-eine-strukturelle-abhaengigkeit-erzeugen/</guid>
      <description>&lt;p&gt;tagesspiegel.de schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/minister-schroedter-kritisiert-geplante-neudefinition-der-bundesregierung&#34; title=&#34;Digitale Souveränität: Minister Schrödter kritisiert geplante Neudefinition der Bundesregierung - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Digitale Souveränität: Minister Schrödter kritisiert geplante Neudefinition der Bundesregierung&lt;/a&gt;«&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Wirkliche Souveränität ist daher nach Ansicht Schrödters nur mit Open Source erreichbar. „Digitale Souveränität ist schlicht keine Governancefrage, sondern eine der technischen Eigentums- und Kontrollarchitektur“, schreibt Schrödter. „Die Fähigkeiten und Möglichkeiten, die die Sicherung digitaler Souveränität erfordert, lassen sich nicht vertraglich herstellen und auch nicht regulatorisch erzwingen, solange der Quellcode und die Verfügungsgewalt über die zentrale technologische Basis außerhalb staatlicher Kontrolle liegen.“ Proprietäre Systeme würden immer eine strukturelle Abhängigkeit erzeugen, Open Source kehre dieses Verhältnis um.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>tagesspiegel.de schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/minister-schroedter-kritisiert-geplante-neudefinition-der-bundesregierung" title="Digitale Souveränität: Minister Schrödter kritisiert geplante Neudefinition der Bundesregierung - Tagesspiegel Background" target="_blank" >Digitale Souveränität: Minister Schrödter kritisiert geplante Neudefinition der Bundesregierung</a>«</p>
<blockquote>
<p>Wirkliche Souveränität ist daher nach Ansicht Schrödters nur mit Open Source erreichbar. „Digitale Souveränität ist schlicht keine Governancefrage, sondern eine der technischen Eigentums- und Kontrollarchitektur“, schreibt Schrödter. „Die Fähigkeiten und Möglichkeiten, die die Sicherung digitaler Souveränität erfordert, lassen sich nicht vertraglich herstellen und auch nicht regulatorisch erzwingen, solange der Quellcode und die Verfügungsgewalt über die zentrale technologische Basis außerhalb staatlicher Kontrolle liegen.“ Proprietäre Systeme würden immer eine strukturelle Abhängigkeit erzeugen, Open Source kehre dieses Verhältnis um.</p>
</blockquote>
<p>Ich halte es für sinnvoll, Dirk Schrödter in Debatten über digitale Souveränität und Open Source in der Verwaltung stärker einzubeziehen. Schleswig-Holstein ist bislang das einzige Bundesland, das diesen Weg konsequent verfolgt. Andere Länder beobachten die Entwicklung seit Jahren oder entscheiden sich bewusst gegen einen solchen Kurs.</p>
<p>Gleichzeitig ist die Gleichsetzung von Open Source und digitaler Souveränität nicht zutreffend und die Aussagen &ldquo;Proprietäre Systeme würden immer eine strukturelle Abhängigkeit erzeugen&rdquo; ist nicht korrekt. Beides ist nicht identisch und schließt sich auch nicht gegenseitig ein. Diese Unterscheidung lässt sich nicht in einem kurzen Statement zu einer Pressemeldung erläutern. Dafür braucht es einen eigenen Text. To be continued.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Plan B</title>
      <link>https://maik.io/notes/2026-02-04-plan-b/</link>
      <pubDate>Wed, 04 Feb 2026 06:14:24 +0200</pubDate>
      <guid>https://maik.io/notes/2026-02-04-plan-b/</guid>
      <description>&lt;p&gt;tagesspiegel.de schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/plan-b-fuer-digitale-souveraenitaet&#34; title=&#34;Neudefinition der Bundesregierung: Plan B für digitale Souveränität - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Neudefinition der Bundesregierung: Plan B für digitale Souveränität&lt;/a&gt;«&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Inhaltlich entscheidend sei die Verfügbarkeit von Alternativen und Wahlmöglichkeiten. „Unsere Definition von Souveränität ist es, immer einen Plan B zu haben“, sagte Hölscher bei einer Veranstaltung des Bitkom. Schon im Januar hatte Tagesspiegel Background berichtet, dass die Wechselfähigkeit von Systemen ein wichtiges Element der Definition werden soll. Auch die Einflussfähigkeit auf Anbieter, technologische Gestaltungsfähigkeit, die Resilienz der Infrastruktur und die Förderung wirtschaftlicher Wertschöpfungsfähigkeit sind Teil der Begriffsbestimmung.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>tagesspiegel.de schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/plan-b-fuer-digitale-souveraenitaet" title="Neudefinition der Bundesregierung: Plan B für digitale Souveränität - Tagesspiegel Background" target="_blank" >Neudefinition der Bundesregierung: Plan B für digitale Souveränität</a>«</p>
<blockquote>
<p>Inhaltlich entscheidend sei die Verfügbarkeit von Alternativen und Wahlmöglichkeiten. „Unsere Definition von Souveränität ist es, immer einen Plan B zu haben“, sagte Hölscher bei einer Veranstaltung des Bitkom. Schon im Januar hatte Tagesspiegel Background berichtet, dass die Wechselfähigkeit von Systemen ein wichtiges Element der Definition werden soll. Auch die Einflussfähigkeit auf Anbieter, technologische Gestaltungsfähigkeit, die Resilienz der Infrastruktur und die Förderung wirtschaftlicher Wertschöpfungsfähigkeit sind Teil der Begriffsbestimmung.</p>
<p>Die Neudefinition ist aber innerhalb der Bundesregierung noch nicht final abgestimmt. Im nächsten Schritt soll die Definition auch mit Frankreich diskutiert werden, Ziel ist eine gemeinsame Definition.</p>
</blockquote>
<h2 id="begriffserklärung">Begriffserklärung:</h2>
<div class="md-columns">

<div class="markdown-inner">


<h3>deutsche digitale Souveränität, die</h3>
<small>[ˈdɔʏ̯tʃə digiˈtaːlə zoveʁɛniˈtɛːt]</small>
<br><br>
<b>Bedeutung:</b><br>
Überzeugung, dass ein Plan B zwingend existieren muss, selbst wenn feststeht, dass Plan A niemals verlassen wird.


</div>

<div class="markdown-inner">


<h3>europeische digitale Souveränität, die</h3>
<small>[ˌʔøʏ̯ʁoˈpɛːɪʃə digiˈtaːlə zoveʁɛniˈtɛːt]</small>
<br><br>
<b>Bedeutung:</b><br>
Aufforderung, verdammt noch mal das zu tun, was Deutschland und Frankreich für richtig halten.


</div>

</div>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Wir finanzieren unsere Abhängigkeit</title>
      <link>https://maik.io/notes/2026-01-24-wir-finanzieren-unsere-abhaengigkeit/</link>
      <pubDate>Sat, 24 Jan 2026 14:00:23 +0200</pubDate>
      <guid>https://maik.io/notes/2026-01-24-wir-finanzieren-unsere-abhaengigkeit/</guid>
      <description>&lt;p&gt;Marcel Rosenbach interviewt Francesca Bria in »&lt;a href=&#34;https://www.spiegel.de/netzwelt/eurostack-initiatorin-francesca-bria-so-wird-der-deutsche-staat-digital-unabhaengig-a-02e4678c-a460-4acd-90e4-9ca6a820e64b&#34; title=&#34;EuroStack-Initiatorin Francesca Bria: So wird der deutsche Staat digital unabhängig - DER SPIEGEL&#34; target=&#34;_blank&#34; &gt;EuroStack-Initiatorin Francesca Bria: So wird der deutsche Staat digital unabhängig&lt;/a&gt;« für spiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Wirkungsvoller wäre ohnehin etwas anderes: 300 Milliarden Euro an privatem Kapital verlassen Europa jährlich und fließen in die US-Kapitalmärkte. Und wir finanzieren unsere Abhängigkeit auch noch mit unseren Steuergeldern – durch öffentliche Aufträge an US‑Technologiekonzerne. Big Tech zu besteuern, ist richtig. Vor allem sollten wir diese Firmen aber nicht weiter mit öffentlichen Geldern für Dienstleistungen päppeln, die europäische Unternehmen genauso gut erbringen könnten. Die EU hat zudem ein wirkungsvolles Instrument, wenn ausländische Mächte Druck ausüben, um politische Veränderungen zu erzwingen – wie es die USA bei der EU-Digitalregulierung versuchen. Frankreich hat zu Recht gefordert, dieses »Anti-Zwang-Instrument« zu aktivieren, nicht nur für den Handel, auch für digitale Dienstleistungen.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Marcel Rosenbach interviewt Francesca Bria in »<a href="https://www.spiegel.de/netzwelt/eurostack-initiatorin-francesca-bria-so-wird-der-deutsche-staat-digital-unabhaengig-a-02e4678c-a460-4acd-90e4-9ca6a820e64b" title="EuroStack-Initiatorin Francesca Bria: So wird der deutsche Staat digital unabhängig - DER SPIEGEL" target="_blank" >EuroStack-Initiatorin Francesca Bria: So wird der deutsche Staat digital unabhängig</a>« für spiegel.de</p>
<blockquote>
<p>Wirkungsvoller wäre ohnehin etwas anderes: 300 Milliarden Euro an privatem Kapital verlassen Europa jährlich und fließen in die US-Kapitalmärkte. Und wir finanzieren unsere Abhängigkeit auch noch mit unseren Steuergeldern – durch öffentliche Aufträge an US‑Technologiekonzerne. Big Tech zu besteuern, ist richtig. Vor allem sollten wir diese Firmen aber nicht weiter mit öffentlichen Geldern für Dienstleistungen päppeln, die europäische Unternehmen genauso gut erbringen könnten. Die EU hat zudem ein wirkungsvolles Instrument, wenn ausländische Mächte Druck ausüben, um politische Veränderungen zu erzwingen – wie es die USA bei der EU-Digitalregulierung versuchen. Frankreich hat zu Recht gefordert, dieses »Anti-Zwang-Instrument« zu aktivieren, nicht nur für den Handel, auch für digitale Dienstleistungen.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Is the least important thing.</title>
      <link>https://maik.io/notes/2026-01-21-nadella-talks-ai-sovereignty-at-the-world-economic-forum-the-register/</link>
      <pubDate>Wed, 21 Jan 2026 21:04:26 +0200</pubDate>
      <guid>https://maik.io/notes/2026-01-21-nadella-talks-ai-sovereignty-at-the-world-economic-forum-the-register/</guid>
      <description>&lt;p&gt;Richard Speed schreibt in »&lt;a href=&#34;https://www.theregister.com/2026/01/21/nadella_ai_sovereignty_wef/&#34; title=&#34;Nadella talks AI sovereignty at the World Economic Forum • The Register&#34; target=&#34;_blank&#34; &gt;Nadella talks AI sovereignty at the World Economic Forum&lt;/a&gt;« für theregister.com&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;He added: &amp;ldquo;In fact, the datacenter, where it runs, is the least important thing.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bemerkenswert ist, wie Microsoft gemeinsam mit SAP Delos ein souveränes Office aus einem deutschen Rechenzentrum vermarktet, während der eigene CEO an anderer Stelle erklärt, dass dies nichts mit Souveränität zu tun hat.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Richard Speed schreibt in »<a href="https://www.theregister.com/2026/01/21/nadella_ai_sovereignty_wef/" title="Nadella talks AI sovereignty at the World Economic Forum • The Register" target="_blank" >Nadella talks AI sovereignty at the World Economic Forum</a>« für theregister.com</p>
<blockquote>
<p>He added: &ldquo;In fact, the datacenter, where it runs, is the least important thing.&rdquo;</p>
</blockquote>
<p>Bemerkenswert ist, wie Microsoft gemeinsam mit SAP Delos ein souveränes Office aus einem deutschen Rechenzentrum vermarktet, während der eigene CEO an anderer Stelle erklärt, dass dies nichts mit Souveränität zu tun hat.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Cloudbasierte Kommunikation im Krisenfall</title>
      <link>https://maik.io/notes/2026-01-21-cloudbasierte-kommunikation-im-krisenfall/</link>
      <pubDate>Wed, 21 Jan 2026 19:58:12 +0200</pubDate>
      <guid>https://maik.io/notes/2026-01-21-cloudbasierte-kommunikation-im-krisenfall/</guid>
      <description>&lt;p&gt;Stefan Krempl schreibt in »&lt;a href=&#34;https://www.heise.de/news/Microsoft-Alternative-Sozialversicherer-erproben-OpenDesk-fuer-den-Ernstfall-11149572.html?seite=all&#34; title=&#34;Microsoft-Alternative: Sozialversicherer erproben OpenDesk für den Ernstfall | heise online&#34; target=&#34;_blank&#34; &gt;Microsoft-Alternative: Sozialversicherer erproben OpenDesk für den Ernstfall&lt;/a&gt;« für heise.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unter dem Namen „Cloudbasierte Kommunikation im Krisenfall“ (CKKI) startete vor wenigen Tagen ein Pilotprojekt, das einen Perspektivwechsel markiert. Die Deutsche Rentenversicherung Bund, die Bundesagentur für Arbeit sowie die IT-Dienstleister Bitmarck und BG-Phoenics erproben dabei OpenDesk, die vom Zentrum für digitale Souveränität (Zendis) entwickelte Open-Source-Alternative zum Office-Paket Microsoft 365. Ziel ist die Etablierung eines voll funktionsfähigen Notfallarbeitsplatzes, der unabhängig von der primären IT-Infrastruktur existiert.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Stefan Krempl schreibt in »<a href="https://www.heise.de/news/Microsoft-Alternative-Sozialversicherer-erproben-OpenDesk-fuer-den-Ernstfall-11149572.html?seite=all" title="Microsoft-Alternative: Sozialversicherer erproben OpenDesk für den Ernstfall | heise online" target="_blank" >Microsoft-Alternative: Sozialversicherer erproben OpenDesk für den Ernstfall</a>« für heise.de</p>
<blockquote>
<p>Unter dem Namen „Cloudbasierte Kommunikation im Krisenfall“ (CKKI) startete vor wenigen Tagen ein Pilotprojekt, das einen Perspektivwechsel markiert. Die Deutsche Rentenversicherung Bund, die Bundesagentur für Arbeit sowie die IT-Dienstleister Bitmarck und BG-Phoenics erproben dabei OpenDesk, die vom Zentrum für digitale Souveränität (Zendis) entwickelte Open-Source-Alternative zum Office-Paket Microsoft 365. Ziel ist die Etablierung eines voll funktionsfähigen Notfallarbeitsplatzes, der unabhängig von der primären IT-Infrastruktur existiert.</p>
</blockquote>
<p>Ich halte openDesk für eine geeignete Kommunikationsplattform im Krisenfall. Die browserbasierte Architektur ist nicht immer ideal. Da Nextcloud jedoch als Dateispeicher dient, lassen sich Client und LibreOffice nachinstallieren. Damit wird die Plattform insgesamt gut nutzbar. Man könnte von einem openDesk+ sprechen.</p>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Augenwischerei</title>
      <link>https://maik.io/notes/2025-12-15-augenwischerei/</link>
      <pubDate>Mon, 15 Dec 2025 06:45:43 +0200</pubDate>
      <guid>https://maik.io/notes/2025-12-15-augenwischerei/</guid>
      <description>&lt;p&gt;Sheila Beladinejad schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/roaming-free-europas-paradoxon-der-ki-souveraenitaet&#34; title=&#34;KI-Souveränität: Roaming Free: Europas Paradoxon der KI-Souveränität - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;KI-Souveränität: Roaming Free: Europas Paradoxon der KI-Souveränität&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Deutschland steht die Partnerschaft „Open AI for Germany” von SAP für den öffentlichen Sektor exemplarisch für dieses Problem. Vermarktet als Souveränität – „gebaut in Deutschland, für Deutschland” – entpuppt sich der Deal als Augenwischerei. Abhängigkeit von Anbietern wird als Unabhängigkeit verkauft. Der öffentliche Sektor wird aus Steuergeldern finanziert. Wenn er KI-Dienste einkauft, bezahlt er damit unmittelbar den Aufbau der Infrastruktur. Deshalb müssen auch die Vertragsbedingungen offengelegt werden – etwa die Regelungen zu Ausstiegsrechten, Interoperabilität und den Umweltauswirkungen.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Sheila Beladinejad schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/roaming-free-europas-paradoxon-der-ki-souveraenitaet" title="KI-Souveränität: Roaming Free: Europas Paradoxon der KI-Souveränität - Tagesspiegel Background" target="_blank" >KI-Souveränität: Roaming Free: Europas Paradoxon der KI-Souveränität</a>« für tagesspiegel.de</p>
<blockquote>
<p>In Deutschland steht die Partnerschaft „Open AI for Germany” von SAP für den öffentlichen Sektor exemplarisch für dieses Problem. Vermarktet als Souveränität – „gebaut in Deutschland, für Deutschland” – entpuppt sich der Deal als Augenwischerei. Abhängigkeit von Anbietern wird als Unabhängigkeit verkauft. Der öffentliche Sektor wird aus Steuergeldern finanziert. Wenn er KI-Dienste einkauft, bezahlt er damit unmittelbar den Aufbau der Infrastruktur. Deshalb müssen auch die Vertragsbedingungen offengelegt werden – etwa die Regelungen zu Ausstiegsrechten, Interoperabilität und den Umweltauswirkungen.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>In Open-Source-Software investieren</title>
      <link>https://maik.io/notes/2025-12-10-in-open-source-software-investieren/</link>
      <pubDate>Wed, 10 Dec 2025 12:58:23 +0200</pubDate>
      <guid>https://maik.io/notes/2025-12-10-in-open-source-software-investieren/</guid>
      <description>&lt;p&gt;Bastian Hosan schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/berlin-hat-sich-eine-open-source-strategie-gegeben&#34; title=&#34;Public Money, Public Code: Berlin hat sich eine Open-Source-Strategie gegeben - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Public Money, Public Code: Berlin hat sich eine Open-Source-Strategie gegeben&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Im Jahr 2026 soll eine zentrale Funktion zur Koordination der Open-Source-Aktivitäten und zur Umsetzung der Strategie stehen. 2027 soll die aktuelle Software hinsichtlich ihres Risikos bewertet sein. 2028 sollen alle Mitarbeiter:innen der Berliner Verwaltung die für sie wichtigen Schulungen gemacht haben. 2029 sollen dann bereits die Hälfte der proprietären Softwareprodukte auf Open-Source-Alternativen untersucht worden sein. 2030 möchte Berlin an mindestens 30 Projekten auf Open Code des Zendis beteiligt sein. 2031 will Berlin 50 Prozent des für Software ausgegebenen Geldes in Open-Source-Software investieren.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Bastian Hosan schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/berlin-hat-sich-eine-open-source-strategie-gegeben" title="Public Money, Public Code: Berlin hat sich eine Open-Source-Strategie gegeben - Tagesspiegel Background" target="_blank" >Public Money, Public Code: Berlin hat sich eine Open-Source-Strategie gegeben</a>« für tagesspiegel.de</p>
<blockquote>
<p>Im Jahr 2026 soll eine zentrale Funktion zur Koordination der Open-Source-Aktivitäten und zur Umsetzung der Strategie stehen. 2027 soll die aktuelle Software hinsichtlich ihres Risikos bewertet sein. 2028 sollen alle Mitarbeiter:innen der Berliner Verwaltung die für sie wichtigen Schulungen gemacht haben. 2029 sollen dann bereits die Hälfte der proprietären Softwareprodukte auf Open-Source-Alternativen untersucht worden sein. 2030 möchte Berlin an mindestens 30 Projekten auf Open Code des Zendis beteiligt sein. 2031 will Berlin 50 Prozent des für Software ausgegebenen Geldes in Open-Source-Software investieren.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Grad an Souveränität</title>
      <link>https://maik.io/notes/2025-11-27-grad-an-souveraenitaet/</link>
      <pubDate>Thu, 27 Nov 2025 07:15:02 +0200</pubDate>
      <guid>https://maik.io/notes/2025-11-27-grad-an-souveraenitaet/</guid>
      <description>&lt;p&gt;Vieles an dem verlinkten Artikel sehe ich anders, dem zitierten Satz stimme ich jedoch vollständig zu.&lt;/p&gt;
&lt;p&gt;André Glenzer schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/digitale-souveraenitaet-ist-nicht-schwarz-weiss&#34; title=&#34;Realitätssinn statt Ideologie: Digitale Souveränität ist nicht Schwarz-Weiß - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Realitätssinn statt Ideologie: Digitale Souveränität ist nicht Schwarz-Weiß&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hundertprozentige Souveränität gibt es genauso wenig wie hundertprozentige Informationssicherheit. Viel wichtiger ist es, den jeweils angemessenen Grad an Souveränität für die individuellen Anwendungsszenarien zu definieren.&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <content:encoded>
      <![CDATA[<p>Vieles an dem verlinkten Artikel sehe ich anders, dem zitierten Satz stimme ich jedoch vollständig zu.</p>
<p>André Glenzer schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/digitale-souveraenitaet-ist-nicht-schwarz-weiss" title="Realitätssinn statt Ideologie: Digitale Souveränität ist nicht Schwarz-Weiß - Tagesspiegel Background" target="_blank" >Realitätssinn statt Ideologie: Digitale Souveränität ist nicht Schwarz-Weiß</a>« für tagesspiegel.de</p>
<blockquote>
<p>Hundertprozentige Souveränität gibt es genauso wenig wie hundertprozentige Informationssicherheit. Viel wichtiger ist es, den jeweils angemessenen Grad an Souveränität für die individuellen Anwendungsszenarien zu definieren.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>
    <item>
      <title>Nur noch das Machen</title>
      <link>https://maik.io/notes/2025-11-18-nur-noch-das-machen/</link>
      <pubDate>Tue, 18 Nov 2025 06:42:30 +0200</pubDate>
      <guid>https://maik.io/notes/2025-11-18-nur-noch-das-machen/</guid>
      <description>&lt;p&gt;Der genannte Artikel liegt hinter einer Paywall. Vielleicht gibt es irgendwo eine frei zugängliche Version.&lt;/p&gt;
&lt;p&gt;Cristina Caffarra schreibt in »&lt;a href=&#34;https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/jetzt-zaehlt-nur-noch-das-machen&#34; title=&#34;Digitale Souveränität: Jetzt zählt nur noch das Machen! - Tagesspiegel Background&#34; target=&#34;_blank&#34; &gt;Digitale Souveränität: Jetzt zählt nur noch das Machen!&lt;/a&gt;« für tagesspiegel.de&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Es wird immer offensichtlicher, welchem Irrglauben wir in den vergangenen Jahren aufgesessen sind: Wir haben geglaubt, wenn wir möglichst viel Energie in die Regulierung von Apps und Diensten der Digitalgiganten stecken, würde am Ende schon irgendwie eine erfolgreiche europäische Technologie-Branche herauskommen. Anstatt unsere Kraftanstrengung in den Aufbau eigener Infrastrukturen zu stecken, haben wir uns mit Regulierung des E-Commerce und der Suchmaschinen begnügt. Währenddessen haben die von uns regulierten Tech-Konzerne im Hintergrund ihre grenzüberschreitenden Technologien tief in unseren Infrastrukturräumen verankert.&lt;/p&gt;</description>
      <content:encoded>
      <![CDATA[<p>Der genannte Artikel liegt hinter einer Paywall. Vielleicht gibt es irgendwo eine frei zugängliche Version.</p>
<p>Cristina Caffarra schreibt in »<a href="https://background.tagesspiegel.de/digitalisierung-und-ki/briefing/jetzt-zaehlt-nur-noch-das-machen" title="Digitale Souveränität: Jetzt zählt nur noch das Machen! - Tagesspiegel Background" target="_blank" >Digitale Souveränität: Jetzt zählt nur noch das Machen!</a>« für tagesspiegel.de</p>
<blockquote>
<p>Es wird immer offensichtlicher, welchem Irrglauben wir in den vergangenen Jahren aufgesessen sind: Wir haben geglaubt, wenn wir möglichst viel Energie in die Regulierung von Apps und Diensten der Digitalgiganten stecken, würde am Ende schon irgendwie eine erfolgreiche europäische Technologie-Branche herauskommen. Anstatt unsere Kraftanstrengung in den Aufbau eigener Infrastrukturen zu stecken, haben wir uns mit Regulierung des E-Commerce und der Suchmaschinen begnügt. Währenddessen haben die von uns regulierten Tech-Konzerne im Hintergrund ihre grenzüberschreitenden Technologien tief in unseren Infrastrukturräumen verankert.</p>
</blockquote>
<p>Die Analyse fällt überzeugend aus und die Aufforderung ist klar formuliert.</p>
<blockquote>
<p>Ab jetzt zählt deshalb nur noch das Machen: Keine weiteren Positionspapiere, Diskurse und Podiumsdiskussionen mehr über unsere Grundfreiheiten und demokratische Steuerung bitte. All diese Dinge verändern nichts. Wir müssen jetzt Angebot und Nachfrage zusammenbringen.</p>
</blockquote>
]]>    
      <![CDATA[<br><br><hr><br><small><p>Vielen Dank fürs Lesen! Wenn du Lust auf noch mehr Gedanken, Updates und ab und zu einen Blick hinter die Kulissen hast, folge mir doch gern auf <a href="https://maik.io/mastodon">Mastodon</a> oder <a href="https://maik.io/instagram">Instagram</a>.</p><p>Hast du Fragen oder Feedback? Schreib mir gern eine <a href="https://maik.io/email">E-Mail</a>.</p></small>]]>
      </content:encoded>  
    </item>      
  </channel>
</rss>