about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEmile <git@emile.space>2022-05-30 22:12:01 +0200
committerEmile <git@emile.space>2022-05-30 22:12:01 +0200
commit8898554a739d3e0bca2213b4755cdce1bd7d078f (patch)
tree50af9d6f03cc6eeb3f7f97bb14e004474ee8dc04
parent497716779f0efdbee540bb0d774a4aa1bcdfa5e9 (diff)
initial commit
-rw-r--r--README.md1
-rw-r--r--teams.dot80
-rw-r--r--teams.svg382
3 files changed, 463 insertions, 0 deletions
diff --git a/README.md b/README.md
index d0623e0..0c593c3 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
 # ctf_clusters
+
 visualizing CTF clusters (teams playing together at DEFCON quals 2022)
diff --git a/teams.dot b/teams.dot
new file mode 100644
index 0000000..fffa880
--- /dev/null
+++ b/teams.dot
@@ -0,0 +1,80 @@
+digraph teams {
+  node [fontname = "JetBrains Mono"];
+  overlap = false;
+  splines = polyline;
+
+  DEFCON_QUALS [style="bold" href="https://quals.2022.nautilus.institute/dashboard"];
+
+  // team clusters (red)
+  subgraph {
+    node [color="#db4437" fontcolor="#db4437"];
+    "perfect r✪✪✪t" [href="https://ctftime.org/team/176403"]
+    "Balsn.217@TSJ.tw" [href="https://ctftime.org/team/189868"]
+    "The Duck" [href="https://ctftime.org/team/111501"]
+    "Sauercloud" [href="https://ctftime.org/team/54748"]
+    "Water Paddler" [href="https://ctftime.org/team/155019"]
+    "PTB_WTL" [href="https://ctftime.org/team/119975"]
+    "./V /home/r/.bin/tw" [href="https://ctftime.org/team/189869"]
+    "Straw Hat" [href="https://ctftime.org/team/19208"]
+    "PPP" [href="https://ctftime.org/team/284"]
+    "Katzebin" [href="https://ctftime.org/team/141539"]
+    "StarBugs" [href="https://ctftime.org/team/152239"]
+    "Shellphish" [href="https://ctftime.org/team/285"]
+    "r3kapig" [href="https://ctftime.org/team/58979"]
+    "DiceGuesser" [href="https://ctftime.org/team/182504"]
+    "OSUSEC" [href="https://ctftime.org/team/12858"]
+  }
+
+  // individual teams (blue)
+  subgraph {
+    node [color="#4285f4" fontcolor="#4285f4"];
+
+    // Sauercloud (Germany)
+    "KITCTF" [href="https://ctftime.org/team/7221"];
+    "Eat Sleep Pwn Repeat" [href="https://ctftime.org/team/15712"];
+    "Flux Fingers" [href="https://ctftime.org/team/551"];
+    "Red Rocket" [href="https://allesctf.net/"];
+    "Alles!" [href="https://ctftime.org/team/18419"];
+    "ENOFLAG" [href="https://ctftime.org/team/1438"];
+    "FAUST" [href="https://ctftime.org/team/550"];
+    "WizardsOfDos" [href="https://ctftime.org/team/561"];
+    "Squareroots" [href="https://ctftime.org/team/554"];
+  }
+
+  // primary edges
+  subgraph {
+    "perfect r✪✪✪t" -> DEFCON_QUALS [style="bold"];
+    "Balsn.217@TSJ.tw" -> DEFCON_QUALS [style="bold"];
+    "The Duck" -> DEFCON_QUALS [style="bold"];
+    "Sauercloud" -> DEFCON_QUALS [style="bold"];
+    "Water Paddler" -> DEFCON_QUALS [style="bold"];
+    "PTB_WTL" -> DEFCON_QUALS [style="bold"];
+    "./V /home/r/.bin/tw" -> DEFCON_QUALS [style="bold"];
+    "Straw Hat" -> DEFCON_QUALS [style="bold"];
+    "PPP" -> DEFCON_QUALS [style="bold"];
+    "Katzebin" -> DEFCON_QUALS [style="bold"];
+    "StarBugs" -> DEFCON_QUALS [style="bold"];
+    "Shellphish" -> DEFCON_QUALS [style="bold"];
+    "r3kapig" -> DEFCON_QUALS [style="bold"];
+    "DiceGuesser" -> DEFCON_QUALS [style="bold"];
+    "OSUSEC" -> DEFCON_QUALS [style="bold"];
+
+  }
+
+  // secondary edges (teams to clusters)
+  subgraph {
+    edge [weight=1 style="dashed" color="grey"];
+    // Sauercloud (Germany)
+    "KITCTF" -> "Sauercloud";
+    "Eat Sleep Pwn Repeat" -> "Sauercloud";   
+    "Flux Fingers" -> "Sauercloud";   
+    "Red Rocket" -> "Sauercloud";   
+    "Alles!" -> "Sauercloud";   
+    "ENOFLAG" -> "Sauercloud";   
+    "FAUST" -> "Sauercloud";   
+    "WizardsOfDos" -> "Sauercloud";   
+    "Squareroots" -> "Sauercloud";   
+  }
+
+}
+
diff --git a/teams.svg b/teams.svg
new file mode 100644
index 0000000..dd16f04
--- /dev/null
+++ b/teams.svg
@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.49.3 (0)
+ -->
+<!-- Title: teams Pages: 1 -->
+<svg width="801pt" height="881pt"
+ viewBox="0.00 0.00 800.54 881.47" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 877.47)">
+<title>teams</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-877.47 796.54,-877.47 796.54,4 -4,4"/>
+<!-- DEFCON_QUALS -->
+<g id="node1" class="node">
+<title>DEFCON_QUALS</title>
+<g id="a_node1"><a xlink:href="https://quals.2022.nautilus.institute/dashboard" xlink:title="DEFCON_QUALS">
+<ellipse fill="none" stroke="black" stroke-width="2" cx="425.37" cy="-294.93" rx="83.39" ry="18"/>
+<text text-anchor="middle" x="425.37" y="-291.23" font-family="JetBrains Mono" font-size="14.00">DEFCON_QUALS</text>
+</a>
+</g>
+</g>
+<!-- perfect r✪✪✪t -->
+<g id="node2" class="node">
+<title>perfect r✪✪✪t</title>
+<g id="a_node2"><a xlink:href="https://ctftime.org/team/176403" xlink:title="perfect r✪✪✪t">
+<ellipse fill="none" stroke="#db4437" cx="608.29" cy="-290.25" rx="73.39" ry="18"/>
+<text text-anchor="middle" x="608.29" y="-286.55" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">perfect r✪✪✪t</text>
+</a>
+</g>
+</g>
+<!-- perfect r✪✪✪t&#45;&gt;DEFCON_QUALS -->
+<g id="edge1" class="edge">
+<title>perfect r✪✪✪t&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M535.21,-292.12C529.67,-292.26 524.04,-292.41 518.41,-292.55"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="518.18,-289.06 508.27,-292.81 518.36,-296.05 518.18,-289.06"/>
+</g>
+<!-- Balsn.217@TSJ.tw -->
+<g id="node3" class="node">
+<title>Balsn.217@TSJ.tw</title>
+<g id="a_node3"><a xlink:href="https://ctftime.org/team/189868" xlink:title="Balsn.217@TSJ.tw">
+<ellipse fill="none" stroke="#db4437" cx="333.22" cy="-18" rx="85.59" ry="18"/>
+<text text-anchor="middle" x="333.22" y="-14.3" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Balsn.217@TSJ.tw</text>
+</a>
+</g>
+</g>
+<!-- Balsn.217@TSJ.tw&#45;&gt;DEFCON_QUALS -->
+<g id="edge2" class="edge">
+<title>Balsn.217@TSJ.tw&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M339.26,-36.17C354.98,-83.41 397.22,-210.33 416.07,-266.97"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="412.82,-268.31 419.3,-276.69 419.47,-266.1 412.82,-268.31"/>
+</g>
+<!-- The Duck -->
+<g id="node4" class="node">
+<title>The Duck</title>
+<g id="a_node4"><a xlink:href="https://ctftime.org/team/111501" xlink:title="The Duck">
+<ellipse fill="none" stroke="#db4437" cx="280.72" cy="-382.97" rx="48.19" ry="18"/>
+<text text-anchor="middle" x="280.72" y="-379.27" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">The Duck</text>
+</a>
+</g>
+</g>
+<!-- The Duck&#45;&gt;DEFCON_QUALS -->
+<g id="edge3" class="edge">
+<title>The Duck&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M305.92,-367.63C328.8,-353.71 362.82,-333 388.72,-317.24"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="390.78,-320.08 397.5,-311.89 387.14,-314.1 390.78,-320.08"/>
+</g>
+<!-- Sauercloud -->
+<g id="node5" class="node">
+<title>Sauercloud</title>
+<g id="a_node5"><a xlink:href="https://ctftime.org/team/54748" xlink:title="Sauercloud">
+<ellipse fill="none" stroke="#db4437" cx="349.84" cy="-605.73" rx="55.49" ry="18"/>
+<text text-anchor="middle" x="349.84" y="-602.03" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Sauercloud</text>
+</a>
+</g>
+</g>
+<!-- Sauercloud&#45;&gt;DEFCON_QUALS -->
+<g id="edge4" class="edge">
+<title>Sauercloud&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M354.23,-587.68C366.85,-535.75 403.31,-385.72 418.55,-323.01"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="422.01,-323.58 420.97,-313.03 415.21,-321.93 422.01,-323.58"/>
+</g>
+<!-- Water Paddler -->
+<g id="node6" class="node">
+<title>Water Paddler</title>
+<g id="a_node6"><a xlink:href="https://ctftime.org/team/155019" xlink:title="Water Paddler">
+<ellipse fill="none" stroke="#db4437" cx="237.57" cy="-285.72" rx="66.89" ry="18"/>
+<text text-anchor="middle" x="237.57" y="-282.02" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Water Paddler</text>
+</a>
+</g>
+</g>
+<!-- Water Paddler&#45;&gt;DEFCON_QUALS -->
+<g id="edge5" class="edge">
+<title>Water Paddler&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M303.52,-288.95C313.34,-289.44 323.62,-289.94 333.86,-290.44"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="333.91,-293.95 344.07,-290.94 334.26,-286.96 333.91,-293.95"/>
+</g>
+<!-- PTB_WTL -->
+<g id="node7" class="node">
+<title>PTB_WTL</title>
+<g id="a_node7"><a xlink:href="https://ctftime.org/team/119975" xlink:title="PTB_WTL">
+<ellipse fill="none" stroke="#db4437" cx="176.02" cy="-134.24" rx="51.99" ry="18"/>
+<text text-anchor="middle" x="176.02" y="-130.54" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">PTB_WTL</text>
+</a>
+</g>
+</g>
+<!-- PTB_WTL&#45;&gt;DEFCON_QUALS -->
+<g id="edge6" class="edge">
+<title>PTB_WTL&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M200.84,-150.23C245.44,-178.97 339.24,-239.42 390.35,-272.36"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="388.48,-275.32 398.78,-277.79 392.27,-269.43 388.48,-275.32"/>
+</g>
+<!-- ./V /home/r/.bin/tw -->
+<g id="node8" class="node">
+<title>./V /home/r/.bin/tw</title>
+<g id="a_node8"><a xlink:href="https://ctftime.org/team/189869" xlink:title="./V /home/r/.bin/tw">
+<ellipse fill="none" stroke="#db4437" cx="683.87" cy="-157.43" rx="81.79" ry="18"/>
+<text text-anchor="middle" x="683.87" y="-153.73" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">./V /home/r/.bin/tw</text>
+</a>
+</g>
+</g>
+<!-- ./V /home/r/.bin/tw&#45;&gt;DEFCON_QUALS -->
+<g id="edge7" class="edge">
+<title>./V /home/r/.bin/tw&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M652.43,-174.15C605.6,-199.06 517.49,-245.93 465.88,-273.38"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="464.18,-270.32 456.99,-278.11 467.47,-276.5 464.18,-270.32"/>
+</g>
+<!-- Straw Hat -->
+<g id="node9" class="node">
+<title>Straw Hat</title>
+<g id="a_node9"><a xlink:href="https://ctftime.org/team/19208" xlink:title="Straw Hat">
+<ellipse fill="none" stroke="#db4437" cx="285.43" cy="-103.47" rx="49.29" ry="18"/>
+<text text-anchor="middle" x="285.43" y="-99.77" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Straw Hat</text>
+</a>
+</g>
+</g>
+<!-- Straw Hat&#45;&gt;DEFCON_QUALS -->
+<g id="edge8" class="edge">
+<title>Straw Hat&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M298.34,-121.14C323.06,-154.97 377.19,-229.02 406.16,-268.66"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="403.56,-271.02 412.28,-277.03 409.21,-266.89 403.56,-271.02"/>
+</g>
+<!-- PPP -->
+<g id="node10" class="node">
+<title>PPP</title>
+<g id="a_node10"><a xlink:href="https://ctftime.org/team/284" xlink:title="PPP">
+<ellipse fill="none" stroke="#db4437" cx="558.21" cy="-41.47" rx="28.7" ry="18"/>
+<text text-anchor="middle" x="558.21" y="-37.77" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">PPP</text>
+</a>
+</g>
+</g>
+<!-- PPP&#45;&gt;DEFCON_QUALS -->
+<g id="edge9" class="edge">
+<title>PPP&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M547.95,-58.6C530.3,-88.07 496.07,-145.22 496.07,-145.22 496.07,-145.22 458.59,-224.59 438.21,-267.75"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="435,-266.34 433.9,-276.87 441.33,-269.32 435,-266.34"/>
+</g>
+<!-- Katzebin -->
+<g id="node11" class="node">
+<title>Katzebin</title>
+<g id="a_node11"><a xlink:href="https://ctftime.org/team/141539" xlink:title="Katzebin">
+<ellipse fill="none" stroke="#db4437" cx="444.35" cy="-62.04" rx="44.69" ry="18"/>
+<text text-anchor="middle" x="444.35" y="-58.34" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Katzebin</text>
+</a>
+</g>
+</g>
+<!-- Katzebin&#45;&gt;DEFCON_QUALS -->
+<g id="edge10" class="edge">
+<title>Katzebin&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M442.86,-80.31C439.56,-120.79 431.62,-218.23 427.68,-266.64"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="424.18,-266.49 426.85,-276.74 431.15,-267.06 424.18,-266.49"/>
+</g>
+<!-- StarBugs -->
+<g id="node12" class="node">
+<title>StarBugs</title>
+<g id="a_node12"><a xlink:href="https://ctftime.org/team/152239" xlink:title="StarBugs">
+<ellipse fill="none" stroke="#db4437" cx="115.72" cy="-242.98" rx="46.59" ry="18"/>
+<text text-anchor="middle" x="115.72" y="-239.28" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">StarBugs</text>
+</a>
+</g>
+</g>
+<!-- StarBugs&#45;&gt;DEFCON_QUALS -->
+<g id="edge11" class="edge">
+<title>StarBugs&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M158.78,-250.21C207.94,-258.45 289.32,-272.11 349.25,-282.16"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="348.99,-285.67 359.43,-283.87 350.15,-278.76 348.99,-285.67"/>
+</g>
+<!-- Shellphish -->
+<g id="node13" class="node">
+<title>Shellphish</title>
+<g id="a_node13"><a xlink:href="https://ctftime.org/team/285" xlink:title="Shellphish">
+<ellipse fill="none" stroke="#db4437" cx="741.19" cy="-297.65" rx="51.19" ry="18"/>
+<text text-anchor="middle" x="741.19" y="-293.95" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">Shellphish</text>
+</a>
+</g>
+</g>
+<!-- Shellphish&#45;&gt;DEFCON_QUALS -->
+<g id="edge12" class="edge">
+<title>Shellphish&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M691.28,-302.23C653.54,-305.69 608.18,-309.85 608.18,-309.85 608.18,-309.85 560.39,-305.95 513.67,-302.14"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="513.68,-298.63 503.43,-301.3 513.11,-305.6 513.68,-298.63"/>
+</g>
+<!-- r3kapig -->
+<g id="node14" class="node">
+<title>r3kapig</title>
+<g id="a_node14"><a xlink:href="https://ctftime.org/team/58979" xlink:title="r3kapig">
+<ellipse fill="none" stroke="#db4437" cx="668.33" cy="-417.1" rx="39.79" ry="18"/>
+<text text-anchor="middle" x="668.33" y="-413.4" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">r3kapig</text>
+</a>
+</g>
+</g>
+<!-- r3kapig&#45;&gt;DEFCON_QUALS -->
+<g id="edge13" class="edge">
+<title>r3kapig&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M641.4,-403.56C599.3,-382.39 517.53,-341.28 467.56,-316.15"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="469.12,-313.01 458.62,-311.65 465.98,-319.27 469.12,-313.01"/>
+</g>
+<!-- DiceGuesser -->
+<g id="node15" class="node">
+<title>DiceGuesser</title>
+<g id="a_node15"><a xlink:href="https://ctftime.org/team/182504" xlink:title="DiceGuesser">
+<ellipse fill="none" stroke="#db4437" cx="533.42" cy="-434.23" rx="61.99" ry="18"/>
+<text text-anchor="middle" x="533.42" y="-430.53" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">DiceGuesser</text>
+</a>
+</g>
+</g>
+<!-- DiceGuesser&#45;&gt;DEFCON_QUALS -->
+<g id="edge14" class="edge">
+<title>DiceGuesser&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M519.73,-416.59C501,-392.44 467.24,-348.91 445.59,-320.99"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="448.18,-318.63 439.28,-312.87 442.65,-322.92 448.18,-318.63"/>
+</g>
+<!-- OSUSEC -->
+<g id="node16" class="node">
+<title>OSUSEC</title>
+<g id="a_node16"><a xlink:href="https://ctftime.org/team/12858" xlink:title="OSUSEC">
+<ellipse fill="none" stroke="#db4437" cx="545.77" cy="-145.23" rx="48.19" ry="18"/>
+<text text-anchor="middle" x="545.77" y="-141.53" font-family="JetBrains Mono" font-size="14.00" fill="#db4437">OSUSEC</text>
+</a>
+</g>
+</g>
+<!-- OSUSEC&#45;&gt;DEFCON_QUALS -->
+<g id="edge15" class="edge">
+<title>OSUSEC&#45;&gt;DEFCON_QUALS</title>
+<path fill="none" stroke="black" stroke-width="2" d="M531.72,-162.7C510.63,-188.92 470.65,-238.64 446.17,-269.08"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="443.24,-267.13 439.7,-277.11 448.7,-271.51 443.24,-267.13"/>
+</g>
+<!-- KITCTF -->
+<g id="node17" class="node">
+<title>KITCTF</title>
+<g id="a_node17"><a xlink:href="https://ctftime.org/team/7221" xlink:title="KITCTF">
+<ellipse fill="none" stroke="#4285f4" cx="606.57" cy="-672.95" rx="41.69" ry="18"/>
+<text text-anchor="middle" x="606.57" y="-669.25" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">KITCTF</text>
+</a>
+</g>
+</g>
+<!-- KITCTF&#45;&gt;Sauercloud -->
+<g id="edge16" class="edge">
+<title>KITCTF&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M570.87,-663.6C527.21,-652.17 452.93,-632.72 402.66,-619.56"/>
+<polygon fill="grey" stroke="grey" points="403.5,-616.16 392.94,-617.01 401.73,-622.93 403.5,-616.16"/>
+</g>
+<!-- Eat Sleep Pwn Repeat -->
+<g id="node18" class="node">
+<title>Eat Sleep Pwn Repeat</title>
+<g id="a_node18"><a xlink:href="https://ctftime.org/team/15712" xlink:title="Eat Sleep Pwn Repeat">
+<ellipse fill="none" stroke="#4285f4" cx="227.56" cy="-850.65" rx="98.58" ry="18"/>
+<text text-anchor="middle" x="227.56" y="-846.95" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">Eat Sleep Pwn Repeat</text>
+</a>
+</g>
+</g>
+<!-- Eat Sleep Pwn Repeat&#45;&gt;Sauercloud -->
+<g id="edge17" class="edge">
+<title>Eat Sleep Pwn Repeat&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M236.55,-832.64C257.8,-790.09 311.19,-683.14 336.34,-632.77"/>
+<polygon fill="grey" stroke="grey" points="339.5,-634.28 340.84,-623.77 333.24,-631.15 339.5,-634.28"/>
+</g>
+<!-- Flux Fingers -->
+<g id="node19" class="node">
+<title>Flux Fingers</title>
+<g id="a_node19"><a xlink:href="https://ctftime.org/team/551" xlink:title="Flux Fingers">
+<ellipse fill="none" stroke="#4285f4" cx="59.14" cy="-673.46" rx="59.29" ry="18"/>
+<text text-anchor="middle" x="59.14" y="-669.76" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">Flux Fingers</text>
+</a>
+</g>
+</g>
+<!-- Flux Fingers&#45;&gt;Sauercloud -->
+<g id="edge18" class="edge">
+<title>Flux Fingers&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M106.17,-662.51C157.76,-650.49 240.45,-631.22 294.96,-618.52"/>
+<polygon fill="grey" stroke="grey" points="295.85,-621.9 304.79,-616.23 294.26,-615.09 295.85,-621.9"/>
+</g>
+<!-- Red Rocket -->
+<g id="node20" class="node">
+<title>Red Rocket</title>
+<g id="a_node20"><a xlink:href="https://allesctf.net/" xlink:title="Red Rocket">
+<ellipse fill="none" stroke="#4285f4" cx="143.48" cy="-797.1" rx="56.59" ry="18"/>
+<text text-anchor="middle" x="143.48" y="-793.4" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">Red Rocket</text>
+</a>
+</g>
+</g>
+<!-- Red Rocket&#45;&gt;Sauercloud -->
+<g id="edge19" class="edge">
+<title>Red Rocket&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M162.16,-779.78C199.14,-745.48 281.77,-668.85 323.97,-629.72"/>
+<polygon fill="grey" stroke="grey" points="326.4,-632.24 331.35,-622.87 321.64,-627.11 326.4,-632.24"/>
+</g>
+<!-- Alles! -->
+<g id="node21" class="node">
+<title>Alles!</title>
+<g id="a_node21"><a xlink:href="https://ctftime.org/team/18419" xlink:title="Alles!">
+<ellipse fill="none" stroke="#4285f4" cx="173.45" cy="-672.1" rx="32.49" ry="18"/>
+<text text-anchor="middle" x="173.45" y="-668.4" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">Alles!</text>
+</a>
+</g>
+</g>
+<!-- Alles!&#45;&gt;Sauercloud -->
+<g id="edge20" class="edge">
+<title>Alles!&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M200.63,-661.87C228.16,-651.51 271.24,-635.3 304.06,-622.96"/>
+<polygon fill="grey" stroke="grey" points="305.32,-626.22 313.45,-619.42 302.86,-619.67 305.32,-626.22"/>
+</g>
+<!-- ENOFLAG -->
+<g id="node22" class="node">
+<title>ENOFLAG</title>
+<g id="a_node22"><a xlink:href="https://ctftime.org/team/1438" xlink:title="ENOFLAG">
+<ellipse fill="none" stroke="#4285f4" cx="72.84" cy="-552.98" rx="53.89" ry="18"/>
+<text text-anchor="middle" x="72.84" y="-549.28" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">ENOFLAG</text>
+</a>
+</g>
+</g>
+<!-- ENOFLAG&#45;&gt;Sauercloud -->
+<g id="edge21" class="edge">
+<title>ENOFLAG&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M119.83,-561.93C167.29,-570.96 240.71,-584.95 291.79,-594.67"/>
+<polygon fill="grey" stroke="grey" points="291.21,-598.13 301.69,-596.56 292.52,-591.25 291.21,-598.13"/>
+</g>
+<!-- FAUST -->
+<g id="node23" class="node">
+<title>FAUST</title>
+<g id="a_node23"><a xlink:href="https://ctftime.org/team/550" xlink:title="FAUST">
+<ellipse fill="none" stroke="#4285f4" cx="499.22" cy="-813.91" rx="39.79" ry="18"/>
+<text text-anchor="middle" x="499.22" y="-810.21" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">FAUST</text>
+</a>
+</g>
+</g>
+<!-- FAUST&#45;&gt;Sauercloud -->
+<g id="edge22" class="edge">
+<title>FAUST&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M486.74,-796.52C460.5,-759.95 399.49,-674.92 368.55,-631.8"/>
+<polygon fill="grey" stroke="grey" points="371.27,-629.6 362.6,-623.51 365.59,-633.68 371.27,-629.6"/>
+</g>
+<!-- WizardsOfDos -->
+<g id="node24" class="node">
+<title>WizardsOfDos</title>
+<g id="a_node24"><a xlink:href="https://ctftime.org/team/561" xlink:title="WizardsOfDos">
+<ellipse fill="none" stroke="#4285f4" cx="597.53" cy="-769.88" rx="68.49" ry="18"/>
+<text text-anchor="middle" x="597.53" y="-766.18" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">WizardsOfDos</text>
+</a>
+</g>
+</g>
+<!-- WizardsOfDos&#45;&gt;Sauercloud -->
+<g id="edge23" class="edge">
+<title>WizardsOfDos&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M571.96,-752.93C526.83,-723.03 433.13,-660.93 383.07,-627.75"/>
+<polygon fill="grey" stroke="grey" points="384.81,-624.71 374.54,-622.1 380.94,-630.54 384.81,-624.71"/>
+</g>
+<!-- Squareroots -->
+<g id="node25" class="node">
+<title>Squareroots</title>
+<g id="a_node25"><a xlink:href="https://ctftime.org/team/554" xlink:title="Squareroots">
+<ellipse fill="none" stroke="#4285f4" cx="392.99" cy="-855.47" rx="58.49" ry="18"/>
+<text text-anchor="middle" x="392.99" y="-851.77" font-family="JetBrains Mono" font-size="14.00" fill="#4285f4">Squareroots</text>
+</a>
+</g>
+</g>
+<!-- Squareroots&#45;&gt;Sauercloud -->
+<g id="edge24" class="edge">
+<title>Squareroots&#45;&gt;Sauercloud</title>
+<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M389.82,-837.11C382.35,-793.88 363.62,-685.5 354.71,-633.89"/>
+<polygon fill="grey" stroke="grey" points="358.11,-633.04 352.96,-623.78 351.21,-634.23 358.11,-633.04"/>
+</g>
+</g>
+</svg>