Merge branch 'ds2019'

This commit is contained in:
Astro 2019-04-04 16:21:33 +02:00
commit 05633ad208
1930 changed files with 199348 additions and 625 deletions

View File

@ -36,7 +36,7 @@ DESTDIR?=www-export
# XSLT-Stylesheets:
STYLE=xsl/xhtml5.xsl
DS_STYLE=xsl/datenspuren/xhtml5.xsl
DS_YEAR=2018
DS_YEAR=2019
AUTOTOPIA_STYLE=xsl/autotopia/xhtml5.xsl
# Document-Type-Definition:
DTD:=dtd/c3d2web.dtd

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="Über die Datenspuren" title="Über die Datenspuren">
<p title="Über die Datenspuren">
Menschen hinterlassen Spuren - absichtlich und unwillkürlich. In Computersystemen hinterlassen sie ihre Daten als "Datenspuren". Diese Daten beziehen sich auf uns, folgen uns und holen uns ein. Sie sind oftmals belanglos, manchmal aber auch wichtig. Sie sind sowohl hilfreich als auch lästig. Sie erinnern sich an uns, auch wenn wir sie vergessen. Und.vielleicht bleiben sie länger erhalten, als mancher sich das vorstellen mag.
</p>
<p>
Seit 2004 gibt es die Veranstaltung <strong>"Datenspuren"</strong> in
Dresden. Ein Chaot erinnert sich:
</p>
<blockquote>
<p>
"Die Idee zu den Datenspuren kam, wenn ich mich recht erinnere, von Fukami. Er vertrat die Meinung, wir müssten unser öffentliches Engagement, das bis dahin nur aus Themenabenden mit Einzelvorträgen bestand, auf ein Event fokussieren. Wir waren nur wenige Aktive und wie einige andere bezweifelte ich die Machbarkeit. FSM-sei-dank war ich jung und unerfahren und ließ mich überzeugen; einige andere Chaoten auch. Wir organisierten also die ersten Datenspuren, damals noch im Pentacon - und es war ein voller Erfolg. Der Schritt, die Location zu wechseln (hin zur Scheune in der Neustadt) und dann ein Jahr später ein zweitägiges Event daraus zu machen, waren weniger schwer als der erste: Überhaupt irgendwas zu machen."
</p>
</blockquote>
<p title="Ziel">
Nicht alles ist gut. Darum reden wir darüber. Wir diskutieren und analysieren neue Trends in der IT - und wir wollen mit unseren kritischen Beiträgen sowohl den Gedankenaustausch zwischen Politik, Gesellschaft und Hackerschaft fördern, als auch zum Mitmachen und Mitgestalten anregen. Wir sind inhaltlich unabhängig von Sponsoren und rein ehrenamtlich organisiert.
</p>
<h3 xmlns="http://www.w3.org/1999/xhtml">Geschichte</h3>
<h4 xmlns="http://www.w3.org/1999/xhtml">2004</h4>
<p>
Im Mai 2004 veranstaltete der Chaos Computer Club Dresden die ersten
DatenSpuren [sic!] unter dem Motto "Privatsphäre war gestern", mit
einer Keynote von Prof. Andreas Pfitzmann (ehemaliger Professor für
Datenschutz &amp; -sicherheit an der TUD). Damals noch eine <link href="https://datenspuren.de/2004">eintägige Veranstaltung</link> in den Räumen des Pentacon, starteten die DatenSpuren mit gut 20 Vorträgen zu E-Mail Verschlüsselung (mit Keysigning Party), Vorratsdatenspeicherung, dem Mautsystem und Datenschutz in Sachsen und Europa.
</p>
<h4 xmlns="http://www.w3.org/1999/xhtml">2005</h4>
<p>
2005 zogen die Datenspuren vom Pentacon in die Scheune in der
Neustadt, in deren Räumlichkeiten die Veranstaltung über die nächsten
9 Jahre immer weiter wuchs. Damals hofften wir noch, dass man mit
Identitätsmanagement Datenschutzprobleme in den Griff bekommen
könnte. Heute diskutieren Politiker über <link
href="http://www.netzwelt.de/news/88318-google-cdu-politiker-befuerworten-klarnamenzwang.html">Klarnamenzwang
und Identifizierung mit dem Personalausweis beim Surfen</link>. Auch
viele andere der früheren Vorträge und Themen sind heute noch ebenso
aktuell wie ehedem: Videoüberwachung wird immer noch diskutiert - wie
auch Biometrie in Ausweisdokumenten oder das Auswerten von
Mobilfunkdaten. Die Erfassung und Lokalisierung von Teilnehmern in
Mobilfunknetzen war damals nur ein Vortrag. Ein paar Jahre später
wurde es in Dresden Realität: <em>"Handygate"</em> beschäftigt in Dresden nicht
nur die Hackergemeinde, seit 2010 und 2011, als im Rahmen von
Protesten gegen den jährlich stattfindenden Neonazi-Aufmarsch zum
13. Februar massenhaft Handydaten von Bürgerinnen und Bürgern ganzer
Stadtteile gesammelt und ausgewertet wurden - illegal, <link href="https://netzpolitik.org/2013/landgericht-dresden-groste-funkzellenabfrage-von-handygate-2011-war-illegal/">wie später ein Gericht befand</link>.
</p>
<h4 xmlns="http://www.w3.org/1999/xhtml">2006 - 2014</h4>
<p>
Im Jahr 2006 reichte uns ein Tag nicht mehr aus - die Voträge und Workshops wurden immer vielfältiger und wir erweiterten die Veranstaltung um einern weiteren Tag. Neue Themen und Diskussionen wie über den Wert von Aufenthaltsinformationen von Nutzern, Biometrie, Videoüberwachung, TOR, I2P, Verschlüsselung, IT-Security, Zensur, Open-Data, Informations-Freiheits und andere -Gesetze, sowie weiteres bereicherten die nunmehr DatenSpuren. Um die zukünftigen Generationen an unsere Themen heranzuführen, wurde das Programm der Datenspuren ab 2011 um einen Junghackertrack erweitert, der seitdem auch ein fester Bestandteil des Chaos Communication Congress ist. Bausätze für kleine und große Hacker und Haecksen wurden entwickelt, so z. B. der Pentabug.
</p>
<h4 xmlns="http://www.w3.org/1999/xhtml">2015</h4>
<p>
Nach 10 Jahren ziehen die Datenspuren wieder zurück nach Striesen - um
etwas neues auszuprobieren. In den <link href="http://www.tsd.de/">Technischen Sammlungen Dresden</link> haben wir thematisch eine passende Umgebung und viel mehr Raum für neue Ideen. Zu den Technischen Sammlungen passt auch unser diesjähriges Motto: <em>"Hackers in the house"</em>. Auch wenn es vielmehr um die Bedeutung der (digitalen) Privatsphäre gehen soll, die wir einerseits durch neue Smart &lt;Irgendwas&gt; Geräte und andererseits durch staatliche Stellen (siehe Snowden) gefährdet sehen. Hier sind neue Grenzen zu ziehen - worüber wir diskutieren wollen. Ein wichtiges Themengebiet soll daher auch die Kryptographie werden - und die politische Meinung dazu (<em>"Crypto is not a crime"</em>).
</p>
</page>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page title="Call for Papers">
<div title="Datenspuren"></div>
<p title="Call for Papers">Menschen hinterlassen Spuren - absichtlich und unwillkürlich.
Und in Computersystemen hinterlassen sie ihre Daten als "Datenspuren".
Diese Daten beziehen sich auf uns Menschen, folgen uns, und holen uns früher oder später ein.
Sie scheinen oftmals zunächst belanglos, sind plötzlich aber überragend wichtig.
Sie können sowohl hilfreich als auch lästig werden.
Sie erinnern sich an uns, auch wenn wir sie schon vergessen haben.
Und immer häufiger bleiben sie länger erhalten, als mancher sich das vorstellen möchte.</p>
<p>Der Chaos Computer Clubs Dresden sucht für die 15. Datenspuren am 22. und 23. September 2018 im <link href="https://c3d2.de/space.html">Zentralwerk, Riesaer Str. 32, Dresden</link> Vorträge, Workshops, Installationen, Informationsstände und Darstellungen von Machern, Kreativen und Engagierten rund um das Thema #machtnix:</p>
<ul>
<li>Ich hab doch nichts zu verbergen!</li>
<li>Das ist doch nur zu unserer Sicherheit!</li>
<li>Ist doch alles in Ordnung!</li>
</ul>
<p>An diesem Wochenende warten</p>
<ul>
<li>ca. 800 Besucher</li>
<li>freier Eintritt</li>
<li>Ideenaustausch bis spät in den Abend</li>
<li><link href="https://frab.cccv.de/en/DS2018/cfp">deine Einreichungen</link>, Annahmeschluss ist Sonntag, der 29. Juli 2018 [2018-07-29]</li>
</ul>
<dl>
<dt>Auf den</dt>
<dd>15. Datenspuren des <link href="https://c3d2.de/">Chaos Computer Clubs Dresden</link></dd>
<dt>Mehr Informationen unter</dt>
<dd><link href="https://datenspuren.de/2018/">datenspuren.de</link></dd>
</dl>
</page>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="Datenspuren 2018" title="Datenspuren" xmlns:x="http://www.w3.org/1999/xhtml">
<p title="Für Kurzentschlossene: Lightning Talks">Wir freuen uns auf Deinen <link href="https://datenspuren.de/2018/fahrplan/events/9331.html">Lightning Talk</link>! Ein ganzer Saal voll Aufmerksamkeit für 5 Minuten ganz allein für Deine Ideen und Projekte.
<link href="https://hackmd.c3d2.de/DS2018LT">Jetzt einreichen!</link>
</p>
<p title="Datenspuren mit Kindern">
<link
href="https://wiki.c3d2.de/Datenspuren_2018/Kinder">Programmzusammenstellung</link>
in unserem Wiki.
</p>
<div title="Apps">
<ul>
<li>Für <link href="https://f-droid.org/repository/browse/?fdid=net.gaast.giggity">Giggity</link>: <link href="fahrplan/schedule.xml">XML</link></li>
<li>
Android-App: bei
<link href="https://play.google.com/store/apps/details?id=info.metadude.android.datenspuren.schedule">Google</link>,
als <link href="https://fdroid.evilham.com/">privates F-Droid Repository</link>
oder als <link href="Datenspuren-2018-Android-1.36.2.apk">.apk</link>
</li>
<!--li><link href="https://pentapad.c3d2.de/p/lt-ds2018">Etherpad</link> zur Anmeldung von <link href="fahrplan/events/x.html">Lightning Talks</link></li-->
</ul>
</div>
<include-frab-schedule src="../../build/datenspuren/2018/schedule-1.xml"
title="Sonnabend, 22. September"/>
<include-frab-schedule src="../../build/datenspuren/2018/schedule-2.xml"
title="Sonntag, 23. September"/>
</page>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="Helfen" title="Helfen">
<p title="Helfen vor Ort">
Willst du einfach helfen? Melde dich bei <link
href="mailto:datenspuren@c3d2.de">datenspuren@c3d2.de</link>!
Mehr zum Mitmachen findest du <link
href="https://wiki.c3d2.de/Datenspuren_2015/Mitmachen#Wie_mitmachen.3F">im
Wiki.</link>
</p>
<p title="Finanzielle Unterstützung">
Die Datenspuren werden vom Chaos Computer Club Dresden
veranstaltet. Momentan haben wir <link
href="http://www.c3d2.de/unterstuetzen.html">finanzielle
Unterstützung</link> dringend <link
href="http://www.c3d2.de/news/20150825-spendenaufruf.html">nötig!</link>
</p>
</page>

View File

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="Index" title="Datenspuren">
<div title="Datenspuren" itemscope="itemscope" itemtype="http://schema.org/EducationEvent" class="event-page h-event vevent">
<!--<a itemprop="url" href="http://datenspuren.de/2018/"><span itemprop="name" class="motto name n"><strong>MachtNix</strong></span></a>-->
<div itemprop="description">15. Symposium Datenspuren 2018</div>
<span>
<div>
Datum:
<span itemprop="startDate" content="2018-09-22T12:00" class="dt-start dtstart">22.09.</span> -
<span itemprop="endDate" content="2018-09-23T17:45" class="dt-end dtend">23.09.2018</span>
</div>
<div itemscope="itemscope" itemtype="http://schema.org/Performer" class="">
<div itemscope="itemscope" itemtype="http://schema.org/Organization">
Veranstalter: <link itemprop="url" href="http://c3d2.de/">
<span itemprop="name" class="org fn">Chaos Computer Club Dresden</span></link>
</div>
</div>
<div>
Ort:
<span itemprop="location" itemscope="itemscope" itemtype="http://schema.org/PostalAddress" class="adr address">
<span class="extended-address">Zentralwerk</span>,
<span itemprop="streetAddress" class="street-address">Riesaer Straße 32</span>,
<span itemprop="postalCode" class="postal-code">01127</span>
<span itemprop="addressLocality" class="locality">Dresden</span>
</span>
</div>
<div class="free-admission">
Eintritt: frei!
</div>
</span>
</div>
<dl>
<dt>Video-Mitschnitte</dt>
<dd><link href="https://streaming.media.ccc.de/datenspuren18">streaming.media.ccc.de/datenspuren18</link></dd>
<dt>Informationen</dt>
<dd>Wiki: <link>https://wiki.c3d2.de/Datenspuren_2018</link></dd>
<!--dd>Einreichungen: <link>https://frab.cccv.de/de/DS2018/cfp/</link> bis 29.07.2018</dd-->
<dd>Lightning Talks: <link href="https://hackmd.c3d2.de/DS2018LT">Einreichungen</link>, mehr <link href="https://datenspuren.de/2018/fahrplan/events/9331.html">Details im Programm</link></dd>
<!-- <dd>Orga-Wiki: <link>https://wiki.c3d2.de/Datenspuren_2017/Organisation</link></dd>-->
<dt>Chat</dt>
<dd>IRC-Channel <link
href="irc://irc.freenode.net/datenspuren">#datenspuren</link>
im <link href="http://freenode.net/">Freenode</link> (<link href="https://webchat.freenode.net/?channels=datenspuren">Webchat</link>)</dd>
<!--dd><link href="https://freenode.net/news/tor-online">Über
Tor:</link> <code>freenodeok2gncmy.onion</code></dd-->
<!--dt>Twitter</dt>
<dd><link href="https://twitter.com/datenspuren">@datenspuren</link> und Hashtag <link href="https://twitter.com/search?q=%23datenspuren">#datenspuren</link></dd-->
<dt>E-Mail</dt>
<dd>Adresse: <link href="mailto:datenspuren@c3d2.de">datenspuren@c3d2.de</link></dd>
<dd><link href="https://lists.c3d2.de/cgi-bin/mailman/listinfo/datenspuren">Mailing-Liste datenspuren@lists.c3d2.de</link></dd>
</dl>
<!--news-list prefix="ds15-" details="all"/-->
<p class="sponsors">
<image title="Logo der Kulturstiftung des Freistaates
Sachsen">images/KdFS-Logo-weiss.png</image> Gefördert durch die
<link href="http://www.kdfs.de/">Kulturstiftung des Freistaates
Sachsen</link>. Diese Maßnahme wird mitfinanziert durch
Steuermittel auf der Grundlage des von den Abgeordneten des
Sächsischen Landtags beschlossenen Haushaltes.
</p>
</page>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="Ort" title="Ort">
<div title="Veranstaltungsort" itemscope="itemscope" itemtype="http://schema.org/Place" class="vcard">
Veranstaltungsort ist das <link
href="http://www.zentralwerk.de/"><span itemprop="name" class="fn">Zentralwerk Dresden</span></link>.
<div itemprop="address" itemscope="itemscope"
itemtype="http://schema.org/PostalAddress" class="adr
address">
<link href="https://www.openstreetmap.org/way/35913581">
<span itemprop="streetAddress" class="street-address">Riesaer Straße 32</span>,
<span itemprop="postalCode" class="postal-code">01127</span>
<span itemprop="addressLocality" class="locality">Dresden</span>
</link>
</div>
<span class="geo">
<span class="latitude">
<span class="value-title" title="51.08092"></span>
</span>
<span class="longitude">
<span class="value-title" title="13.72773"></span>
</span>
</span>
<div title="Anfahrt">
<dl>
<dt>Öffentliche Verkehrsmittel:</dt>
<dd>Straßenbahn: Linie 3 ab Haltestelle <link
href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000248">Zeithainer
Straße</link>, 3min zu Fuß; Linie 13 ab <link
href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000243">Liststraße</link>,
8min zu Fuß</dd>
<dd>S-Bahn S1 u. Bus Linie 64 am <link href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000593">Haltepunkt Pieschen</link>, 3min zu Fuß</dd>
<dd>Überlandbus 326 und teilAuto Station am Trachenberger Platz, 8min zu Fuß</dd>
<dt>Auto:</dt>
<dd>Das Zentralwerk befinden sich im Dresdener Stadtteil Pieschen ggü. von der Alten Mälzerei. Von der Bundesautobahn A4 sind die Abfahrten Wilder Mann und Neustadt geeignet.</dd>
<dd>Parkplätze gibt es spärlich auf den umliegenden Straßen.</dd>
</dl>
</div>
</div>
<div title="Gebäudeplan">
<p>
Wer einen barrierefreien Zugang zum großen Saal und zum Workshopraum braucht,
möge sich bitte beim Informationsstand in der Einfahrt des Hofes melden.
</p>
<p>
Ein barrierefreier Zugang zum Kabinett ist leider nicht möglich.
</p>
<image title="Gebäudeplan">images/ds-zw.svg</image>
</div>
<!-- TODO:
* Räume
* Raumplan?
* Anfahrt
* DVB
* Unterkünfte
-->
<!--p class="center">
<link href="">
<image class="bordered" title="Das Zentralwerk auf OpenStreetMap">images/osm-zentralwerk.png</image>
Auf OpenStreetMap öffnen.
</link>
</p-->
</page>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page title="Mitschnitte">
<include-feeds year="2018">
<feed>../../datenspuren-2018-mp4.xml</feed>
<feed>../../datenspuren-2018-webm.xml</feed>
<feed>../../datenspuren-2018-opus.xml</feed>
<feed>../../datenspuren-2018-mp3.xml</feed>
</include-feeds>
</page>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<page pagetitle="News" title="News">
<news-list prefix="ds17-" details="all"/>
</page>

View File

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — Über die Datenspuren</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 id="über-die-datenspuren">Über die Datenspuren</h3><p>
Menschen hinterlassen Spuren - absichtlich und unwillkürlich. In Computersystemen hinterlassen sie ihre Daten als "Datenspuren". Diese Daten beziehen sich auf uns, folgen uns und holen uns ein. Sie sind oftmals belanglos, manchmal aber auch wichtig. Sie sind sowohl hilfreich als auch lästig. Sie erinnern sich an uns, auch wenn wir sie vergessen. Und.vielleicht bleiben sie länger erhalten, als mancher sich das vorstellen mag.
</p>
<p>
Seit 2004 gibt es die Veranstaltung <strong>"Datenspuren"</strong> in
Dresden. Ein Chaot erinnert sich:
</p>
<blockquote>
<p>
"Die Idee zu den Datenspuren kam, wenn ich mich recht erinnere, von Fukami. Er vertrat die Meinung, wir müssten unser öffentliches Engagement, das bis dahin nur aus Themenabenden mit Einzelvorträgen bestand, auf ein Event fokussieren. Wir waren nur wenige Aktive und wie einige andere bezweifelte ich die Machbarkeit. FSM-sei-dank war ich jung und unerfahren und ließ mich überzeugen; einige andere Chaoten auch. Wir organisierten also die ersten Datenspuren, damals noch im Pentacon - und es war ein voller Erfolg. Der Schritt, die Location zu wechseln (hin zur Scheune in der Neustadt) und dann ein Jahr später ein zweitägiges Event daraus zu machen, waren weniger schwer als der erste: Überhaupt irgendwas zu machen."
</p>
</blockquote>
<h3 id="ziel">Ziel</h3><p>
Nicht alles ist gut. Darum reden wir darüber. Wir diskutieren und analysieren neue Trends in der IT - und wir wollen mit unseren kritischen Beiträgen sowohl den Gedankenaustausch zwischen Politik, Gesellschaft und Hackerschaft fördern, als auch zum Mitmachen und Mitgestalten anregen. Wir sind inhaltlich unabhängig von Sponsoren und rein ehrenamtlich organisiert.
</p>
<h3>Geschichte</h3>
<h4>2004</h4>
<p>
Im Mai 2004 veranstaltete der Chaos Computer Club Dresden die ersten
DatenSpuren [sic!] unter dem Motto "Privatsphäre war gestern", mit
einer Keynote von Prof. Andreas Pfitzmann (ehemaliger Professor für
Datenschutz &amp; -sicherheit an der TUD). Damals noch eine <a href="https://datenspuren.de/2004">eintägige Veranstaltung</a> in den Räumen des Pentacon, starteten die DatenSpuren mit gut 20 Vorträgen zu E-Mail Verschlüsselung (mit Keysigning Party), Vorratsdatenspeicherung, dem Mautsystem und Datenschutz in Sachsen und Europa.
</p>
<h4>2005</h4>
<p>
2005 zogen die Datenspuren vom Pentacon in die Scheune in der
Neustadt, in deren Räumlichkeiten die Veranstaltung über die nächsten
9 Jahre immer weiter wuchs. Damals hofften wir noch, dass man mit
Identitätsmanagement Datenschutzprobleme in den Griff bekommen
könnte. Heute diskutieren Politiker über <a href="http://www.netzwelt.de/news/88318-google-cdu-politiker-befuerworten-klarnamenzwang.html">Klarnamenzwang
und Identifizierung mit dem Personalausweis beim Surfen</a>. Auch
viele andere der früheren Vorträge und Themen sind heute noch ebenso
aktuell wie ehedem: Videoüberwachung wird immer noch diskutiert - wie
auch Biometrie in Ausweisdokumenten oder das Auswerten von
Mobilfunkdaten. Die Erfassung und Lokalisierung von Teilnehmern in
Mobilfunknetzen war damals nur ein Vortrag. Ein paar Jahre später
wurde es in Dresden Realität: <em>"Handygate"</em> beschäftigt in Dresden nicht
nur die Hackergemeinde, seit 2010 und 2011, als im Rahmen von
Protesten gegen den jährlich stattfindenden Neonazi-Aufmarsch zum
13. Februar massenhaft Handydaten von Bürgerinnen und Bürgern ganzer
Stadtteile gesammelt und ausgewertet wurden - illegal, <a href="https://netzpolitik.org/2013/landgericht-dresden-groste-funkzellenabfrage-von-handygate-2011-war-illegal/">wie später ein Gericht befand</a>.
</p>
<h4>2006 - 2014</h4>
<p>
Im Jahr 2006 reichte uns ein Tag nicht mehr aus - die Voträge und Workshops wurden immer vielfältiger und wir erweiterten die Veranstaltung um einern weiteren Tag. Neue Themen und Diskussionen wie über den Wert von Aufenthaltsinformationen von Nutzern, Biometrie, Videoüberwachung, TOR, I2P, Verschlüsselung, IT-Security, Zensur, Open-Data, Informations-Freiheits und andere -Gesetze, sowie weiteres bereicherten die nunmehr DatenSpuren. Um die zukünftigen Generationen an unsere Themen heranzuführen, wurde das Programm der Datenspuren ab 2011 um einen Junghackertrack erweitert, der seitdem auch ein fester Bestandteil des Chaos Communication Congress ist. Bausätze für kleine und große Hacker und Haecksen wurden entwickelt, so z. B. der Pentabug.
</p>
<h4>2015</h4>
<p>
Nach 10 Jahren ziehen die Datenspuren wieder zurück nach Striesen - um
etwas neues auszuprobieren. In den <a href="http://www.tsd.de/">Technischen Sammlungen Dresden</a> haben wir thematisch eine passende Umgebung und viel mehr Raum für neue Ideen. Zu den Technischen Sammlungen passt auch unser diesjähriges Motto: <em>"Hackers in the house"</em>. Auch wenn es vielmehr um die Bedeutung der (digitalen) Privatsphäre gehen soll, die wir einerseits durch neue Smart &lt;Irgendwas&gt; Geräte und andererseits durch staatliche Stellen (siehe Snowden) gefährdet sehen. Hier sind neue Grenzen zu ziehen - worüber wir diskutieren wollen. Ein wichtiges Themengebiet soll daher auch die Kryptographie werden - und die politische Meinung dazu (<em>"Crypto is not a crime"</em>).
</p>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
</body>
</html>

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — Call for Papers</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 id="datenspuren">Datenspuren</h3><div/>
<h3 id="call-for-papers">Call for Papers</h3><p>Menschen hinterlassen Spuren - absichtlich und unwillkürlich.
Und in Computersystemen hinterlassen sie ihre Daten als "Datenspuren".
Diese Daten beziehen sich auf uns Menschen, folgen uns, und holen uns früher oder später ein.
Sie scheinen oftmals zunächst belanglos, sind plötzlich aber überragend wichtig.
Sie können sowohl hilfreich als auch lästig werden.
Sie erinnern sich an uns, auch wenn wir sie schon vergessen haben.
Und immer häufiger bleiben sie länger erhalten, als mancher sich das vorstellen möchte.</p>
<p>Der Chaos Computer Clubs Dresden sucht für die 15. Datenspuren am 22. und 23. September 2018 im <a href="https://c3d2.de/space.html">Zentralwerk, Riesaer Str. 32, Dresden</a> Vorträge, Workshops, Installationen, Informationsstände und Darstellungen von Machern, Kreativen und Engagierten rund um das Thema #machtnix:</p>
<ul><li>Ich hab doch nichts zu verbergen!</li><li>Das ist doch nur zu unserer Sicherheit!</li><li>Ist doch alles in Ordnung!</li></ul>
<p>An diesem Wochenende warten</p>
<ul><li>ca. 800 Besucher</li><li>freier Eintritt</li><li>Ideenaustausch bis spät in den Abend</li><li><a href="https://frab.cccv.de/en/DS2018/cfp">deine Einreichungen</a>, Annahmeschluss ist Sonntag, der 29. Juli 2018 [2018-07-29]</li></ul>
<dl class="">
<dt>Auf den</dt>
<dd>15. Datenspuren des <a href="https://c3d2.de/">Chaos Computer Clubs Dresden</a></dd>
<dt>Mehr Informationen unter</dt>
<dd><a href="https://datenspuren.de/2018/">datenspuren.de</a></dd>
</dl>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — Helfen</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 id="helfen-vor-ort">Helfen vor Ort</h3><p>
Willst du einfach helfen? Melde dich bei <a href="mailto:datenspuren@c3d2.de">datenspuren@c3d2.de</a>!
Mehr zum Mitmachen findest du <a href="https://wiki.c3d2.de/Datenspuren_2015/Mitmachen#Wie_mitmachen.3F">im
Wiki.</a></p>
<h3 id="finanzielle-unterstützung">Finanzielle Unterstützung</h3><p>
Die Datenspuren werden vom Chaos Computer Club Dresden
veranstaltet. Momentan haben wir <a href="http://www.c3d2.de/unterstuetzen.html">finanzielle
Unterstützung</a> dringend <a href="http://www.c3d2.de/news/20150825-spendenaufruf.html">nötig!</a></p>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
</body>
</html>

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — Index</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 id="datenspuren">Datenspuren</h3><div itemscope="itemscope" itemtype="http://schema.org/EducationEvent" class="event-page h-event vevent">
<div itemprop="description">15. Symposium Datenspuren 2018</div>
<span>
<div>
Datum:
<span itemprop="startDate" class="dt-start dtstart">22.09.</span> -
<span itemprop="endDate" class="dt-end dtend">23.09.2018</span>
</div>
<div itemscope="itemscope" itemtype="http://schema.org/Performer" class="">
<div itemscope="itemscope" itemtype="http://schema.org/Organization">
Veranstalter: <a href="http://c3d2.de/">
<span itemprop="name" class="org fn">Chaos Computer Club Dresden</span></a>
</div>
</div>
<div>
Ort:
<span itemprop="location" itemscope="itemscope" itemtype="http://schema.org/PostalAddress" class="adr address">
<span class="extended-address">Zentralwerk</span>,
<span itemprop="streetAddress" class="street-address">Riesaer Straße 32</span>,
<span itemprop="postalCode" class="postal-code">01127</span>
<span itemprop="addressLocality" class="locality">Dresden</span>
</span>
</div>
<div class="free-admission">
Eintritt: frei!
</div>
</span>
</div>
<dl class="">
<dt>Video-Mitschnitte</dt>
<dd><a href="https://streaming.media.ccc.de/datenspuren18">streaming.media.ccc.de/datenspuren18</a></dd>
<dt>Informationen</dt>
<dd>Wiki: <a href="https://wiki.c3d2.de/Datenspuren_2018">https://wiki.c3d2.de/Datenspuren_2018</a></dd>
<dd>Lightning Talks: <a href="https://hackmd.c3d2.de/DS2018LT">Einreichungen</a>, mehr <a href="https://datenspuren.de/2018/fahrplan/events/9331.html">Details im Programm</a></dd>
<dt>Chat</dt>
<dd>IRC-Channel <a href="irc://irc.freenode.net/datenspuren">#datenspuren</a>
im <a href="http://freenode.net/">Freenode</a> (<a href="https://webchat.freenode.net/?channels=datenspuren">Webchat</a>)</dd>
<dt>E-Mail</dt>
<dd>Adresse: <a href="mailto:datenspuren@c3d2.de">datenspuren@c3d2.de</a></dd>
<dd><a href="https://lists.c3d2.de/cgi-bin/mailman/listinfo/datenspuren">Mailing-Liste datenspuren@lists.c3d2.de</a></dd>
</dl>
<p class="sponsors"><img src="images/KdFS-Logo-weiss.png" title="Logo der Kulturstiftung des Freistaates Sachsen" alt="Logo der Kulturstiftung des Freistaates Sachsen" class=""/> Gefördert durch die
<a href="http://www.kdfs.de/">Kulturstiftung des Freistaates
Sachsen</a>. Diese Maßnahme wird mitfinanziert durch
Steuermittel auf der Grundlage des von den Abgeordneten des
Sächsischen Landtags beschlossenen Haushaltes.
</p>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
</body>
</html>

View File

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — Ort</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 id="veranstaltungsort">Veranstaltungsort</h3><div itemscope="itemscope" itemtype="http://schema.org/Place" class="vcard">
Veranstaltungsort ist das <a href="http://www.zentralwerk.de/"><span itemprop="name" class="fn">Zentralwerk Dresden</span></a>.
<div itemprop="address" itemscope="itemscope" itemtype="http://schema.org/PostalAddress" class="adr address">
<a href="https://www.openstreetmap.org/way/35913581">
<span itemprop="streetAddress" class="street-address">Riesaer Straße 32</span>,
<span itemprop="postalCode" class="postal-code">01127</span>
<span itemprop="addressLocality" class="locality">Dresden</span>
</a>
</div>
<span class="geo">
<span class="latitude">
<span class="value-title" title="51.08092"/>
</span>
<span class="longitude">
<span class="value-title" title="13.72773"/>
</span>
</span>
<h3 id="anfahrt">Anfahrt</h3><div>
<dl class="">
<dt>Öffentliche Verkehrsmittel:</dt>
<dd>Straßenbahn: Linie 3 ab Haltestelle <a href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000248">Zeithainer
Straße</a>, 3min zu Fuß; Linie 13 ab <a href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000243">Liststraße</a>,
8min zu Fuß</dd>
<dd>S-Bahn S1 u. Bus Linie 64 am <a href="https://www.dvb.de/en-gb/timetable/information-on-your-stop/?stopid=33000593">Haltepunkt Pieschen</a>, 3min zu Fuß</dd>
<dd>Überlandbus 326 und teilAuto Station am Trachenberger Platz, 8min zu Fuß</dd>
<dt>Auto:</dt>
<dd>Das Zentralwerk befinden sich im Dresdener Stadtteil Pieschen ggü. von der Alten Mälzerei. Von der Bundesautobahn A4 sind die Abfahrten Wilder Mann und Neustadt geeignet.</dd>
<dd>Parkplätze gibt es spärlich auf den umliegenden Straßen.</dd>
</dl>
</div>
</div>
<h3 id="gebäudeplan">Gebäudeplan</h3><div>
<p>
Wer einen barrierefreien Zugang zum großen Saal und zum Workshopraum braucht,
möge sich bitte beim Informationsstand in der Einfahrt des Hofes melden.
</p>
<p>
Ein barrierefreier Zugang zum Kabinett ist leider nicht möglich.
</p>
<img src="images/ds-zw.svg" title="Gebäudeplan" alt="Gebäudeplan" class=""/>
</div>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
<script type="application/javascript" src="script/wgs84util.js"> </script>
<script type="application/javascript" src="script/pois.js"> </script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:media="http://purl.org/syndication/atommedia" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:mastodon="http://mastodon.social/schema/1.0" xml:lang="de">
<updated>2019-02-07T20:36:00Z</updated>
<title>www.c3d2.de Newsfeed</title>
<link rel="self" href="http://www.c3d2.de/news-atom.xml"/>
<link rel="alternate" type="application/xhtml+xml" href="http://www.c3d2.de/"/>
<id>http://www.c3d2.de/</id>
<subtitle>Neues aus dem Chaos Computer Club Dresden</subtitle>
<logo>http://www.c3d2.de/images/ck.png</logo>
<author>
<id>https://www.c3d2.de/news.html</id>
<uri>https://www.c3d2.de/news.html</uri>
<name>C3D2 News</name>
<email>mail@c3d2.de</email>
<summary>Chaos Computer Club Dresden News</summary>
<link rel="alternate" type="text/html" href="https://www.c3d2.de/news.html"/>
<link rel="avatar" type="image/png" href="http://www.c3d2.de/images/ck.png"/>
<activity:object-type>http://activitystrea.ms/schema/1.0/team</activity:object-type>
<poco:preferredUsername>c3d2</poco:preferredUsername>
<poco:displayName>C3D2</poco:displayName>
<mastodon:scope>public</mastodon:scope>
</author>
</feed>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>www.c3d2.de Newsfeed</title>
<link>http://www.c3d2.de/</link>
<description>Neues aus dem Chaos Computer Club Dresden</description>
<language>de-de</language>
<image>
<title>Chaosknoten</title>
<url>http://www.c3d2.de/images/ck.png</url>
<link>http://www.c3d2.de/</link>
</image>
</channel>
</rss>

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de" dir="ltr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Symposium Datenspuren - 22-23.9., 2018, Zentralwerk, Riesaer Straße 32, 01127 Dresden; veranstaltet vom Chaos Computer Club Dresden"/>
<meta name="keywords" content="Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,IPv6,Cloud,ePostbrief,de-Mail,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<meta name="robots" content="index,follow"/>
<meta name="language" content="German"/>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<title>Datenspuren 2018 — News</title>
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="index.html">Start</a>
</li>
<li>
<a href="about.html">Über</a>
</li>
<li>
<a href="fahrplan.html">Programm</a>
</li>
<li>
<a href="location.html">Ort</a>
</li>
<li>
<a href="mitschnitte.html">Videos</a>
</li>
</ul>
</nav>
<article><div id="logo"><img src="images/logo.png"/></div>
<h3 class="summary"><date>04.11.2017</date><a href="https://www.c3d2.de/news/ds17-podcasts-videos.html" class="url">Datenspuren 2017: Podcasts und Video-Mitschnitte</a></h3>
<p>
Auf den <a href="https://datenspuren.de/2017/">Datenspuren
2017</a> wurde das rustikale Analogtonstudio der Technischen
Sammlungen betrieben. Für einen ersten Überblick empfehlen wir den
Podcast <a href="https://soundcloud.com/akronymisierbar/010-datenspuren">Akronymisierbar
10: Datenspuren</a>, welcher einige Referenteninterviews zu
hören hat.
</p>
<p>
Schon wenige Tage nach Veranstaltungsende hat unsere Crew vom
<a href="https://c3voc.de/">Video Operation Center</a> die Videomitschnitte
der Vorträge fertig gestellt. Findet sie an folgenden Orten:
</p>
<ul><li><a href="https://datenspuren.de/2017/mitschnitte.html">Datenspuren.de</a></li><li><a href="https://media.ccc.de/c/DS2017">media.ccc.de</a> (mit Web-Player)</li><li><a href="http://bitlove.org/c3d2/ds17">Bitlove.org</a> (BitTorrent)</li></ul>
<p>
Ausserdem wollen wir noch einmal die Gelegenheit nutzen, den
Hackern von <a href="http://www.freifunk-dresden.de/">Freifunk Dresden</a> zu danken. Sie
haben den harten Mangel an Internetverügbarkeit am zweiten Tag der
Datenspuren 2017 selbstorganisiert mit eigener Infrastruktur
behoben.
</p>
</article>
</div>
<footer>
<ul id="oldds">
<li>
<a href="../2004/">2004</a>
</li>
<li>
<a href="../2005/">2005</a>
</li>
<li>
<a href="../2006/">2006</a>
</li>
<li>
<a href="../2007/">2007</a>
</li>
<li>
<a href="../2008/">2008</a>
</li>
<li>
<a href="../2009/">2009</a>
</li>
<li>
<a href="../2010/">2010</a>
</li>
<li>
<a href="../2011/">2011</a>
</li>
<li>
<a href="../2012/">2012</a>
</li>
<li>
<a href="../2013/">2013</a>
</li>
<li>
<a href="../2014/">2014</a>
</li>
<li>
<a href="../2015/">2015</a>
</li>
<li>
<a href="../2016/">2016</a>
</li>
<li>
<a href="../2017/">2017</a>
</li>
</ul>
<div><a href="http://www.c3d2.de/">Chaos Computer Club Dresden</a>
<a href="mailto:datenspuren@c3d2.de" title="Mail">datenspuren@c3d2.de</a></div>
</footer>
<script type="application/javascript" src="script/jquery-2.1.4.min.js"> </script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,880 @@
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>Schedule Datenspuren 2018</title>
<link rel="stylesheet" media="screen" href="/2018/fahrplan/public_schedule.css">
<link rel="stylesheet" media="all" href="/2018/fahrplan/style.css">
<link rel="stylesheet" media="print" href="/2018/fahrplan/public_schedule_print.css">
</head>
<body>
<div id="wrapper">
<div id="banner"></div>
<div id="header">
<h1>Schedule Datenspuren 2018</h1>
</div>
<div id="navigation">
<ul>
<li>
<a href="/2018/fahrplan/index.html">Overview</a>
</li>
<li>
<a href="/2018/fahrplan/schedule/1.html">
Saturday
-
<span class="small-font">2018-09-22</span>
</a>
</li>
<li>
<a href="/2018/fahrplan/schedule/2.html">
Sunday
-
<span class="small-font">2018-09-23</span>
</a>
</li>
<li>
<a href="/2018/fahrplan/speakers.html">Speakers</a>
</li>
<li>
<a href="/2018/fahrplan/events.html">Events</a>
</li>
<li>
<a href="/2018/fahrplan/timeline.html">timeline</a>
</li>
<li>
<a href="/2018/fahrplan/booklet.html">book</a>
</li>
<li>
<a href="/2018/fahrplan/qrcode.html">QR-Code</a>
</li>
</ul>
<p class="tracks">Tracks</p>
<ul class="tracks">
<li>
<div class="event track-alles">Alles</div>
</li>
</ul>
</div>
<div id="main-content">
<p class="release">Version 20180922</p>
<h2>
Schedule for day 2018-09-22
</h2>
<br class="clear">
<div id="main-table">
<div id="conference-rooms_0">
<table class="rooms-table">
<thead>
<tr>
<th class="cell-time"></th>
<th>Großer Saal</th>
<th>Kabinett</th>
<th>Work&#173;shopraum</th>
<th>Hof</th>
</tr>
</thead>
<tbody>
<tr class="cell-height1">
<td class="cell-time">
<p>10:30</p>
</td>
<td class="cell-height1" rowspan="1">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9336.html">Eröffnung</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Datenspuren 2018
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7339.html">Nerd Norbert</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td class="cell-height16" rowspan="16">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9416.html">Fabmo&#173;bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Kunst und Designlabor Bus
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9347.html">Keynote</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/2965.html">&gt;Y&lt;</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>11:15</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9299.html">Little Brother</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Nothing to hide?
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/5782.html">Reinhard Mutz</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9431.html">Lounge / Work&#173;shops</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:00</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:45</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9339.html">Kontrollinstanzen Nachrichtendienste</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Wer hat das Sagen in der Bundesrepublik?
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8093.html">Sarah Körfer</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9313.html">Wie surfe ich si&#173;cher im Inter&#173;net?</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
ein Demo-Work&#173;shop
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8068.html">nek0</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>13:30</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9325.html">DEMOCRACY</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Vom Weg, alle BundesbürgerInnen zu Bundestagsabegordneten zu machen
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/8076.html">visionmakery</a>, <a href="/2018/fahrplan/speakers/8077.html">Ulf Gebhardt</a>
</div>
</div>
</div>
</div>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9307.html">Arduino: 8 Beine für ein kleines Halleluja</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Attiny85 Einsteiger Kurs für 10 Leute
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>14:15</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height5" rowspan="5">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9310.html">Hebocon</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Zwei Roboter, ein Tisch - Fight!
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:00</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9332.html">Program verification with SPARK</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
When your code must not fail
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8090.html">Johannes Kliemann</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9352.html">CCC Regiotreffen</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/4590.html">sva</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:45</p>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9314.html">Hausvernetzung</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Mehr als 1 Wohnung mit mehr als 1 LAN/WLAN
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/1648.html">Astro</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9404.html">Kazoosh! Tetris</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9417.html">Fabmo&#173;bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>16:30</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9324.html">Freeing the Binary Format of the reMarkable e-ink Tablet</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6691.html">ax3l</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9425.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>17:15</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9323.html">Der Weg zur eigenen GnuPG Smart&#173;card</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8070.html">Volker &amp; Martin</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height6" rowspan="6">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9331.html">Light&#173;ning&#173;talks</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
5 Minuten für Deine Ideen
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/4601.html">bigalex</a>, <a href="/2018/fahrplan/speakers/8229.html">hcx23</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:00</p>
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9312.html">live coding music</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Use SonicPi to make your crowd dance!
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8072.html">hejn</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9426.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:45</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9427.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>19:30</p>
</td>
<td class="cell-height6" rowspan="6">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9329.html">Pentanews Gameshow</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Penta News Game Show
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7472.html">klobs</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9408.html">Bauhaus.fm Rundfunkorchester</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>20:15</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9315.html">Intertech</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
live coded music and visuals
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8072.html">hejn</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>21:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>21:45</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9437.html">Party</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Freunde der elektronischen Musik
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>22:30</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>23:15</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>00:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>00:45</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>01:30</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="clear">
</div>
</div>
<div id="footer">
<p>This schedule was generated with <a href="http://frab.github.io/frab/">frab</a>.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,805 @@
<?xml version="1.0" encoding="utf-8"?>
<day title="Schedule for day 2018-09-22">
<table class="rooms-table">
<thead>
<tr>
<th class="cell-time"/>
<th>Großer Saal</th>
<th>Kabinett</th>
<th>Work­shopraum</th>
<th>Hof</th>
</tr>
</thead>
<tbody>
<tr class="cell-height1">
<td class="cell-time">
<p>10:30</p>
</td>
<td class="cell-height1" rowspan="1">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9336.html">Eröffnung</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Datenspuren 2018
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7339.html">Nerd Norbert</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td class="cell-height16" rowspan="16">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9416.html">Fabmo­bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Kunst und Designlabor Bus
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9347.html">Keynote</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/2965.html">&gt;Y&lt;</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>11:15</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9299.html">Little Brother</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Nothing to hide?
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/5782.html">Reinhard Mutz</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9431.html">Lounge / Work­shops</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:00</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:45</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9339.html">Kontrollinstanzen Nachrichtendienste</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Wer hat das Sagen in der Bundesrepublik?
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8093.html">Sarah Körfer</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9313.html">Wie surfe ich si­cher im Inter­net?</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
ein Demo-Work­shop
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8068.html">nek0</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>13:30</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9325.html">DEMOCRACY</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Vom Weg, alle BundesbürgerInnen zu Bundestagsabegordneten zu machen
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/8076.html">visionmakery</a>, <a href="/2018/fahrplan/speakers/8077.html">Ulf Gebhardt</a>
</div>
</div>
</div>
</div>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9307.html">Arduino: 8 Beine für ein kleines Halleluja</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Attiny85 Einsteiger Kurs für 10 Leute
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>14:15</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height5" rowspan="5">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9310.html">Hebocon</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Zwei Roboter, ein Tisch - Fight!
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:00</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9332.html">Program verification with SPARK</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
When your code must not fail
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8090.html">Johannes Kliemann</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9352.html">CCC Regiotreffen</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/4590.html">sva</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:45</p>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9314.html">Hausvernetzung</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Mehr als 1 Wohnung mit mehr als 1 LAN/WLAN
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/1648.html">Astro</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9404.html">Kazoosh! Tetris</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9417.html">Fabmo­bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>16:30</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9324.html">Freeing the Binary Format of the reMarkable e-ink Tablet</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6691.html">ax3l</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9425.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>17:15</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9323.html">Der Weg zur eigenen GnuPG Smart­card</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8070.html">Volker &amp; Martin</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height6" rowspan="6">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9331.html">Light­ning­talks</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
5 Minuten für Deine Ideen
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/4601.html">bigalex</a>, <a href="/2018/fahrplan/speakers/8229.html">hcx23</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:00</p>
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9312.html">live coding music</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Use SonicPi to make your crowd dance!
(en)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8072.html">hejn</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9426.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:45</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9427.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>19:30</p>
</td>
<td class="cell-height6" rowspan="6">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9329.html">Pentanews Gameshow</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Penta News Game Show
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7472.html">klobs</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height8" rowspan="8">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9408.html">Bauhaus.fm Rundfunkorchester</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>20:15</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9315.html">Intertech</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
live coded music and visuals
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8072.html">hejn</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>21:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>21:45</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9437.html">Party</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Freunde der elektronischen Musik
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>22:30</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>23:15</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>00:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>00:45</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>01:30</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</day>

View File

@ -0,0 +1,529 @@
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>Schedule Datenspuren 2018</title>
<link rel="stylesheet" media="screen" href="/2018/fahrplan/public_schedule.css">
<link rel="stylesheet" media="all" href="/2018/fahrplan/style.css">
<link rel="stylesheet" media="print" href="/2018/fahrplan/public_schedule_print.css">
</head>
<body>
<div id="wrapper">
<div id="banner"></div>
<div id="header">
<h1>Schedule Datenspuren 2018</h1>
</div>
<div id="navigation">
<ul>
<li>
<a href="/2018/fahrplan/index.html">Overview</a>
</li>
<li>
<a href="/2018/fahrplan/schedule/1.html">
Saturday
-
<span class="small-font">2018-09-22</span>
</a>
</li>
<li>
<a href="/2018/fahrplan/schedule/2.html">
Sunday
-
<span class="small-font">2018-09-23</span>
</a>
</li>
<li>
<a href="/2018/fahrplan/speakers.html">Speakers</a>
</li>
<li>
<a href="/2018/fahrplan/events.html">Events</a>
</li>
<li>
<a href="/2018/fahrplan/timeline.html">timeline</a>
</li>
<li>
<a href="/2018/fahrplan/booklet.html">book</a>
</li>
<li>
<a href="/2018/fahrplan/qrcode.html">QR-Code</a>
</li>
</ul>
<p class="tracks">Tracks</p>
<ul class="tracks">
<li>
<div class="event track-alles">Alles</div>
</li>
</ul>
</div>
<div id="main-content">
<p class="release">Version 20180922</p>
<h2>
Schedule for day 2018-09-23
</h2>
<br class="clear">
<div id="main-table">
<div id="conference-rooms_0">
<table class="rooms-table">
<thead>
<tr>
<th class="cell-time"></th>
<th>Großer Saal</th>
<th>Kabinett</th>
<th>Work&#173;shopraum</th>
<th>Hof</th>
</tr>
</thead>
<tbody>
<tr class="cell-height1">
<td class="cell-time">
<p>10:30</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9337.html">State of the GNUnet</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6599.html">t3sserakt</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>11:15</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9316.html">Wie man in 69 Jah&#173;ren einen Überwachungsstaat aufbaut</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8080.html">Lennart Mühlenmeier</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:00</p>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9326.html">Netzphilosophische Matinée</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Ein Hirnlüfter der Dresdner Technikphilosophie. Zurücklehnen und wachwerden.
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/5812.html">ajuvo</a>, <a href="/2018/fahrplan/speakers/7479.html">Manja Unger-B.</a>, <a href="/2018/fahrplan/speakers/3532.html">Paul</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9432.html">Crimp Work&#173;shop</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Netz&#173;werkgrundlagen
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8074.html">Mole</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:45</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height4" rowspan="4">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9406.html">Bauhaus.fm Rundfunkorchester</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
<td> </td>
<td class="cell-height12" rowspan="12">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9424.html">Fabmo&#173;bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Kunst und Designlabor Bus
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9330.html">Level Up your Monitoring</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
ein monitoring-techtree walkthrough
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7469.html">André Niemann</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height12" rowspan="12">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9338.html">GNUnet Work&#173;shop</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6599.html">t3sserakt</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>13:30</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9405.html">Kazoosh Tetris II</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>14:15</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9318.html">Augmented Reality in der Gesellschaft: Möglicher Nutzen und Gefahren</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8081.html">preip</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:00</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9311.html">Spieleentwicklung in Haskell</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
oder: Wie verbringt man die Zeit, die man auf den Compiler wartet.
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8068.html">nek0</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:45</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9429.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9317.html">NAT Gateways for the Masses</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/8071.html">Simon Hanisch</a>, <a href="/2018/fahrplan/speakers/8234.html">Felix</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>16:30</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9428.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>17:15</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9308.html">Hebocon Finale</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Zwei Roboter, ein Tisch - Fight!
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="clear">
</div>
</div>
<div id="footer">
<p>This schedule was generated with <a href="http://frab.github.io/frab/">frab</a>.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,454 @@
<?xml version="1.0" encoding="utf-8"?>
<day title="Schedule for day 2018-09-23">
<table class="rooms-table">
<thead>
<tr>
<th class="cell-time"/>
<th>Großer Saal</th>
<th>Kabinett</th>
<th>Work­shopraum</th>
<th>Hof</th>
</tr>
</thead>
<tbody>
<tr class="cell-height1">
<td class="cell-time">
<p>10:30</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9337.html">State of the GNUnet</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6599.html">t3sserakt</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>11:15</p>
</td>
<td class="cell-height2" rowspan="2">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9316.html">Wie man in 69 Jah­ren einen Überwachungsstaat aufbaut</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8080.html">Lennart Mühlenmeier</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:00</p>
</td>
<td class="cell-height4" rowspan="4">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9326.html">Netzphilosophische Matinée</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Ein Hirnlüfter der Dresdner Technikphilosophie. Zurücklehnen und wachwerden.
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/5812.html">ajuvo</a>, <a href="/2018/fahrplan/speakers/7479.html">Manja Unger-B.</a>, <a href="/2018/fahrplan/speakers/3532.html">Paul</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9432.html">Crimp Work­shop</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Netz­werkgrundlagen
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8074.html">Mole</a></div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>12:45</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height4" rowspan="4">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9406.html">Bauhaus.fm Rundfunkorchester</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
<td> </td>
<td class="cell-height12" rowspan="12">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9424.html">Fabmo­bil</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Kunst und Designlabor Bus
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9330.html">Level Up your Monitoring</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
ein monitoring-techtree walkthrough
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/7469.html">André Niemann</a></div>
</div>
</div>
</div>
</td>
<td class="cell-height12" rowspan="12">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9338.html">GNUnet Work­shop</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/6599.html">t3sserakt</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>13:30</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height16" rowspan="16">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9405.html">Kazoosh Tetris II</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
()
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>14:15</p>
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9318.html">Augmented Reality in der Gesellschaft: Möglicher Nutzen und Gefahren</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8081.html">preip</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:00</p>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9311.html">Spieleentwicklung in Haskell</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
oder: Wie verbringt man die Zeit, die man auf den Compiler wartet.
(de)
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8068.html">nek0</a></div>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>15:45</p>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9429.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9317.html">NAT Gateways for the Masses</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers">
<a href="/2018/fahrplan/speakers/8071.html">Simon Hanisch</a>, <a href="/2018/fahrplan/speakers/8234.html">Felix</a>
</div>
</div>
</div>
</div>
</td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>16:30</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td class="cell-height2" rowspan="2">
<div class="event track-alles">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9428.html">Lion Hofmann</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
(de)
</div>
<div class="speakers"/>
</div>
</div>
</div>
</td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>17:15</p>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td class="cell-height3" rowspan="3">
<div class="event track-default">
<div class="event-wrapper">
<div class="event-header">
<h2><a href="/2018/fahrplan/events/9308.html">Hebocon Finale</a></h2>
</div>
<div class="event-details">
<div class="subtitle">
Zwei Roboter, ein Tisch - Fight!
()
</div>
<div class="speakers"><a href="/2018/fahrplan/speakers/8067.html">honky</a></div>
</div>
</div>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
<p>18:00</p>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="cell-height1">
<td class="cell-time">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</day>

View File

View File

@ -0,0 +1,229 @@
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: local('Source Sans Pro Regular'), local('SourceSansPro-Regular'), url(../fonts/SourceSansPro-Regular-400.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 900;
src: local('Source Sans Pro Black'), local('SourceSansPro-Black'), url(../fonts/SourceSansPro-Bold-900.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
html,body{height:100%;}
body {
font: 16px/1.3 'Source Sans Pro', sans-serif;
background-color: rgb(30, 90, 144);
color: rgb(220, 220, 220);
}
h1,h2,h3,h4,h5,h6 {
word-break: break-all;
word-wrap: break-word;
}
header nav {
padding: 0 !important;
background-color: transparent;
}
header nav a {
background-color: #343a40 !important;
}
header nav a.navbar-toggler {
padding-top: 1rem;
border-radius: initial;
}
header nav:after {
display: block;
content: '';
width: 100%;
height: 2rem;
background-color: #343a40;
clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%, 50% 25%)
}
.navbar-toggler {
display: inline-block;
width: 100%;
text-align: center;
}
.dropdown a {
text-align: center;
}
main {
height: inherit;
padding-bottom: 4rem;
}
main a {
color: #343a40 !important;
}
article {
padding-bottom: 3rem;
}
article:first-child {
min-height: 105%;
}
article:nth-child(even) {
background-color: rgb(68, 130, 192);
}
article:last-child {
padding-bottom: 6rem;
}
article section {
margin-top: 3rem;
}
/* patch gehabt animations */
#patchgehabt {
margin-top: 3rem;
}
g#A g {
/* arrearance */
transform-origin: 100%;
/* animation */
animation-name: fall, fade;
animation-iteration-count: 1;
animation-direction: normal;
animation-timing-function: ease-out;
}
.Ap, .Ag, .Att { animation-duration: 2s; }
.Aa, .Ae { animation-duration: 3s; }
.At, .Ahh { animation-duration: 3.5s; }
.Ac, .Aaa { animation-duration: 4s; }
.Ah, .Ab { animation-duration: 1s; }
#p6,#a6,#t6,#c6,#h6,
#g7,#e7,#hh7,#aa7,#b7,#tt7 {
fill: orange;
animation: emphasize 4s ease-in-out 1;
}
@keyframes emphasize {
0% {fill: red;}
70% {fill: white; }
100% {fill: orange;}
}
@keyframes fade{
0% { opacity: 0; }
80% { opacity: .2; }
100% { opacity: 1; }
}
@keyframes fall{
from {transform: translateY(-50%)}
to {transform: translateY(0%)}
}
.text-columns {
column-count: 3;
column-gap: 2rem;
}
.keep-together {
break-inside: avoid;
}
.ol-mouse-position {
color: #000;
}
#idLocation {
min-height: initial;
}
#idLocation img {
margin-bottom: 2rem;
}
footer {
background-color: rgb(30, 90, 144);
}
/* Small devices */
@media (max-width: 767.98px) {
header nav {
margin-left: 25%;
width: 50%;
}
#patchgehabt {
height: 50%;
}
.text-columns {
column-count: 2;
column-gap: 1rem;
}
}
/* Extra Small devices (landscape phones, 576px and up) */
@media (max-width: 575.98px) {
#patchgehabt {
margin-top: 5rem;
}
#patchgehabt svg {
width: 100%
}
.text-columns {
column-count: initial;
column-gap: initial;
}
main section {
margin-left: 1rem;
margin-right: 1rem;
}
}
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
header nav {
margin-left: 70%;
width: 25%;
}
.modal-xl {
width: 90%;
max-width:1200px;
}
}
/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
header nav {
margin-left: 80%;
width: 15%;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
header nav {
margin-left: 83%;
width: 12%;
}
}

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns="http://www.w3.org/2000/svg"
width="152.151"
height="49.778999"
viewBox="0 0 40.256618 13.170694"
>
<path d="M 23.193049,0.13520904 18.25899,13.035709 l 3.75172,-0.0512 4.882909,-12.74650996 z m 8.429471,0 -4.214741,0.0512 3.803391,6.57893996 -3.855062,6.27041 h 4.317582 l 3.75221,-6.21874 z m 0.6165,0 3.803388,6.63008996 -3.700539,6.21924 3.9579,0.0512 3.80338,-6.37325 -3.752239,-6.47609996 z m -27.8458305,0.0486 -4.23749,6.60576996 3.72845,6.20842 4.12224,0.009 -3.67729,-6.25078 4.03696,-6.52105996 z m 9.2914005,0.003 -3.9578805,6.57893996 3.9062005,6.21924 h 4.009079 L 13.94144,6.714579 17.796499,0.18680904 Z m -4.5992005,0.0486 -4.03643,6.52052996 3.72792,6.25131 4.0850405,-0.0222 L 9.0585295,6.714639 12.86192,0.23853904 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 979 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,545 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="443.33878"
viewBox="0 0 270.93335 117.30004"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="ds-zw.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.0000001"
inkscape:cx="522.64854"
inkscape:cy="227.4542"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="3836"
inkscape:window-height="2136"
inkscape:window-x="1920"
inkscape:window-y="20"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-9.7985584,-88.013984)">
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09933543;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 114.195,129.77652 -46.986895,23.21821 m -5.553085,2.74402 -6.382405,3.15381 -44.233292,-21.85753 59.209976,-29.25814 m 11.382439,-5.62454 17.874167,-8.832382 44.233285,21.857532 -17.31983,8.55845"
id="rect1250"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<g
id="g841"
transform="matrix(1.1040344,-0.54769716,1.1040344,0.54769716,-160.39323,74.597804)"
style="stroke:#ffffff;stroke-opacity:1">
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 87.94612,228.11128 c 17.5,0 35,0 52.5,0 v 30 H 20.446119 v -30 H 80.44612"
id="rect819"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 20.446119,198.11128 h 20 v 30 h -20 z"
id="rect821"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 120.44612,198.11128 h 20 v 30 h -20 z"
id="rect821-3"
inkscape:connector-curvature="0" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.62250703;stroke-dashoffset:0;stroke-opacity:1"
d="m 185.77912,152.71673 4.1942,2.42152"
id="path843"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
id="g1182"
style="stroke:#ffffff;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(1.5562675,0,0,1.5562675,-5.4506205,-114.20954)">
<path
inkscape:connector-curvature="0"
id="path860"
d="m 125.63997,173.1866 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7"
d="m 127.34462,172.5754 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5"
d="m 129.04632,171.96603 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3"
d="m 130.75072,171.35572 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-56"
d="m 132.45635,170.74489 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7-2"
d="m 134.161,170.13369 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-9"
d="m 135.8627,169.52432 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3-1"
d="m 137.5671,168.91401 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.62250703;stroke-dashoffset:0;stroke-opacity:1"
d="m 211.20019,147.52313 25.96501,-12.86684 2.24976,1.45392"
id="path926"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501405, 1.24501405;stroke-dashoffset:0;stroke-opacity:1"
d="m 247.10582,143.56911 v 11.46651"
id="path928"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501405, 1.24501405;stroke-dashoffset:0;stroke-opacity:1"
d="m 267.20163,134.49791 v 11.2206"
id="path932"
inkscape:connector-curvature="0" />
<g
id="g1172"
transform="matrix(0.89875599,0,0,0.89875599,101.96682,11.720491)"
style="stroke:#ffffff;stroke-width:0.34631592;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path1105"
d="m 97.940917,159.77046 v 1.6838 l 1.590254,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-8"
d="m 99.455166,162.17923 v 1.6838 l 1.590264,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-4"
d="m 100.97384,164.58663 v 1.6838 l 1.59026,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-8-5"
d="m 102.48809,166.9954 v 1.6838 l 1.59027,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-0"
d="m 104.00828,169.40327 v 1.6838 l 1.59026,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-8-3"
d="m 105.52253,171.81204 v 1.6838 l 1.59026,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-4-6"
d="m 107.0412,174.21944 v 1.6838 l 1.59026,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1105-8-5-1"
d="m 108.55545,176.62821 v 1.6838 l 1.59027,0.8419"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.34631592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.34631593, 0.69263185;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501405, 1.24501405;stroke-dashoffset:0;stroke-opacity:1"
d="m 223.80835,166.47464 v 7.04866"
id="path930-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501405, 1.24501405;stroke-dashoffset:0;stroke-opacity:1"
d="m 200.51885,178.24766 v 6.17516"
id="path930-0-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
id="g1305"
transform="matrix(1.5562675,0,0,1.5562675,24.277818,-104.70573)"
style="stroke:#ffffff;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path860-1"
d="m 97.024477,167.96489 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7-5"
d="m 98.729127,167.35369 v -1.67044 l 1.639543,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-5"
d="m 100.43083,166.74432 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3-4"
d="m 102.13523,166.13401 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09933543;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 82.186056,101.87843 99.505905,93.319968 120.456,103.67229 103.13616,112.23075 Z"
id="rect1362"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09933543;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 115.83145,118.50403 c -1.15221,-0.56934 -2.04188,-1.00897 -3.17382,-1.56831 m -3.17383,-1.56833 c -2.12712,-1.0511 -4.37149,-2.16014 -6.34764,-3.13664 l 17.31984,-8.55846 16.92706,8.36436 -17.31985,8.55848 c -1.42079,-0.70207 -2.92153,-1.44364 -4.23176,-2.0911"
id="rect1362-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09933543;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 120.07505,120.60098 17.31984,-8.55848 6.3443,3.135 -17.31983,8.55845 z"
id="rect1362-4-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09933543;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 114.2178,130.28499 91.835068,119.22475"
id="path1395"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.58819866px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.41176242px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="116.10869"
y="115.51063"
id="text1400"><tspan
sodipodi:role="line"
id="tspan1398"
x="116.10869"
y="115.51063"
style="font-size:6.58819866px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.41176242px;stroke-opacity:1">🚾</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501407, 1.24501407;stroke-dashoffset:0;stroke-opacity:1"
d="m 75.190055,137.62764 v 11.4665"
id="path928-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.15562676;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.24501407, 1.24501407;stroke-dashoffset:0;stroke-opacity:1"
d="m 95.058061,127.83769 v 11.4665"
id="path928-0"
inkscape:connector-curvature="0" />
<g
id="g1305-7"
transform="matrix(-1.5562675,0,0,1.5562675,209.24601,-110.24601)"
style="stroke:#ffffff;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path860-1-8"
d="m 97.024477,167.96489 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7-5-6"
d="m 98.729127,167.35369 v -1.67044 l 1.639543,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-5-8"
d="m 100.43083,166.74432 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3-4-8"
d="m 102.13523,166.13401 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g1305-4"
transform="matrix(1.5562675,0,0,1.5562675,-90.848997,-119.23177)"
style="stroke:#ffffff;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path860-1-3"
d="m 97.024477,167.96489 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7-5-1"
d="m 98.729127,167.35369 v -1.67044 l 1.639543,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-5-4"
d="m 100.43083,166.74432 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3-4-9"
d="m 102.13523,166.13401 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.62250703;stroke-dashoffset:0;stroke-opacity:1"
d="m 71.108201,137.69549 -8.670907,-4.37324 5.459249,-2.58406"
id="path1504"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.62250703;stroke-dashoffset:0;stroke-opacity:1"
d="m 58.249966,151.1523 6.504913,3.11539"
id="path1506"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.21141434px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-108.65834"
y="150.33127"
id="text1510"
transform="matrix(1,-0.5,1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1508"
x="-108.65834"
y="150.33127"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.21141434px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Großer Saal</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.10570717px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-97.647461"
y="173.12932"
id="text1514"
transform="matrix(1,-0.5,1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1512"
x="-97.647461"
y="173.12932"
style="font-size:3.84311652px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Kabinett</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.39213276px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-78.287415"
y="283.33893"
id="text1510-3"
transform="matrix(1,-0.5,1,0.5,0,0)"><tspan
sodipodi:role="line"
x="-78.287415"
y="283.33893"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.39213276px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1"
id="tspan1534">C3D2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.21141434px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-81.066826"
y="277.05957"
id="text1510-1"
transform="matrix(1,-0.5,1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1508-1"
x="-81.066826"
y="277.05957"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.29409933px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Backstage</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.10570717px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-18.434072"
y="260.85788"
id="text1514-3"
transform="matrix(1,-0.5,1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1512-1"
x="-18.434072"
y="260.85788"
style="font-size:3.01959133px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Workshop-</tspan><tspan
sodipodi:role="line"
x="-18.434072"
y="264.76376"
style="font-size:3.01959133px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1"
id="tspan1564">raum</tspan></text>
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.08571529;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 240.71551,135.69343 14.15979,-6.71864 11.14521,5.28828 -18.94688,8.99006 -11.1452,-5.28829 1.61249,-0.7651"
id="rect924-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.08717906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 203.19756,172.0226 8.46033,-4.03538 11.13104,5.30926 -3.19031,1.52171 m -2.67075,1.27391 -12.61694,6.01801 m -2.78277,1.32731 -1.00136,0.47763 -11.13104,-5.30927 8.97853,-4.28259"
id="rect883-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09551466;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 63.727779,131.54214 19.117869,-9.0712 11.245808,5.33599 -19.117867,9.07121 -6.961855,-3.30331"
id="rect957"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.93376054;stroke-dashoffset:0;stroke-opacity:1"
d="M 121.20399,128.1761 74.036066,103.13634"
id="path963"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.93376054;stroke-dashoffset:0;stroke-opacity:1"
d="m 84.313595,108.665 -6.69114,3.49999"
id="path965"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.21141434px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="217.55028"
y="128.13889"
id="text1510-36"
transform="matrix(1,0.5,-1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1508-7"
x="217.55028"
y="128.13889"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.21141434px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Turm C</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.21141434px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="218.97504"
y="18.071472"
id="text1510-36-5"
transform="matrix(1,0.5,-1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1508-7-3"
x="218.97504"
y="18.071472"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.21141434px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Turm D</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.10570717px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="-113.34522"
y="209.75313"
id="text1514-5"
transform="matrix(1.0170419,-0.46435516,0.98170929,0.53502046,0,0)"><tspan
sodipodi:role="line"
x="-113.34522"
y="209.75313"
style="font-size:2.82222223px;text-align:center;text-anchor:middle;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1;"
id="tspan941">Café ecce</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.93376055;stroke-dashoffset:0;stroke-opacity:1"
d="M 150.06377,113.1912 102.89584,88.151442"
id="path963-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31125352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.31125352, 0.62250704;stroke-dashoffset:0;stroke-opacity:1"
d="m 63.431517,163.74464 6.504913,-3.11539"
id="path1506-9"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.21141434px;line-height:125%;font-family:'Verana Sans Demi';-inkscape-font-specification:'Verana Sans Demi';letter-spacing:0px;word-spacing:0px;opacity:0.91000001;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="202.43858"
y="71.12043"
id="text1510-36-9"
transform="matrix(1,0.5,-1,0.5,0,0)"><tspan
sodipodi:role="line"
id="tspan1508-7-36"
x="202.43858"
y="71.12043"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.21141434px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.29116002px;stroke-opacity:1">Innenhof</tspan></text>
<g
id="g1305-4-0"
transform="matrix(1.5562675,0,0,1.5562675,-101.56433,-115.50129)"
style="stroke:#ffffff;stroke-opacity:1">
<path
inkscape:connector-curvature="0"
id="path860-1-3-6"
d="m 97.024477,167.96489 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-7-5-1-2"
d="m 98.729127,167.35369 v -1.67044 l 1.639543,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-5-4-6"
d="m 100.43083,166.74432 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path860-5-3-4-9-1"
d="m 102.13523,166.13401 v -1.67044 l 1.63954,0.94659"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.2, 0.4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g922"
transform="translate(160.07291,65.087495)">
<path
inkscape:connector-curvature="0"
id="path897"
d="M 109.94334,24.868212 V 37.43592 l -8.79374,5.077071 z"
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path897-3"
d="M 109.94334,24.868213 V 37.43592 l 8.79374,5.07707 z"
style="fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text916"
y="36.139114"
x="107.94996"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:5.64444447px;fill:#000000;stroke-width:0.26458332px"
y="36.139114"
x="107.94996"
id="tspan914"
sodipodi:role="line">N</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW X5 -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="8.00169cm" height="10cm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 8002 10002"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">
<![CDATA[
.fil1 {fill:#F9C295}
.fil2 {fill:#CA9A72}
.fil4 {fill:black}
.fil0 {fill:#C00303}
.fil5 {fill:#C10304}
.fil6 {fill:#E3000B}
.fil3 {fill:#EBB88D}
]]>
</style>
</defs>
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<path id="heartbleed" class="fil0" d="M6196 187c-242,-124 -494,-187 -749,-187 -646,0 -1161,402 -1447,690 -286,-288 -801,-690 -1447,-690 -255,0 -507,63 -749,187 -587,302 -851,913 -743,1723 29,219 138,469 270,692 77,129 119,183 201,283l0 1843c0,132 107,239 239,239 132,0 239,-107 239,-239l0 -1313c70,72 308,384 382,457l0 2543c0,48 39,87 87,87 48,0 87,-39 87,-87l0 -2375c31,30 63,60 94,90l0 1747c0,108 88,196 196,196 108,0 196,-88 196,-196l0 -1384c107,98 214,195 320,292 147,134 286,260 422,386l206 191 145 -133c18,-17 36,-33 54,-50l0 1842c0,48 39,86 86,87l2 0c48,0 86,-39 86,-87l0 -2001c33,-31 129,-119 163,-150l0 1487c0,72 58,130 130,130 72,0 130,-58 130,-130l0 -1724c1023,-933 2031,-1888 2142,-2722 108,-810 -156,-1421 -743,-1723zm140 1642c-88,660 -1213,1683 -2117,2505 -72,66 -146,133 -219,200 -73,-67 -147,-134 -219,-199 -904,-822 -2029,-1846 -2117,-2506 -33,-249 -22,-465 33,-643 65,-209 191,-359 385,-459 155,-80 314,-120 471,-120 671,0 1194,715 1199,721l247 344 248 -344c5,-7 529,-722 1200,-722 157,0 316,40 471,120 194,100 320,250 385,459 55,177 66,393 33,643z"/>
<g id="patch">
<path class="fil1" d="M2160 4168c0,0 -232,147 -85,379l62 98c0,0 147,232 379,84l1558 -991c0,0 232,-148 85,-379l-63 -98c0,0 -147,-232 -379,-84l-1558 991z"/>
<path class="fil2" d="M3026 3812c26,-16 11,-24 5,-54 75,34 40,-4 43,71l55 8 -20 51c74,27 48,35 55,46l32 39c1,2 2,7 2,9 3,45 -24,29 -25,30 -32,-34 16,-31 -71,-74 41,-57 10,-33 9,-46l-50 -16c31,-35 27,-36 -36,-66z"/>
<path class="fil2" d="M2818 4086c80,41 2,-4 47,52 41,52 28,-13 31,50 -11,12 7,49 -44,12 -25,-18 -16,1 7,-38 -67,-30 -54,-9 -42,-76z"/>
<path class="fil2" d="M3206 3667c31,28 27,11 22,68 53,-1 40,7 49,18 -35,63 3,34 -45,19 -28,12 8,12 -10,-23l-38 -52c19,-30 -24,2 23,-30z"/>
<path class="fil2" d="M2878 3875c62,-5 -44,6 12,-4 6,-1 -5,-5 27,-1l-3 57c55,22 37,13 57,38l-44 25 -50 -115z"/>
<path class="fil2" d="M3309 3851c0,0 -32,40 -46,-19 -1,-3 4,-19 6,-21 3,-4 -12,-31 30,-9 45,23 25,-1 11,49z"/>
<path class="fil2" d="M3013 3878c51,27 44,-6 18,66 -33,-17 -34,-25 -35,-37 -4,-59 7,-21 17,-29z"/>
<path class="fil2" d="M2797 3963c0,-1 -2,-23 10,-38 13,-16 25,-10 50,-8 -24,59 -3,54 -60,46z"/>
<path class="fil2" d="M3321 3915c-14,-17 -32,12 -10,-38 15,-34 8,-20 50,-9 -34,90 -13,33 -40,47z"/>
<path class="fil2" d="M2731 3989l-1 -36c66,27 55,2 31,69 -62,-32 -24,0 -29,-34z"/>
<path class="fil2" d="M2799 4024c54,14 11,5 23,22l-15 38c-42,-21 -54,-71 -8,-60z"/>
<path class="fil2" d="M3154 3734l-19 50c-40,-27 -36,-6 -28,-64l48 13z"/>
<path class="fil2" d="M2989 4055c-8,-8 -25,1 -30,-32 -7,-44 22,-28 24,-29 29,27 34,-17 6,61z"/>
<path class="fil2" d="M2989 3870c-15,3 -5,4 -30,1 -1,0 -18,-7 -23,-9l21 -23c20,-19 -25,-25 46,-7l-15 37z"/>
<path class="fil3" d="M3191 4053c-24,28 -13,12 -35,21 -39,-21 -26,-23 -36,-39l-26 -30c-36,-43 -9,-12 -20,-58 -55,10 -21,-24 -41,37 29,42 93,5 27,67 82,34 30,12 49,36l-61 35c-11,-38 4,-22 -6,-65 -46,-3 -47,19 -58,48 26,5 30,3 48,21 -6,35 -29,34 -58,34 -14,-95 -66,-21 -40,-115l-54 0c21,-73 36,-50 -31,-72 -16,73 -22,9 75,140 1,39 11,11 -14,35l55 35c-6,20 3,27 2,37 0,6 -4,14 -18,27l-9 -15c-1,-1 -3,-6 -5,-7 -38,-32 -28,6 -56,23 16,25 -45,20 42,15 -21,20 -38,21 -34,89 15,-3 70,-33 142,-76 96,-57 560,-267 483,-383 -60,-91 -119,-211 -181,-280 3,13 0,43 -22,60 22,17 55,62 75,103 12,24 20,47 19,62 -7,65 -2,18 -19,44 -32,48 -77,119 -112,62 -45,-72 -45,-31 -36,-96l-45 4c-5,-77 41,-53 -39,-74 -20,89 -3,26 25,75 15,26 -5,13 14,37 20,24 1,-9 35,26l-8 35 52 49c-67,72 -14,-18 -68,24 -39,30 24,-17 -13,26z"/>
</g>
<path id="p0s" class="fil4" d="M1658 5453l35 0 0 -111 50 0c15,0 29,-2 42,-6 12,-3 24,-9 32,-16 9,-7 16,-16 21,-27 5,-11 7,-24 7,-38 0,-15 -3,-28 -7,-39 -5,-11 -12,-19 -21,-26 -9,-6 -20,-11 -33,-14 -13,-3 -27,-4 -42,-4l-86 0 0 280zm35 -140l0 -112 46 0c24,0 42,4 55,12 12,8 18,22 18,42 0,20 -6,35 -18,44 -12,9 -30,14 -55,14l-46 0z"/>
<path id="p0" class="fil5" d="M1647 5440l35 0 0 -111 50 0c15,0 29,-2 42,-6 12,-3 23,-9 32,-16 9,-7 16,-16 21,-27 5,-11 7,-24 7,-38 0,-15 -3,-28 -7,-39 -5,-11 -12,-19 -21,-26 -9,-6 -20,-11 -33,-14 -13,-3 -27,-4 -42,-4l-86 0 0 280zm35 -140l0 -112 46 0c24,0 42,4 55,12 12,8 18,22 18,42 0,20 -6,35 -18,44 -12,9 -30,14 -55,14l-46 0z"/>
<path id="p1s" class="fil4" d="M1654 5957l43 0 0 -107 47 0c15,0 29,-2 42,-6 13,-3 24,-9 33,-16 9,-7 17,-16 22,-28 5,-11 8,-24 8,-39 0,-16 -3,-29 -8,-40 -5,-11 -12,-19 -22,-26 -9,-6 -21,-11 -33,-14 -13,-3 -27,-4 -42,-4l-90 0 0 280zm43 -141l0 -104 43 0c22,0 39,3 50,11 11,7 17,21 17,39 0,19 -6,32 -16,41 -11,9 -28,13 -51,13l-43 0z"/>
<path id="p1" class="fil5" d="M1643 5945l43 0 0 -107 47 0c15,0 29,-2 42,-6 13,-3 24,-9 33,-16 9,-7 17,-16 22,-28 5,-11 8,-24 8,-39 0,-16 -3,-29 -8,-40 -5,-11 -12,-19 -22,-26 -9,-6 -21,-11 -33,-14 -13,-3 -27,-4 -42,-4l-90 0 0 280zm43 -141l0 -104 43 0c22,0 39,3 50,11 11,7 17,21 17,39 0,19 -6,32 -16,41 -11,9 -28,13 -51,13l-43 0z"/>
<path id="p2s" class="fil4" d="M1651 6462l50 0 0 -103 44 0c15,0 29,-2 42,-6 13,-3 24,-9 34,-17 9,-7 17,-17 22,-28 6,-12 8,-25 8,-40 0,-16 -3,-30 -8,-41 -6,-11 -13,-20 -22,-26 -10,-7 -21,-12 -34,-15 -13,-3 -27,-4 -43,-4l-94 0 0 279zm50 -142l0 -97 41 0c21,0 36,3 46,10 10,7 15,19 15,37 0,34 -21,51 -62,51l-41 0z"/>
<path id="p2" class="fil5" d="M1640 6450l50 0 0 -103 44 0c15,0 29,-2 42,-6 13,-3 24,-9 34,-17 9,-7 17,-17 22,-28 6,-12 8,-25 8,-40 0,-16 -3,-30 -8,-41 -6,-11 -13,-20 -22,-26 -10,-7 -21,-12 -34,-15 -13,-3 -27,-4 -43,-4l-94 0 0 279zm50 -142l0 -97 41 0c21,0 36,3 46,10 10,7 15,19 15,37 0,34 -20,51 -62,51l-41 0z"/>
<path id="p3s" class="fil4" d="M1646 6967l63 0 0 -94 39 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-17 10,-8 18,-18 24,-29 6,-12 9,-26 9,-42 0,-17 -3,-31 -9,-43 -6,-12 -13,-21 -23,-28 -10,-7 -21,-12 -35,-15 -13,-3 -28,-4 -43,-4l-102 0 0 279zm63 -144l0 -84 35 0c17,0 29,3 38,9 9,6 13,16 13,31 0,29 -17,44 -51,44l-35 0z"/>
<path id="p3" class="fil5" d="M1635 6955l63 0 0 -94 39 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-17 10,-8 18,-18 24,-29 6,-12 9,-26 9,-42 0,-17 -3,-31 -9,-43 -6,-12 -13,-21 -23,-28 -10,-7 -21,-12 -35,-15 -13,-3 -28,-4 -43,-4l-102 0 0 279zm63 -144l0 -84 35 0c17,0 29,3 38,9 9,6 13,16 13,31 0,29 -17,44 -51,44l-35 0z"/>
<path id="p4s" class="fil4" d="M1641 7472l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p4" class="fil5" d="M1630 7460l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p5s" class="fil4" d="M1641 7977l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p5" class="fil5" d="M1630 7965l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p6s" class="fil4" d="M1641 8482l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p6" class="fil6" d="M1630 8470l73 0 0 -88 34 0c15,0 29,-2 42,-6 13,-4 25,-9 35,-18 10,-8 18,-18 25,-30 6,-12 9,-27 9,-44 0,-18 -3,-32 -9,-44 -6,-12 -14,-21 -24,-29 -10,-7 -22,-12 -35,-15 -14,-3 -28,-4 -43,-4l-108 0 0 278zm73 -146l0 -73 31 0c14,0 24,3 32,8 7,5 11,14 11,26 0,12 -3,22 -10,29 -7,7 -18,10 -32,10l-31 0z"/>
<path id="p7s" class="fil4" d="M1667 8987l14 0 0 -125 60 0c32,0 56,-7 73,-20 17,-13 26,-33 26,-60 0,-28 -9,-48 -26,-60 -18,-12 -42,-17 -73,-17l-73 0 0 282zm14 -137l0 -133 55 0c30,0 53,5 68,14 15,9 22,26 22,51 0,24 -7,42 -22,53 -15,11 -38,16 -68,16l-55 0z"/>
<path id="p7" class="fil5" d="M1656 8974l14 0 0 -125 60 0c32,0 56,-7 73,-20 17,-13 26,-33 26,-60 0,-28 -9,-48 -26,-60 -18,-12 -42,-17 -73,-17l-73 0 0 282zm14 -137l0 -133 55 0c30,0 53,5 68,14 15,9 22,26 22,51 0,24 -7,42 -22,53 -15,11 -38,16 -68,16l-55 0z"/>
<path id="a6s" class="fil4" d="M2014 8447c3,8 7,15 13,21 6,6 13,11 22,14 9,4 18,6 29,6 13,0 26,-3 38,-8 12,-5 23,-12 34,-19l2 0 5 22 60 0 0 -119c0,-18 -2,-32 -7,-45 -5,-12 -12,-23 -20,-31 -9,-8 -19,-14 -32,-18 -12,-4 -26,-6 -41,-6 -18,0 -35,3 -52,7 -17,5 -33,12 -50,21l26 48c13,-6 24,-11 34,-14 9,-3 19,-4 28,-4 12,0 21,2 29,5 7,4 11,9 12,17 -24,1 -45,4 -62,8 -17,4 -31,9 -41,15 -11,6 -19,15 -23,23 -5,9 -8,20 -8,32 0,9 2,17 5,25l0 0zm68 -41c2,-3 5,-6 10,-9 5,-3 12,-5 20,-6 8,-1 19,-3 32,-3l0 27c-6,4 -12,8 -19,11 -7,3 -15,5 -23,5 -15,0 -23,-5 -23,-15 0,-4 1,-7 3,-10z"/>
<path id="a6" class="fil6" d="M2003 8434c3,8 7,15 13,21 6,6 13,11 22,14 9,4 18,6 29,6 13,0 26,-3 38,-8 12,-5 23,-12 34,-19l2 0 5 22 60 0 0 -119c0,-18 -2,-32 -7,-45 -5,-12 -12,-23 -20,-31 -9,-8 -19,-14 -32,-18 -12,-4 -26,-6 -41,-6 -18,0 -35,3 -52,7 -17,5 -33,12 -50,21l26 48c13,-6 24,-11 34,-14 9,-3 19,-4 28,-4 12,0 21,2 29,5 7,4 11,9 12,17 -24,1 -45,4 -62,8 -17,4 -31,9 -41,15 -11,6 -19,15 -23,23 -5,9 -8,20 -8,32 0,9 2,17 5,25l0 0zm68 -41c2,-3 5,-6 10,-9 5,-3 12,-5 20,-6 8,-1 19,-3 32,-3l0 27c-6,4 -12,8 -19,11 -7,3 -15,5 -23,5 -15,0 -23,-5 -23,-15 0,-4 1,-7 3,-10z"/>
<path id="a7s" class="fil4" d="M2021 8955c3,8 8,14 15,20 6,6 14,9 22,12 9,3 18,5 28,5 14,0 28,-3 42,-9 13,-6 26,-13 37,-22l1 0 4 26 40 0 0 -124c0,-29 -8,-52 -23,-68 -15,-15 -38,-23 -67,-23 -18,0 -35,3 -52,9 -17,6 -31,13 -44,20l18 33c11,-6 22,-11 34,-16 12,-4 23,-6 35,-6 17,0 29,4 37,12 8,8 12,18 13,29 -26,2 -48,5 -66,9 -18,4 -33,9 -45,15 -12,6 -20,14 -26,23 -6,9 -8,20 -8,31 0,9 2,18 5,25l0 0zm47 -44c3,-5 9,-9 16,-12 7,-4 18,-7 30,-9 12,-2 28,-4 47,-6l0 44c-10,8 -19,14 -29,18 -10,5 -20,7 -31,7 -11,0 -19,-2 -26,-6 -7,-4 -11,-11 -11,-21 0,-6 2,-11 5,-16l0 0z"/>
<path id="a7" class="fil5" d="M2010 8943c3,8 8,14 15,20 6,6 14,9 22,12 9,3 18,5 28,5 14,0 28,-3 42,-9 13,-6 26,-13 37,-22l1 0 4 26 40 0 0 -124c0,-29 -8,-52 -23,-68 -15,-15 -38,-23 -67,-23 -18,0 -35,3 -52,9 -17,6 -31,13 -44,20l18 33c11,-6 22,-11 34,-16 12,-4 23,-6 35,-6 17,0 29,4 37,12 8,8 12,18 13,29 -26,2 -48,5 -66,9 -18,4 -33,9 -45,15 -12,6 -20,14 -26,23 -6,9 -8,20 -8,31 0,9 2,18 5,25l0 0zm47 -44c3,-5 9,-9 16,-12 7,-4 18,-7 30,-9 12,-2 28,-4 47,-6l0 44c-10,8 -19,14 -29,18 -10,5 -20,7 -31,7 -11,0 -19,-2 -26,-6 -7,-4 -11,-11 -11,-21 0,-6 2,-11 5,-16l0 0z"/>
<path id="a8s" class="fil4" d="M2026 9463c4,7 9,14 15,18 6,5 14,9 22,12 9,3 18,4 27,4 15,0 29,-3 44,-10 14,-6 27,-15 38,-23l1 0 3 28 29 0 0 -127c0,-26 -7,-47 -21,-62 -14,-15 -35,-23 -64,-23 -9,0 -18,1 -27,3 -9,2 -17,4 -25,7 -8,3 -15,6 -22,9 -7,4 -13,7 -18,11l14 24c10,-6 21,-12 33,-17 12,-5 26,-8 39,-8 10,0 18,1 26,4 7,3 12,6 17,11 4,5 7,10 9,17 2,6 3,13 3,20 -27,2 -50,6 -69,9 -19,4 -35,9 -47,15 -12,6 -21,14 -26,22 -6,9 -9,19 -9,31 0,9 2,18 6,25l0 0zm34 -46c4,-6 10,-10 19,-15 9,-4 21,-8 36,-11 15,-3 33,-6 56,-7l0 55c-12,10 -23,18 -35,23 -12,6 -23,8 -35,8 -6,0 -12,-1 -17,-2 -6,-1 -11,-3 -15,-6 -4,-3 -8,-6 -10,-10 -3,-4 -4,-9 -4,-15 0,-7 2,-13 6,-19l0 0z"/>
<path id="a8" class="fil5" d="M2015 9450c4,7 9,14 15,18 6,5 14,9 22,12 9,3 18,4 27,4 15,0 29,-3 44,-10 14,-6 27,-15 38,-23l1 0 3 28 29 0 0 -127c0,-26 -7,-47 -21,-62 -14,-15 -35,-23 -64,-23 -9,0 -18,1 -27,3 -9,2 -17,4 -25,7 -8,3 -15,6 -22,9 -7,4 -13,7 -18,11l14 24c10,-6 21,-12 33,-17 12,-5 26,-8 39,-8 10,0 18,1 26,4 7,3 12,6 17,11 4,5 7,10 9,17 2,6 3,13 3,20 -27,2 -50,6 -69,9 -19,4 -35,9 -47,15 -12,6 -21,14 -26,22 -6,9 -9,19 -9,31 0,9 2,18 6,25l0 0zm34 -46c4,-6 10,-10 19,-15 9,-4 21,-8 36,-11 15,-3 33,-6 56,-7l0 55c-12,10 -23,18 -35,23 -12,6 -24,8 -35,8 -6,0 -12,-1 -17,-2 -6,-1 -11,-3 -15,-6 -4,-3 -8,-6 -10,-10 -3,-4 -4,-9 -4,-15 0,-7 2,-13 6,-19l0 0z"/>
<path id="a9s" class="fil4" d="M2031 9971c4,7 9,13 16,18 6,5 14,8 23,10 9,2 18,3 26,3 15,0 31,-4 46,-11 15,-7 28,-15 40,-25l1 0 2 31 16 0 0 -131c0,-11 -1,-21 -4,-31 -3,-9 -8,-18 -14,-25 -6,-7 -14,-13 -24,-17 -10,-4 -22,-6 -35,-6 -9,0 -18,1 -27,3 -9,2 -17,5 -25,8 -8,3 -15,6 -21,10 -6,4 -12,7 -16,10l9 14c4,-3 9,-6 15,-9 6,-3 12,-6 19,-9 7,-3 14,-5 21,-7 7,-2 15,-3 23,-3 12,0 21,2 29,5 8,4 14,9 19,15 5,6 8,13 10,21 2,8 3,16 3,25 -28,3 -52,6 -71,10 -20,4 -36,9 -49,15 -13,6 -22,14 -28,22 -6,9 -9,18 -9,30 0,10 2,18 6,25l0 0zm20 -48c5,-6 12,-12 23,-18 11,-5 25,-9 43,-13 18,-4 39,-7 65,-9l0 66c-29,25 -57,37 -82,37 -7,0 -14,-1 -20,-3 -7,-1 -13,-4 -18,-7 -6,-3 -10,-7 -13,-12 -3,-5 -5,-12 -5,-19 0,-8 2,-16 7,-22l0 0z"/>
<path id="a9" class="fil5" d="M2020 9958c4,7 9,13 16,18 6,5 14,8 23,10 9,2 18,3 26,3 15,0 31,-4 46,-11 15,-7 28,-15 40,-25l1 0 2 31 16 0 0 -131c0,-11 -1,-21 -4,-31 -3,-9 -8,-18 -14,-25 -6,-7 -14,-13 -24,-17 -10,-4 -22,-6 -35,-6 -9,0 -18,1 -27,3 -9,2 -17,5 -25,8 -8,3 -15,6 -21,10 -6,4 -12,7 -16,10l9 14c4,-3 9,-6 15,-9 6,-3 12,-6 19,-9 7,-3 14,-5 21,-7 7,-2 15,-3 23,-3 12,0 21,2 29,5 8,4 14,9 19,15 5,6 8,13 10,21 2,8 3,16 3,25 -28,3 -52,6 -71,10 -20,4 -36,9 -49,15 -13,6 -22,14 -28,22 -6,9 -9,18 -9,30 0,10 2,18 6,25l0 0zm20 -48c5,-6 12,-12 23,-18 11,-5 25,-9 43,-13 18,-4 39,-7 65,-9l0 66c-29,25 -57,37 -82,37 -7,0 -14,-1 -20,-3 -7,-1 -13,-4 -18,-7 -6,-3 -10,-7 -13,-12 -3,-5 -5,-12 -5,-19 0,-8 2,-16 7,-22l0 0z"/>
<path id="t3s" class="fil4" d="M2457 6892c0,12 1,23 3,32 2,10 6,18 12,26 6,7 13,12 22,16 9,4 20,6 34,6 9,0 20,-1 31,-3 12,-2 22,-6 31,-9l-4 -10c-8,3 -17,6 -26,8 -9,2 -19,3 -31,3 -12,0 -22,-2 -29,-5 -8,-3 -14,-8 -18,-13 -4,-6 -7,-13 -9,-21 -2,-8 -3,-18 -3,-28l0 -119 112 0 0 -12 -112 0 0 -60 -11 0 -2 60 -63 2 0 10 63 0 0 117z"/>
<path id="t3" class="fil5" d="M2446 6879c0,12 1,23 3,32 2,10 6,18 12,26 6,7 13,12 22,16 9,4 20,6 34,6 9,0 20,-1 31,-3 12,-2 22,-6 31,-9l-4 -10c-8,3 -17,6 -26,8 -9,2 -19,3 -31,3 -12,0 -22,-2 -29,-5 -8,-3 -14,-8 -18,-13 -4,-6 -7,-13 -9,-21 -2,-8 -3,-18 -3,-28l0 -119 112 0 0 -12 -112 0 0 -60 -11 0 -2 60 -63 2 0 10 63 0 0 117z"/>
<path id="t4s" class="fil4" d="M2454 7395c0,12 1,23 4,33 2,10 6,19 12,26 6,7 13,13 22,17 9,4 21,6 35,6 10,0 21,-1 32,-3 12,-2 22,-6 31,-9l-5 -15c-8,3 -17,6 -26,8 -9,2 -19,3 -29,3 -12,0 -21,-1 -28,-4 -7,-3 -13,-7 -18,-13 -4,-6 -7,-12 -9,-20 -2,-8 -3,-17 -3,-26l0 -114 109 0 0 -16 -109 0 0 -59 -16 0 -3 59 -62 2 0 15 62 0 0 112z"/>
<path id="t4" class="fil5" d="M2443 7383c0,12 1,23 4,33 2,10 6,19 12,26 6,7 13,13 22,17 9,4 21,6 35,6 10,0 21,-1 32,-3 12,-2 22,-6 31,-9l-5 -15c-8,3 -17,6 -26,8 -9,2 -19,3 -29,3 -12,0 -21,-1 -28,-4 -7,-3 -13,-7 -18,-13 -4,-6 -7,-12 -9,-20 -2,-8 -3,-17 -3,-26l0 -114 109 0 0 -16 -109 0 0 -59 -16 0 -3 59 -62 2 0 15 62 0 0 112z"/>
<path id="t5s" class="fil4" d="M2439 7893c0,13 2,26 5,37 3,11 8,21 15,28 6,8 15,14 26,18 11,4 24,6 40,6 13,0 25,-1 36,-4 12,-2 22,-5 31,-8l-9 -36c-7,3 -14,5 -21,6 -7,2 -16,3 -25,3 -18,0 -30,-4 -38,-12 -7,-8 -11,-21 -11,-38l0 -86 96 0 0 -39 -96 0 0 -57 -41 0 -6 57 -58 2 0 37 56 0 0 86z"/>
<path id="t5" class="fil5" d="M2428 7880c0,13 2,26 5,37 3,11 8,21 15,28 6,8 15,14 26,18 11,4 24,6 40,6 13,0 25,-1 36,-4 12,-2 22,-5 31,-8l-9 -36c-7,3 -14,5 -21,6 -7,2 -16,3 -25,3 -18,0 -30,-4 -38,-12 -7,-8 -11,-21 -11,-38l0 -86 96 0 0 -39 -96 0 0 -57 -41 0 -6 57 -58 2 0 37 56 0 0 86z"/>
<path id="t6s" class="fil4" d="M2427 8392c0,14 2,27 5,39 3,12 9,22 17,30 7,9 17,15 29,20 12,5 27,7 44,7 15,0 28,-1 39,-4 12,-2 22,-5 32,-7l-13 -53c-6,2 -12,3 -18,5 -6,1 -14,2 -21,2 -14,0 -24,-3 -31,-9 -7,-6 -11,-16 -11,-31l0 -65 85 0 0 -57 -85 0 0 -56 -61 0 -9 56 -55 3 0 55 51 0 0 66z"/>
<path id="t6" class="fil6" d="M2416 8379c0,14 2,27 5,39 3,12 9,22 17,30 7,9 17,15 29,20 12,5 27,7 44,7 15,0 28,-1 39,-4 12,-2 22,-5 32,-7l-13 -53c-6,2 -12,3 -18,5 -6,1 -14,2 -21,2 -14,0 -24,-3 -31,-9 -7,-6 -11,-16 -11,-31l0 -65 85 0 0 -57 -85 0 0 -56 -61 0 -9 56 -55 3 0 55 51 0 0 66z"/>
<path id="c2s" class="fil4" d="M2776 6406c6,13 13,25 23,34 10,9 21,16 35,21 13,5 28,7 44,7 16,0 31,-3 44,-9 13,-6 24,-14 35,-24l-8 -9c-9,9 -20,17 -32,22 -12,6 -25,9 -39,9 -15,0 -28,-2 -39,-7 -12,-5 -22,-11 -31,-20 -9,-8 -15,-18 -20,-30 -5,-12 -7,-24 -7,-38 0,-14 3,-27 7,-39 5,-12 11,-22 20,-30 9,-8 19,-15 31,-20 12,-5 25,-7 39,-7 13,0 25,3 36,8 10,6 20,12 29,21l9 -9c-4,-4 -9,-8 -14,-12 -5,-4 -10,-7 -16,-10 -6,-3 -12,-5 -20,-7 -7,-2 -15,-3 -23,-3 -15,0 -29,3 -43,7 -13,5 -25,12 -35,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,46 0,17 3,32 9,45l0 0z"/>
<path id="c2" class="fil5" d="M2765 6393c6,13 13,25 23,34 10,9 21,16 35,21 13,5 28,7 44,7 16,0 31,-3 44,-9 13,-6 24,-14 35,-24l-8 -9c-9,9 -20,17 -32,22 -12,6 -25,9 -39,9 -15,0 -28,-2 -39,-7 -12,-5 -22,-11 -31,-20 -9,-8 -15,-18 -20,-30 -5,-12 -7,-24 -7,-38 0,-14 3,-27 7,-39 5,-12 11,-22 20,-30 9,-8 19,-15 31,-20 12,-5 25,-7 39,-7 13,0 25,3 36,8 10,6 20,12 29,21l9 -9c-4,-4 -9,-8 -14,-12 -5,-4 -10,-7 -16,-10 -6,-3 -12,-5 -20,-7 -7,-2 -15,-3 -23,-3 -15,0 -29,3 -43,7 -13,5 -25,12 -35,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,46 0,17 3,32 9,45l0 0z"/>
<path id="c3s" class="fil4" d="M2772 6910c6,14 14,25 24,34 10,9 22,17 36,21 14,5 29,7 45,7 15,0 30,-3 44,-9 14,-6 26,-14 38,-24l-15 -23c-9,7 -18,14 -29,18 -11,5 -23,8 -35,8 -12,0 -23,-2 -32,-6 -10,-4 -18,-9 -25,-16 -7,-7 -12,-15 -16,-25 -4,-10 -6,-21 -6,-32 0,-12 2,-23 6,-33 4,-10 9,-18 17,-25 7,-7 15,-13 25,-17 10,-4 21,-6 33,-6 11,0 21,2 30,6 9,4 18,10 26,18l18 -23c-9,-8 -19,-15 -31,-21 -12,-6 -27,-9 -44,-9 -16,0 -30,3 -44,7 -14,5 -26,12 -37,21 -11,9 -19,21 -25,34 -6,14 -9,29 -9,47 0,17 3,32 9,46l0 0z"/>
<path id="c3" class="fil5" d="M2761 6897c6,14 14,25 24,34 10,9 22,17 36,21 14,5 29,7 45,7 15,0 30,-3 44,-9 14,-6 26,-14 38,-24l-15 -23c-9,7 -18,14 -29,18 -11,5 -23,8 -35,8 -12,0 -23,-2 -32,-6 -10,-4 -18,-9 -25,-16 -7,-7 -12,-15 -16,-25 -4,-10 -6,-21 -6,-32 0,-12 2,-23 6,-33 4,-10 9,-18 17,-25 7,-7 15,-13 25,-17 10,-4 21,-6 33,-6 11,0 21,2 30,6 9,4 18,10 26,18l18 -23c-9,-8 -19,-15 -31,-21 -12,-6 -27,-9 -44,-9 -16,0 -30,3 -44,7 -14,5 -26,12 -37,21 -11,9 -19,21 -25,34 -6,14 -9,29 -9,47 0,17 3,32 9,46l0 0z"/>
<path id="c4s" class="fil4" d="M2769 7414c6,14 14,25 24,35 10,9 23,17 37,21 14,5 29,7 46,7 15,0 30,-3 45,-8 15,-5 28,-13 40,-23l-21 -32c-8,6 -17,12 -27,16 -10,5 -21,7 -33,7 -10,0 -20,-2 -28,-5 -9,-3 -16,-8 -22,-14 -6,-6 -11,-13 -15,-22 -3,-9 -5,-18 -5,-29 0,-21 6,-38 20,-51 13,-12 30,-19 51,-19 9,0 18,2 27,5 8,3 17,9 25,15l24 -31c-9,-8 -20,-15 -32,-21 -13,-6 -28,-9 -45,-9 -16,0 -31,3 -46,7 -15,5 -27,12 -38,22 -11,9 -19,21 -26,35 -6,14 -10,29 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c4" class="fil5" d="M2758 7402c6,14 14,25 24,35 10,9 23,17 37,21 14,5 29,7 46,7 15,0 30,-3 45,-8 15,-5 28,-13 40,-24l-21 -32c-8,6 -17,12 -27,16 -10,5 -21,7 -33,7 -10,0 -20,-2 -28,-5 -9,-3 -16,-8 -22,-14 -6,-6 -11,-13 -15,-22 -3,-9 -5,-18 -5,-29 0,-21 6,-38 20,-51 13,-12 30,-19 51,-19 9,0 18,2 27,5 8,3 17,9 25,15l24 -31c-9,-8 -20,-15 -32,-21 -13,-6 -28,-9 -45,-9 -16,0 -31,3 -46,7 -15,5 -27,12 -38,22 -11,9 -19,21 -26,35 -6,14 -10,29 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c5s" class="fil4" d="M2767 7918c6,14 15,26 25,35 11,9 23,17 37,21 14,5 30,8 47,8 15,0 29,-3 45,-8 15,-5 29,-13 42,-24l-26 -40c-7,6 -16,10 -25,14 -9,4 -20,6 -31,6 -18,0 -32,-6 -43,-16 -11,-11 -17,-26 -17,-44 0,-18 6,-33 17,-44 12,-11 26,-16 44,-16 16,0 31,6 47,17l29 -39c-9,-8 -21,-15 -34,-20 -14,-6 -29,-8 -46,-8 -16,0 -32,3 -47,7 -15,5 -28,12 -39,22 -12,9 -21,21 -27,35 -7,14 -10,30 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c5" class="fil5" d="M2756 7906c6,14 15,26 25,35 11,9 23,17 37,21 14,5 30,8 47,8 15,0 29,-3 45,-8 15,-5 29,-13 42,-24l-26 -40c-7,6 -16,10 -25,14 -9,4 -20,6 -31,6 -18,0 -32,-6 -43,-16 -11,-11 -17,-26 -17,-44 0,-18 6,-33 17,-44 12,-11 26,-16 44,-16 16,0 31,6 47,17l29 -39c-9,-8 -20,-15 -34,-20 -14,-6 -29,-8 -46,-8 -16,0 -32,3 -47,7 -15,5 -28,12 -39,22 -12,9 -21,21 -27,35 -7,14 -10,30 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c6s" class="fil4" d="M2765 8423c6,14 15,26 25,35 11,10 23,17 38,22 15,5 30,8 47,8 14,0 29,-3 45,-7 16,-5 31,-13 44,-23l-29 -46c-7,5 -15,9 -24,12 -9,4 -18,6 -29,6 -15,0 -27,-5 -37,-15 -10,-9 -15,-22 -15,-38 0,-16 5,-29 15,-39 10,-9 23,-14 39,-14 7,0 14,1 21,3 7,2 14,6 22,12l33 -45c-9,-9 -21,-15 -35,-21 -14,-5 -29,-8 -46,-8 -17,0 -32,3 -47,7 -15,5 -28,12 -40,22 -12,10 -21,21 -28,35 -7,14 -10,30 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c6" class="fil6" d="M2754 8410c6,14 15,26 25,35 11,10 23,17 38,22 15,5 30,8 47,8 14,0 29,-3 45,-7 16,-5 31,-13 44,-23l-29 -46c-7,5 -15,9 -24,12 -9,4 -18,6 -29,6 -15,0 -27,-5 -37,-15 -10,-9 -15,-22 -15,-38 0,-16 5,-29 15,-39 10,-9 23,-14 39,-14 7,0 14,1 21,3 7,2 14,6 22,12l33 -45c-9,-9 -21,-15 -35,-21 -14,-5 -29,-8 -46,-8 -17,0 -32,3 -47,7 -15,5 -28,12 -40,22 -12,10 -21,21 -28,35 -7,14 -10,30 -10,47 0,18 3,33 9,47l0 0z"/>
<path id="c7s" class="fil4" d="M2772 8929c6,14 14,25 24,34 10,9 22,17 36,21 14,5 29,7 45,7 15,0 30,-3 44,-9 14,-6 26,-14 38,-24l-15 -23c-9,7 -18,14 -29,18 -11,5 -23,8 -35,8 -12,0 -23,-2 -32,-6 -10,-4 -18,-9 -25,-16 -7,-7 -12,-15 -16,-25 -4,-10 -6,-21 -6,-32 0,-12 2,-23 6,-33 4,-10 9,-18 17,-25 7,-7 15,-13 25,-17 10,-4 21,-6 33,-6 11,0 21,2 30,6 9,4 18,10 26,18l18 -23c-9,-8 -19,-15 -31,-21 -12,-6 -27,-9 -44,-9 -16,0 -30,3 -44,7 -14,5 -26,12 -37,21 -11,9 -19,21 -25,34 -6,14 -9,29 -9,47 0,17 3,32 9,46l0 0z"/>
<path id="c7" class="fil5" d="M2761 8917c6,14 14,25 24,34 10,9 22,17 36,21 14,5 29,7 45,7 15,0 30,-3 44,-9 14,-6 26,-14 38,-24l-15 -23c-9,7 -18,14 -29,18 -11,5 -23,8 -35,8 -12,0 -23,-2 -32,-6 -10,-4 -18,-9 -25,-16 -7,-7 -12,-15 -16,-25 -4,-10 -6,-21 -6,-32 0,-12 2,-23 6,-33 4,-10 9,-18 17,-25 7,-7 15,-13 25,-17 10,-4 21,-6 33,-6 11,0 21,2 30,6 9,4 18,10 26,18l18 -23c-9,-8 -19,-15 -31,-21 -12,-6 -27,-9 -44,-9 -16,0 -30,3 -44,7 -14,5 -26,12 -37,21 -11,9 -19,21 -25,34 -6,14 -9,29 -9,47 0,17 3,32 9,46l0 0z"/>
<path id="c9s" class="fil4" d="M2775 9435c6,13 13,25 23,34 10,9 22,16 35,21 13,5 28,7 44,7 16,0 31,-3 44,-9 13,-6 25,-14 35,-24l-10 -13c-9,9 -19,15 -31,21 -12,6 -24,9 -38,9 -14,0 -26,-2 -38,-7 -12,-4 -21,-10 -29,-18 -8,-8 -14,-18 -18,-29 -5,-11 -7,-23 -7,-37 0,-14 2,-26 7,-37 4,-11 11,-21 19,-29 8,-8 18,-14 29,-19 12,-4 24,-6 38,-6 13,0 24,3 34,7 10,5 19,12 28,20l11 -13c-9,-8 -19,-15 -30,-22 -12,-6 -26,-9 -44,-9 -15,0 -30,3 -43,7 -14,5 -26,12 -36,21 -10,9 -18,21 -24,34 -6,14 -9,29 -9,46 0,17 3,32 9,45l0 0z"/>
<path id="c8" class="fil5" d="M2764 9423c6,13 13,25 23,34 10,9 22,16 35,21 13,5 28,7 44,7 16,0 31,-3 44,-9 13,-6 25,-14 35,-24l-10 -13c-9,9 -19,15 -31,21 -12,6 -24,9 -38,9 -14,0 -26,-2 -38,-7 -12,-4 -21,-10 -29,-18 -8,-8 -14,-18 -18,-29 -5,-11 -7,-24 -7,-37 0,-14 2,-26 7,-37 4,-11 11,-21 19,-29 8,-8 18,-14 29,-19 12,-4 24,-6 38,-6 13,0 24,3 34,7 10,5 19,12 28,20l11 -13c-9,-8 -19,-15 -30,-22 -12,-6 -26,-9 -44,-9 -15,0 -30,3 -43,7 -14,5 -26,12 -36,21 -10,9 -18,21 -24,34 -6,14 -9,29 -9,46 0,17 3,32 9,45l0 0z"/>
<path id="h6s" class="fil4" d="M3128 8482l73 0 0 -140c6,-5 11,-9 16,-12 5,-3 11,-4 18,-4 9,0 16,3 20,8 3,6 5,14 5,26l0 122 73 0 0 -132c0,-27 -6,-48 -16,-64 -11,-16 -28,-24 -51,-24 -16,0 -29,3 -41,9 -12,6 -21,12 -28,19l4 -38 0 -69 -73 0 0 297z"/>
<path id="h6" class="fil6" d="M3117 8470l73 0 0 -140c6,-5 11,-9 16,-12 5,-3 11,-4 18,-4 9,0 16,3 20,8 3,6 5,14 5,26l0 122 73 0 0 -132c0,-26 -6,-48 -16,-64 -11,-16 -28,-23 -51,-23 -16,0 -29,3 -41,9 -12,6 -21,12 -28,19l4 -38 0 -69 -73 0 0 297z"/>
<path id="h7s" class="fil4" d="M3136 8987l50 0 0 -143c10,-10 18,-18 26,-22 8,-5 17,-7 27,-7 15,0 25,4 31,12 6,8 9,21 9,38l0 123 50 0 0 -130c0,-27 -6,-48 -17,-63 -12,-15 -29,-22 -53,-22 -16,0 -30,3 -42,11 -12,7 -23,15 -33,25l3 -45 0 -78 -50 0 0 302z"/>
<path id="h7" class="fil5" d="M3125 8974l50 0 0 -143c10,-10 18,-18 26,-22 8,-5 17,-7 27,-7 15,0 25,4 31,12 6,8 9,21 9,38l0 123 50 0 0 -130c0,-27 -6,-48 -17,-63 -12,-15 -29,-22 -53,-22 -16,0 -30,3 -42,11 -12,7 -23,15 -33,25l3 -45 0 -78 -50 0 0 302z"/>
<path id="h8s" class="fil4" d="M3141 9492l35 0 0 -145c6,-6 12,-12 17,-17 6,-5 11,-9 16,-12 5,-3 10,-6 16,-7 5,-1 11,-2 17,-2 17,0 29,5 37,14 7,10 11,24 11,44l0 124 35 0 0 -129c0,-28 -6,-49 -17,-63 -12,-14 -30,-21 -55,-21 -16,0 -31,4 -43,12 -12,8 -24,18 -35,29l2 -49 0 -83 -35 0 0 304z"/>
<path id="h8" class="fil5" d="M3130 9479l35 0 0 -145c6,-6 12,-12 17,-17 6,-5 11,-9 16,-12 5,-3 10,-6 16,-7 5,-1 11,-2 17,-2 17,0 29,5 37,14 7,10 11,24 11,44l0 124 35 0 0 -129c0,-28 -6,-49 -17,-63 -12,-14 -30,-21 -55,-21 -16,0 -31,4 -43,12 -12,8 -24,18 -35,29l2 -49 0 -83 -35 0 0 304z"/>
<path id="h9s" class="fil4" d="M3146 9997l19 0 0 -147c7,-8 15,-15 21,-20 6,-6 12,-11 19,-15 6,-4 12,-6 18,-9 6,-2 13,-3 21,-3 21,0 35,6 44,17 9,11 13,28 13,51l0 125 19 0 0 -128c0,-55 -25,-82 -74,-82 -17,0 -31,4 -44,13 -13,9 -26,20 -39,33l1 -54 0 -89 -19 0 0 307z"/>
<path id="h9" class="fil5" d="M3135 9984l19 0 0 -147c7,-8 15,-15 21,-21 6,-6 12,-11 19,-15 6,-4 12,-6 18,-9 6,-2 13,-3 21,-3 21,0 35,6 44,17 9,11 13,28 13,51l0 125 19 0 0 -128c0,-55 -25,-82 -74,-82 -17,0 -31,4 -44,13 -13,9 -26,20 -39,33l1 -54 0 -89 -19 0 0 307z"/>
<path id="g7s" class="fil4" d="M3848 9002c2,-2 4,-5 8,-7 4,1 8,1 13,2 5,0 12,1 20,1l21 0c11,0 19,1 25,2 6,1 9,5 9,11 0,6 -5,11 -14,14 -9,4 -21,6 -36,6 -15,0 -26,-2 -35,-5 -9,-3 -13,-8 -13,-15 0,-3 1,-6 3,-8l0 0zm-54 44c5,7 12,12 21,17 9,4 19,7 31,9 12,2 24,3 37,3 20,0 38,-2 54,-6 16,-4 29,-9 41,-16 12,-7 20,-15 26,-25 6,-9 9,-20 9,-32 0,-20 -8,-34 -23,-43 -15,-9 -37,-13 -66,-13l-36 0c-12,0 -21,-1 -26,-3 -5,-2 -8,-5 -8,-10 0,-3 0,-6 2,-7 1,-1 3,-3 5,-5 10,2 19,3 27,3 13,0 25,-1 36,-4 11,-3 21,-7 29,-12 8,-6 14,-13 19,-22 5,-9 7,-20 7,-32 0,-4 0,-9 -2,-12 -1,-4 -3,-7 -4,-10l38 0 0 -53 -86 0c-11,-3 -23,-5 -36,-5 -12,0 -24,2 -35,5 -12,3 -21,8 -30,14 -9,6 -16,15 -21,24 -5,10 -8,21 -8,35 0,12 3,23 9,33 6,9 12,17 21,22l0 2c-7,5 -14,11 -18,18 -5,7 -7,15 -7,22 0,9 2,17 6,22 4,6 9,11 15,15l0 2c-22,10 -32,24 -32,41 0,10 3,18 8,24l0 0zm76 -178c-5,-5 -8,-12 -8,-23 0,-10 3,-18 8,-22 5,-5 11,-7 18,-7 7,0 13,2 18,7 5,5 8,12 8,22 0,10 -3,18 -8,23 -5,5 -11,7 -18,7 -7,0 -13,-3 -18,-7l0 0z"/>
<path id="g7" class="fil6" d="M3837 8989c2,-2 4,-5 8,-7 4,1 8,1 13,2 5,0 12,1 20,1l21 0c11,0 19,1 25,2 6,1 9,5 9,11 0,6 -5,11 -14,14 -9,4 -21,6 -36,6 -15,0 -26,-2 -35,-5 -9,-3 -13,-8 -13,-15 0,-3 1,-6 3,-8l0 0zm-54 44c5,7 12,12 21,17 9,4 19,7 31,9 12,2 24,3 37,3 20,0 38,-2 54,-6 16,-4 29,-9 41,-16 12,-7 20,-15 26,-25 6,-9 9,-20 9,-32 0,-20 -8,-34 -23,-43 -15,-9 -37,-13 -66,-13l-36 0c-12,0 -21,-1 -26,-3 -5,-2 -8,-5 -8,-10 0,-3 0,-6 2,-7 1,-1 3,-3 5,-5 10,2 19,3 27,3 13,0 25,-1 36,-4 11,-3 21,-7 29,-12 8,-6 14,-13 19,-22 5,-9 7,-20 7,-32 0,-4 0,-9 -2,-12 -1,-4 -3,-7 -4,-10l38 0 0 -53 -86 0c-11,-3 -23,-5 -36,-5 -12,0 -24,2 -35,5 -12,3 -21,8 -30,14 -9,6 -16,15 -21,24 -5,10 -8,21 -8,35 0,12 3,23 9,33 6,9 12,17 21,22l0 2c-7,5 -14,11 -18,18 -5,7 -7,15 -7,22 0,9 2,17 6,22 4,6 9,11 15,15l0 2c-22,10 -32,24 -32,41 0,10 3,18 8,24l0 0zm76 -178c-5,-5 -8,-12 -8,-23 0,-10 3,-18 8,-22 5,-5 11,-7 18,-7 7,0 13,2 18,7 5,5 8,12 8,22 0,10 -3,18 -8,23 -5,5 -11,7 -18,7 -7,0 -13,-3 -18,-7l0 0z"/>
<path id="e4s" class="fil4" d="M4182 7415c6,13 13,24 23,33 10,9 21,17 34,21 13,5 26,7 41,7 9,0 18,-1 25,-2 7,-1 14,-3 21,-6 6,-2 12,-5 17,-8 5,-3 9,-6 14,-9l-6 -11c-10,7 -20,12 -32,17 -12,4 -24,6 -38,6 -14,0 -27,-3 -38,-7 -12,-5 -21,-11 -29,-20 -8,-9 -15,-19 -19,-30 -5,-12 -7,-24 -7,-38l178 0c0,-3 1,-5 1,-7 0,-2 0,-4 0,-6 0,-15 -2,-28 -6,-40 -4,-12 -10,-21 -18,-29 -8,-8 -18,-14 -29,-18 -11,-4 -23,-6 -37,-6 -13,0 -25,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,28 -9,45 0,17 3,32 9,45l0 0zm5 -57c1,-13 5,-24 10,-35 6,-10 12,-19 20,-26 8,-7 17,-13 26,-17 10,-4 21,-6 31,-6 23,0 42,7 56,21 14,14 21,35 21,63l-166 0z"/>
<path id="e4" class="fil5" d="M4171 7403c6,13 13,24 23,33 10,9 21,17 34,21 13,5 26,7 41,7 9,0 18,-1 25,-2 7,-1 14,-3 21,-6 6,-2 12,-5 17,-8 5,-3 9,-6 14,-9l-6 -11c-10,7 -20,12 -32,17 -12,4 -24,6 -38,6 -14,0 -27,-3 -38,-7 -12,-5 -21,-11 -29,-20 -8,-9 -15,-19 -19,-30 -5,-12 -7,-24 -7,-38l178 0c0,-3 1,-5 1,-7 0,-2 0,-4 0,-6 0,-15 -2,-28 -6,-40 -4,-12 -10,-21 -18,-29 -8,-8 -18,-14 -29,-18 -11,-4 -24,-6 -37,-6 -13,0 -25,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,28 -9,45 0,17 3,32 9,45l0 0zm5 -57c1,-13 5,-24 10,-35 6,-10 12,-19 20,-26 8,-7 17,-13 26,-17 10,-4 21,-6 31,-6 23,0 42,7 56,21 14,14 21,35 21,63l-166 0z"/>
<path id="e5s" class="fil4" d="M4181 7920c6,13 14,25 23,34 10,9 21,17 34,21 13,5 27,7 42,7 18,0 33,-3 45,-8 12,-5 23,-10 32,-16l-8 -15c-10,6 -20,12 -31,16 -11,4 -23,6 -37,6 -13,0 -26,-2 -36,-7 -11,-4 -21,-10 -28,-18 -8,-8 -14,-17 -18,-28 -5,-11 -7,-23 -7,-35l174 0c0,-3 1,-5 1,-8 0,-3 0,-5 0,-8 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-30 -8,-8 -18,-14 -29,-19 -12,-4 -24,-6 -38,-6 -13,0 -26,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,45 0,17 3,32 9,45l0 0zm11 -58c1,-12 5,-23 10,-33 5,-10 12,-18 19,-25 7,-7 16,-12 25,-16 9,-3 19,-5 29,-5 22,0 40,6 53,20 13,13 20,33 20,59l-156 0z"/>
<path id="e5" class="fil5" d="M4170 7907c6,13 14,25 24,34 10,9 21,17 34,21 13,5 27,7 42,7 18,0 33,-3 45,-8 12,-5 23,-10 32,-16l-8 -15c-10,6 -20,12 -31,16 -11,4 -24,6 -37,6 -13,0 -26,-2 -36,-7 -11,-4 -21,-10 -28,-18 -8,-8 -14,-17 -18,-28 -5,-11 -7,-23 -7,-35l174 0c0,-3 1,-5 1,-8 0,-3 0,-5 0,-8 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-30 -8,-8 -18,-14 -29,-19 -12,-4 -24,-6 -38,-6 -13,0 -26,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,45 0,17 3,32 9,45l0 0zm11 -58c1,-12 5,-23 10,-33 5,-10 12,-18 19,-25 7,-7 16,-12 25,-16 9,-3 19,-5 29,-5 22,0 40,6 53,20 13,13 20,33 20,59l-156 0z"/>
<path id="e6s" class="fil4" d="M4175 8424c6,14 14,25 24,35 10,9 22,17 36,21 14,5 29,8 45,8 15,0 30,-2 44,-7 14,-5 26,-10 38,-18l-17 -31c-10,6 -19,9 -29,12 -9,3 -20,5 -30,5 -19,0 -35,-5 -48,-15 -13,-10 -21,-24 -22,-43l153 0c0,-3 1,-6 2,-10 0,-4 0,-9 0,-14 0,-15 -2,-28 -6,-40 -4,-12 -11,-23 -19,-32 -8,-9 -18,-15 -30,-21 -12,-5 -26,-7 -42,-7 -14,0 -27,3 -40,7 -13,5 -25,12 -35,22 -10,10 -18,21 -24,35 -6,14 -9,29 -9,46 0,18 3,33 9,46l0 0zm41 -66c3,-17 10,-30 21,-39 11,-9 24,-13 38,-13 17,0 29,5 38,14 9,9 13,22 13,38l-110 0z"/>
<path id="e6" class="fil5" d="M4164 8411c6,14 14,25 24,35 10,9 22,17 36,21 14,5 29,8 45,8 15,0 30,-2 44,-7 14,-5 26,-10 38,-18l-17 -31c-10,6 -19,9 -29,12 -9,3 -20,5 -30,5 -19,0 -35,-5 -48,-15 -13,-10 -20,-24 -22,-43l153 0c0,-3 1,-6 2,-10 0,-4 0,-9 0,-14 0,-15 -2,-28 -6,-40 -4,-12 -11,-23 -19,-32 -8,-9 -18,-15 -30,-21 -12,-5 -26,-7 -42,-7 -14,0 -27,3 -40,7 -13,5 -25,12 -35,22 -10,10 -18,21 -24,35 -6,14 -9,29 -9,46 0,18 3,33 9,46l0 0zm41 -66c3,-17 10,-30 21,-39 11,-9 24,-13 38,-13 17,0 29,5 38,14 9,9 13,22 13,38l-110 0z"/>
<path id="e7s" class="fil4" d="M4170 8928c6,14 15,26 25,35 11,10 23,17 38,22 15,5 30,8 47,8 13,0 28,-2 43,-6 15,-4 29,-10 42,-18l-24 -44c-9,4 -18,7 -26,9 -8,2 -17,3 -25,3 -6,0 -13,0 -19,-2 -6,-1 -12,-3 -16,-6 -5,-3 -9,-6 -13,-11 -3,-4 -6,-10 -7,-16l135 0c0,-3 1,-7 2,-12 0,-6 1,-12 1,-18 0,-14 -2,-28 -6,-40 -4,-12 -11,-24 -19,-33 -9,-9 -19,-17 -32,-22 -13,-6 -28,-8 -44,-8 -14,0 -28,3 -41,8 -14,5 -26,12 -36,22 -11,10 -19,21 -25,35 -6,14 -9,29 -9,47 0,18 3,33 9,47l0 0zm65 -73c3,-11 8,-19 15,-24 7,-5 15,-7 24,-7 12,0 21,3 26,9 5,6 7,13 7,22l-73 0z"/>
<path id="e7" class="fil6" d="M4159 8915c6,14 15,26 25,35 11,10 23,17 38,22 15,5 30,8 47,8 13,0 28,-2 43,-6 15,-4 29,-10 42,-18l-24 -44c-9,4 -18,7 -26,9 -8,2 -17,3 -25,3 -6,0 -13,0 -19,-2 -6,-1 -12,-3 -16,-6 -5,-3 -9,-6 -13,-11 -3,-4 -6,-10 -7,-16l135 0c0,-3 1,-7 2,-12 0,-6 1,-12 1,-18 0,-14 -2,-28 -6,-40 -4,-12 -11,-24 -19,-33 -9,-9 -19,-17 -32,-22 -13,-6 -28,-8 -44,-8 -14,0 -28,3 -41,8 -14,5 -26,12 -36,22 -11,10 -19,21 -25,35 -6,14 -9,29 -9,47 0,18 3,33 9,47l0 0zm65 -73c3,-11 8,-19 15,-24 7,-5 15,-7 24,-7 12,0 21,3 26,9 5,6 7,13 7,22l-73 0z"/>
<path id="e8s" class="fil4" d="M4178 9434c6,13 14,25 24,34 10,9 22,17 35,21 13,5 28,8 43,8 17,0 32,-3 45,-7 13,-5 25,-11 35,-17l-12 -23c-10,6 -20,11 -29,14 -10,3 -21,5 -34,5 -12,0 -22,-2 -31,-5 -10,-3 -18,-8 -25,-15 -7,-6 -13,-14 -17,-23 -4,-9 -6,-19 -7,-30l162 0c0,-3 1,-6 1,-9 0,-3 0,-7 0,-11 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-31 -8,-9 -18,-15 -30,-20 -12,-5 -25,-7 -40,-7 -13,0 -26,3 -39,7 -13,5 -24,12 -34,22 -10,9 -18,21 -24,34 -6,14 -9,29 -9,46 0,17 3,32 9,46zm27 -63c1,-10 4,-19 9,-27 4,-8 9,-15 16,-20 6,-6 13,-9 21,-12 8,-3 16,-4 24,-4 19,0 35,6 45,17 11,11 16,27 16,48l-132 0z"/>
<path id="e8" class="fil5" d="M4167 9422c6,13 14,25 24,34 10,9 22,17 35,21 13,5 28,8 43,8 17,0 32,-3 45,-7 13,-5 25,-11 35,-17l-12 -23c-10,6 -20,11 -29,14 -10,3 -21,5 -34,5 -12,0 -22,-2 -31,-5 -10,-3 -18,-8 -25,-15 -7,-6 -13,-14 -17,-23 -4,-9 -6,-19 -7,-30l162 0c0,-3 1,-6 1,-9 0,-3 0,-7 0,-11 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-31 -8,-9 -18,-15 -30,-20 -12,-5 -25,-7 -40,-7 -13,0 -26,3 -39,7 -13,5 -24,12 -34,22 -10,9 -18,21 -24,34 -6,14 -9,29 -9,46 0,17 3,32 9,46l0 0zm27 -63c1,-10 4,-19 9,-27 4,-8 9,-15 16,-20 6,-6 13,-9 21,-12 8,-3 16,-4 24,-4 19,0 35,6 45,17 11,11 16,27 16,48l-132 0z"/>
<path id="e9s" class="fil4" d="M4181 9940c6,13 14,25 23,34 10,9 21,17 34,21 13,5 27,7 42,7 18,0 33,-3 45,-8 12,-5 23,-10 32,-16l-8 -15c-10,6 -20,12 -31,16 -11,4 -23,6 -37,6 -13,0 -26,-2 -36,-7 -11,-4 -21,-10 -28,-18 -8,-8 -14,-17 -18,-28 -5,-11 -7,-23 -7,-35l174 0c0,-3 1,-5 1,-8 0,-3 0,-5 0,-8 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-30 -8,-8 -18,-14 -29,-19 -12,-4 -24,-6 -38,-6 -13,0 -26,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,45 0,17 3,32 9,45l0 0zm11 -58c1,-12 5,-23 10,-33 5,-10 12,-18 19,-25 7,-7 16,-12 25,-16 9,-3 19,-5 29,-5 22,0 40,6 53,20 13,13 20,33 20,59l-156 0z"/>
<path id="e9" class="fil5" d="M4170 9927c6,13 14,25 24,34 10,9 21,17 34,21 13,5 27,7 42,7 18,0 33,-3 45,-8 12,-5 23,-10 32,-16l-8 -15c-10,6 -20,12 -31,16 -11,4 -24,6 -37,6 -13,0 -26,-2 -36,-7 -11,-4 -21,-10 -28,-18 -8,-8 -14,-17 -18,-28 -5,-11 -7,-23 -7,-35l174 0c0,-3 1,-5 1,-8 0,-3 0,-5 0,-8 0,-15 -2,-28 -6,-40 -4,-12 -10,-22 -18,-30 -8,-8 -18,-14 -29,-19 -12,-4 -24,-6 -38,-6 -13,0 -26,3 -38,7 -12,5 -23,12 -32,21 -10,9 -18,21 -23,34 -6,13 -9,29 -9,45 0,17 3,32 9,45l0 0zm11 -58c1,-12 5,-23 10,-33 5,-10 12,-18 19,-25 7,-7 16,-12 25,-16 9,-3 19,-5 29,-5 22,0 40,6 53,20 13,13 20,33 20,59l-156 0z"/>
<path id="hh3s" class="fil4" d="M4556 6967l19 0 0 -147c7,-8 15,-15 21,-21 6,-6 12,-11 19,-15 6,-4 12,-6 18,-9 6,-2 13,-3 21,-3 21,0 35,6 44,17 9,11 13,28 13,51l0 125 19 0 0 -128c0,-55 -25,-82 -74,-82 -17,0 -31,4 -44,13 -13,9 -26,20 -39,33l1 -54 0 -89 -19 0 0 307z"/>
<path id="hh3" class="fil5" d="M4545 6955l19 0 0 -147c7,-8 15,-15 21,-20 6,-6 12,-11 19,-15 6,-4 12,-6 18,-9 6,-2 13,-3 21,-3 21,0 35,6 44,17 9,11 13,28 13,51l0 125 19 0 0 -128c0,-55 -25,-82 -74,-82 -17,0 -31,4 -44,13 -13,9 -26,20 -39,33l1 -54 0 -89 -19 0 0 307z"/>
<path id="hh4s" class="fil4" d="M4551 7472l35 0 0 -145c6,-6 12,-12 17,-17 6,-5 11,-9 16,-12 5,-3 10,-6 16,-7 5,-1 11,-2 17,-2 17,0 29,5 37,14 7,10 11,24 11,44l0 124 35 0 0 -129c0,-28 -6,-49 -17,-63 -12,-14 -30,-21 -55,-21 -16,0 -31,4 -43,12 -12,8 -24,18 -35,29l2 -49 0 -83 -35 0 0 304z"/>
<path id="hh4" class="fil5" d="M4540 7460l35 0 0 -145c6,-6 12,-12 17,-17 6,-5 11,-9 16,-12 5,-3 10,-6 16,-7 5,-1 11,-2 17,-2 17,0 29,5 37,14 7,10 11,24 11,44l0 124 35 0 0 -129c0,-28 -6,-49 -17,-63 -12,-14 -30,-21 -55,-21 -16,0 -31,4 -43,12 -12,8 -24,18 -35,29l2 -49 0 -83 -35 0 0 304z"/>
<path id="hh5s" class="fil4" d="M4548 7977l42 0 0 -144c11,-11 20,-20 29,-25 9,-6 19,-8 30,-8 16,0 27,4 34,13 6,9 10,22 10,41l0 124 42 0 0 -129c0,-27 -6,-48 -17,-63 -12,-15 -29,-22 -54,-22 -16,0 -30,4 -43,11 -12,7 -23,17 -34,27l3 -47 0 -80 -42 0 0 303z"/>
<path id="hh5" class="fil5" d="M4537 7965l42 0 0 -144c11,-11 21,-20 29,-25 9,-6 19,-8 30,-8 16,0 27,4 34,13 6,9 10,22 10,41l0 124 42 0 0 -129c0,-27 -6,-48 -17,-63 -12,-15 -29,-22 -54,-22 -16,0 -30,4 -43,11 -12,7 -23,17 -34,27l3 -47 0 -80 -42 0 0 303z"/>
<path id="hh6s" class="fil4" d="M4542 8482l63 0 0 -141c7,-7 15,-13 21,-17 6,-4 14,-6 22,-6 12,0 20,3 24,10 5,6 7,17 7,31l0 123 63 0 0 -131c0,-27 -6,-48 -16,-63 -11,-15 -29,-23 -53,-23 -8,0 -15,1 -22,3 -7,2 -14,4 -19,7 -6,3 -12,6 -16,10 -5,4 -10,8 -14,12l3 -41 0 -73 -63 0 0 300z"/>
<path id="hh6" class="fil5" d="M4531 8470l63 0 0 -141c7,-7 15,-13 21,-17 6,-4 14,-6 22,-6 12,0 20,3 24,10 5,6 7,17 7,31l0 123 63 0 0 -131c0,-27 -6,-48 -16,-63 -11,-15 -29,-23 -53,-23 -8,0 -15,1 -22,3 -7,2 -14,4 -19,7 -6,3 -12,6 -16,10 -5,4 -10,8 -14,12l3 -41 0 -73 -63 0 0 299z"/>
<path id="hh7s" class="fil4" d="M4538 8987l73 0 0 -140c6,-5 11,-9 16,-12 5,-3 11,-4 18,-4 9,0 16,3 20,8 3,6 5,14 5,26l0 122 73 0 0 -132c0,-26 -6,-48 -16,-64 -11,-16 -28,-24 -51,-24 -16,0 -29,3 -41,9 -12,6 -21,12 -28,19l4 -38 0 -69 -73 0 0 297z"/>
<path id="hh7" class="fil6" d="M4527 8974l73 0 0 -140c6,-5 11,-9 16,-12 5,-3 11,-4 18,-4 9,0 16,3 20,8 3,6 5,14 5,26l0 122 73 0 0 -132c0,-26 -6,-48 -16,-64 -11,-16 -28,-24 -51,-24 -16,0 -29,3 -41,9 -12,6 -21,12 -28,19l4 -38 0 -69 -73 0 0 297z"/>
<path id="aa7s" class="fil4" d="M4910 8952c3,8 7,15 13,21 6,6 13,11 22,14 9,4 18,6 29,6 13,0 26,-3 38,-8 12,-5 23,-12 34,-19l2 0 5 22 60 0 0 -119c0,-18 -2,-32 -7,-45 -5,-12 -12,-23 -20,-31 -9,-8 -19,-14 -32,-18 -12,-4 -26,-6 -41,-6 -18,0 -35,3 -52,7 -17,5 -33,12 -50,21l26 48c13,-6 24,-11 34,-14 9,-3 19,-4 28,-4 12,0 21,2 29,5 7,4 11,9 12,17 -24,1 -45,4 -62,8 -17,4 -31,9 -41,15 -11,6 -19,15 -24,24 -5,9 -8,20 -8,32 0,9 2,17 5,25l0 0zm68 -41c2,-3 5,-6 10,-9 5,-3 12,-5 20,-6 8,-1 19,-3 32,-3l0 27c-6,4 -12,8 -19,11 -7,3 -15,5 -23,5 -15,0 -23,-5 -23,-15 0,-4 1,-7 3,-10z"/>
<path id="aa7" class="fil6" d="M4899 8939c3,8 7,15 13,21 6,6 13,11 22,14 9,4 18,6 29,6 13,0 26,-3 38,-8 12,-5 24,-12 34,-19l2 0 5 22 60 0 0 -119c0,-18 -2,-32 -7,-45 -5,-12 -12,-23 -20,-31 -9,-8 -19,-14 -32,-18 -12,-4 -26,-6 -41,-6 -18,0 -35,3 -52,7 -17,5 -33,12 -50,21l26 48c13,-6 24,-11 34,-14 9,-3 19,-4 28,-4 12,0 21,2 29,5 7,4 11,9 12,17 -24,1 -45,4 -62,8 -17,4 -31,9 -41,15 -11,6 -19,15 -23,23 -5,9 -8,20 -8,32 0,9 2,17 5,25l0 0zm68 -41c2,-3 5,-6 10,-9 5,-3 12,-5 20,-6 8,-1 19,-3 32,-3l0 27c-6,4 -12,8 -19,11 -7,3 -15,5 -23,5 -15,0 -23,-5 -23,-15 0,-4 1,-7 3,-10z"/>
<path id="aa8s" class="fil4" d="M4921 9462c3,7 8,14 15,19 6,6 14,9 23,12 9,3 18,4 28,4 15,0 29,-3 43,-10 14,-6 26,-14 37,-22l1 0 3 27 35 0 0 -126c0,-28 -7,-49 -22,-65 -15,-16 -36,-23 -65,-23 -9,0 -18,1 -26,3 -9,2 -17,4 -25,7 -8,3 -16,6 -23,9 -7,4 -14,7 -19,11l16 29c10,-6 21,-12 34,-16 12,-5 24,-7 37,-7 18,0 32,5 40,14 8,9 12,20 12,33 -26,2 -49,5 -67,9 -19,4 -34,9 -46,15 -12,6 -21,14 -26,23 -6,9 -9,19 -9,31 0,9 2,18 6,25l0 0zm41 -45c3,-5 9,-10 18,-14 8,-4 19,-7 32,-10 14,-3 31,-5 51,-6l0 50c-11,9 -21,16 -32,21 -11,5 -22,7 -33,7 -12,0 -21,-2 -29,-7 -8,-5 -12,-12 -12,-23 0,-6 2,-12 5,-17l0 0z"/>
<path id="aa8" class="fil5" d="M4910 9449c3,7 8,14 15,19 6,6 14,9 23,12 9,3 18,4 28,4 15,0 29,-3 43,-10 14,-6 26,-14 37,-22l1 0 3 27 35 0 0 -126c0,-28 -7,-49 -22,-65 -15,-16 -36,-24 -65,-24 -9,0 -18,1 -26,3 -9,2 -17,4 -25,7 -8,3 -16,6 -23,9 -7,4 -14,7 -19,11l16 29c10,-6 21,-12 34,-16 12,-5 24,-7 37,-7 18,0 32,5 40,14 8,9 12,20 12,33 -26,2 -49,5 -67,9 -19,4 -34,9 -46,15 -12,6 -21,14 -26,23 -6,9 -9,19 -9,31 0,9 2,18 6,25l0 0zm41 -45c3,-5 9,-10 18,-14 8,-4 19,-7 32,-10 14,-3 31,-5 51,-6l0 50c-11,9 -21,16 -32,21 -11,5 -22,7 -33,7 -12,0 -21,-2 -29,-7 -8,-5 -12,-12 -12,-23 0,-6 2,-12 5,-17l0 0z"/>
<path id="aa9s" class="fil4" d="M4928 9971c4,7 9,13 16,18 6,5 14,8 23,10 9,2 18,3 26,3 15,0 31,-4 46,-11 15,-7 28,-15 40,-25l1 0 2 31 16 0 0 -131c0,-11 -1,-21 -4,-31 -3,-9 -8,-18 -14,-25 -6,-7 -14,-13 -24,-17 -10,-4 -22,-6 -35,-6 -9,0 -18,1 -27,3 -9,2 -17,5 -25,8 -8,3 -15,6 -21,10 -6,4 -12,7 -16,10l9 14c4,-3 9,-6 15,-9 6,-3 12,-6 19,-9 7,-3 14,-5 21,-7 7,-2 15,-3 23,-3 12,0 21,2 29,5 8,4 14,9 19,15 5,6 8,13 10,21 2,8 3,16 3,25 -28,3 -52,6 -71,10 -20,4 -36,9 -49,15 -13,6 -22,14 -28,22 -6,9 -9,18 -9,30 0,10 2,18 6,25l0 0zm20 -48c5,-6 12,-12 23,-18 11,-5 25,-9 43,-13 18,-4 39,-7 65,-9l0 66c-29,25 -57,37 -82,37 -7,0 -14,-1 -20,-3 -7,-1 -13,-4 -18,-7 -6,-3 -10,-7 -13,-12 -3,-5 -5,-12 -5,-19 0,-8 2,-16 7,-22l0 0z"/>
<path id="aa9" class="fil5" d="M4917 9958c4,7 9,13 16,18 6,5 14,8 23,10 9,2 18,3 26,3 15,0 31,-4 46,-11 15,-7 28,-15 40,-25l1 0 2 31 16 0 0 -131c0,-11 -1,-21 -4,-31 -3,-9 -8,-18 -14,-25 -6,-7 -14,-13 -24,-17 -10,-4 -22,-6 -35,-6 -9,0 -18,1 -27,3 -9,2 -17,5 -25,8 -8,3 -15,6 -21,10 -6,4 -12,7 -16,10l9 14c4,-3 9,-6 15,-9 6,-3 12,-6 19,-9 7,-3 14,-5 21,-7 7,-2 15,-3 23,-3 12,0 21,2 29,5 8,4 14,9 19,15 5,6 8,13 10,21 2,8 3,16 3,25 -28,3 -52,6 -71,10 -20,4 -36,9 -49,15 -13,6 -22,14 -28,22 -6,9 -9,18 -9,30 0,10 2,18 6,25l0 0zm20 -48c5,-6 12,-12 23,-18 11,-5 25,-9 43,-13 18,-4 39,-7 65,-9l0 66c-29,25 -57,37 -82,37 -7,0 -14,-1 -20,-3 -7,-1 -13,-4 -18,-7 -6,-3 -10,-7 -13,-12 -3,-5 -5,-12 -5,-19 0,-8 2,-16 7,-22l0 0z"/>
<path id="b7s" class="fil4" d="M5282 8987l57 0 6 -23 2 0c8,9 17,16 26,21 9,5 19,7 29,7 12,0 23,-3 34,-8 11,-5 21,-13 29,-23 8,-10 15,-22 20,-36 5,-14 8,-31 8,-49 0,-16 -2,-31 -6,-44 -4,-13 -10,-25 -17,-34 -7,-9 -16,-17 -27,-22 -11,-5 -22,-8 -35,-8 -10,0 -19,2 -29,6 -9,4 -18,9 -26,16l2 -31 0 -69 -73 0 0 297zm73 -144c5,-6 10,-10 15,-12 5,-2 10,-3 16,-3 11,0 18,4 24,12 5,8 8,21 8,38 0,10 -1,19 -3,26 -2,7 -4,13 -7,17 -3,4 -7,7 -11,9 -4,2 -8,3 -13,3 -5,0 -10,-1 -15,-2 -5,-1 -10,-4 -15,-8l0 -79z"/>
<path id="b7" class="fil6" d="M5271 8974l57 0 6 -23 2 0c8,9 17,16 26,21 9,5 19,7 29,7 12,0 23,-3 34,-8 11,-5 21,-13 29,-23 8,-10 15,-22 20,-36 5,-14 8,-31 8,-49 0,-16 -2,-31 -6,-44 -4,-13 -10,-25 -17,-34 -7,-9 -16,-17 -27,-22 -11,-5 -22,-8 -35,-8 -10,0 -19,2 -29,6 -9,4 -18,9 -26,16l2 -31 0 -69 -73 0 0 297zm73 -144c5,-6 10,-10 15,-12 5,-2 10,-3 16,-3 11,0 18,4 24,12 5,8 8,21 8,38 0,10 -1,19 -3,26 -2,7 -4,13 -7,17 -3,4 -7,7 -11,9 -4,2 -8,3 -13,3 -5,0 -10,-1 -15,-2 -5,-1 -10,-4 -15,-8l0 -79z"/>
<path id="b8s" class="fil4" d="M5301 9492l11 0 2 -23 1 0c11,9 22,15 35,21 13,5 24,8 35,8 13,0 25,-3 37,-8 12,-5 21,-12 30,-21 9,-9 15,-21 21,-35 5,-14 8,-29 8,-47 0,-32 -7,-57 -21,-76 -15,-19 -36,-28 -66,-28 -14,0 -28,3 -42,10 -14,7 -27,16 -38,27l1 -45 0 -91 -13 0 0 308zm13 -157c14,-14 27,-24 41,-30 14,-6 26,-10 38,-10 13,0 25,2 34,7 9,5 17,12 23,20 6,8 10,18 13,29 3,12 4,23 4,37 0,14 -2,27 -6,39 -4,12 -9,23 -17,31 -7,9 -16,16 -26,21 -10,5 -21,7 -32,7 -9,0 -20,-3 -33,-8 -13,-5 -26,-13 -39,-25l0 -118z"/>
<path id="b8" class="fil5" d="M5290 9479l11 0 2 -23 1 0c11,9 22,15 35,21 13,5 24,8 35,8 13,0 25,-3 37,-8 12,-5 21,-12 30,-21 9,-9 15,-21 21,-35 5,-14 8,-29 8,-47 0,-32 -7,-57 -21,-76 -15,-19 -36,-28 -66,-28 -14,0 -28,3 -42,10 -14,7 -27,16 -38,27l1 -45 0 -91 -13 0 0 308zm13 -157c14,-14 27,-24 41,-30 14,-6 26,-10 38,-10 13,0 25,2 34,7 9,5 17,12 23,20 6,8 10,18 13,29 3,12 4,23 4,37 0,14 -2,27 -6,39 -4,12 -9,23 -17,31 -7,9 -16,16 -26,20 -10,5 -21,7 -32,7 -9,0 -20,-3 -33,-8 -13,-5 -26,-13 -39,-25l0 -118z"/>
<path id="tt7s" class="fil4" d="M5695 8897c0,14 2,27 5,39 3,12 9,22 17,30 7,9 17,15 29,20 12,5 27,7 44,7 15,0 28,-1 39,-4 12,-2 22,-5 32,-7l-13 -53c-6,2 -12,3 -18,5 -6,1 -14,2 -21,2 -14,0 -24,-3 -31,-9 -7,-6 -11,-16 -11,-31l0 -65 85 0 0 -57 -85 0 0 -56 -61 0 -9 56 -55 3 0 55 51 0 0 66z"/>
<path id="tt7" class="fil6" d="M5684 8884c0,14 2,27 5,39 3,12 9,22 17,30 7,9 17,15 29,20 12,5 27,7 44,7 15,0 28,-1 39,-4 12,-2 22,-5 32,-7l-13 -53c-6,2 -12,3 -18,5 -6,1 -14,2 -21,2 -14,0 -24,-3 -31,-9 -7,-6 -11,-16 -11,-31l0 -65 85 0 0 -57 -85 0 0 -56 -61 0 -9 56 -55 3 0 55 51 0 0 66z"/>
<path id="tt8s" class="fil4" d="M5707 9407c0,13 2,26 5,37 3,11 8,21 15,28 6,8 15,14 26,18 11,4 24,6 40,6 13,0 25,-1 36,-4 12,-2 22,-5 31,-8l-9 -36c-7,3 -14,5 -21,6 -7,2 -16,3 -25,3 -18,0 -30,-4 -38,-12 -7,-8 -11,-21 -11,-38l0 -86 96 0 0 -39 -96 0 0 -57 -41 0 -6 57 -58 2 0 37 56 0 0 86z"/>
<path id="tt8" class="fil5" d="M5696 9395c0,13 2,26 5,37 3,11 8,20 15,28 6,8 15,14 26,18 11,4 24,6 40,6 13,0 25,-1 36,-4 12,-2 22,-5 31,-8l-9 -36c-7,3 -14,5 -21,6 -7,2 -16,3 -25,3 -18,0 -30,-4 -38,-12 -7,-8 -11,-20 -11,-38l0 -86 96 0 0 -39 -96 0 0 -57 -41 0 -6 57 -58 2 0 37 56 0 0 86z"/>
<path id="tt9s" class="fil4" d="M5711 9915c0,13 1,25 4,35 3,11 8,20 14,28 6,8 15,14 26,18 11,4 24,6 39,6 12,0 23,-1 35,-4 12,-2 22,-5 31,-8l-9 -31c-7,3 -15,5 -22,6 -8,2 -17,3 -26,3 -19,0 -32,-4 -39,-13 -7,-9 -11,-22 -11,-40l0 -92 99 0 0 -34 -99 0 0 -58 -35 0 -6 58 -59 2 0 32 57 0 0 92z"/>
<path id="tt9" class="fil5" d="M5700 9902c0,13 1,25 4,35 3,11 8,20 14,28 6,8 15,14 26,18 11,4 24,6 39,6 12,0 24,-1 35,-4 12,-2 22,-5 31,-8l-9 -31c-7,3 -15,5 -22,6 -8,2 -17,3 -26,3 -19,0 -32,-4 -39,-13 -7,-9 -11,-22 -11,-40l0 -92 99 0 0 -34 -99 0 0 -58 -35 0 -6 58 -59 2 0 32 57 0 0 92z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

View File

@ -0,0 +1,43 @@
# Ignore docs files
/_gh_pages/
/site/.jekyll-metadata
/site/docs/**/dist/
# Ignore ruby/bundler files
/.bundle/
/vendor/
/.ruby-version
# Numerous always-ignore extensions
*.diff
*.err
*.log
*.orig
*.rej
*.swo
*.swp
*.vi
*.zip
*~
# OS or Editor folders
._*
.cache
.DS_Store
.idea
.project
.settings
.tmproj
*.esproj
*.sublime-project
*.sublime-workspace
nbproject
Thumbs.db
# Komodo
.komodotools
*.komodoproject
# Folders to ignore
/js/coverage/
/node_modules/

View File

@ -0,0 +1 @@
getbootstrap.com

View File

@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mdo@getbootstrap.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][version]
[homepage]: https://www.contributor-covenant.org/
[version]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

View File

@ -0,0 +1,9 @@
source 'https://rubygems.org'
group :development, :test do
gem 'jekyll', '~> 3.8.5'
gem 'jekyll-redirect-from', '~> 0.14.0'
gem 'jekyll-sitemap', '~> 1.2.0'
gem 'jekyll-toc', '~> 0.9.1'
gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform?
end

View File

@ -0,0 +1,82 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
colorator (1.1.0)
concurrent-ruby (1.1.4)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
ffi (1.10.0)
ffi (1.10.0-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.5)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (~> 1.14)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-redirect-from (0.14.0)
jekyll (~> 3.3)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-sitemap (1.2.0)
jekyll (~> 3.3)
jekyll-toc (0.9.1)
nokogiri (~> 1.8)
jekyll-watch (2.1.2)
listen (~> 3.0)
kramdown (1.17.0)
liquid (4.0.1)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6)
mini_portile2 (2.4.0)
nokogiri (1.10.1)
mini_portile2 (~> 2.4.0)
nokogiri (1.10.1-x64-mingw32)
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.0.3)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
rouge (3.3.0)
ruby_dep (1.5.0)
safe_yaml (1.0.4)
sass (3.7.3)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
wdm (0.1.1)
PLATFORMS
ruby
x64-mingw32
DEPENDENCIES
jekyll (~> 3.8.5)
jekyll-redirect-from (~> 0.14.0)
jekyll-sitemap (~> 1.2.0)
jekyll-toc (~> 0.9.1)
wdm (~> 0.1.1)
BUNDLED WITH
1.17.3

View File

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2011-2019 Twitter, Inc.
Copyright (c) 2011-2019 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -0,0 +1,214 @@
<p align="center">
<a href="https://getbootstrap.com/">
<img src="https://getbootstrap.com/docs/4.3/assets/brand/bootstrap-solid.svg" alt="Bootstrap logo" width="72" height="72">
</a>
</p>
<h3 align="center">Bootstrap</h3>
<p align="center">
Sleek, intuitive, and powerful front-end framework for faster and easier web development.
<br>
<a href="https://getbootstrap.com/docs/4.3/"><strong>Explore Bootstrap docs »</strong></a>
<br>
<br>
<a href="https://github.com/twbs/bootstrap/issues/new?template=bug.md">Report bug</a>
·
<a href="https://github.com/twbs/bootstrap/issues/new?template=feature.md&labels=feature">Request feature</a>
·
<a href="https://themes.getbootstrap.com/">Themes</a>
·
<a href="https://blog.getbootstrap.com/">Blog</a>
</p>
## Table of contents
- [Quick start](#quick-start)
- [Status](#status)
- [What's included](#whats-included)
- [Bugs and feature requests](#bugs-and-feature-requests)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [Community](#community)
- [Versioning](#versioning)
- [Creators](#creators)
- [Thanks](#thanks)
- [Copyright and license](#copyright-and-license)
## Quick start
Several quick start options are available:
- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.3.1.zip)
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.3.1`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.3.1`
- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass`
Read the [Getting started page](https://getbootstrap.com/docs/4.3/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
## Status
[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com/)
[![Build Status](https://img.shields.io/travis/twbs/bootstrap/v4-dev.svg)](https://travis-ci.org/twbs/bootstrap)
[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap)
[![Gem version](https://img.shields.io/gem/v/bootstrap.svg)](https://rubygems.org/gems/bootstrap)
[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue.svg)](https://atmospherejs.com/twbs/bootstrap)
[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap.svg)](https://packagist.org/packages/twbs/bootstrap)
[![NuGet](https://img.shields.io/nuget/vpre/bootstrap.svg)](https://www.nuget.org/packages/bootstrap/absoluteLatest)
[![peerDependencies Status](https://img.shields.io/david/peer/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap?type=peer)
[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap?type=dev)
[![Coverage Status](https://img.shields.io/coveralls/github/twbs/bootstrap/v4-dev.svg)](https://coveralls.io/github/twbs/bootstrap?branch=v4-dev)
[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/css/bootstrap.min.css?compression=gzip&label=CSS+gzip+size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/css/bootstrap.min.css)
[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/js/bootstrap.min.js?compression=gzip&label=JS+gzip+size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/js/bootstrap.min.js)
[![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229)](https://www.browserstack.com/automate/public-build/SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229)
[![Backers on Open Collective](https://opencollective.com/bootstrap/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/bootstrap/sponsors/badge.svg)](#sponsors)
## What's included
Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this:
```text
bootstrap/
└── dist/
├── css/
│ ├── bootstrap-grid.css
│ ├── bootstrap-grid.css.map
│ ├── bootstrap-grid.min.css
│ ├── bootstrap-grid.min.css.map
│ ├── bootstrap-reboot.css
│ ├── bootstrap-reboot.css.map
│ ├── bootstrap-reboot.min.css
│ ├── bootstrap-reboot.min.css.map
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ ├── bootstrap.min.css
│ └── bootstrap.min.css.map
└── js/
├── bootstrap.bundle.js
├── bootstrap.bundle.js.map
├── bootstrap.bundle.min.js
├── bootstrap.bundle.min.js.map
├── bootstrap.js
├── bootstrap.js.map
├── bootstrap.min.js
└── bootstrap.min.js.map
```
We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/), but not [jQuery](https://jquery.com/).
## Bugs and feature requests
Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new).
## Documentation
Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](https://jekyllrb.com/) and publicly hosted on GitHub Pages at <https://getbootstrap.com/>. The docs may also be run locally.
Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). Working on our search? Be sure to set `debug: true` in `site/docs/4.3/assets/js/src/search.js` file.
### Running documentation locally
1. Run through the [tooling setup](https://getbootstrap.com/docs/4.3/getting-started/build-tools/#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
2. Run `npm install` to install Node.js dependencies.
3. Run `npm start` to compile CSS and JavaScript files, generate our docs, and watch for changes.
4. Open `http://localhost:9001` in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/).
### Documentation for previous releases
- For v2.3.2: <https://getbootstrap.com/2.3.2/>
- For v3.3.x: <https://getbootstrap.com/docs/3.3/>
- For v3.4.0: <https://getbootstrap.com/docs/3.4/>
- For v4.0.x: <https://getbootstrap.com/docs/4.0/>
- For v4.1.x: <https://getbootstrap.com/docs/4.1/>
- For v4.2.x: <https://getbootstrap.com/docs/4.2/>
[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download.
## Contributing
Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org/>.
## Community
Get updates on Bootstrap's development and chat with the project maintainers and community members.
- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap).
- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/).
- Join [the official Slack room](https://bootstrap-slack.herokuapp.com/).
- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel.
- Implementation help may be found at Stack Overflow (tagged [`bootstrap-4`](https://stackoverflow.com/questions/tagged/bootstrap-4)).
- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability.
## Versioning
For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](https://semver.org/). Sometimes we screw up, but we adhere to those rules whenever possible.
See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com/) contain summaries of the most noteworthy changes made in each release.
## Creators
**Mark Otto**
- <https://twitter.com/mdo>
- <https://github.com/mdo>
**Jacob Thornton**
- <https://twitter.com/fat>
- <https://github.com/fat>
## Thanks
<a href="https://www.browserstack.com/">
<img src="https://live.browserstack.com/images/opensource/browserstack-logo.svg" alt="BrowserStack Logo" width="192" height="42">
</a>
Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers!
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bootstrap#backer)]
[![Bakers](https://opencollective.com/bootstrap/backers.svg?width=890)](https://opencollective.com/bootstrap#backers)
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bootstrap#sponsor)]
[![](https://opencollective.com/bootstrap/sponsor/0/avatar.svg)](https://opencollective.com/bootstrap/sponsor/0/website)
[![](https://opencollective.com/bootstrap/sponsor/1/avatar.svg)](https://opencollective.com/bootstrap/sponsor/1/website)
[![](https://opencollective.com/bootstrap/sponsor/2/avatar.svg)](https://opencollective.com/bootstrap/sponsor/2/website)
[![](https://opencollective.com/bootstrap/sponsor/3/avatar.svg)](https://opencollective.com/bootstrap/sponsor/3/website)
[![](https://opencollective.com/bootstrap/sponsor/4/avatar.svg)](https://opencollective.com/bootstrap/sponsor/4/website)
[![](https://opencollective.com/bootstrap/sponsor/5/avatar.svg)](https://opencollective.com/bootstrap/sponsor/5/website)
[![](https://opencollective.com/bootstrap/sponsor/6/avatar.svg)](https://opencollective.com/bootstrap/sponsor/6/website)
[![](https://opencollective.com/bootstrap/sponsor/7/avatar.svg)](https://opencollective.com/bootstrap/sponsor/7/website)
[![](https://opencollective.com/bootstrap/sponsor/8/avatar.svg)](https://opencollective.com/bootstrap/sponsor/8/website)
[![](https://opencollective.com/bootstrap/sponsor/9/avatar.svg)](https://opencollective.com/bootstrap/sponsor/9/website)
## Copyright and license
Code and documentation copyright 2011-2019 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE).

View File

@ -0,0 +1,68 @@
# Dependencies
markdown: kramdown
highlighter: rouge
kramdown:
auto_ids: true
# Permalinks
permalink: pretty
# Server
source: "site"
destination: ./_gh_pages
host: "localhost"
port: 9001
baseurl: ""
url: "https://getbootstrap.com"
encoding: UTF-8
exclude:
- docs/4.3/assets/scss/
plugins:
- jekyll-redirect-from
- jekyll-sitemap
- jekyll-toc
# Social
title: Bootstrap
description: "The most popular HTML, CSS, and JS library in the world."
twitter: getbootstrap
authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors"
social_image_path: /docs/4.3/assets/brand/bootstrap-social.png
social_logo_path: /docs/4.3/assets/brand/bootstrap-social-logo.png
# Custom variables
current_version: 4.3.1
current_ruby_version: 4.3.1
docs_version: 4.3
repo: "https://github.com/twbs/bootstrap"
slack: "https://bootstrap-slack.herokuapp.com"
opencollective: "https://opencollective.com/bootstrap"
blog: "https://blog.getbootstrap.com"
expo: "https://expo.getbootstrap.com"
themes: "https://themes.getbootstrap.com"
download:
source: "https://github.com/twbs/bootstrap/archive/v4.3.1.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v4.3.1/bootstrap-4.3.1-dist.zip"
cdn:
# See https://www.srihash.org for info on how to generate the hashes
css: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
css_hash: "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
js: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
js_hash: "sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
js_bundle: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"
js_bundle_hash: "sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o"
jquery: "https://code.jquery.com/jquery-3.3.1.slim.min.js"
jquery_hash: "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
popper: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
popper_hash: "sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
toc:
min_level: 2
max_level: 4
no_toc_section_class:
- "bd-callout"
- "bd-example"

View File

@ -0,0 +1,14 @@
'use strict'
const pkg = require('../package.json')
const year = new Date().getFullYear()
function getBanner(pluginFilename) {
return `/*!
* Bootstrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage})
* Copyright 2011-${year} ${pkg.author}
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/`
}
module.exports = getBanner

View File

@ -0,0 +1,85 @@
/*!
* Script to build our plugins to use them separately.
* Copyright 2019 The Bootstrap Authors
* Copyright 2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
'use strict'
const path = require('path')
const rollup = require('rollup')
const babel = require('rollup-plugin-babel')
const banner = require('./banner.js')
const TEST = process.env.NODE_ENV === 'test'
const plugins = [
babel({
exclude: 'node_modules/**', // Only transpile our source code
externalHelpersWhitelist: [ // Include only required helpers
'defineProperties',
'createClass',
'inheritsLoose',
'defineProperty',
'objectSpread'
]
})
]
const bsPlugins = {
Alert: path.resolve(__dirname, '../js/src/alert.js'),
Button: path.resolve(__dirname, '../js/src/button.js'),
Carousel: path.resolve(__dirname, '../js/src/carousel.js'),
Collapse: path.resolve(__dirname, '../js/src/collapse.js'),
Dropdown: path.resolve(__dirname, '../js/src/dropdown.js'),
Modal: path.resolve(__dirname, '../js/src/modal.js'),
Popover: path.resolve(__dirname, '../js/src/popover.js'),
ScrollSpy: path.resolve(__dirname, '../js/src/scrollspy.js'),
Tab: path.resolve(__dirname, '../js/src/tab.js'),
Toast: path.resolve(__dirname, '../js/src/toast.js'),
Tooltip: path.resolve(__dirname, '../js/src/tooltip.js'),
Util: path.resolve(__dirname, '../js/src/util.js')
}
const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
function build(plugin) {
console.log(`Building ${plugin} plugin...`)
const external = ['jquery', 'popper.js']
const globals = {
jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
'popper.js': 'Popper'
}
// Do not bundle Util in plugins
if (plugin !== 'Util') {
external.push(bsPlugins.Util)
globals[bsPlugins.Util] = 'Util'
}
// Do not bundle Tooltip in Popover
if (plugin === 'Popover') {
external.push(bsPlugins.Tooltip)
globals[bsPlugins.Tooltip] = 'Tooltip'
}
const pluginFilename = `${plugin.toLowerCase()}.js`
rollup.rollup({
input: bsPlugins[plugin],
plugins,
external
}).then((bundle) => {
bundle.write({
banner: banner(pluginFilename),
format: 'umd',
name: plugin,
sourcemap: true,
globals,
file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
})
.then(() => console.log(`Building ${plugin} plugin... Done!`))
.catch((err) => console.error(`${plugin}: ${err}`))
})
}
Object.keys(bsPlugins).forEach((plugin) => build(plugin))

View File

@ -0,0 +1,104 @@
#!/usr/bin/env node
/*!
* Script to update version number references in the project.
* Copyright 2017-2019 The Bootstrap Authors
* Copyright 2017-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
'use strict'
const fs = require('fs')
const path = require('path')
const sh = require('shelljs')
sh.config.fatal = true
// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37
function regExpQuote(string) {
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&')
}
function regExpQuoteReplacement(string) {
return string.replace(/[$]/g, '$$')
}
const DRY_RUN = false
function walkAsync(directory, excludedDirectories, fileCallback, errback) {
if (excludedDirectories.has(path.parse(directory).base)) {
return
}
fs.readdir(directory, (err, names) => {
if (err) {
errback(err)
return
}
names.forEach((name) => {
const filepath = path.join(directory, name)
fs.lstat(filepath, (err, stats) => {
if (err) {
process.nextTick(errback, err)
return
}
if (stats.isDirectory()) {
process.nextTick(walkAsync, filepath, excludedDirectories, fileCallback, errback)
} else if (stats.isFile()) {
process.nextTick(fileCallback, filepath)
}
})
})
})
}
function replaceRecursively(directory, excludedDirectories, allowedExtensions, original, replacement) {
original = new RegExp(regExpQuote(original), 'g')
replacement = regExpQuoteReplacement(replacement)
const updateFile = DRY_RUN ? (filepath) => {
if (allowedExtensions.has(path.parse(filepath).ext)) {
console.log(`FILE: ${filepath}`)
} else {
console.log(`EXCLUDED:${filepath}`)
}
} : (filepath) => {
if (allowedExtensions.has(path.parse(filepath).ext)) {
sh.sed('-i', original, replacement, filepath)
}
}
walkAsync(directory, excludedDirectories, updateFile, (err) => {
console.error('ERROR while traversing directory!:')
console.error(err)
process.exit(1)
})
}
function main(args) {
if (args.length !== 2) {
console.error('USAGE: change-version old_version new_version')
console.error('Got arguments:', args)
process.exit(1)
}
const oldVersion = args[0]
const newVersion = args[1]
const EXCLUDED_DIRS = new Set([
'.git',
'node_modules',
'vendor'
])
const INCLUDED_EXTENSIONS = new Set([
// This extension whitelist is how we avoid modifying binary files
'',
'.css',
'.html',
'.js',
'.json',
'.md',
'.scss',
'.txt',
'.yml'
])
replaceRecursively('.', EXCLUDED_DIRS, INCLUDED_EXTENSIONS, oldVersion, newVersion)
}
main(process.argv.slice(2))

View File

@ -0,0 +1,66 @@
#!/usr/bin/env node
/*!
* Script to generate SRI hashes for use in our docs.
* Remember to use the same vendor files as the CDN ones,
* otherwise the hashes won't match!
*
* Copyright 2017-2019 The Bootstrap Authors
* Copyright 2017-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
'use strict'
const crypto = require('crypto')
const fs = require('fs')
const path = require('path')
const sh = require('shelljs')
const pkg = require('../package.json')
sh.config.fatal = true
const configFile = path.join(__dirname, '../_config.yml')
// Array of objects which holds the files to generate SRI hashes for.
// `file` is the path from the root folder
// `configPropertyName` is the _config.yml variable's name of the file
const files = [
{
file: 'dist/css/bootstrap.min.css',
configPropertyName: 'css_hash'
},
{
file: 'dist/js/bootstrap.min.js',
configPropertyName: 'js_hash'
},
{
file: 'dist/js/bootstrap.bundle.min.js',
configPropertyName: 'js_bundle_hash'
},
{
file: `site/docs/${pkg.version_short}/assets/js/vendor/jquery-slim.min.js`,
configPropertyName: 'jquery_hash'
},
{
file: 'node_modules/popper.js/dist/umd/popper.min.js',
configPropertyName: 'popper_hash'
}
]
files.forEach((file) => {
fs.readFile(file.file, 'utf8', (err, data) => {
if (err) {
throw err
}
const algo = 'sha384'
const hash = crypto.createHash(algo).update(data, 'utf8').digest('base64')
const integrity = `${algo}-${hash}`
console.log(`${file.configPropertyName}: ${integrity}`)
sh.sed('-i', new RegExp(`(\\s${file.configPropertyName}:\\s+"|')(\\S+)("|')`), `$1${integrity}$3`, configFile)
})
})

View File

@ -0,0 +1,14 @@
'use strict'
module.exports = (ctx) => ({
map: ctx.file.dirname.includes('examples') ? false : {
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
}
}
})

View File

@ -0,0 +1,48 @@
'use strict'
const path = require('path')
const babel = require('rollup-plugin-babel')
const resolve = require('rollup-plugin-node-resolve')
const banner = require('./banner.js')
const BUNDLE = process.env.BUNDLE === 'true'
let fileDest = 'bootstrap.js'
const external = ['jquery', 'popper.js']
const plugins = [
babel({
exclude: 'node_modules/**', // Only transpile our source code
externalHelpersWhitelist: [ // Include only required helpers
'defineProperties',
'createClass',
'inheritsLoose',
'defineProperty',
'objectSpread'
]
})
]
const globals = {
jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
'popper.js': 'Popper'
}
if (BUNDLE) {
fileDest = 'bootstrap.bundle.js'
// Remove last entry in external array to bundle Popper
external.pop()
delete globals['popper.js']
plugins.push(resolve())
}
module.exports = {
input: path.resolve(__dirname, '../js/src/index.js'),
output: {
banner,
file: path.resolve(__dirname, `../dist/js/${fileDest}`),
format: 'umd',
globals,
name: 'bootstrap'
},
external,
plugins
}

View File

@ -0,0 +1,52 @@
#!/usr/bin/env bash
#
# Usage
# ---------------
# 1. Clone second version of Bootstrap in sibling directory named `bs-docs`.
# 2. Within `bs-docs` copy, switch to `gh-pages` branch.
# 3. Pull latest, re-bundle, re-npm.
# 4. Run script.
red=$'\e[1;31m'
green=$'\e[1;32m'
#blue=$'\e[1;34m'
magenta=$'\e[1;35m'
#cyan=$'\e[1;36m'
end=$'\e[0m'
# Get current version from package.json
current_version=$(node -p "require('./package.json').version")
if [[ $# -lt 1 ]]; then
printf "\n%s⚠ Shipping aborted. You must specify a version.\n%s" $red $end
exit 1
fi
# Pulling latest changes, just to be sure
printf "\n%s=======================================================%s" $magenta $end
printf "\n%sPulling latest changes...%s" $magenta $end
printf "\n%s=======================================================\n\n%s" $magenta $end
git pull origin v4-dev
# Update version number
printf "\n%s=======================================================%s" $magenta $end
printf "\n%sUpdating version number...%s" $magenta $end
printf "\n%s=======================================================\n%s" $magenta $end
npm run release-version "$current_version" "$1"
# Build release
printf "\n%s=======================================================%s" $magenta $end
printf "\n%sBuilding release...%s" $magenta $end
printf "\n%s=======================================================\n%s" $magenta $end
npm run release
# Copy the contents of the built docs site over to `bs-docs` repo
printf "\n%s=======================================================%s" $magenta $end
printf "\n%sCopy it over...%s" $magenta $end
printf "\n%s=======================================================\n%s" $magenta $end
cp -rf _gh_pages/. ../bs-docs/
printf "\nDone!\n"
printf "\n%s=======================================================%s" $green $end
printf "\n%sSuccess, $1 is ready to review and publish.%s" $green $end
printf "\n%s=======================================================\n\n%s" $green $end

View File

@ -0,0 +1,57 @@
# Usage:
# install svgo globally: `npm i -g svgo`
# svgo --config=build/svgo.yml --input=foo.svg
# https://github.com/svg/svgo/blob/master/docs/how-it-works/en.md
# replace default config
multipass: true
#full: true
# https://github.com/svg/svgo/blob/master/lib/svgo/js2svg.js#L6 for more config options
js2svg:
pretty: true
indent: 2
plugins:
# remove this with IE 11 is no longer supported
- addAttributesToSVGElement:
attributes:
- focusable: false
- cleanupAttrs: true
- cleanupEnableBackground: true
- cleanupIDs: true
- cleanupListOfValues: true
- cleanupNumericValues: true
- collapseGroups: true
- convertColors: true
- convertPathData: true
- convertShapeToPath: true
- convertStyleToAttrs: true
- convertTransform: true
- inlineStyles: true
- mergePaths: true
- minifyStyles: true
- moveElemsAttrsToGroup: true
- moveGroupAttrsToElems: true
- removeComments: true
- removeDesc: true
- removeDoctype: true
- removeEditorsNSData: true
- removeEmptyAttrs: true
- removeEmptyContainers: true
- removeEmptyText: true
- removeHiddenElems: true
- removeMetadata: true
- removeNonInheritableGroupAttrs: true
- removeTitle: false
- removeUnknownsAndDefaults:
keepRoleAttr: true
- removeUnusedNS: true
- removeUselessDefs: true
- removeUselessStrokeAndFill: true
- removeViewBox: false
- removeXMLNS: false
- removeXMLProcInst: true
- sortAttrs: true

View File

@ -0,0 +1,65 @@
#!/usr/bin/env node
/*!
* Script to run vnu-jar if Java is available.
* Copyright 2017-2019 The Bootstrap Authors
* Copyright 2017-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
'use strict'
const childProcess = require('child_process')
const vnu = require('vnu-jar')
childProcess.exec('java -version', (error, stdout, stderr) => {
if (error) {
console.error('Skipping vnu-jar test; Java is missing.')
return
}
const is32bitJava = !stderr.match(/64-Bit/)
// vnu-jar accepts multiple ignores joined with a `|`.
// Also note that the ignores are regular expressions.
const ignores = [
// "autocomplete" is included in <button> and checkboxes and radio <input>s due to
// Firefox's non-standard autocomplete behavior - see https://bugzilla.mozilla.org/show_bug.cgi?id=654072
'Attribute “autocomplete” is only allowed when the input type is.*',
'Attribute “autocomplete” not allowed on element “button” at this point.',
// Markup used in Components → Forms → Layout → Form grid → Horizontal form is currently invalid,
// but used this way due to lack of support for flexbox layout on <fieldset> element in most browsers
'Element “legend” not allowed as child of element “div” in this context.*',
// Content → Reboot uses various date/time inputs as a visual example.
// Documentation does not rely on them being usable.
'The “date” input type is not supported in all browsers.*',
'The “time” input type is not supported in all browsers.*',
// IE11 doesn't recognise <main> / give the element an implicit "main" landmark.
// Explicit role="main" is redundant for other modern browsers, but still valid.
'The “main” role is unnecessary for element “main”.',
// Ignore the wrong lanuage code warnings for now; they happen randomly.
'This document appears to be written in.*'
].join('|')
const args = [
'-jar',
vnu,
'--asciiquotes',
'--skip-non-html',
'--Werror',
`--filterpattern "${ignores}"`,
'_gh_pages/',
'js/tests/'
]
// For the 32-bit Java we need to pass `-Xss512k`
if (is32bitJava) {
args.splice(0, 0, '-Xss512k')
}
return childProcess.spawn('java', args, {
shell: true,
stdio: 'inherit'
})
.on('exit', process.exit)
})

View File

@ -0,0 +1,37 @@
{
"name": "twbs/bootstrap",
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"keywords": [
"css",
"js",
"sass",
"mobile-first",
"responsive",
"front-end",
"framework",
"web"
],
"homepage": "https://getbootstrap.com/",
"authors": [
{
"name": "Mark Otto",
"email": "markdotto@gmail.com"
},
{
"name": "Jacob Thornton",
"email": "jacobthornton@gmail.com"
}
],
"support": {
"issues": "https://github.com/twbs/bootstrap/issues"
},
"license": "MIT",
"extra": {
"branch-alias": {
"dev-master": "3.3.x-dev"
}
},
"replace": {
"twitter/bootstrap": "self.version"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,331 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,199 @@
/*!
* Bootstrap alert.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Alert = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Selector = {
DISMISS: '[data-dismiss="alert"]'
};
var Event = {
CLOSE: "close" + EVENT_KEY,
CLOSED: "closed" + EVENT_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
ALERT: 'alert',
FADE: 'fade',
SHOW: 'show'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Alert =
/*#__PURE__*/
function () {
function Alert(element) {
this._element = element;
} // Getters
var _proto = Alert.prototype;
// Public
_proto.close = function close(element) {
var rootElement = this._element;
if (element) {
rootElement = this._getRootElement(element);
}
var customEvent = this._triggerCloseEvent(rootElement);
if (customEvent.isDefaultPrevented()) {
return;
}
this._removeElement(rootElement);
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
this._element = null;
} // Private
;
_proto._getRootElement = function _getRootElement(element) {
var selector = Util.getSelectorFromElement(element);
var parent = false;
if (selector) {
parent = document.querySelector(selector);
}
if (!parent) {
parent = $(element).closest("." + ClassName.ALERT)[0];
}
return parent;
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
var closeEvent = $.Event(Event.CLOSE);
$(element).trigger(closeEvent);
return closeEvent;
};
_proto._removeElement = function _removeElement(element) {
var _this = this;
$(element).removeClass(ClassName.SHOW);
if (!$(element).hasClass(ClassName.FADE)) {
this._destroyElement(element);
return;
}
var transitionDuration = Util.getTransitionDurationFromElement(element);
$(element).one(Util.TRANSITION_END, function (event) {
return _this._destroyElement(element, event);
}).emulateTransitionEnd(transitionDuration);
};
_proto._destroyElement = function _destroyElement(element) {
$(element).detach().trigger(Event.CLOSED).remove();
} // Static
;
Alert._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $element = $(this);
var data = $element.data(DATA_KEY);
if (!data) {
data = new Alert(this);
$element.data(DATA_KEY, data);
}
if (config === 'close') {
data[config](this);
}
});
};
Alert._handleDismiss = function _handleDismiss(alertInstance) {
return function (event) {
if (event) {
event.preventDefault();
}
alertInstance.close(this);
};
};
_createClass(Alert, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Alert;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Alert._jQueryInterface;
$.fn[NAME].Constructor = Alert;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Alert._jQueryInterface;
};
return Alert;
}));
//# sourceMappingURL=alert.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,187 @@
/*!
* Bootstrap button.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, global.Button = factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var ClassName = {
ACTIVE: 'active',
BUTTON: 'btn',
FOCUS: 'focus'
};
var Selector = {
DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
DATA_TOGGLE: '[data-toggle="buttons"]',
INPUT: 'input:not([type="hidden"])',
ACTIVE: '.active',
BUTTON: '.btn'
};
var Event = {
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Button =
/*#__PURE__*/
function () {
function Button(element) {
this._element = element;
} // Getters
var _proto = Button.prototype;
// Public
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
if (rootElement) {
var input = this._element.querySelector(Selector.INPUT);
if (input) {
if (input.type === 'radio') {
if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
triggerChangeEvent = false;
} else {
var activeElement = rootElement.querySelector(Selector.ACTIVE);
if (activeElement) {
$(activeElement).removeClass(ClassName.ACTIVE);
}
}
}
if (triggerChangeEvent) {
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
return;
}
input.checked = !this._element.classList.contains(ClassName.ACTIVE);
$(input).trigger('change');
}
input.focus();
addAriaPressed = false;
}
}
if (addAriaPressed) {
this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
}
if (triggerChangeEvent) {
$(this._element).toggleClass(ClassName.ACTIVE);
}
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
this._element = null;
} // Static
;
Button._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
if (!data) {
data = new Button(this);
$(this).data(DATA_KEY, data);
}
if (config === 'toggle') {
data[config]();
}
});
};
_createClass(Button, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Button;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
event.preventDefault();
var button = event.target;
if (!$(button).hasClass(ClassName.BUTTON)) {
button = $(button).closest(Selector.BUTTON);
}
Button._jQueryInterface.call($(button), 'toggle');
}).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
var button = $(event.target).closest(Selector.BUTTON)[0];
$(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Button._jQueryInterface;
$.fn[NAME].Constructor = Button;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Button._jQueryInterface;
};
return Button;
}));
//# sourceMappingURL=button.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,668 @@
/*!
* Bootstrap carousel.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Carousel = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
var Default = {
interval: 5000,
keyboard: true,
slide: false,
pause: 'hover',
wrap: true,
touch: true
};
var DefaultType = {
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean',
touch: 'boolean'
};
var Direction = {
NEXT: 'next',
PREV: 'prev',
LEFT: 'left',
RIGHT: 'right'
};
var Event = {
SLIDE: "slide" + EVENT_KEY,
SLID: "slid" + EVENT_KEY,
KEYDOWN: "keydown" + EVENT_KEY,
MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: "mouseleave" + EVENT_KEY,
TOUCHSTART: "touchstart" + EVENT_KEY,
TOUCHMOVE: "touchmove" + EVENT_KEY,
TOUCHEND: "touchend" + EVENT_KEY,
POINTERDOWN: "pointerdown" + EVENT_KEY,
POINTERUP: "pointerup" + EVENT_KEY,
DRAG_START: "dragstart" + EVENT_KEY,
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
CAROUSEL: 'carousel',
ACTIVE: 'active',
SLIDE: 'slide',
RIGHT: 'carousel-item-right',
LEFT: 'carousel-item-left',
NEXT: 'carousel-item-next',
PREV: 'carousel-item-prev',
ITEM: 'carousel-item',
POINTER_EVENT: 'pointer-event'
};
var Selector = {
ACTIVE: '.active',
ACTIVE_ITEM: '.active.carousel-item',
ITEM: '.carousel-item',
ITEM_IMG: '.carousel-item img',
NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
INDICATORS: '.carousel-indicators',
DATA_SLIDE: '[data-slide], [data-slide-to]',
DATA_RIDE: '[data-ride="carousel"]'
};
var PointerType = {
TOUCH: 'touch',
PEN: 'pen'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Carousel =
/*#__PURE__*/
function () {
function Carousel(element, config) {
this._items = null;
this._interval = null;
this._activeElement = null;
this._isPaused = false;
this._isSliding = false;
this.touchTimeout = null;
this.touchStartX = 0;
this.touchDeltaX = 0;
this._config = this._getConfig(config);
this._element = element;
this._indicatorsElement = this._element.querySelector(Selector.INDICATORS);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
this._addEventListeners();
} // Getters
var _proto = Carousel.prototype;
// Public
_proto.next = function next() {
if (!this._isSliding) {
this._slide(Direction.NEXT);
}
};
_proto.nextWhenVisible = function nextWhenVisible() {
// Don't call next when the page isn't visible
// or the carousel or its parent isn't visible
if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
this.next();
}
};
_proto.prev = function prev() {
if (!this._isSliding) {
this._slide(Direction.PREV);
}
};
_proto.pause = function pause(event) {
if (!event) {
this._isPaused = true;
}
if (this._element.querySelector(Selector.NEXT_PREV)) {
Util.triggerTransitionEnd(this._element);
this.cycle(true);
}
clearInterval(this._interval);
this._interval = null;
};
_proto.cycle = function cycle(event) {
if (!event) {
this._isPaused = false;
}
if (this._interval) {
clearInterval(this._interval);
this._interval = null;
}
if (this._config.interval && !this._isPaused) {
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
}
};
_proto.to = function to(index) {
var _this = this;
this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
var activeIndex = this._getItemIndex(this._activeElement);
if (index > this._items.length - 1 || index < 0) {
return;
}
if (this._isSliding) {
$(this._element).one(Event.SLID, function () {
return _this.to(index);
});
return;
}
if (activeIndex === index) {
this.pause();
this.cycle();
return;
}
var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
this._slide(direction, this._items[index]);
};
_proto.dispose = function dispose() {
$(this._element).off(EVENT_KEY);
$.removeData(this._element, DATA_KEY);
this._items = null;
this._config = null;
this._element = null;
this._interval = null;
this._isPaused = null;
this._isSliding = null;
this._activeElement = null;
this._indicatorsElement = null;
} // Private
;
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config);
Util.typeCheckConfig(NAME, config, DefaultType);
return config;
};
_proto._handleSwipe = function _handleSwipe() {
var absDeltax = Math.abs(this.touchDeltaX);
if (absDeltax <= SWIPE_THRESHOLD) {
return;
}
var direction = absDeltax / this.touchDeltaX; // swipe left
if (direction > 0) {
this.prev();
} // swipe right
if (direction < 0) {
this.next();
}
};
_proto._addEventListeners = function _addEventListeners() {
var _this2 = this;
if (this._config.keyboard) {
$(this._element).on(Event.KEYDOWN, function (event) {
return _this2._keydown(event);
});
}
if (this._config.pause === 'hover') {
$(this._element).on(Event.MOUSEENTER, function (event) {
return _this2.pause(event);
}).on(Event.MOUSELEAVE, function (event) {
return _this2.cycle(event);
});
}
if (this._config.touch) {
this._addTouchEventListeners();
}
};
_proto._addTouchEventListeners = function _addTouchEventListeners() {
var _this3 = this;
if (!this._touchSupported) {
return;
}
var start = function start(event) {
if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
_this3.touchStartX = event.originalEvent.clientX;
} else if (!_this3._pointerEvent) {
_this3.touchStartX = event.originalEvent.touches[0].clientX;
}
};
var move = function move(event) {
// ensure swiping with one touch and not pinching
if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
_this3.touchDeltaX = 0;
} else {
_this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
}
};
var end = function end(event) {
if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
_this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
}
_this3._handleSwipe();
if (_this3._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
_this3.pause();
if (_this3.touchTimeout) {
clearTimeout(_this3.touchTimeout);
}
_this3.touchTimeout = setTimeout(function (event) {
return _this3.cycle(event);
}, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
}
};
$(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, function (e) {
return e.preventDefault();
});
if (this._pointerEvent) {
$(this._element).on(Event.POINTERDOWN, function (event) {
return start(event);
});
$(this._element).on(Event.POINTERUP, function (event) {
return end(event);
});
this._element.classList.add(ClassName.POINTER_EVENT);
} else {
$(this._element).on(Event.TOUCHSTART, function (event) {
return start(event);
});
$(this._element).on(Event.TOUCHMOVE, function (event) {
return move(event);
});
$(this._element).on(Event.TOUCHEND, function (event) {
return end(event);
});
}
};
_proto._keydown = function _keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) {
return;
}
switch (event.which) {
case ARROW_LEFT_KEYCODE:
event.preventDefault();
this.prev();
break;
case ARROW_RIGHT_KEYCODE:
event.preventDefault();
this.next();
break;
default:
}
};
_proto._getItemIndex = function _getItemIndex(element) {
this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : [];
return this._items.indexOf(element);
};
_proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
var isNextDirection = direction === Direction.NEXT;
var isPrevDirection = direction === Direction.PREV;
var activeIndex = this._getItemIndex(activeElement);
var lastItemIndex = this._items.length - 1;
var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
if (isGoingToWrap && !this._config.wrap) {
return activeElement;
}
var delta = direction === Direction.PREV ? -1 : 1;
var itemIndex = (activeIndex + delta) % this._items.length;
return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
};
_proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
var targetIndex = this._getItemIndex(relatedTarget);
var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM));
var slideEvent = $.Event(Event.SLIDE, {
relatedTarget: relatedTarget,
direction: eventDirectionName,
from: fromIndex,
to: targetIndex
});
$(this._element).trigger(slideEvent);
return slideEvent;
};
_proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
if (this._indicatorsElement) {
var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE));
$(indicators).removeClass(ClassName.ACTIVE);
var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
if (nextIndicator) {
$(nextIndicator).addClass(ClassName.ACTIVE);
}
}
};
_proto._slide = function _slide(direction, element) {
var _this4 = this;
var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
var activeElementIndex = this._getItemIndex(activeElement);
var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
var nextElementIndex = this._getItemIndex(nextElement);
var isCycling = Boolean(this._interval);
var directionalClassName;
var orderClassName;
var eventDirectionName;
if (direction === Direction.NEXT) {
directionalClassName = ClassName.LEFT;
orderClassName = ClassName.NEXT;
eventDirectionName = Direction.LEFT;
} else {
directionalClassName = ClassName.RIGHT;
orderClassName = ClassName.PREV;
eventDirectionName = Direction.RIGHT;
}
if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
this._isSliding = false;
return;
}
var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
if (slideEvent.isDefaultPrevented()) {
return;
}
if (!activeElement || !nextElement) {
// Some weirdness is happening, so we bail
return;
}
this._isSliding = true;
if (isCycling) {
this.pause();
}
this._setActiveIndicatorElement(nextElement);
var slidEvent = $.Event(Event.SLID, {
relatedTarget: nextElement,
direction: eventDirectionName,
from: activeElementIndex,
to: nextElementIndex
});
if ($(this._element).hasClass(ClassName.SLIDE)) {
$(nextElement).addClass(orderClassName);
Util.reflow(nextElement);
$(activeElement).addClass(directionalClassName);
$(nextElement).addClass(directionalClassName);
var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
if (nextElementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
this._config.interval = nextElementInterval;
} else {
this._config.interval = this._config.defaultInterval || this._config.interval;
}
var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
$(activeElement).one(Util.TRANSITION_END, function () {
$(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
$(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
_this4._isSliding = false;
setTimeout(function () {
return $(_this4._element).trigger(slidEvent);
}, 0);
}).emulateTransitionEnd(transitionDuration);
} else {
$(activeElement).removeClass(ClassName.ACTIVE);
$(nextElement).addClass(ClassName.ACTIVE);
this._isSliding = false;
$(this._element).trigger(slidEvent);
}
if (isCycling) {
this.cycle();
}
} // Static
;
Carousel._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = _objectSpread({}, Default, $(this).data());
if (typeof config === 'object') {
_config = _objectSpread({}, _config, config);
}
var action = typeof config === 'string' ? config : _config.slide;
if (!data) {
data = new Carousel(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'number') {
data.to(config);
} else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') {
throw new TypeError("No method named \"" + action + "\"");
}
data[action]();
} else if (_config.interval && _config.ride) {
data.pause();
data.cycle();
}
});
};
Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
var selector = Util.getSelectorFromElement(this);
if (!selector) {
return;
}
var target = $(selector)[0];
if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
return;
}
var config = _objectSpread({}, $(target).data(), $(this).data());
var slideIndex = this.getAttribute('data-slide-to');
if (slideIndex) {
config.interval = false;
}
Carousel._jQueryInterface.call($(target), config);
if (slideIndex) {
$(target).data(DATA_KEY).to(slideIndex);
}
event.preventDefault();
};
_createClass(Carousel, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return Carousel;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
$(window).on(Event.LOAD_DATA_API, function () {
var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE));
for (var i = 0, len = carousels.length; i < len; i++) {
var $carousel = $(carousels[i]);
Carousel._jQueryInterface.call($carousel, $carousel.data());
}
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Carousel._jQueryInterface;
$.fn[NAME].Constructor = Carousel;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Carousel._jQueryInterface;
};
return Carousel;
}));
//# sourceMappingURL=carousel.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,428 @@
/*!
* Bootstrap collapse.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Collapse = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Default = {
toggle: true,
parent: ''
};
var DefaultType = {
toggle: 'boolean',
parent: '(string|element)'
};
var Event = {
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
SHOW: 'show',
COLLAPSE: 'collapse',
COLLAPSING: 'collapsing',
COLLAPSED: 'collapsed'
};
var Dimension = {
WIDTH: 'width',
HEIGHT: 'height'
};
var Selector = {
ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Collapse =
/*#__PURE__*/
function () {
function Collapse(element, config) {
this._isTransitioning = false;
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
for (var i = 0, len = toggleList.length; i < len; i++) {
var elem = toggleList[i];
var selector = Util.getSelectorFromElement(elem);
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
return foundElem === element;
});
if (selector !== null && filterElement.length > 0) {
this._selector = selector;
this._triggerArray.push(elem);
}
}
this._parent = this._config.parent ? this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
}
if (this._config.toggle) {
this.toggle();
}
} // Getters
var _proto = Collapse.prototype;
// Public
_proto.toggle = function toggle() {
if ($(this._element).hasClass(ClassName.SHOW)) {
this.hide();
} else {
this.show();
}
};
_proto.show = function show() {
var _this = this;
if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
return;
}
var actives;
var activesData;
if (this._parent) {
actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
if (typeof _this._config.parent === 'string') {
return elem.getAttribute('data-parent') === _this._config.parent;
}
return elem.classList.contains(ClassName.COLLAPSE);
});
if (actives.length === 0) {
actives = null;
}
}
if (actives) {
activesData = $(actives).not(this._selector).data(DATA_KEY);
if (activesData && activesData._isTransitioning) {
return;
}
}
var startEvent = $.Event(Event.SHOW);
$(this._element).trigger(startEvent);
if (startEvent.isDefaultPrevented()) {
return;
}
if (actives) {
Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
if (!activesData) {
$(actives).data(DATA_KEY, null);
}
}
var dimension = this._getDimension();
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
this._element.style[dimension] = 0;
if (this._triggerArray.length) {
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
}
this.setTransitioning(true);
var complete = function complete() {
$(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
_this._element.style[dimension] = '';
_this.setTransitioning(false);
$(_this._element).trigger(Event.SHOWN);
};
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
var scrollSize = "scroll" + capitalizedDimension;
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
this._element.style[dimension] = this._element[scrollSize] + "px";
};
_proto.hide = function hide() {
var _this2 = this;
if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
return;
}
var startEvent = $.Event(Event.HIDE);
$(this._element).trigger(startEvent);
if (startEvent.isDefaultPrevented()) {
return;
}
var dimension = this._getDimension();
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
Util.reflow(this._element);
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
var triggerArrayLength = this._triggerArray.length;
if (triggerArrayLength > 0) {
for (var i = 0; i < triggerArrayLength; i++) {
var trigger = this._triggerArray[i];
var selector = Util.getSelectorFromElement(trigger);
if (selector !== null) {
var $elem = $([].slice.call(document.querySelectorAll(selector)));
if (!$elem.hasClass(ClassName.SHOW)) {
$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
}
}
}
}
this.setTransitioning(true);
var complete = function complete() {
_this2.setTransitioning(false);
$(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
};
this._element.style[dimension] = '';
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
};
_proto.setTransitioning = function setTransitioning(isTransitioning) {
this._isTransitioning = isTransitioning;
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
this._config = null;
this._parent = null;
this._element = null;
this._triggerArray = null;
this._isTransitioning = null;
} // Private
;
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config);
config.toggle = Boolean(config.toggle); // Coerce string values
Util.typeCheckConfig(NAME, config, DefaultType);
return config;
};
_proto._getDimension = function _getDimension() {
var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
};
_proto._getParent = function _getParent() {
var _this3 = this;
var parent;
if (Util.isElement(this._config.parent)) {
parent = this._config.parent; // It's a jQuery object
if (typeof this._config.parent.jquery !== 'undefined') {
parent = this._config.parent[0];
}
} else {
parent = document.querySelector(this._config.parent);
}
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
var children = [].slice.call(parent.querySelectorAll(selector));
$(children).each(function (i, element) {
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
});
return parent;
};
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
var isOpen = $(element).hasClass(ClassName.SHOW);
if (triggerArray.length) {
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
}
} // Static
;
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
var selector = Util.getSelectorFromElement(element);
return selector ? document.querySelector(selector) : null;
};
Collapse._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $this = $(this);
var data = $this.data(DATA_KEY);
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
if (!data && _config.toggle && /show|hide/.test(config)) {
_config.toggle = false;
}
if (!data) {
data = new Collapse(this, _config);
$this.data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
_createClass(Collapse, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return Collapse;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
if (event.currentTarget.tagName === 'A') {
event.preventDefault();
}
var $trigger = $(this);
var selector = Util.getSelectorFromElement(this);
var selectors = [].slice.call(document.querySelectorAll(selector));
$(selectors).each(function () {
var $target = $(this);
var data = $target.data(DATA_KEY);
var config = data ? 'toggle' : $trigger.data();
Collapse._jQueryInterface.call($target, config);
});
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Collapse._jQueryInterface;
$.fn[NAME].Constructor = Collapse;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Collapse._jQueryInterface;
};
return Collapse;
}));
//# sourceMappingURL=collapse.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,595 @@
/*!
* Bootstrap dropdown.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
(global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
}(this, function ($, Popper, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'dropdown';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
var Event = {
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
CLICK: "click" + EVENT_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
DISABLED: 'disabled',
SHOW: 'show',
DROPUP: 'dropup',
DROPRIGHT: 'dropright',
DROPLEFT: 'dropleft',
MENURIGHT: 'dropdown-menu-right',
MENULEFT: 'dropdown-menu-left',
POSITION_STATIC: 'position-static'
};
var Selector = {
DATA_TOGGLE: '[data-toggle="dropdown"]',
FORM_CHILD: '.dropdown form',
MENU: '.dropdown-menu',
NAVBAR_NAV: '.navbar-nav',
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
};
var AttachmentMap = {
TOP: 'top-start',
TOPEND: 'top-end',
BOTTOM: 'bottom-start',
BOTTOMEND: 'bottom-end',
RIGHT: 'right-start',
RIGHTEND: 'right-end',
LEFT: 'left-start',
LEFTEND: 'left-end'
};
var Default = {
offset: 0,
flip: true,
boundary: 'scrollParent',
reference: 'toggle',
display: 'dynamic'
};
var DefaultType = {
offset: '(number|string|function)',
flip: 'boolean',
boundary: '(string|element)',
reference: '(string|element)',
display: 'string'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Dropdown =
/*#__PURE__*/
function () {
function Dropdown(element, config) {
this._element = element;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._inNavbar = this._detectNavbar();
this._addEventListeners();
} // Getters
var _proto = Dropdown.prototype;
// Public
_proto.toggle = function toggle() {
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return;
}
var parent = Dropdown._getParentFromElement(this._element);
var isActive = $(this._menu).hasClass(ClassName.SHOW);
Dropdown._clearMenus();
if (isActive) {
return;
}
var relatedTarget = {
relatedTarget: this._element
};
var showEvent = $.Event(Event.SHOW, relatedTarget);
$(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) {
return;
} // Disable totally Popper.js for Dropdown in Navbar
if (!this._inNavbar) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
}
var referenceElement = this._element;
if (this._config.reference === 'parent') {
referenceElement = parent;
} else if (Util.isElement(this._config.reference)) {
referenceElement = this._config.reference; // Check if it's jQuery element
if (typeof this._config.reference.jquery !== 'undefined') {
referenceElement = this._config.reference[0];
}
} // If boundary is not `scrollParent`, then set position to `static`
// to allow the menu to "escape" the scroll parent's boundaries
// https://github.com/twbs/bootstrap/issues/24251
if (this._config.boundary !== 'scrollParent') {
$(parent).addClass(ClassName.POSITION_STATIC);
}
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
} // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement && $(parent).closest(Selector.NAVBAR_NAV).length === 0) {
$(document.body).children().on('mouseover', null, $.noop);
}
this._element.focus();
this._element.setAttribute('aria-expanded', true);
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
};
_proto.show = function show() {
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
return;
}
var relatedTarget = {
relatedTarget: this._element
};
var showEvent = $.Event(Event.SHOW, relatedTarget);
var parent = Dropdown._getParentFromElement(this._element);
$(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) {
return;
}
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
};
_proto.hide = function hide() {
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {
return;
}
var relatedTarget = {
relatedTarget: this._element
};
var hideEvent = $.Event(Event.HIDE, relatedTarget);
var parent = Dropdown._getParentFromElement(this._element);
$(parent).trigger(hideEvent);
if (hideEvent.isDefaultPrevented()) {
return;
}
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._element).off(EVENT_KEY);
this._element = null;
this._menu = null;
if (this._popper !== null) {
this._popper.destroy();
this._popper = null;
}
};
_proto.update = function update() {
this._inNavbar = this._detectNavbar();
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
} // Private
;
_proto._addEventListeners = function _addEventListeners() {
var _this = this;
$(this._element).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
_this.toggle();
});
};
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
_proto._getMenuElement = function _getMenuElement() {
if (!this._menu) {
var parent = Dropdown._getParentFromElement(this._element);
if (parent) {
this._menu = parent.querySelector(Selector.MENU);
}
}
return this._menu;
};
_proto._getPlacement = function _getPlacement() {
var $parentDropdown = $(this._element.parentNode);
var placement = AttachmentMap.BOTTOM; // Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP)) {
placement = AttachmentMap.TOP;
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND;
}
} else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
placement = AttachmentMap.RIGHT;
} else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
placement = AttachmentMap.LEFT;
} else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND;
}
return placement;
};
_proto._detectNavbar = function _detectNavbar() {
return $(this._element).closest('.navbar').length > 0;
};
_proto._getOffset = function _getOffset() {
var _this2 = this;
var offset = {};
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
return data;
};
} else {
offset.offset = this._config.offset;
}
return offset;
};
_proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = {
placement: this._getPlacement(),
modifiers: {
offset: this._getOffset(),
flip: {
enabled: this._config.flip
},
preventOverflow: {
boundariesElement: this._config.boundary
}
} // Disable Popper.js if we have a static display
};
if (this._config.display === 'static') {
popperConfig.modifiers.applyStyle = {
enabled: false
};
}
return popperConfig;
} // Static
;
Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = typeof config === 'object' ? config : null;
if (!data) {
data = new Dropdown(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
Dropdown._clearMenus = function _clearMenus(event) {
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
return;
}
var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
for (var i = 0, len = toggles.length; i < len; i++) {
var parent = Dropdown._getParentFromElement(toggles[i]);
var context = $(toggles[i]).data(DATA_KEY);
var relatedTarget = {
relatedTarget: toggles[i]
};
if (event && event.type === 'click') {
relatedTarget.clickEvent = event;
}
if (!context) {
continue;
}
var dropdownMenu = context._menu;
if (!$(parent).hasClass(ClassName.SHOW)) {
continue;
}
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
continue;
}
var hideEvent = $.Event(Event.HIDE, relatedTarget);
$(parent).trigger(hideEvent);
if (hideEvent.isDefaultPrevented()) {
continue;
} // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
if ('ontouchstart' in document.documentElement) {
$(document.body).children().off('mouseover', null, $.noop);
}
toggles[i].setAttribute('aria-expanded', 'false');
$(dropdownMenu).removeClass(ClassName.SHOW);
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
}
};
Dropdown._getParentFromElement = function _getParentFromElement(element) {
var parent;
var selector = Util.getSelectorFromElement(element);
if (selector) {
parent = document.querySelector(selector);
}
return parent || element.parentNode;
} // eslint-disable-next-line complexity
;
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea:
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
// If input/textarea:
// - If space key => not a dropdown command
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
return;
}
event.preventDefault();
event.stopPropagation();
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
return;
}
var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.SHOW);
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
if (event.which === ESCAPE_KEYCODE) {
var toggle = parent.querySelector(Selector.DATA_TOGGLE);
$(toggle).trigger('focus');
}
$(this).trigger('click');
return;
}
var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
if (items.length === 0) {
return;
}
var index = items.indexOf(event.target);
if (event.which === ARROW_UP_KEYCODE && index > 0) {
// Up
index--;
}
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// Down
index++;
}
if (index < 0) {
index = 0;
}
items[index].focus();
};
_createClass(Dropdown, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}, {
key: "DefaultType",
get: function get() {
return DefaultType;
}
}]);
return Dropdown;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault();
event.stopPropagation();
Dropdown._jQueryInterface.call($(this), 'toggle');
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation();
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Dropdown._jQueryInterface;
$.fn[NAME].Constructor = Dropdown;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Dropdown._jQueryInterface;
};
return Dropdown;
}));
//# sourceMappingURL=dropdown.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,23 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
(function ($) {
if (typeof $ === 'undefined') {
throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
}
var version = $.fn.jquery.split(' ')[0].split('.');
var minMajor = 1;
var ltMajor = 2;
var minMinor = 9;
var minPatch = 1;
var maxMajor = 4;
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
}
})($);
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../src/index.js"],"names":["$","TypeError","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor","Error"],"mappings":"AAaA;;;;;;AAOA,CAAC,UAACA,CAAD,EAAO;AACN,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,SAAJ,CAAc,kGAAd,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAU,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIC,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGX,CAfH","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"file":"index.js"}

View File

@ -0,0 +1,650 @@
/*!
* Bootstrap modal.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Modal = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = {
backdrop: true,
keyboard: true,
focus: true,
show: true
};
var DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
};
var Event = {
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
FOCUSIN: "focusin" + EVENT_KEY,
RESIZE: "resize" + EVENT_KEY,
CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
SCROLLABLE: 'modal-dialog-scrollable',
SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
BACKDROP: 'modal-backdrop',
OPEN: 'modal-open',
FADE: 'fade',
SHOW: 'show'
};
var Selector = {
DIALOG: '.modal-dialog',
MODAL_BODY: '.modal-body',
DATA_TOGGLE: '[data-toggle="modal"]',
DATA_DISMISS: '[data-dismiss="modal"]',
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
STICKY_CONTENT: '.sticky-top'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Modal =
/*#__PURE__*/
function () {
function Modal(element, config) {
this._config = this._getConfig(config);
this._element = element;
this._dialog = element.querySelector(Selector.DIALOG);
this._backdrop = null;
this._isShown = false;
this._isBodyOverflowing = false;
this._ignoreBackdropClick = false;
this._isTransitioning = false;
this._scrollbarWidth = 0;
} // Getters
var _proto = Modal.prototype;
// Public
_proto.toggle = function toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget);
};
_proto.show = function show(relatedTarget) {
var _this = this;
if (this._isShown || this._isTransitioning) {
return;
}
if ($(this._element).hasClass(ClassName.FADE)) {
this._isTransitioning = true;
}
var showEvent = $.Event(Event.SHOW, {
relatedTarget: relatedTarget
});
$(this._element).trigger(showEvent);
if (this._isShown || showEvent.isDefaultPrevented()) {
return;
}
this._isShown = true;
this._checkScrollbar();
this._setScrollbar();
this._adjustDialog();
this._setEscapeEvent();
this._setResizeEvent();
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
return _this.hide(event);
});
$(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
$(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this._element)) {
_this._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
return _this._showElement(relatedTarget);
});
};
_proto.hide = function hide(event) {
var _this2 = this;
if (event) {
event.preventDefault();
}
if (!this._isShown || this._isTransitioning) {
return;
}
var hideEvent = $.Event(Event.HIDE);
$(this._element).trigger(hideEvent);
if (!this._isShown || hideEvent.isDefaultPrevented()) {
return;
}
this._isShown = false;
var transition = $(this._element).hasClass(ClassName.FADE);
if (transition) {
this._isTransitioning = true;
}
this._setEscapeEvent();
this._setResizeEvent();
$(document).off(Event.FOCUSIN);
$(this._element).removeClass(ClassName.SHOW);
$(this._element).off(Event.CLICK_DISMISS);
$(this._dialog).off(Event.MOUSEDOWN_DISMISS);
if (transition) {
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
$(this._element).one(Util.TRANSITION_END, function (event) {
return _this2._hideModal(event);
}).emulateTransitionEnd(transitionDuration);
} else {
this._hideModal();
}
};
_proto.dispose = function dispose() {
[window, this._element, this._dialog].forEach(function (htmlElement) {
return $(htmlElement).off(EVENT_KEY);
});
/**
* `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
* It will remove `Event.CLICK_DATA_API` event that should remain
*/
$(document).off(Event.FOCUSIN);
$.removeData(this._element, DATA_KEY);
this._config = null;
this._element = null;
this._dialog = null;
this._backdrop = null;
this._isShown = null;
this._isBodyOverflowing = null;
this._ignoreBackdropClick = null;
this._isTransitioning = null;
this._scrollbarWidth = null;
};
_proto.handleUpdate = function handleUpdate() {
this._adjustDialog();
} // Private
;
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config);
Util.typeCheckConfig(NAME, config, DefaultType);
return config;
};
_proto._showElement = function _showElement(relatedTarget) {
var _this3 = this;
var transition = $(this._element).hasClass(ClassName.FADE);
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
// Don't move modal's DOM position
document.body.appendChild(this._element);
}
this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.setAttribute('aria-modal', true);
if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {
this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0;
} else {
this._element.scrollTop = 0;
}
if (transition) {
Util.reflow(this._element);
}
$(this._element).addClass(ClassName.SHOW);
if (this._config.focus) {
this._enforceFocus();
}
var shownEvent = $.Event(Event.SHOWN, {
relatedTarget: relatedTarget
});
var transitionComplete = function transitionComplete() {
if (_this3._config.focus) {
_this3._element.focus();
}
_this3._isTransitioning = false;
$(_this3._element).trigger(shownEvent);
};
if (transition) {
var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
$(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
} else {
transitionComplete();
}
};
_proto._enforceFocus = function _enforceFocus() {
var _this4 = this;
$(document).off(Event.FOCUSIN) // Guard against infinite focus loop
.on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
_this4._element.focus();
}
});
};
_proto._setEscapeEvent = function _setEscapeEvent() {
var _this5 = this;
if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === ESCAPE_KEYCODE) {
event.preventDefault();
_this5.hide();
}
});
} else if (!this._isShown) {
$(this._element).off(Event.KEYDOWN_DISMISS);
}
};
_proto._setResizeEvent = function _setResizeEvent() {
var _this6 = this;
if (this._isShown) {
$(window).on(Event.RESIZE, function (event) {
return _this6.handleUpdate(event);
});
} else {
$(window).off(Event.RESIZE);
}
};
_proto._hideModal = function _hideModal() {
var _this7 = this;
this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', true);
this._element.removeAttribute('aria-modal');
this._isTransitioning = false;
this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN);
_this7._resetAdjustments();
_this7._resetScrollbar();
$(_this7._element).trigger(Event.HIDDEN);
});
};
_proto._removeBackdrop = function _removeBackdrop() {
if (this._backdrop) {
$(this._backdrop).remove();
this._backdrop = null;
}
};
_proto._showBackdrop = function _showBackdrop(callback) {
var _this8 = this;
var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
if (this._isShown && this._config.backdrop) {
this._backdrop = document.createElement('div');
this._backdrop.className = ClassName.BACKDROP;
if (animate) {
this._backdrop.classList.add(animate);
}
$(this._backdrop).appendTo(document.body);
$(this._element).on(Event.CLICK_DISMISS, function (event) {
if (_this8._ignoreBackdropClick) {
_this8._ignoreBackdropClick = false;
return;
}
if (event.target !== event.currentTarget) {
return;
}
if (_this8._config.backdrop === 'static') {
_this8._element.focus();
} else {
_this8.hide();
}
});
if (animate) {
Util.reflow(this._backdrop);
}
$(this._backdrop).addClass(ClassName.SHOW);
if (!callback) {
return;
}
if (!animate) {
callback();
return;
}
var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
$(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
} else if (!this._isShown && this._backdrop) {
$(this._backdrop).removeClass(ClassName.SHOW);
var callbackRemove = function callbackRemove() {
_this8._removeBackdrop();
if (callback) {
callback();
}
};
if ($(this._element).hasClass(ClassName.FADE)) {
var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
$(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
} else {
callbackRemove();
}
} else if (callback) {
callback();
}
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
;
_proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
if (!this._isBodyOverflowing && isModalOverflowing) {
this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + "px";
}
};
_proto._resetAdjustments = function _resetAdjustments() {
this._element.style.paddingLeft = '';
this._element.style.paddingRight = '';
};
_proto._checkScrollbar = function _checkScrollbar() {
var rect = document.body.getBoundingClientRect();
this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth();
};
_proto._setScrollbar = function _setScrollbar() {
var _this9 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
$(fixedContent).each(function (index, element) {
var actualPadding = element.style.paddingRight;
var calculatedPadding = $(element).css('padding-right');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
}); // Adjust sticky content margin
$(stickyContent).each(function (index, element) {
var actualMargin = element.style.marginRight;
var calculatedMargin = $(element).css('margin-right');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
}); // Adjust body padding
var actualPadding = document.body.style.paddingRight;
var calculatedPadding = $(document.body).css('padding-right');
$(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
}
$(document.body).addClass(ClassName.OPEN);
};
_proto._resetScrollbar = function _resetScrollbar() {
// Restore fixed content padding
var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
$(fixedContent).each(function (index, element) {
var padding = $(element).data('padding-right');
$(element).removeData('padding-right');
element.style.paddingRight = padding ? padding : '';
}); // Restore sticky content
var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
$(elements).each(function (index, element) {
var margin = $(element).data('margin-right');
if (typeof margin !== 'undefined') {
$(element).css('margin-right', margin).removeData('margin-right');
}
}); // Restore body padding
var padding = $(document.body).data('padding-right');
$(document.body).removeData('padding-right');
document.body.style.paddingRight = padding ? padding : '';
};
_proto._getScrollbarWidth = function _getScrollbarWidth() {
// thx d.walsh
var scrollDiv = document.createElement('div');
scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
document.body.appendChild(scrollDiv);
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
return scrollbarWidth;
} // Static
;
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config](relatedTarget);
} else if (_config.show) {
data.show(relatedTarget);
}
});
};
_createClass(Modal, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return Modal;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
var _this10 = this;
var target;
var selector = Util.getSelectorFromElement(this);
if (selector) {
target = document.querySelector(selector);
}
var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
if (this.tagName === 'A' || this.tagName === 'AREA') {
event.preventDefault();
}
var $target = $(target).one(Event.SHOW, function (showEvent) {
if (showEvent.isDefaultPrevented()) {
// Only register focus restorer if modal will actually get shown
return;
}
$target.one(Event.HIDDEN, function () {
if ($(_this10).is(':visible')) {
_this10.focus();
}
});
});
Modal._jQueryInterface.call($(target), config, this);
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Modal._jQueryInterface;
$.fn[NAME].Constructor = Modal;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Modal._jQueryInterface;
};
return Modal;
}));
//# sourceMappingURL=modal.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,261 @@
/*!
* Bootstrap popover.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
(global = global || self, global.Popover = factory(global.jQuery, global.Tooltip));
}(this, function ($, Tooltip) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Tooltip = Tooltip && Tooltip.hasOwnProperty('default') ? Tooltip['default'] : Tooltip;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
function _inheritsLoose(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
subClass.__proto__ = superClass;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'popover';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var Default = _objectSpread({}, Tooltip.Default, {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
});
var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
content: '(string|element|function)'
});
var ClassName = {
FADE: 'fade',
SHOW: 'show'
};
var Selector = {
TITLE: '.popover-header',
CONTENT: '.popover-body'
};
var Event = {
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
INSERTED: "inserted" + EVENT_KEY,
CLICK: "click" + EVENT_KEY,
FOCUSIN: "focusin" + EVENT_KEY,
FOCUSOUT: "focusout" + EVENT_KEY,
MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: "mouseleave" + EVENT_KEY
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Popover =
/*#__PURE__*/
function (_Tooltip) {
_inheritsLoose(Popover, _Tooltip);
function Popover() {
return _Tooltip.apply(this, arguments) || this;
}
var _proto = Popover.prototype;
// Overrides
_proto.isWithContent = function isWithContent() {
return this.getTitle() || this._getContent();
};
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
};
_proto.getTipElement = function getTipElement() {
this.tip = this.tip || $(this.config.template)[0];
return this.tip;
};
_proto.setContent = function setContent() {
var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
var content = this._getContent();
if (typeof content === 'function') {
content = content.call(this.element);
}
this.setElementContent($tip.find(Selector.CONTENT), content);
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
} // Private
;
_proto._getContent = function _getContent() {
return this.element.getAttribute('data-content') || this.config.content;
};
_proto._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
} // Static
;
Popover._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = typeof config === 'object' ? config : null;
if (!data && /dispose|hide/.test(config)) {
return;
}
if (!data) {
data = new Popover(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
_createClass(Popover, null, [{
key: "VERSION",
// Getters
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}, {
key: "NAME",
get: function get() {
return NAME;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}, {
key: "Event",
get: function get() {
return Event;
}
}, {
key: "EVENT_KEY",
get: function get() {
return EVENT_KEY;
}
}, {
key: "DefaultType",
get: function get() {
return DefaultType;
}
}]);
return Popover;
}(Tooltip);
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Popover._jQueryInterface;
$.fn[NAME].Constructor = Popover;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Popover._jQueryInterface;
};
return Popover;
}));
//# sourceMappingURL=popover.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,375 @@
/*!
* Bootstrap scrollspy.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Default = {
offset: 10,
method: 'auto',
target: ''
};
var DefaultType = {
offset: 'number',
method: 'string',
target: '(string|element)'
};
var Event = {
ACTIVATE: "activate" + EVENT_KEY,
SCROLL: "scroll" + EVENT_KEY,
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
DROPDOWN_ITEM: 'dropdown-item',
DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active'
};
var Selector = {
DATA_SPY: '[data-spy="scroll"]',
ACTIVE: '.active',
NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
NAV_ITEMS: '.nav-item',
LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
};
var OffsetMethod = {
OFFSET: 'offset',
POSITION: 'position'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var ScrollSpy =
/*#__PURE__*/
function () {
function ScrollSpy(element, config) {
var _this = this;
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
this._offsets = [];
this._targets = [];
this._activeTarget = null;
this._scrollHeight = 0;
$(this._scrollElement).on(Event.SCROLL, function (event) {
return _this._process(event);
});
this.refresh();
this._process();
} // Getters
var _proto = ScrollSpy.prototype;
// Public
_proto.refresh = function refresh() {
var _this2 = this;
var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
this._offsets = [];
this._targets = [];
this._scrollHeight = this._getScrollHeight();
var targets = [].slice.call(document.querySelectorAll(this._selector));
targets.map(function (element) {
var target;
var targetSelector = Util.getSelectorFromElement(element);
if (targetSelector) {
target = document.querySelector(targetSelector);
}
if (target) {
var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) {
// TODO (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
}
}
return null;
}).filter(function (item) {
return item;
}).sort(function (a, b) {
return a[0] - b[0];
}).forEach(function (item) {
_this2._offsets.push(item[0]);
_this2._targets.push(item[1]);
});
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._scrollElement).off(EVENT_KEY);
this._element = null;
this._scrollElement = null;
this._config = null;
this._selector = null;
this._offsets = null;
this._targets = null;
this._activeTarget = null;
this._scrollHeight = null;
} // Private
;
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
if (typeof config.target !== 'string') {
var id = $(config.target).attr('id');
if (!id) {
id = Util.getUID(NAME);
$(config.target).attr('id', id);
}
config.target = "#" + id;
}
Util.typeCheckConfig(NAME, config, DefaultType);
return config;
};
_proto._getScrollTop = function _getScrollTop() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
};
_proto._getScrollHeight = function _getScrollHeight() {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
};
_proto._getOffsetHeight = function _getOffsetHeight() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
};
_proto._process = function _process() {
var scrollTop = this._getScrollTop() + this._config.offset;
var scrollHeight = this._getScrollHeight();
var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
if (this._scrollHeight !== scrollHeight) {
this.refresh();
}
if (scrollTop >= maxScroll) {
var target = this._targets[this._targets.length - 1];
if (this._activeTarget !== target) {
this._activate(target);
}
return;
}
if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
this._activeTarget = null;
this._clear();
return;
}
var offsetLength = this._offsets.length;
for (var i = offsetLength; i--;) {
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
if (isActiveTarget) {
this._activate(this._targets[i]);
}
}
};
_proto._activate = function _activate(target) {
this._activeTarget = target;
this._clear();
var queries = this._selector.split(',').map(function (selector) {
return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
});
var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
$link.addClass(ClassName.ACTIVE);
} else {
// Set triggered link as active
$link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
}
$(this._scrollElement).trigger(Event.ACTIVATE, {
relatedTarget: target
});
};
_proto._clear = function _clear() {
[].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
return node.classList.contains(ClassName.ACTIVE);
}).forEach(function (node) {
return node.classList.remove(ClassName.ACTIVE);
});
} // Static
;
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = typeof config === 'object' && config;
if (!data) {
data = new ScrollSpy(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
_createClass(ScrollSpy, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return ScrollSpy;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(window).on(Event.LOAD_DATA_API, function () {
var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
var scrollSpysLength = scrollSpys.length;
for (var i = scrollSpysLength; i--;) {
var $spy = $(scrollSpys[i]);
ScrollSpy._jQueryInterface.call($spy, $spy.data());
}
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = ScrollSpy._jQueryInterface;
$.fn[NAME].Constructor = ScrollSpy;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return ScrollSpy._jQueryInterface;
};
return ScrollSpy;
}));
//# sourceMappingURL=scrollspy.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,269 @@
/*!
* Bootstrap tab.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Tab = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Event = {
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
var ClassName = {
DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active',
DISABLED: 'disabled',
FADE: 'fade',
SHOW: 'show'
};
var Selector = {
DROPDOWN: '.dropdown',
NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active',
ACTIVE_UL: '> li > .active',
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Tab =
/*#__PURE__*/
function () {
function Tab(element) {
this._element = element;
} // Getters
var _proto = Tab.prototype;
// Public
_proto.show = function show() {
var _this = this;
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
return;
}
var target;
var previous;
var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
var selector = Util.getSelectorFromElement(this._element);
if (listElement) {
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
previous = $.makeArray($(listElement).find(itemSelector));
previous = previous[previous.length - 1];
}
var hideEvent = $.Event(Event.HIDE, {
relatedTarget: this._element
});
var showEvent = $.Event(Event.SHOW, {
relatedTarget: previous
});
if (previous) {
$(previous).trigger(hideEvent);
}
$(this._element).trigger(showEvent);
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
return;
}
if (selector) {
target = document.querySelector(selector);
}
this._activate(this._element, listElement);
var complete = function complete() {
var hiddenEvent = $.Event(Event.HIDDEN, {
relatedTarget: _this._element
});
var shownEvent = $.Event(Event.SHOWN, {
relatedTarget: previous
});
$(previous).trigger(hiddenEvent);
$(_this._element).trigger(shownEvent);
};
if (target) {
this._activate(target, target.parentNode, complete);
} else {
complete();
}
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
this._element = null;
} // Private
;
_proto._activate = function _activate(element, container, callback) {
var _this2 = this;
var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector.ACTIVE_UL) : $(container).children(Selector.ACTIVE);
var active = activeElements[0];
var isTransitioning = callback && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() {
return _this2._transitionComplete(element, active, callback);
};
if (active && isTransitioning) {
var transitionDuration = Util.getTransitionDurationFromElement(active);
$(active).removeClass(ClassName.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
} else {
complete();
}
};
_proto._transitionComplete = function _transitionComplete(element, active, callback) {
if (active) {
$(active).removeClass(ClassName.ACTIVE);
var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
if (dropdownChild) {
$(dropdownChild).removeClass(ClassName.ACTIVE);
}
if (active.getAttribute('role') === 'tab') {
active.setAttribute('aria-selected', false);
}
}
$(element).addClass(ClassName.ACTIVE);
if (element.getAttribute('role') === 'tab') {
element.setAttribute('aria-selected', true);
}
Util.reflow(element);
if (element.classList.contains(ClassName.FADE)) {
element.classList.add(ClassName.SHOW);
}
if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
if (dropdownElement) {
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
$(dropdownToggleList).addClass(ClassName.ACTIVE);
}
element.setAttribute('aria-expanded', true);
}
if (callback) {
callback();
}
} // Static
;
Tab._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $this = $(this);
var data = $this.data(DATA_KEY);
if (!data) {
data = new Tab(this);
$this.data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
_createClass(Tab, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Tab;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault();
Tab._jQueryInterface.call($(this), 'show');
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Tab._jQueryInterface;
$.fn[NAME].Constructor = Tab;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Tab._jQueryInterface;
};
return Tab;
}));
//# sourceMappingURL=tab.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,283 @@
/*!
* Bootstrap toast.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
(global = global || self, global.Toast = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'toast';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.toast';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Event = {
CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY
};
var ClassName = {
FADE: 'fade',
HIDE: 'hide',
SHOW: 'show',
SHOWING: 'showing'
};
var DefaultType = {
animation: 'boolean',
autohide: 'boolean',
delay: 'number'
};
var Default = {
animation: true,
autohide: true,
delay: 500
};
var Selector = {
DATA_DISMISS: '[data-dismiss="toast"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Toast =
/*#__PURE__*/
function () {
function Toast(element, config) {
this._element = element;
this._config = this._getConfig(config);
this._timeout = null;
this._setListeners();
} // Getters
var _proto = Toast.prototype;
// Public
_proto.show = function show() {
var _this = this;
$(this._element).trigger(Event.SHOW);
if (this._config.animation) {
this._element.classList.add(ClassName.FADE);
}
var complete = function complete() {
_this._element.classList.remove(ClassName.SHOWING);
_this._element.classList.add(ClassName.SHOW);
$(_this._element).trigger(Event.SHOWN);
if (_this._config.autohide) {
_this.hide();
}
};
this._element.classList.remove(ClassName.HIDE);
this._element.classList.add(ClassName.SHOWING);
if (this._config.animation) {
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
} else {
complete();
}
};
_proto.hide = function hide(withoutTimeout) {
var _this2 = this;
if (!this._element.classList.contains(ClassName.SHOW)) {
return;
}
$(this._element).trigger(Event.HIDE);
if (withoutTimeout) {
this._close();
} else {
this._timeout = setTimeout(function () {
_this2._close();
}, this._config.delay);
}
};
_proto.dispose = function dispose() {
clearTimeout(this._timeout);
this._timeout = null;
if (this._element.classList.contains(ClassName.SHOW)) {
this._element.classList.remove(ClassName.SHOW);
}
$(this._element).off(Event.CLICK_DISMISS);
$.removeData(this._element, DATA_KEY);
this._element = null;
this._config = null;
} // Private
;
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, $(this._element).data(), typeof config === 'object' && config ? config : {});
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
_proto._setListeners = function _setListeners() {
var _this3 = this;
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function () {
return _this3.hide(true);
});
};
_proto._close = function _close() {
var _this4 = this;
var complete = function complete() {
_this4._element.classList.add(ClassName.HIDE);
$(_this4._element).trigger(Event.HIDDEN);
};
this._element.classList.remove(ClassName.SHOW);
if (this._config.animation) {
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
} else {
complete();
}
} // Static
;
Toast._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $element = $(this);
var data = $element.data(DATA_KEY);
var _config = typeof config === 'object' && config;
if (!data) {
data = new Toast(this, _config);
$element.data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config](this);
}
});
};
_createClass(Toast, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "DefaultType",
get: function get() {
return DefaultType;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return Toast;
}();
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Toast._jQueryInterface;
$.fn[NAME].Constructor = Toast;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Toast._jQueryInterface;
};
return Toast;
}));
//# sourceMappingURL=toast.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,907 @@
/*!
* Bootstrap tooltip.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
(global = global || self, global.Tooltip = factory(global.jQuery, global.Popper, global.Util));
}(this, function ($, Popper, Util) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): tools/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
var DefaultWhitelist = {
// Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
};
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
if (allowedAttributeList.indexOf(attrName) !== -1) {
if (uriAttrs.indexOf(attrName) !== -1) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
return true;
}
var regExp = allowedAttributeList.filter(function (attrRegex) {
return attrRegex instanceof RegExp;
}); // Check if a regular expression validates the attribute.
for (var i = 0, l = regExp.length; i < l; i++) {
if (attrName.match(regExp[i])) {
return true;
}
}
return false;
}
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
if (unsafeHtml.length === 0) {
return unsafeHtml;
}
if (sanitizeFn && typeof sanitizeFn === 'function') {
return sanitizeFn(unsafeHtml);
}
var domParser = new window.DOMParser();
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
var whitelistKeys = Object.keys(whiteList);
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
var _loop = function _loop(i, len) {
var el = elements[i];
var elName = el.nodeName.toLowerCase();
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
el.parentNode.removeChild(el);
return "continue";
}
var attributeList = [].slice.call(el.attributes);
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
attributeList.forEach(function (attr) {
if (!allowedAttribute(attr, whitelistedAttributes)) {
el.removeAttribute(attr.nodeName);
}
});
};
for (var i = 0, len = elements.length; i < len; i++) {
var _ret = _loop(i, len);
if (_ret === "continue") continue;
}
return createdDocument.body.innerHTML;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'tooltip';
var VERSION = '4.3.1';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType = {
animation: 'boolean',
template: 'string',
title: '(string|element|function)',
trigger: 'string',
delay: '(number|object)',
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: '(number|string|function)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)',
boundary: '(string|element)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
whiteList: 'object'
};
var AttachmentMap = {
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
LEFT: 'left'
};
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: 0,
container: false,
fallbackPlacement: 'flip',
boundary: 'scrollParent',
sanitize: true,
sanitizeFn: null,
whiteList: DefaultWhitelist
};
var HoverState = {
SHOW: 'show',
OUT: 'out'
};
var Event = {
HIDE: "hide" + EVENT_KEY,
HIDDEN: "hidden" + EVENT_KEY,
SHOW: "show" + EVENT_KEY,
SHOWN: "shown" + EVENT_KEY,
INSERTED: "inserted" + EVENT_KEY,
CLICK: "click" + EVENT_KEY,
FOCUSIN: "focusin" + EVENT_KEY,
FOCUSOUT: "focusout" + EVENT_KEY,
MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: "mouseleave" + EVENT_KEY
};
var ClassName = {
FADE: 'fade',
SHOW: 'show'
};
var Selector = {
TOOLTIP: '.tooltip',
TOOLTIP_INNER: '.tooltip-inner',
ARROW: '.arrow'
};
var Trigger = {
HOVER: 'hover',
FOCUS: 'focus',
CLICK: 'click',
MANUAL: 'manual'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
};
var Tooltip =
/*#__PURE__*/
function () {
function Tooltip(element, config) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
} // private
this._isEnabled = true;
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
this._popper = null; // Protected
this.element = element;
this.config = this._getConfig(config);
this.tip = null;
this._setListeners();
} // Getters
var _proto = Tooltip.prototype;
// Public
_proto.enable = function enable() {
this._isEnabled = true;
};
_proto.disable = function disable() {
this._isEnabled = false;
};
_proto.toggleEnabled = function toggleEnabled() {
this._isEnabled = !this._isEnabled;
};
_proto.toggle = function toggle(event) {
if (!this._isEnabled) {
return;
}
if (event) {
var dataKey = this.constructor.DATA_KEY;
var context = $(event.currentTarget).data(dataKey);
if (!context) {
context = new this.constructor(event.currentTarget, this._getDelegateConfig());
$(event.currentTarget).data(dataKey, context);
}
context._activeTrigger.click = !context._activeTrigger.click;
if (context._isWithActiveTrigger()) {
context._enter(null, context);
} else {
context._leave(null, context);
}
} else {
if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
this._leave(null, this);
return;
}
this._enter(null, this);
}
};
_proto.dispose = function dispose() {
clearTimeout(this._timeout);
$.removeData(this.element, this.constructor.DATA_KEY);
$(this.element).off(this.constructor.EVENT_KEY);
$(this.element).closest('.modal').off('hide.bs.modal');
if (this.tip) {
$(this.tip).remove();
}
this._isEnabled = null;
this._timeout = null;
this._hoverState = null;
this._activeTrigger = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
this.element = null;
this.config = null;
this.tip = null;
};
_proto.show = function show() {
var _this = this;
if ($(this.element).css('display') === 'none') {
throw new Error('Please use show on visible elements');
}
var showEvent = $.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
$(this.element).trigger(showEvent);
var shadowRoot = Util.findShadowRoot(this.element);
var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
if (showEvent.isDefaultPrevented() || !isInTheDom) {
return;
}
var tip = this.getTipElement();
var tipId = Util.getUID(this.constructor.NAME);
tip.setAttribute('id', tipId);
this.element.setAttribute('aria-describedby', tipId);
this.setContent();
if (this.config.animation) {
$(tip).addClass(ClassName.FADE);
}
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var attachment = this._getAttachment(placement);
this.addAttachmentClass(attachment);
var container = this._getContainer();
$(tip).data(this.constructor.DATA_KEY, this);
if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
$(tip).appendTo(container);
}
$(this.element).trigger(this.constructor.Event.INSERTED);
this._popper = new Popper(this.element, tip, {
placement: attachment,
modifiers: {
offset: this._getOffset(),
flip: {
behavior: this.config.fallbackPlacement
},
arrow: {
element: Selector.ARROW
},
preventOverflow: {
boundariesElement: this.config.boundary
}
},
onCreate: function onCreate(data) {
if (data.originalPlacement !== data.placement) {
_this._handlePopperPlacementChange(data);
}
},
onUpdate: function onUpdate(data) {
return _this._handlePopperPlacementChange(data);
}
});
$(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement) {
$(document.body).children().on('mouseover', null, $.noop);
}
var complete = function complete() {
if (_this.config.animation) {
_this._fixTransition();
}
var prevHoverState = _this._hoverState;
_this._hoverState = null;
$(_this.element).trigger(_this.constructor.Event.SHOWN);
if (prevHoverState === HoverState.OUT) {
_this._leave(null, _this);
}
};
if ($(this.tip).hasClass(ClassName.FADE)) {
var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
} else {
complete();
}
}
};
_proto.hide = function hide(callback) {
var _this2 = this;
var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE);
var complete = function complete() {
if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
_this2._cleanTipClass();
_this2.element.removeAttribute('aria-describedby');
$(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
if (_this2._popper !== null) {
_this2._popper.destroy();
}
if (callback) {
callback();
}
};
$(this.element).trigger(hideEvent);
if (hideEvent.isDefaultPrevented()) {
return;
}
$(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
if ('ontouchstart' in document.documentElement) {
$(document.body).children().off('mouseover', null, $.noop);
}
this._activeTrigger[Trigger.CLICK] = false;
this._activeTrigger[Trigger.FOCUS] = false;
this._activeTrigger[Trigger.HOVER] = false;
if ($(this.tip).hasClass(ClassName.FADE)) {
var transitionDuration = Util.getTransitionDurationFromElement(tip);
$(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
} else {
complete();
}
this._hoverState = '';
};
_proto.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
} // Protected
;
_proto.isWithContent = function isWithContent() {
return Boolean(this.getTitle());
};
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
};
_proto.getTipElement = function getTipElement() {
this.tip = this.tip || $(this.config.template)[0];
return this.tip;
};
_proto.setContent = function setContent() {
var tip = this.getTipElement();
this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());
$(tip).removeClass(ClassName.FADE + " " + ClassName.SHOW);
};
_proto.setElementContent = function setElementContent($element, content) {
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// Content is a DOM node or a jQuery
if (this.config.html) {
if (!$(content).parent().is($element)) {
$element.empty().append(content);
}
} else {
$element.text($(content).text());
}
return;
}
if (this.config.html) {
if (this.config.sanitize) {
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
}
$element.html(content);
} else {
$element.text(content);
}
};
_proto.getTitle = function getTitle() {
var title = this.element.getAttribute('data-original-title');
if (!title) {
title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
}
return title;
} // Private
;
_proto._getOffset = function _getOffset() {
var _this3 = this;
var offset = {};
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
return data;
};
} else {
offset.offset = this.config.offset;
}
return offset;
};
_proto._getContainer = function _getContainer() {
if (this.config.container === false) {
return document.body;
}
if (Util.isElement(this.config.container)) {
return $(this.config.container);
}
return $(document).find(this.config.container);
};
_proto._getAttachment = function _getAttachment(placement) {
return AttachmentMap[placement.toUpperCase()];
};
_proto._setListeners = function _setListeners() {
var _this4 = this;
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
$(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
return _this4.toggle(event);
});
} else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
$(_this4.element).on(eventIn, _this4.config.selector, function (event) {
return _this4._enter(event);
}).on(eventOut, _this4.config.selector, function (event) {
return _this4._leave(event);
});
}
});
$(this.element).closest('.modal').on('hide.bs.modal', function () {
if (_this4.element) {
_this4.hide();
}
});
if (this.config.selector) {
this.config = _objectSpread({}, this.config, {
trigger: 'manual',
selector: ''
});
} else {
this._fixTitle();
}
};
_proto._fixTitle = function _fixTitle() {
var titleType = typeof this.element.getAttribute('data-original-title');
if (this.element.getAttribute('title') || titleType !== 'string') {
this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
this.element.setAttribute('title', '');
}
};
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
context = context || $(event.currentTarget).data(dataKey);
if (!context) {
context = new this.constructor(event.currentTarget, this._getDelegateConfig());
$(event.currentTarget).data(dataKey, context);
}
if (event) {
context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
}
if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
context._hoverState = HoverState.SHOW;
return;
}
clearTimeout(context._timeout);
context._hoverState = HoverState.SHOW;
if (!context.config.delay || !context.config.delay.show) {
context.show();
return;
}
context._timeout = setTimeout(function () {
if (context._hoverState === HoverState.SHOW) {
context.show();
}
}, context.config.delay.show);
};
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
context = context || $(event.currentTarget).data(dataKey);
if (!context) {
context = new this.constructor(event.currentTarget, this._getDelegateConfig());
$(event.currentTarget).data(dataKey, context);
}
if (event) {
context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
}
if (context._isWithActiveTrigger()) {
return;
}
clearTimeout(context._timeout);
context._hoverState = HoverState.OUT;
if (!context.config.delay || !context.config.delay.hide) {
context.hide();
return;
}
context._timeout = setTimeout(function () {
if (context._hoverState === HoverState.OUT) {
context.hide();
}
}, context.config.delay.hide);
};
_proto._isWithActiveTrigger = function _isWithActiveTrigger() {
for (var trigger in this._activeTrigger) {
if (this._activeTrigger[trigger]) {
return true;
}
}
return false;
};
_proto._getConfig = function _getConfig(config) {
var dataAttributes = $(this.element).data();
Object.keys(dataAttributes).forEach(function (dataAttr) {
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
delete dataAttributes[dataAttr];
}
});
config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
show: config.delay,
hide: config.delay
};
}
if (typeof config.title === 'number') {
config.title = config.title.toString();
}
if (typeof config.content === 'number') {
config.content = config.content.toString();
}
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
if (config.sanitize) {
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
}
return config;
};
_proto._getDelegateConfig = function _getDelegateConfig() {
var config = {};
if (this.config) {
for (var key in this.config) {
if (this.constructor.Default[key] !== this.config[key]) {
config[key] = this.config[key];
}
}
}
return config;
};
_proto._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length) {
$tip.removeClass(tabClass.join(''));
}
};
_proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
var popperInstance = popperData.instance;
this.tip = popperInstance.popper;
this._cleanTipClass();
this.addAttachmentClass(this._getAttachment(popperData.placement));
};
_proto._fixTransition = function _fixTransition() {
var tip = this.getTipElement();
var initConfigAnimation = this.config.animation;
if (tip.getAttribute('x-placement') !== null) {
return;
}
$(tip).removeClass(ClassName.FADE);
this.config.animation = false;
this.hide();
this.show();
this.config.animation = initConfigAnimation;
} // Static
;
Tooltip._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = typeof config === 'object' && config;
if (!data && /dispose|hide/.test(config)) {
return;
}
if (!data) {
data = new Tooltip(this, _config);
$(this).data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
}
});
};
_createClass(Tooltip, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}, {
key: "NAME",
get: function get() {
return NAME;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}, {
key: "Event",
get: function get() {
return Event;
}
}, {
key: "EVENT_KEY",
get: function get() {
return EVENT_KEY;
}
}, {
key: "DefaultType",
get: function get() {
return DefaultType;
}
}]);
return Tooltip;
}();
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$.fn[NAME] = Tooltip._jQueryInterface;
$.fn[NAME].Constructor = Tooltip;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Tooltip._jQueryInterface;
};
return Tooltip;
}));
//# sourceMappingURL=tooltip.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,172 @@
/*!
* Bootstrap util.js v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, global.Util = factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* ------------------------------------------------------------------------
* Private TransitionEnd Helpers
* ------------------------------------------------------------------------
*/
var TRANSITION_END = 'transitionend';
var MAX_UID = 1000000;
var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType(obj) {
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
}
function getSpecialTransitionEndEvent() {
return {
bindType: TRANSITION_END,
delegateType: TRANSITION_END,
handle: function handle(event) {
if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
}
return undefined; // eslint-disable-line no-undefined
}
};
}
function transitionEndEmulator(duration) {
var _this = this;
var called = false;
$(this).one(Util.TRANSITION_END, function () {
called = true;
});
setTimeout(function () {
if (!called) {
Util.triggerTransitionEnd(_this);
}
}, duration);
return this;
}
function setTransitionEndSupport() {
$.fn.emulateTransitionEnd = transitionEndEmulator;
$.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
}
/**
* --------------------------------------------------------------------------
* Public Util Api
* --------------------------------------------------------------------------
*/
var Util = {
TRANSITION_END: 'bsTransitionEnd',
getUID: function getUID(prefix) {
do {
// eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix));
return prefix;
},
getSelectorFromElement: function getSelectorFromElement(element) {
var selector = element.getAttribute('data-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
}
try {
return document.querySelector(selector) ? selector : null;
} catch (err) {
return null;
}
},
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
if (!element) {
return 0;
} // Get transition-duration of the element
var transitionDuration = $(element).css('transition-duration');
var transitionDelay = $(element).css('transition-delay');
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
} // If multiple durations are defined, take the first
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
},
reflow: function reflow(element) {
return element.offsetHeight;
},
triggerTransitionEnd: function triggerTransitionEnd(element) {
$(element).trigger(TRANSITION_END);
},
// TODO: Remove in v5
supportsTransitionEnd: function supportsTransitionEnd() {
return Boolean(TRANSITION_END);
},
isElement: function isElement(obj) {
return (obj[0] || obj).nodeType;
},
typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
for (var property in configTypes) {
if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
var expectedTypes = configTypes[property];
var value = config[property];
var valueType = value && Util.isElement(value) ? 'element' : toType(value);
if (!new RegExp(expectedTypes).test(valueType)) {
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
}
}
}
},
findShadowRoot: function findShadowRoot(element) {
if (!document.documentElement.attachShadow) {
return null;
} // Can find the shadow root otherwise it'll return the document
if (typeof element.getRootNode === 'function') {
var root = element.getRootNode();
return root instanceof ShadowRoot ? root : null;
}
if (element instanceof ShadowRoot) {
return element;
} // when we don't find a shadow root
if (!element.parentNode) {
return null;
}
return Util.findShadowRoot(element.parentNode);
}
};
setTransitionEndSupport();
return Util;
}));
//# sourceMappingURL=util.js.map

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More