Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
47309fc242 | ||
![]() |
fe5ae00f3a |
3 changed files with 2607 additions and 0 deletions
132
bub2022/__init__.py
Normal file
132
bub2022/__init__.py
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
from renderlib import *
|
||||||
|
from easing import *
|
||||||
|
import math
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# URL to Schedule-XML
|
||||||
|
scheduleUrl = 'https://fahrplan22.bits-und-baeume.org/bitsundbaeume/schedule/export/schedule.xml'
|
||||||
|
|
||||||
|
# For (really) too long titles
|
||||||
|
titlemap = {
|
||||||
|
#708: "Neue WEB-Anwendungen des LGRB Baden-Württemberg im Überblick"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def outroFrames(p):
|
||||||
|
frames = 2*fps
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('logo', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
|
||||||
|
('plate', 'style', 'opacity', 0),
|
||||||
|
)
|
||||||
|
|
||||||
|
frames = 1*fps
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('logo', 'style', 'opacity', 1),
|
||||||
|
('plate', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
|
||||||
|
)
|
||||||
|
|
||||||
|
frames = 2*fps
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('logo', 'style', 'opacity', 1),
|
||||||
|
('plate', 'style', 'opacity', 1),
|
||||||
|
)
|
||||||
|
|
||||||
|
def introFrames(p):
|
||||||
|
frames = math.floor(1.5*fps)
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('header', 'attr', 'y', 1318),
|
||||||
|
('text', 'style', 'opacity', 0),
|
||||||
|
)
|
||||||
|
|
||||||
|
frames = 1*fps
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('text', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
|
||||||
|
)
|
||||||
|
|
||||||
|
frames = math.ceil(3.5*fps)
|
||||||
|
for i in range(0, frames):
|
||||||
|
yield (
|
||||||
|
('text', 'style', 'opacity', 1),
|
||||||
|
)
|
||||||
|
|
||||||
|
def pauseFrames(p):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def srtip_event_title(event_title):
|
||||||
|
if len(event_title) > 80:
|
||||||
|
count = 0
|
||||||
|
title = []
|
||||||
|
for word in event_title.split(" "):
|
||||||
|
word_len = len(word)
|
||||||
|
if count + word_len < 80:
|
||||||
|
count += word_len
|
||||||
|
title.append(word)
|
||||||
|
logging.info(count)
|
||||||
|
else:
|
||||||
|
title.append("...")
|
||||||
|
break
|
||||||
|
return " ".join(title)
|
||||||
|
else:
|
||||||
|
return event_title
|
||||||
|
|
||||||
|
def debug():
|
||||||
|
render(
|
||||||
|
'intro.svg',
|
||||||
|
'../intro.ts',
|
||||||
|
introFrames,
|
||||||
|
{
|
||||||
|
'$id': 19990,
|
||||||
|
'$title': 'Ein creative commons Repository für medizinische Metadatenmodelle zur Harmonisierung der Gesundheitsversorgung (DE)',
|
||||||
|
'$personnames': 'Max Blumenstock, Christian Niklas'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# render(
|
||||||
|
# 'outro.svg',
|
||||||
|
# '../outro.ts',
|
||||||
|
# outroFrames
|
||||||
|
# )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def tasks(queue, params, idlist, skiplist):
|
||||||
|
# iterate over all events extracted from the schedule xml-export
|
||||||
|
for event in events(scheduleUrl):
|
||||||
|
event_title = srtip_event_title(event['title'])
|
||||||
|
|
||||||
|
if not (idlist==[]):
|
||||||
|
if 000000 in idlist:
|
||||||
|
print("skipping id (%s [%s])" % (event_title, event['id']))
|
||||||
|
continue
|
||||||
|
if int(event['id']) not in idlist:
|
||||||
|
print("skipping id (%s [%s])" % (event_title, event['id']))
|
||||||
|
continue
|
||||||
|
|
||||||
|
# generate a task description and put them into the queue
|
||||||
|
if int(event['id']) not in skiplist:
|
||||||
|
queue.put(Rendertask(
|
||||||
|
infile = 'intro.svg',
|
||||||
|
outfile = str(event['id'])+".ts",
|
||||||
|
sequence = introFrames,
|
||||||
|
parameters = {
|
||||||
|
'$id': event['id'],
|
||||||
|
'$title': event_title,
|
||||||
|
'$personnames': event['personnames']
|
||||||
|
}
|
||||||
|
))
|
||||||
|
|
||||||
|
# place a task for the outro into the queue
|
||||||
|
if not "out" in skiplist:
|
||||||
|
queue.put(Rendertask(
|
||||||
|
infile = 'outro.svg',
|
||||||
|
outfile = 'outro.ts',
|
||||||
|
sequence = outroFrames
|
||||||
|
))
|
256
bub2022/artwork/intro.svg
Normal file
256
bub2022/artwork/intro.svg
Normal file
|
@ -0,0 +1,256 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||||
|
sodipodi:docname="intro.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35355339"
|
||||||
|
inkscape:cx="438.4062"
|
||||||
|
inkscape:cy="151.32085"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1080"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:snap-text-baseline="true"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:measure-start="84,1088"
|
||||||
|
inkscape:measure-end="84,-10"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
|
<sodipodi:guide
|
||||||
|
position="-106,1242"
|
||||||
|
orientation="0,1"
|
||||||
|
id="guide863"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
<sodipodi:guide
|
||||||
|
position="82,1168"
|
||||||
|
orientation="1,0"
|
||||||
|
id="guide865"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<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 />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:label="back"
|
||||||
|
transform="translate(0,504)"
|
||||||
|
style="display:inline">
|
||||||
|
<rect
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#bfbfbf;stroke-opacity:1"
|
||||||
|
id="rect1469"
|
||||||
|
width="1930"
|
||||||
|
height="1082"
|
||||||
|
x="0"
|
||||||
|
y="-506" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:label="back 1"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(0,504)" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,27.63782)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.62409019px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21867418"
|
||||||
|
x="392.92853"
|
||||||
|
y="659.59393"
|
||||||
|
id="text3007"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3009"
|
||||||
|
x="392.92853"
|
||||||
|
y="659.59393"
|
||||||
|
style="font-size:88.74697113px;line-height:1.25;stroke-width:2.21867418"> </tspan></text>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0.01%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
transform="matrix(2.0988224,0,0,2.0988224,-172.67305,57.28449)"><flowRegion
|
||||||
|
id="flowRegion3013"
|
||||||
|
style="fill:#000000"><rect
|
||||||
|
id="rect3015"
|
||||||
|
width="571.2663"
|
||||||
|
height="104.97028"
|
||||||
|
x="123.3259"
|
||||||
|
y="284.41422"
|
||||||
|
style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1" /></flowRegion><flowPara
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:31.71312904px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
|
||||||
|
id="flowPara2998" /><flowPara
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:31.71312904px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
|
||||||
|
id="flowPara4502" /><flowPara
|
||||||
|
id="flowPara3019"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.41107559px;line-height:125%;font-family:Aller;-inkscape-font-specification:'Aller, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1">$personnames</flowPara><flowPara
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:26.42760849px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1"
|
||||||
|
id="flowPara4498" /></flowRoot>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="57.488281"
|
||||||
|
y="799.76831"
|
||||||
|
id="text4265"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4267"
|
||||||
|
x="57.488281"
|
||||||
|
y="803.36597"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.01742554px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro';text-align:start;writing-mode:lr-tb;text-anchor:start" /><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="57.488281"
|
||||||
|
y="803.36597"
|
||||||
|
id="tspan4499"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro, Light';text-align:start;writing-mode:lr-tb;text-anchor:start" /></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20.1491px;line-height:0%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.67909px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="1552.9772"
|
||||||
|
y="949.57324"
|
||||||
|
id="text4275"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="1552.9772"
|
||||||
|
y="949.57324"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:59.164px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#333333;stroke-width:1.67909px"
|
||||||
|
id="tspan4497">30. Sept. - 2. Okt. 2022</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="1552.9772"
|
||||||
|
y="1023.5283"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:59.164px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#333333;stroke-width:1.67909px"
|
||||||
|
id="tspan4503">Technische Uni Berlin</tspan></text>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot4515"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
|
||||||
|
id="flowRegion4517"><rect
|
||||||
|
id="rect4519"
|
||||||
|
width="109"
|
||||||
|
height="98"
|
||||||
|
x="915"
|
||||||
|
y="135" /></flowRegion><flowPara
|
||||||
|
id="flowPara4521" /></flowRoot>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot4551"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
|
||||||
|
id="flowRegion4553"><rect
|
||||||
|
id="rect4555"
|
||||||
|
width="78"
|
||||||
|
height="128"
|
||||||
|
x="959"
|
||||||
|
y="222" /></flowRegion><flowPara
|
||||||
|
id="flowPara4557" /></flowRoot>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot4559"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
transform="matrix(2.2186742,0,0,2.2186742,-1048.996,-318.71767)"><flowRegion
|
||||||
|
id="flowRegion4561"
|
||||||
|
style="font-size:40px;text-align:center;text-anchor:middle"><rect
|
||||||
|
id="rect4563"
|
||||||
|
width="864.50464"
|
||||||
|
height="202.34314"
|
||||||
|
x="376"
|
||||||
|
y="166"
|
||||||
|
style="font-size:40px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
|
||||||
|
id="flowPara4565"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48.0768px;font-family:Aller;-inkscape-font-specification:'Aller, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1">Bits & Bäume 2022</flowPara></flowRoot>
|
||||||
|
<g
|
||||||
|
id="Ebene_2"
|
||||||
|
data-name="Ebene 2"
|
||||||
|
transform="translate(1284.08,-27.63782)">
|
||||||
|
<g
|
||||||
|
id="Ebene_1-2"
|
||||||
|
data-name="Ebene 1">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="M 266.8,922.82 C 114.51,913.47 0,776 0,599.83 0,381.11 135.15,226.63 266.8,92.28 Z"
|
||||||
|
style="fill:#bdd888"
|
||||||
|
id="path1554" />
|
||||||
|
<rect
|
||||||
|
x="266.79999"
|
||||||
|
y="922.82001"
|
||||||
|
width="9.6300001"
|
||||||
|
height="158.56"
|
||||||
|
style="fill:#a1c854"
|
||||||
|
id="rect1556" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 266.8,92.28 h 92.28 V 0 H 266.8 Z m 276.84,0 h 92.28 V 0 h -92.28 z m 0,0 h -92.28 v 92.28 h 92.28 z M 451.36,646 h -92.28 v -92.31 h 92.28 z m 184.56,0 v -92.31 h -92.28 v -92.28 h -92.28 v -92.28 h -92.28 v -92.29 h 92.28 v 92.28 h 92.28 V 276.84 H 451.36 V 184.56 H 266.8 v 738.26 h 92.28 v -92.28 h 92.28 v -92.29 h 92.28 V 646 Z"
|
||||||
|
style="fill:#a1c854"
|
||||||
|
id="path1558" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot847"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
transform="translate(-86,-23.63782)"><flowRegion
|
||||||
|
id="flowRegion849"><rect
|
||||||
|
id="rect851"
|
||||||
|
width="1208"
|
||||||
|
height="222"
|
||||||
|
x="164"
|
||||||
|
y="274" /></flowRegion><flowPara
|
||||||
|
id="flowPara853"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:111.00000143%;font-family:Aller;-inkscape-font-specification:'Aller, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000">$title</flowPara></flowRoot>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot863"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
transform="translate(2,126.36218)"><flowRegion
|
||||||
|
id="flowRegion865"><rect
|
||||||
|
id="rect867"
|
||||||
|
width="1162"
|
||||||
|
height="143.29166"
|
||||||
|
x="80"
|
||||||
|
y="378.70834" /></flowRegion><flowPara
|
||||||
|
id="flowPara869"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:53.33333206px;font-family:Aller;-inkscape-font-specification:'Aller, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000">$subtitle </flowPara></flowRoot>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="1346.1593"
|
||||||
|
y="1127.9233"
|
||||||
|
id="text75720"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan75718" /></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
2219
bub2022/artwork/outro.svg
Normal file
2219
bub2022/artwork/outro.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 157 KiB |
Loading…
Add table
Reference in a new issue