commit 478bad83380d967f4ae9f64f308f779153e6f084
parent 4612f92969153c14f8a945e483a8c52541d07dc8
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Sat, 17 Feb 2024 15:46:09 +0100
Add GNU40 presentation
Diffstat:
12 files changed, 1292 insertions(+), 0 deletions(-)
diff --git a/2023-gnu40/.gitignore b/2023-gnu40/.gitignore
@@ -0,0 +1,8 @@
+gns.aux
+gns.log
+gns.nav
+gns.out
+gns.pdf
+gns.snm
+gns.toc
+gns.vrb
diff --git a/2023-gnu40/beamercolorthememetropolis-highcontrast.sty b/2023-gnu40/beamercolorthememetropolis-highcontrast.sty
@@ -0,0 +1,39 @@
+%%
+%% This is file `beamercolorthememetropolis-highcontrast.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamercolorthememetropolis-highcontrast.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamercolorthememetropolis-highcontrast}[2017/01/23 Metropolis color theme]
+\usecolortheme{metropolis}
+
+\definecolor{mAlert}{HTML}{AD003D}
+\definecolor{mExample}{HTML}{005580}
+
+\setbeamercolor{normal text}{%
+ fg=black,
+ bg=white
+}
+\setbeamercolor{alerted text}{%
+ fg=mAlert,
+}
+\setbeamercolor{example text}{%
+ fg=mExample,
+}
+\mode<all>
+\endinput
+%%
+%% End of file `beamercolorthememetropolis-highcontrast.sty'.
diff --git a/2023-gnu40/beamercolorthememetropolis.sty b/2023-gnu40/beamercolorthememetropolis.sty
@@ -0,0 +1,138 @@
+%%
+%% This is file `beamercolorthememetropolis.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamercolorthememetropolis.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamercolorthememetropolis}[2017/01/23 Metropolis color theme]
+\RequirePackage{pgfopts}
+\pgfkeys{
+ /metropolis/color/block/.cd,
+ .is choice,
+ transparent/.code=\metropolis@block@transparent,
+ fill/.code=\metropolis@block@fill,
+}
+\pgfkeys{
+ /metropolis/color/background/.cd,
+ .is choice,
+ dark/.code=\metropolis@colors@dark,
+ light/.code=\metropolis@colors@light,
+}
+\newcommand{\metropolis@color@setdefaults}{
+ \pgfkeys{/metropolis/color/.cd,
+ background=light,
+ block=transparent,
+ }
+}
+\definecolor{mDarkBrown}{HTML}{604c38}
+\definecolor{mDarkTeal}{HTML}{23373b}
+\definecolor{mLightBrown}{HTML}{EB811B}
+\definecolor{mLightGreen}{HTML}{14B03D}
+\newcommand{\metropolis@colors@dark}{
+ \setbeamercolor{normal text}{%
+ fg=black!2,
+ bg=mDarkTeal
+ }
+ \usebeamercolor[fg]{normal text}
+}
+\newcommand{\metropolis@colors@light}{
+ \setbeamercolor{normal text}{%
+ fg=mDarkTeal,
+ bg=black!2
+ }
+}
+\setbeamercolor{alerted text}{%
+ fg=mLightBrown
+}
+\setbeamercolor{example text}{%
+ fg=mLightGreen
+}
+\setbeamercolor{titlelike}{use=normal text, parent=normal text}
+\setbeamercolor{author}{use=normal text, parent=normal text}
+\setbeamercolor{date}{use=normal text, parent=normal text}
+\setbeamercolor{institute}{use=normal text, parent=normal text}
+\setbeamercolor{structure}{use=normal text, fg=normal text.fg}
+\setbeamercolor{palette primary}{%
+ use=normal text,
+ fg=normal text.bg,
+ bg=normal text.fg
+}
+\setbeamercolor{frametitle}{%
+ use=palette primary,
+ parent=palette primary
+}
+\setbeamercolor{progress bar}{%
+ use=alerted text,
+ fg=alerted text.fg,
+ bg=alerted text.fg!50!black!30
+}
+\setbeamercolor{title separator}{
+ use=progress bar,
+ parent=progress bar
+}
+\setbeamercolor{progress bar in head/foot}{%
+ use=progress bar,
+ parent=progress bar
+}
+\setbeamercolor{progress bar in section page}{
+ use=progress bar,
+ parent=progress bar
+}
+\newcommand{\metropolis@block@transparent}{
+ \setbeamercolor{block title}{%
+ use=normal text,
+ fg=normal text.fg,
+ bg=
+ }
+ \setbeamercolor{block body}{
+ bg=
+ }
+}
+\newcommand{\metropolis@block@fill}{
+ \setbeamercolor{block title}{%
+ use=normal text,
+ fg=normal text.fg,
+ bg=normal text.bg!80!fg
+ }
+ \setbeamercolor{block body}{
+ use={block title, normal text},
+ bg=block title.bg!50!normal text.bg
+ }
+}
+\setbeamercolor{block title alerted}{%
+ use={block title, alerted text},
+ bg=block title.bg,
+ fg=alerted text.fg
+}
+\setbeamercolor{block title example}{%
+ use={block title, example text},
+ bg=block title.bg,
+ fg=example text.fg
+}
+\setbeamercolor{block body alerted}{use=block body, parent=block body}
+\setbeamercolor{block body example}{use=block body, parent=block body}
+\setbeamercolor{footnote}{fg=normal text.fg!90}
+\setbeamercolor{footnote mark}{fg=.}
+\setbeamercolor{bibliography entry author}{fg=, bg=}
+\setbeamercolor{bibliography entry title}{fg=, bg=}
+\setbeamercolor{bibliography entry location}{fg=, bg=}
+\setbeamercolor{bibliography entry note}{fg=, bg=}
+\metropolis@color@setdefaults
+\ProcessPgfPackageOptions{/metropolis/color}
+\mode<all>
+\endinput
+%%
+%% End of file `beamercolorthememetropolis.sty'.
diff --git a/2023-gnu40/beamerfontthememetropolis.sty b/2023-gnu40/beamerfontthememetropolis.sty
@@ -0,0 +1,325 @@
+%%
+%% This is file `beamerfontthememetropolis.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerfontthememetropolis.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerfontthememetropolis}[2017/01/23 Metropolis font theme]
+\RequirePackage{etoolbox}
+\RequirePackage{ifxetex}
+\RequirePackage{ifluatex}
+\RequirePackage{pgfopts}
+\ifboolexpr{bool {xetex} or bool {luatex}}{
+ \@ifpackageloaded{fontspec}{
+ \PassOptionsToPackage{no-math}{fontspec}
+ }{
+ \RequirePackage[no-math]{fontspec}
+ }
+ \newcounter{fontsnotfound}
+ \newcommand{\checkfont}[1]{%
+ \suppressfontnotfounderror=1%
+ \font\x = "#1" at 10pt
+ \selectfont
+ \ifx\x\nullfont%
+ \stepcounter{fontsnotfound}%
+ \fi%
+ \suppressfontnotfounderror=0%
+ }
+
+ \newcommand{\iffontsavailable}[3]{%
+ \setcounter{fontsnotfound}{0}%
+ \expandafter\forcsvlist\expandafter%
+ \checkfont\expandafter{#1}%
+ \ifnum\value{fontsnotfound}=0%
+ #2%
+ \else%
+ #3%
+ \fi%
+ }
+ \iffontsavailable{Fira Sans Light,%
+ Fira Sans Light Italic,%
+ Fira Sans,%
+ Fira Sans Italic}%
+ {%
+ \setsansfont[ItalicFont={Fira Sans Light Italic},%
+ BoldFont={Fira Sans},%
+ BoldItalicFont={Fira Sans Italic}]%
+ {Fira Sans Light}%
+ }{%
+ \iffontsavailable{Fira Sans Light OT,%
+ Fira Sans Light Italic OT,%
+ Fira Sans OT,%
+ Fira Sans Italic OT}%
+ {%
+ \setsansfont[ItalicFont={Fira Sans Light Italic OT},%
+ BoldFont={Fira Sans OT},%
+ BoldItalicFont={Fira Sans Italic OT}]%
+ {Fira Sans Light OT}%
+ }{%
+ \PackageWarning{beamerthememetropolis}{%
+ Could not find Fira Sans fonts%
+ }
+ }
+ }
+ \iffontsavailable{Fira Mono, Fira Mono Bold}{%
+ \setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}%
+ }{%
+ \iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
+ \setmonofont[BoldFont={Fira Mono Medium OT}]{Fira Mono OT}%
+ }{%
+ \PackageWarning{beamerthememetropolis}{%
+ Could not find Fira Mono fonts%
+ }
+ }
+ }
+ \AtBeginEnvironment{tabular}{%
+ \addfontfeature{Numbers={Monospaced}}%
+ }
+}{%
+ \PackageWarning{beamerthememetropolis}{%
+ You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts%
+ }
+}
+\setbeamerfont{title}{size=\Large,%
+ series=\bfseries}
+\setbeamerfont{author}{size=\small}
+\setbeamerfont{date}{size=\small}
+\setbeamerfont{section title}{size=\Large,%
+ series=\bfseries}
+\setbeamerfont{block title}{size=\normalsize,%
+ series=\bfseries}
+\setbeamerfont{block title alerted}{size=\normalsize,%
+ series=\bfseries}
+\setbeamerfont*{subtitle}{size=\large}
+\setbeamerfont{frametitle}{size=\large,%
+ series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{caption name}{series=\bfseries}
+\setbeamerfont{description item}{series=\bfseries}
+\setbeamerfont{page number in head/foot}{size=\scriptsize}
+\setbeamerfont{bibliography entry author}{size=\normalsize,%
+ series=\normalfont}
+\setbeamerfont{bibliography entry title}{size=\normalsize,%
+ series=\bfseries}
+\setbeamerfont{bibliography entry location}{size=\normalsize,%
+ series=\normalfont}
+\setbeamerfont{bibliography entry note}{size=\small,%
+ series=\normalfont}
+\setbeamerfont{standout}{size=\Large,%
+ series=\bfseries}
+\pgfkeys{
+ /metropolis/font/titleformat title/.cd,
+ .is choice,
+ regular/.code={%
+ \let\metropolis@titleformat\@empty%
+ \setbeamerfont{title}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\metropolis@titleformat\@empty%
+ \setbeamerfont{title}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\metropolis@titleformat\lowercase%
+ \setbeamerfont{title}{shape=\scshape}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat title=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\metropolis@titleformat\uppercase%
+ \setbeamerfont{title}{shape=\normalfont}
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat title=allcaps can lead to problems%
+ }
+ },
+}
+\pgfkeys{
+ /metropolis/font/titleformat subtitle/.cd,
+ .is choice,
+ regular/.code={%
+ \let\metropolis@subtitleformat\@empty%
+ \setbeamerfont{subtitle}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\metropolis@subtitleformat\@empty%
+ \setbeamerfont{subtitle}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\metropolis@subtitleformat\lowercase%
+ \setbeamerfont{subtitle}{shape=\scshape}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat subtitle=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\metropolis@subtitleformat\uppercase%
+ \setbeamerfont{subtitle}{shape=\normalfont}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat subtitle=allcaps can lead to problems%
+ }
+ },
+}
+\pgfkeys{
+ /metropolis/font/titleformat section/.cd,
+ .is choice,
+ regular/.code={%
+ \let\metropolis@sectiontitleformat\@empty%
+ \setbeamerfont{section title}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\metropolis@sectiontitleformat\@empty%
+ \setbeamerfont{section title}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\metropolis@sectiontitleformat\MakeLowercase%
+ \setbeamerfont{section title}{shape=\scshape}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat section=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\metropolis@sectiontitleformat\MakeUppercase%
+ \setbeamerfont{section title}{shape=\normalfont}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat section=allcaps can lead to problems%
+ }
+ },
+}
+\pgfkeys{
+ /metropolis/font/titleformat frame/.cd,
+ .is choice,
+ regular/.code={%
+ \let\metropolis@frametitleformat\@empty%
+ \setbeamerfont{frametitle}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\metropolis@frametitleformat\@empty%
+ \setbeamerfont{frametitle}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\metropolis@frametitleformat\MakeLowercase%
+ \setbeamerfont{frametitle}{shape=\scshape}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat frame=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\metropolis@frametitleformat\MakeUppercase%
+ \setbeamerfont{frametitle}{shape=\normalfont}
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat frame=allcaps can lead to problems%
+ }
+ },
+}
+\pgfkeys{
+ /metropolis/font/.cd,
+ titleformattitle/.code=\pgfkeysalso{titleformat title=#1},
+ titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1},
+ titleformatsection/.code=\pgfkeysalso{titleformat section=#1},
+ titleformatframe/.code=\pgfkeysalso{titleformat frame=#1},
+}
+\newcommand{\metropolis@font@setdefaults}{
+ \pgfkeys{/metropolis/font/.cd,
+ titleformat title=regular,
+ titleformat subtitle=regular,
+ titleformat section=regular,
+ titleformat frame=regular,
+ }
+}
+\def\metropolis@titleformat#1{#1}
+\def\metropolis@subtitleformat#1{#1}
+\def\metropolis@sectiontitleformat#1{#1}
+\def\metropolis@frametitleformat#1{#1}
+\patchcmd{\beamer@title}%
+ {\def\inserttitle{#2}}%
+ {\def\inserttitle{\metropolis@titleformat{#2}}}%
+ {}%
+ {\PackageError{beamerfontthememetropolis}{Patching title failed}\@ehc}
+\patchcmd{\beamer@subtitle}%
+ {\def\insertsubtitle{#2}}%
+ {\def\insertsubtitle{\metropolis@subtitleformat{#2}}}%
+ {}%
+ {\PackageError{beamerfontthememetropolis}{Patching subtitle failed}\@ehc}
+\patchcmd{\sectionentry}
+ {\def\insertsectionhead{#2}}
+ {\def\insertsectionhead{\metropolis@sectiontitleformat{#2}}}
+ {}
+ {\PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc}
+\@tempswafalse
+\patchcmd{\beamer@section}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{%
+ \metropolis@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section}
+ {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+ {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\metropolis@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc
+\fi
+\@tempswafalse
+\patchcmd{\beamer@subsection}
+ {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@subsection}
+ {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{%
+ \metropolis@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@subsection}
+ {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+ {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\metropolis@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc
+\fi
+\patchcmd{\beamer@@frametitle}
+ {{%
+ \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space%
+ \usebeamertemplate*{frametitle continuation}\fi}}%
+ \gdef\beamer@frametitle{#2}%
+ \gdef\beamer@shortframetitle{#1}%
+ }}
+ {{%
+ \gdef\insertframetitle{{\metropolis@frametitleformat{#2}\ifnum%
+ \beamer@autobreakcount>0\relax{}\space%
+ \usebeamertemplate*{frametitle continuation}\fi}}%
+ \gdef\beamer@frametitle{#2}%
+ \gdef\beamer@shortframetitle{#1}%
+ }}
+ {}
+ {\PackageError{beamerfontthememetropolis}{Patching frame title failed}\@ehc}
+\metropolis@font@setdefaults
+\ProcessPgfPackageOptions{/metropolis/font}
+\endinput
+%%
+%% End of file `beamerfontthememetropolis.sty'.
diff --git a/2023-gnu40/beamerinnerthememetropolis.sty b/2023-gnu40/beamerinnerthememetropolis.sty
@@ -0,0 +1,293 @@
+%%
+%% This is file `beamerinnerthememetropolis.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerinnerthememetropolis.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerinnerthememetropolis}[2017/01/23 Metropolis inner theme]
+\RequirePackage{etoolbox}
+\RequirePackage{keyval}
+\RequirePackage{calc}
+\RequirePackage{pgfopts}
+\RequirePackage{tikz}
+\pgfkeys{
+ /metropolis/inner/sectionpage/.cd,
+ .is choice,
+ none/.code=\metropolis@disablesectionpage,
+ simple/.code={\metropolis@enablesectionpage
+ \setbeamertemplate{section page}[simple]},
+ progressbar/.code={\metropolis@enablesectionpage
+ \setbeamertemplate{section page}[progressbar]},
+}
+\pgfkeys{
+ /metropolis/inner/subsectionpage/.cd,
+ .is choice,
+ none/.code=\metropolis@disablesubsectionpage,
+ simple/.code={\metropolis@enablesubsectionpage
+ \setbeamertemplate{section page}[simple]},
+ progressbar/.code={\metropolis@enablesubsectionpage
+ \setbeamertemplate{section page}[progressbar]},
+}
+\newcommand{\metropolis@inner@setdefaults}{
+ \pgfkeys{/metropolis/inner/.cd,
+ sectionpage=progressbar,
+ subsectionpage=none
+ }
+}
+\setbeamertemplate{title page}{
+ \begin{minipage}[b][\paperheight]{\textwidth}
+ \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi
+ \vfill%
+ \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \usebeamertemplate*{title separator}
+ \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi
+ \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
+ \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi
+ \vfill
+ \vspace*{1mm}
+ \end{minipage}
+}
+\def\maketitle{%
+ \ifbeamer@inframe
+ \titlepage
+ \else
+ \frame[plain,noframenumbering]{\titlepage}
+ \fi
+}
+\def\titlepage{%
+ \usebeamertemplate{title page}
+}
+\setbeamertemplate{title graphic}{
+ \vbox to 0pt {
+ \vspace*{2em}
+ \inserttitlegraphic%
+ }%
+ \nointerlineskip%
+}
+\setbeamertemplate{title}{
+ \raggedright%
+ \linespread{1.0}%
+ \inserttitle%
+ \par%
+ \vspace*{0.5em}
+}
+\setbeamertemplate{subtitle}{
+ \raggedright%
+ \insertsubtitle%
+ \par%
+ \vspace*{0.5em}
+}
+\newlength{\metropolis@titleseparator@linewidth}
+\setlength{\metropolis@titleseparator@linewidth}{0.4pt}
+\setbeamertemplate{title separator}{
+ \tikzexternaldisable%
+ \begin{tikzpicture}
+ \fill[fg] (0,0) rectangle (\textwidth, \metropolis@titleseparator@linewidth);
+ \end{tikzpicture}%
+ \tikzexternalenable%
+ \par%
+}
+\setbeamertemplate{author}{
+ \vspace*{2em}
+ \insertauthor%
+ \par%
+ \vspace*{0.25em}
+}
+\setbeamertemplate{date}{
+ \insertdate%
+ \par%
+}
+\setbeamertemplate{institute}{
+ \vspace*{3mm}
+ \insertinstitute%
+ \par%
+}
+\defbeamertemplate{section page}{simple}{
+ \begin{center}
+ \usebeamercolor[fg]{section title}
+ \usebeamerfont{section title}
+ \insertsectionhead\par
+ \ifx\insertsubsectionhead\@empty\else
+ \usebeamercolor[fg]{subsection title}
+ \usebeamerfont{subsection title}
+ \insertsubsectionhead
+ \fi
+ \end{center}
+}
+\defbeamertemplate{section page}{progressbar}{
+ \centering
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamercolor[fg]{section title}
+ \usebeamerfont{section title}
+ \insertsectionhead\\[-1ex]
+ \usebeamertemplate*{progress bar in section page}
+ \par
+ \ifx\insertsubsectionhead\@empty\else%
+ \usebeamercolor[fg]{subsection title}%
+ \usebeamerfont{subsection title}%
+ \insertsubsectionhead
+ \fi
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\newcommand{\metropolis@disablesectionpage}{
+ \AtBeginSection{
+ % intentionally empty
+ }
+}
+\newcommand{\metropolis@enablesectionpage}{
+ \AtBeginSection{
+ \ifbeamer@inframe
+ \sectionpage
+ \else
+ \frame[plain,c,noframenumbering]{\sectionpage}
+ \fi
+ }
+}
+\setbeamertemplate{subsection page}{%
+ \usebeamertemplate*{section page}
+}
+\newcommand{\metropolis@disablesubsectionpage}{
+ \AtBeginSubsection{
+ % intentionally empty
+ }
+}
+\newcommand{\metropolis@enablesubsectionpage}{
+ \AtBeginSubsection{
+ \ifbeamer@inframe
+ \subsectionpage
+ \else
+ \frame[plain,c,noframenumbering]{\subsectionpage}
+ \fi
+ }
+}
+\newlength{\metropolis@progressonsectionpage}
+\newlength{\metropolis@progressonsectionpage@linewidth}
+\setlength{\metropolis@progressonsectionpage@linewidth}{0.4pt}
+\setbeamertemplate{progress bar in section page}{
+ \setlength{\metropolis@progressonsectionpage}{%
+ \textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}%
+ }%
+ \tikzexternaldisable%
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\textwidth, \metropolis@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, \metropolis@progressonsectionpage@linewidth);
+ \end{tikzpicture}%
+ \tikzexternalenable%
+}
+\def\inserttotalframenumber{100}
+\newlength{\metropolis@blocksep}
+\newlength{\metropolis@blockadjust}
+\setlength{\metropolis@blocksep}{0.75ex}
+\setlength{\metropolis@blockadjust}{0.25ex}
+\providecommand{\metropolis@strut}{%
+ \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()}%
+}
+\newcommand{\metropolis@block}[1]{
+ \par\vskip\medskipamount%
+ \setlength{\parskip}{0pt}
+ \ifbeamercolorempty[bg]{block title#1}{%
+ \begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}}{%
+ \ifbeamercolorempty[bg]{block title}{%
+ \begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}%
+ }%
+ {%
+ \begin{beamercolorbox}[
+ sep=\dimexpr\metropolis@blocksep-\metropolis@blockadjust\relax,
+ leftskip=\metropolis@blockadjust,
+ rightskip=\dimexpr\metropolis@blockadjust plus 4em\relax
+ ]{block title#1}%
+ }}%
+ \usebeamerfont*{block title#1}%
+ \metropolis@strut%
+ \insertblocktitle%
+ \metropolis@strut%
+ \end{beamercolorbox}%
+ \nointerlineskip%
+ \ifbeamercolorempty[bg]{block body#1}{%
+ \begin{beamercolorbox}[vmode]{block body#1}}{
+ \ifbeamercolorempty[bg]{block body}{%
+ \begin{beamercolorbox}[vmode]{block body#1}%
+ }{%
+ \begin{beamercolorbox}[sep=\metropolis@blocksep, vmode]{block body#1}%
+ \vspace{-\metropolis@parskip}
+ }}%
+ \usebeamerfont{block body#1}%
+ \setlength{\parskip}{\metropolis@parskip}%
+}
+\setbeamertemplate{block begin}{\metropolis@block{}}
+\setbeamertemplate{block alerted begin}{\metropolis@block{ alerted}}
+\setbeamertemplate{block example begin}{\metropolis@block{ example}}
+\setbeamertemplate{block end}{\end{beamercolorbox}\vspace*{0.2ex}}
+\setbeamertemplate{block alerted end}{\end{beamercolorbox}\vspace*{0.2ex}}
+\setbeamertemplate{block example end}{\end{beamercolorbox}\vspace*{0.2ex}}
+\setbeamertemplate{itemize items}{\textbullet}
+\setbeamertemplate{caption label separator}{: }
+\setbeamertemplate{caption}[numbered]
+\setbeamertemplate{footnote}{%
+ \parindent 0em\noindent%
+ \raggedright
+ \usebeamercolor{footnote}\hbox to 0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par%
+}
+\newlength{\metropolis@parskip}
+\setlength{\metropolis@parskip}{0.5em}
+\setlength{\parskip}{\metropolis@parskip}
+\linespread{1.15}
+\define@key{beamerframe}{c}[true]{% centered
+ \beamer@frametopskip=0pt plus 1fill\relax%
+ \beamer@framebottomskip=0pt plus 1fill\relax%
+ \beamer@frametopskipautobreak=0pt plus .4\paperheight\relax%
+ \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
+ \def\beamer@initfirstlineunskip{}%
+}
+\providebool{metropolis@standout}
+\define@key{beamerframe}{standout}[true]{%
+ \booltrue{metropolis@standout}
+ \begingroup
+ \setkeys{beamerframe}{c}
+ \setkeys{beamerframe}{noframenumbering}
+ \ifbeamercolorempty[bg]{palette primary}{
+ \setbeamercolor{background canvas}{
+ use=palette primary,
+ bg=-palette primary.fg
+ }
+ }{
+ \setbeamercolor{background canvas}{
+ use=palette primary,
+ bg=palette primary.bg
+ }
+ }
+ \setbeamercolor{local structure}{
+ fg=palette primary.fg
+ }
+ \centering
+ \usebeamercolor[fg]{palette primary}
+ \usebeamerfont{standout}
+}
+ \apptocmd{\beamer@reseteecodes}{%
+ \ifbool{metropolis@standout}{
+ \endgroup
+ \boolfalse{metropolis@standout}
+ }{}
+ }{}{}
+\metropolis@inner@setdefaults
+\ProcessPgfPackageOptions{/metropolis/inner}
+\endinput
+%%
+%% End of file `beamerinnerthememetropolis.sty'.
diff --git a/2023-gnu40/beamerouterthememetropolis.sty b/2023-gnu40/beamerouterthememetropolis.sty
@@ -0,0 +1,137 @@
+%%
+%% This is file `beamerouterthememetropolis.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerouterthememetropolis.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerouterthememetropolis}[2017/01/23 Metropolis outer theme]
+\RequirePackage{etoolbox}
+\RequirePackage{calc}
+\RequirePackage{pgfopts}
+\pgfkeys{
+ /metropolis/outer/numbering/.cd,
+ .is choice,
+ none/.code=\setbeamertemplate{frame numbering}[none],
+ counter/.code=\setbeamertemplate{frame numbering}[counter],
+ fraction/.code=\setbeamertemplate{frame numbering}[fraction],
+}
+\pgfkeys{
+ /metropolis/outer/progressbar/.cd,
+ .is choice,
+ none/.code={%
+ \setbeamertemplate{headline}[plain]
+ \setbeamertemplate{frametitle}[plain]
+ \setbeamertemplate{footline}[plain]
+ },
+ head/.code={\pgfkeys{/metropolis/outer/progressbar=none}
+ \addtobeamertemplate{headline}{}{%
+ \usebeamertemplate*{progress bar in head/foot}
+ }
+ },
+ frametitle/.code={\pgfkeys{/metropolis/outer/progressbar=none}
+ \addtobeamertemplate{frametitle}{}{%
+ \usebeamertemplate*{progress bar in head/foot}
+ }
+ },
+ foot/.code={\pgfkeys{/metropolis/outer/progressbar=none}
+ \addtobeamertemplate{footline}{}{%
+ \usebeamertemplate*{progress bar in head/foot}%
+ }
+ },
+}
+\newcommand{\metropolis@outer@setdefaults}{
+ \pgfkeys{/metropolis/outer/.cd,
+ numbering=counter,
+ progressbar=none,
+ }
+}
+\setbeamertemplate{navigation symbols}{}
+\defbeamertemplate{frame footer}{none}{}
+\defbeamertemplate{frame footer}{custom}[1]{ #1 }
+\defbeamertemplate{frame numbering}{none}{}
+\defbeamertemplate{frame numbering}{counter}{\insertframenumber}
+\defbeamertemplate{frame numbering}{fraction}{
+ \insertframenumber/\inserttotalframenumber
+}
+\defbeamertemplate{headline}{plain}{}
+\defbeamertemplate{footline}{plain}{%
+ \begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}%
+ \usebeamerfont{page number in head/foot}%
+ \usebeamertemplate*{frame footer}
+ \hfill%
+ \usebeamertemplate*{frame numbering}
+ \end{beamercolorbox}%
+}
+\newlength{\metropolis@frametitle@padding}
+\setlength{\metropolis@frametitle@padding}{2.2ex}
+\newcommand{\metropolis@frametitlestrut@start}{
+ \rule{0pt}{\metropolis@frametitle@padding +%
+ \totalheightof{%
+ \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X}%
+ }%
+ }%
+}
+\newcommand{\metropolis@frametitlestrut@end}{
+ \rule[-\metropolis@frametitle@padding]{0pt}{\metropolis@frametitle@padding}
+}
+\defbeamertemplate{frametitle}{plain}{%
+ \nointerlineskip%
+ \begin{beamercolorbox}[%
+ wd=\paperwidth,%
+ sep=0pt,%
+ leftskip=\metropolis@frametitle@padding,%
+ rightskip=\metropolis@frametitle@padding,%
+ ]{frametitle}%
+ \metropolis@frametitlestrut@start%
+ \insertframetitle%
+ \nolinebreak%
+ \metropolis@frametitlestrut@end%
+ \end{beamercolorbox}%
+}
+\setbeamertemplate{frametitle continuation}{%
+ \usebeamerfont{frametitle}
+ \romannumeral \insertcontinuationcount
+}
+\newlength{\metropolis@progressinheadfoot}
+\newlength{\metropolis@progressinheadfoot@linewidth}
+\setlength{\metropolis@progressinheadfoot@linewidth}{0.4pt}
+\setbeamertemplate{progress bar in head/foot}{
+ \nointerlineskip
+ \setlength{\metropolis@progressinheadfoot}{%
+ \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}%
+ }%
+ \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot}
+ \tikzexternaldisable%
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\paperwidth, \metropolis@progressinheadfoot@linewidth);
+ \fill[fg] (0,0) rectangle (\metropolis@progressinheadfoot, \metropolis@progressinheadfoot@linewidth);
+ \end{tikzpicture}%
+ \tikzexternalenable%
+ \end{beamercolorbox}
+}
+\AtBeginDocument{%
+ \apptocmd{\appendix}{%
+ \pgfkeys{%
+ /metropolis/outer/.cd,
+ numbering=none,
+ progressbar=none}
+ }{}{}
+}
+\metropolis@outer@setdefaults
+\ProcessPgfPackageOptions{/metropolis/outer}
+\endinput
+%%
+%% End of file `beamerouterthememetropolis.sty'.
diff --git a/2023-gnu40/beamerthememetropolis.sty b/2023-gnu40/beamerthememetropolis.sty
@@ -0,0 +1,107 @@
+%%
+%% This is file `beamerthememetropolis.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerthememetropolis.dtx (with options: `package')
+%% ---------------------------------------------------------------------------
+%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
+%% contributors can be found at
+%%
+%% https://github.com/matze/mtheme/graphs/contributors
+%%
+%% and the original template was based on the HSRM theme by Benjamin Weiss.
+%%
+%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
+%% ---------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerthememetropolis}
+ [2017/01/23 v1.2 Metropolis Beamer theme]
+\RequirePackage{etoolbox}
+\RequirePackage{pgfopts}
+\pgfkeys{/metropolis/.cd,
+ .search also={
+ /metropolis/inner,
+ /metropolis/outer,
+ /metropolis/color,
+ /metropolis/font,
+ }
+}
+\pgfkeys{
+ /metropolis/titleformat plain/.cd,
+ .is choice,
+ regular/.code={%
+ \let\metropolis@plaintitleformat\@empty%
+ \setbeamerfont{standout}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\metropolis@plaintitleformat\@empty%
+ \setbeamerfont{standout}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\metropolis@plaintitleformat\MakeLowercase%
+ \setbeamerfont{standout}{shape=\scshape}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat plain=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\metropolis@plaintitleformat\MakeUppercase%
+ \setbeamerfont{standout}{shape=\normalfont}%
+ \PackageWarning{beamerthememetropolis}{%
+ Be aware that titleformat plain=allcaps can lead to problems%
+ }
+ },
+}
+\pgfkeys{
+ /metropolis/titleformat/.code=\pgfkeysalso{
+ font/titleformat title=#1,
+ font/titleformat subtitle=#1,
+ font/titleformat section=#1,
+ font/titleformat frame=#1,
+ titleformat plain=#1,
+ }
+}
+\pgfkeys{/metropolis/.cd,
+ usetitleprogressbar/.code=\pgfkeysalso{outer/progressbar=frametitle},
+ noslidenumbers/.code=\pgfkeysalso{outer/numbering=none},
+ usetotalslideindicator/.code=\pgfkeysalso{outer/numbering=fraction},
+ nosectionslide/.code=\pgfkeysalso{inner/sectionpage=none},
+ darkcolors/.code=\pgfkeysalso{color/background=dark},
+ blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill},
+}
+\newcommand{\metropolis@setdefaults}{
+ \pgfkeys{/metropolis/.cd,
+ titleformat plain=regular,
+ }
+}
+\providecommand{\tikzexternalenable}{}
+\providecommand{\tikzexternaldisable}{}
+\useinnertheme{metropolis}
+\useoutertheme{metropolis}
+\usecolortheme{metropolis}
+\usefonttheme{metropolis}
+\AtEndPreamble{%
+ \@ifpackageloaded{pgfplots}{%
+ \RequirePackage{pgfplotsthemetol}
+ }{}
+}
+\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}}
+\def\metropolis@plaintitleformat#1{#1}
+\newcommand{\plain}[2][]{%
+ \PackageWarning{beamerthememetropolis}{%
+ The syntax `\plain' may be deprecated in a future version of Metropolis.
+ Please use a frame with [standout] instead.
+ }
+ \begin{frame}[standout]{#1}
+ \metropolis@plaintitleformat{#2}
+ \end{frame}
+}
+\newcommand{\mreducelistspacing}{\vspace{-\topsep}}
+\metropolis@setdefaults
+\ProcessPgfOptions{/metropolis}
+\endinput
+%%
+%% End of file `beamerthememetropolis.sty'.
diff --git a/2023-gnu40/figures/GNS-BlockCreation.drawio b/2023-gnu40/figures/GNS-BlockCreation.drawio
@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2023-05-01T14:16:06.039Z" agent="5.0 (Macintosh; Intel Mac OS X 13_2_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="XcXYNxkugUaDmJ9r4ltp" version="14.6.13" type="device"><diagram id="duNTSAPvJWYlNGgyWCeS" name="Page-1">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</diagram></mxfile>
+\ No newline at end of file
diff --git a/2023-gnu40/figures/GNS-BlockValidation.drawio b/2023-gnu40/figures/GNS-BlockValidation.drawio
@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2023-05-09T11:12:53.052Z" agent="5.0 (Macintosh; Intel Mac OS X 13_2_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="6uL9OV3H78YwBUdGg73_" version="14.6.13" type="device"><diagram id="duNTSAPvJWYlNGgyWCeS" name="Page-1">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</diagram></mxfile>
+\ No newline at end of file
diff --git a/2023-gnu40/figures/gns-logo.png b/2023-gnu40/figures/gns-logo.png
Binary files differ.
diff --git a/2023-gnu40/figures/gnunet.png b/2023-gnu40/figures/gnunet.png
Binary files differ.
diff --git a/2023-gnu40/gns.tex b/2023-gnu40/gns.tex
@@ -0,0 +1,241 @@
+\documentclass[aspectratio=169]{beamer}
+\usepackage{appendixnumberbeamer}
+\usepackage{mathtools}
+\usetheme{metropolis} % Use metropolis theme
+\definecolor{fhggreen}{RGB}{23,156,125}
+\let\oldemph\textbf
+\renewcommand{\textbf}[1]{{\color{mLightBrown}\oldemph{#1}}}
+
+\usepackage{blkarray}
+\usepackage{amsmath}
+\usepackage{multirow}
+\title{\includegraphics[width=0.2\textwidth]{gns-logo.png}\\\small{The GNU Name System}}
+\date{2023-09-27}
+\author{Bernd Fix, Christian Grothoff, \textbf{Martin Schanzenbach}}
+%\institute{\includegraphics[width=.25\textwidth]{aisec_logo.pdf}}
+
+\graphicspath{{figures/}}
+
+\begin{document}
+\metroset{block=fill,sectionpage=progressbar,numbering=counter}
+\maketitle
+
+\begin{frame}{Directories / DNS}
+ $$
+ \mathrlap{\overbrace{\phantom{\text{www}}}^{\text{Label}}}
+ \text{www}
+ \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.example.com}}}}_{\text{Namespace}}}
+ {\color{fhggreen}\text{.example.com}}
+ $$
+\end{frame}
+
+\begin{frame}{The .alt TLD}
+ Whats wrong with DNS? See RFC 8324\footnote{DNS Privacy, Authorization, Special Uses, Encoding, Characters,
+ Matching, and Root Structure: Time for Another Look?}:
+ \begin{itemize}
+ \item No \textbf{query privacy}.
+ \item A \textbf{single hierarchy with a centrally controlled root}.
+ \item Requires management/maintenance of \textbf{root servers}.
+ \item etc\ldots
+ \end{itemize}
+ DNSSEC and other ``patches'' do not or in adequately address the issues: ``[the existing solutions for DNS are] security patches rather than designed-in
+ security or privacy mechanisms''.
+\end{frame}
+
+\begin{frame}{Directories / GNS}
+ $$
+ \mathrlap{\overbrace{\phantom{\text{www}}}^{\text{Label}}}
+ \text{www}
+ \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.myzone.gns.alt}}}}_{\text{Namespace}}}
+ {\color{fhggreen}\text{.myzone.gns.alt}}
+ $$
+\end{frame}
+
+\begin{frame}{The .alt TLD}
+ Why ``.gns.alt''?
+ \begin{itemize}
+ \item RFC9476: ``The .alt Special-Use Top-Level Domain'' defines the TLD to be used for alternative (from the point of view of DNS) name systems.
+ \item RFC9476 does \textbf{not} define a registry for ``.alt''-subdomains.
+ \item We manage a ``.alt'' registry at \url{https://gana.gnunet.org}~\footnote{If you ever need a registry for your protocol feel free to approach us!} which already includes a code point for ``.gns.alt''.
+ \item To prevent shadowing of DNS names, it is recommended to use the ``.gns.alt'' suffix.
+ \item Sometimes (e.g. censorship-overrides) you may not want to do that.
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{The GNU Name System}
+ \begin{itemize}
+ \item Namespaces are created and uniquely identified using \textbf{public zone keys}.
+ \item \textbf{Records} are grouped by \textbf{label}, encrypted, signed, and published in a key-value store (usually, a DHT\footnote{\url{https://datatracker.ietf.org/doc/draft-schanzen-r5n/}}).
+ \item Supported zone types and crypto (for now):
+ \begin{itemize}
+ \item PKEY: ECDSA+CTR-AES-256
+ \item EDKEY: EdDSA+XSalsa20-Poly1305
+ \end{itemize}
+ \end{itemize}
+ \centering
+ \includegraphics[width=1\textwidth]{GNS-BlockCreation-0}
+\end{frame}
+
+\begin{frame}{Zone management}
+ \includegraphics[height=0.9\textheight]{deleg0.pdf}
+\end{frame}
+
+
+\begin{frame}{Name resolution}
+ \includegraphics[height=0.9\textheight]{deleg1.pdf}
+\end{frame}
+
+
+\begin{frame}{Name resolution}
+ \includegraphics[height=0.9\textheight]{deleg2.pdf}
+\end{frame}
+
+
+\begin{frame}{How do we bootstrap the top-level zones?}
+ \includegraphics[height=0.9\textheight]{deleg3.pdf}
+\end{frame}
+
+
+\begin{frame}[fragile]{The Start Zone}
+ ``Hyper-hyper local root'' concept we call the \textbf{Start Zone}:
+ \begin{itemize}
+ \item Start Zone contains so-called \textbf{suffix-to-zone}-mappings.
+ \item Implementation ships with an \emph{initial} Start Zone configuration.
+ \item Start Zone is configurable \emph{locally} at \emph{each} endpoint.
+ \item User override/extension of mappings at top-level or subdomain-level for:
+ \begin{itemize}
+ \item Circumvent censorship if necessary.
+ \item Private networks.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]{The Start Zone}
+ Example suffix-to-zone mappings:
+ \begin{small}
+ \begin{verbatim}
+# Some TLDs
+.com = 000G001MF6DVMZZ4Y8XRZQDXM1PB3D3VGEK29ZHXBA57EPSNW1QBPKT8J0
+.myzone.gns.alt = 000G007FKSA876G6SNDF8VA7YK1DJE96RPPBHRT2X55Q13M2T4YKNYT3DG
+# Some subdomain overrides
+.gnu.org = 000G001223Q8ZJZBSK6XT2DWV6PE5B1W436D2NB7ZBR9XSXT7TFJHCDB24
+.gnunet.gns.alt = 000G0047M3HN599H57MPXZK4VB59SWK4M9NRD68E1JQFY3RWAHDMKAPN30
+ \end{verbatim}
+ \end{small}
+\end{frame}
+
+
+\begin{frame}{Possible Governance Models}
+ \begin{itemize}
+ \item Non-profit organization.
+ \item Multi-stakeholder model: Board, supporting organizations, \ldots
+ \item Examples for possible stakeholders:
+ \begin{itemize}
+ \item Software and OS Distributors
+ \item Browser vendors
+ \item Governments
+ \end{itemize}
+ \item Funding options:
+ \begin{itemize}
+ \item Applications for new top-level domains.
+ \item Registrations of new top-level domains.
+ \item \ldots
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Hiding information inside GNS}
+ \begin{itemize}
+ \item GNS's crypto allows you to hide resource records.
+ \item It requires either
+ \begin{itemize}
+ \item the use of a label with sufficient entropy (a shared secret) or
+ \item the use of a secret zone.
+ \end{itemize}
+ \end{itemize}
+ $$
+ \mathrlap{\overbrace{\phantom{\text{ohcoxaiShaingahd}}}^{\text{Secret label}}}
+ \text{ohcoxaiehaingahd}
+ \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.my.zone}}}}_{\text{Namespace}}}
+ {\color{fhggreen}\text{.my.zone}}
+ $$
+\end{frame}
+
+
+\begin{frame}{Encrypt}
+ \centering
+ \includegraphics[width=1\textwidth]{GNS-BlockCreation-1}
+\end{frame}
+
+\begin{frame}{Sign}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockCreation-2}
+\end{frame}
+
+\begin{frame}{Derive}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockCreation-3}
+\end{frame}
+
+\begin{frame}{Combine and publish}
+ \centering
+ \includegraphics[width=1\textwidth]{GNS-BlockCreation-4}
+\end{frame}
+
+\begin{frame}{Query}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockValidation-0}
+\end{frame}
+
+\begin{frame}{Retrieve}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockValidation-1}
+\end{frame}
+
+\begin{frame}{Verify}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockValidation-2}
+\end{frame}
+
+\begin{frame}{Decrypt}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockValidation-3}
+\end{frame}
+
+\begin{frame}{Decrypt}
+ \centering
+ \includegraphics[height=0.9\textheight]{GNS-BlockValidation-4}
+\end{frame}
+
+\begin{frame}{Status}
+ \begin{itemize}
+ \item Specification efforts:
+ \begin{itemize}
+ \item \url{https://datatracker.ietf.org/doc/draft-schanzen-gns/} -- Will become RFC soon (TM).
+ \item \url{https://datatracker.ietf.org/doc/draft-schanzen-r5n/} -- Is being worked on.
+ \end{itemize}
+ \item Reference implementation in C (part of GNUnet), alternative implementation in Go.
+ \item Currently funded project to develop and host a GNS zone registrar service and to mirror some (large) DNS zones funded through NLnet / NGI Zero Entrust.
+ \item Current and future research:
+ \begin{itemize}
+ \item PQ-secure key blinding.
+ \item Sharing identity information via GNS (re:claimID).
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}
+ \begin{center}
+ Questions?\\
+ \vspace{2cm}
+ \url{https://gnunet.org}\\
+ \vspace{1em}
+ {\tiny
+ \texttt{schanzen@gnu.org}\\
+ \texttt{3D11~063C~10F9~8D14~BD24~D147~0B09~98EF~86F5~9B6A}\\
+ }
+ \end{center}
+\end{frame}
+
+\end{document}