diff --git a/docs/bibliography/bibliography.bib b/docs/bibliography/bibliography.bib
index 85b65d6..0572dab 100644
--- a/docs/bibliography/bibliography.bib
+++ b/docs/bibliography/bibliography.bib
@@ -141,10 +141,43 @@
},
@manual{tcpdump_page,
- title={Tcpdump & Libpcap},
+ title={Tcpdump and Libpcap},
url={https://www.tcpdump.org}
},
+@manual{ebpf_funcs_by_ver,
+ title={BPF features by Linux Kernel Version},
+ organization={iovisor},
+ url={https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md}
+},
+
+@book{brendan_gregg_bpf_book,
+ title={BPF performance tools},
+ author={Brendan Gregg},
+ url={https://www.oreilly.com/library/view/bpf-performance-tools/9780136588870/}
+},
+
+@manual{ebpf_inst_set,
+ title={eBPF instruction set},
+ url={https://www.kernel.org/doc/html/latest/bpf/instruction-set.html}
+}
+
+@manual{8664_inst_set_specs,
+ title={Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4},
+ author={Intel},
+ volume={2A},
+ pages={507},
+ urldate={2022-05-13},
+ url={https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html}
+}
+
+@proceedings{ebpf_starovo_slides,
+ title={BPF – in-kernel virtual machine},
+ url={http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf},
+ date={2015-02-20},
+ institution={PLUMgrid}
+}
+
diff --git a/docs/bibliography/texput.log b/docs/bibliography/texput.log
index 31c48c7..f17ab2e 100644
--- a/docs/bibliography/texput.log
+++ b/docs/bibliography/texput.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 23 MAY 2022 07:12
+This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 24 MAY 2022 20:47
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
diff --git a/docs/document.aux b/docs/document.aux
index 5d37b52..67938cc 100644
--- a/docs/document.aux
+++ b/docs/document.aux
@@ -100,19 +100,44 @@
\newlabel{fig:bpf_tcpdump_example}{{2.5}{10}{BPF bytecode tcpdump needs to set a filter to display packets directed to port 80.\relax }{figure.caption.12}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Shortest path in the CFG described in the example of figure \ref {fig:bpf_tcpdump_example} that a packet needs to follow to be accepted by the BPF filter set with \textit {tcpdump}.\relax }}{10}{figure.caption.13}\protected@file@percent }
\newlabel{fig:tcpdump_ex_sol}{{2.6}{10}{Shortest path in the CFG described in the example of figure \ref {fig:bpf_tcpdump_example} that a packet needs to follow to be accepted by the BPF filter set with \textit {tcpdump}.\relax }{figure.caption.13}{}}
+\abx@aux@cite{ebpf_funcs_by_ver}
+\abx@aux@segm{0}{0}{ebpf_funcs_by_ver}
+\abx@aux@cite{ebpf_funcs_by_ver}
+\abx@aux@segm{0}{0}{ebpf_funcs_by_ver}
+\abx@aux@cite{brendan_gregg_bpf_book}
+\abx@aux@segm{0}{0}{brendan_gregg_bpf_book}
+\abx@aux@cite{ebpf_inst_set}
+\abx@aux@segm{0}{0}{ebpf_inst_set}
+\abx@aux@cite{8664_inst_set_specs}
+\abx@aux@segm{0}{0}{8664_inst_set_specs}
+\abx@aux@cite{ebpf_inst_set}
+\abx@aux@segm{0}{0}{ebpf_inst_set}
+\abx@aux@cite{ebpf_starovo_slides}
+\abx@aux@segm{0}{0}{ebpf_starovo_slides}
+\abx@aux@cite{ebpf_inst_set}
+\abx@aux@segm{0}{0}{ebpf_inst_set}
+\abx@aux@cite{ebpf_starovo_slides}
+\abx@aux@segm{0}{0}{ebpf_starovo_slides}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.2}Analysis of modern eBPF}{11}{section.2.2}\protected@file@percent }
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}New eBPF infrastructure}{11}{subsection.2.2.1}\protected@file@percent }
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Methods??}{12}{chapter.3}\protected@file@percent }
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Architecture of eBPF}{11}{subsection.2.2.1}\protected@file@percent }
+\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.2}{\ignorespaces Table showing relevant eBPF updates. Note that only those relevant for our research objectives are shown. This is a selection of the official complete table at \cite {ebpf_funcs_by_ver}.\relax }}{11}{table.caption.14}\protected@file@percent }
+\newlabel{table:ebpf_history}{{2.2}{11}{Table showing relevant eBPF updates. Note that only those relevant for our research objectives are shown. This is a selection of the official complete table at \cite {ebpf_funcs_by_ver}.\relax }{table.caption.14}{}}
+\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.3}{\ignorespaces Table showing eBPF instruction format. It is a fixed-length 64 bit instruction, the number of bits used by each field are indicated.\relax }}{11}{table.caption.15}\protected@file@percent }
+\newlabel{table:ebpf_inst_format}{{2.3}{11}{Table showing eBPF instruction format. It is a fixed-length 64 bit instruction, the number of bits used by each field are indicated.\relax }{table.caption.15}{}}
+\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.4}{\ignorespaces Table showing eBPF registers and their purpose in the BPF VM.\cite {ebpf_inst_set}\cite {ebpf_starovo_slides}.\relax }}{12}{table.caption.16}\protected@file@percent }
+\newlabel{table:ebpf_regs}{{2.4}{12}{Table showing eBPF registers and their purpose in the BPF VM.\cite {ebpf_inst_set}\cite {ebpf_starovo_slides}.\relax }{table.caption.16}{}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}JIT compilation}{12}{subsection.2.2.2}\protected@file@percent }
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Methods??}{13}{chapter.3}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {4}Results}{13}{chapter.4}\protected@file@percent }
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {4}Results}{14}{chapter.4}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusion and future work}{14}{chapter.5}\protected@file@percent }
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusion and future work}{15}{chapter.5}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{Bibliography}{15}{chapter.5}\protected@file@percent }
-\abx@aux@read@bbl@mdfivesum{B18652840B9A2D8E82575EF61C309813}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{Bibliography}{16}{chapter.5}\protected@file@percent }
+\abx@aux@read@bbl@mdfivesum{A0263F600A6B69AA4741D30C7A5AD15D}
\abx@aux@refcontextdefaultsdone
\abx@aux@defaultrefcontext{0}{ransomware_pwc}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{rootkit_ptsecurity}{none/global//global/global}
@@ -134,5 +159,10 @@
\abx@aux@defaultrefcontext{0}{bpf_bsd_origin_bpf_page7}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{bpf_bsd_origin_bpf_page8}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{tcpdump_page}{none/global//global/global}
+\abx@aux@defaultrefcontext{0}{ebpf_funcs_by_ver}{none/global//global/global}
+\abx@aux@defaultrefcontext{0}{brendan_gregg_bpf_book}{none/global//global/global}
+\abx@aux@defaultrefcontext{0}{ebpf_inst_set}{none/global//global/global}
+\abx@aux@defaultrefcontext{0}{8664_inst_set_specs}{none/global//global/global}
+\abx@aux@defaultrefcontext{0}{ebpf_starovo_slides}{none/global//global/global}
\ttl@finishall
-\gdef \@abspage@last{32}
+\gdef \@abspage@last{33}
diff --git a/docs/document.bbl b/docs/document.bbl
index a5661e3..46e7ce5 100644
--- a/docs/document.bbl
+++ b/docs/document.bbl
@@ -23,8 +23,8 @@
\list{institution}{1}{%
{PricewaterhouseCoopers}%
}
- \field{sortinit}{3}
- \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
+ \field{sortinit}{6}
+ \field{sortinithash}{7851c86048328b027313775d8fbd2131}
\field{labeltitlesource}{title}
\field{title}{Cyber Threats 2021: A year in Retrospect}
\verb{urlraw}
@@ -38,8 +38,8 @@
\list{institution}{1}{%
{Positive Technologies}%
}
- \field{sortinit}{4}
- \field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4}
+ \field{sortinit}{7}
+ \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e}
\field{labeltitlesource}{title}
\field{day}{3}
\field{month}{11}
@@ -54,8 +54,8 @@
\endverb
\endentry
\entry{ebpf_linux318}{online}{}
- \field{sortinit}{5}
- \field{sortinithash}{5dd416adbafacc8226114bc0202d5fdd}
+ \field{sortinit}{8}
+ \field{sortinithash}{1b24cab5087933ef0826a7cd3b99e994}
\field{day}{7}
\field{indextitle}{eBPF incorporation in the Linux Kernel 3.18}
\field{month}{12}
@@ -72,8 +72,8 @@
\list{institution}{1}{%
{Pangu Lab}%
}
- \field{sortinit}{6}
- \field{sortinithash}{7851c86048328b027313775d8fbd2131}
+ \field{sortinit}{9}
+ \field{sortinithash}{54047ffb55bdefa0694bbd554c1b11a0}
\field{labeltitlesource}{title}
\field{day}{23}
\field{month}{2}
@@ -91,8 +91,8 @@
\list{institution}{1}{%
{PricewaterhouseCoopers}%
}
- \field{sortinit}{7}
- \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e}
+ \field{sortinit}{1}
+ \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labeltitlesource}{title}
\field{title}{Cyber Threats 2021: A year in Retrospect}
\field{pages}{37}
@@ -105,8 +105,8 @@
\endverb
\endentry
\entry{ebpf_windows}{online}{}
- \field{sortinit}{8}
- \field{sortinithash}{1b24cab5087933ef0826a7cd3b99e994}
+ \field{sortinit}{1}
+ \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labeltitlesource}{title}
\field{day}{7}
\field{month}{12}
@@ -121,8 +121,8 @@
\endverb
\endentry
\entry{ebpf_android}{online}{}
- \field{sortinit}{9}
- \field{sortinithash}{54047ffb55bdefa0694bbd554c1b11a0}
+ \field{sortinit}{1}
+ \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labeltitlesource}{title}
\field{title}{eBPF for Windows}
\verb{urlraw}
@@ -321,8 +321,8 @@
\endverb
\endentry
\entry{index_register}{manual}{}
- \field{sortinit}{1}
- \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
+ \field{sortinit}{2}
+ \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{title}{Index register}
\verb{urlraw}
@@ -350,8 +350,8 @@
\strng{authornamehash}{b74c2671072cf5a1a1400dc035240dfd}
\strng{authorfullhash}{b74c2671072cf5a1a1400dc035240dfd}
\field{extraname}{3}
- \field{sortinit}{1}
- \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
+ \field{sortinit}{2}
+ \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{day}{19}
@@ -369,8 +369,8 @@
\endverb
\endentry
\entry{bpf_organicprogrammer_analysis}{online}{}
- \field{sortinit}{1}
- \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
+ \field{sortinit}{2}
+ \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{day}{28}
\field{month}{3}
@@ -460,7 +460,7 @@
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
- \field{title}{Tcpdump & Libpcap}
+ \field{title}{Tcpdump and Libpcap}
\verb{urlraw}
\verb https://www.tcpdump.org
\endverb
@@ -468,6 +468,109 @@
\verb https://www.tcpdump.org
\endverb
\endentry
+ \entry{ebpf_funcs_by_ver}{manual}{}
+ \list{organization}{1}{%
+ {iovisor}%
+ }
+ \field{sortinit}{2}
+ \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
+ \field{labeltitlesource}{title}
+ \field{title}{BPF features by Linux Kernel Version}
+ \verb{urlraw}
+ \verb https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md
+ \endverb
+ \verb{url}
+ \verb https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md
+ \endverb
+ \endentry
+ \entry{brendan_gregg_bpf_book}{book}{}
+ \name{author}{1}{}{%
+ {{hash=b45aef384111d7e9dd71b74ba427b5f1}{%
+ family={Gregg},
+ familyi={G\bibinitperiod},
+ given={Brendan},
+ giveni={B\bibinitperiod}}}%
+ }
+ \strng{namehash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \strng{fullhash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \strng{bibnamehash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \strng{authorbibnamehash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \strng{authornamehash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \strng{authorfullhash}{b45aef384111d7e9dd71b74ba427b5f1}
+ \field{sortinit}{3}
+ \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
+ \field{labelnamesource}{author}
+ \field{labeltitlesource}{title}
+ \field{title}{BPF performance tools}
+ \verb{urlraw}
+ \verb https://www.oreilly.com/library/view/bpf-performance-tools/9780136588870/
+ \endverb
+ \verb{url}
+ \verb https://www.oreilly.com/library/view/bpf-performance-tools/9780136588870/
+ \endverb
+ \endentry
+ \entry{ebpf_inst_set}{manual}{}
+ \field{sortinit}{3}
+ \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
+ \field{labeltitlesource}{title}
+ \field{title}{eBPF instruction set}
+ \verb{urlraw}
+ \verb https://www.kernel.org/doc/html/latest/bpf/instruction-set.html
+ \endverb
+ \verb{url}
+ \verb https://www.kernel.org/doc/html/latest/bpf/instruction-set.html
+ \endverb
+ \endentry
+ \entry{8664_inst_set_specs}{manual}{}
+ \name{author}{1}{}{%
+ {{hash=ff97a9fdede09eaf6e1c8ec9f6a61dd5}{%
+ family={Intel},
+ familyi={I\bibinitperiod}}}%
+ }
+ \strng{namehash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \strng{fullhash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \strng{bibnamehash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \strng{authorbibnamehash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \strng{authornamehash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \strng{authorfullhash}{ff97a9fdede09eaf6e1c8ec9f6a61dd5}
+ \field{sortinit}{3}
+ \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
+ \field{labelnamesource}{author}
+ \field{labeltitlesource}{title}
+ \field{title}{Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4}
+ \field{urlday}{13}
+ \field{urlmonth}{5}
+ \field{urlyear}{2022}
+ \field{volume}{2A}
+ \field{urldateera}{ce}
+ \field{pages}{507}
+ \range{pages}{1}
+ \verb{urlraw}
+ \verb https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
+ \endverb
+ \verb{url}
+ \verb https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
+ \endverb
+ \endentry
+ \entry{ebpf_starovo_slides}{proceedings}{}
+ \list{institution}{1}{%
+ {PLUMgrid}%
+ }
+ \field{sortinit}{3}
+ \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
+ \field{labeltitlesource}{title}
+ \field{day}{20}
+ \field{month}{2}
+ \field{title}{BPF – in-kernel virtual machine}
+ \field{year}{2015}
+ \field{dateera}{ce}
+ \verb{urlraw}
+ \verb http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf
+ \endverb
+ \verb{url}
+ \verb http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf
+ \endverb
+ \endentry
\enddatalist
\endrefsection
\endinput
diff --git a/docs/document.bcf b/docs/document.bcf
index fda6cc4..122c763 100644
--- a/docs/document.bcf
+++ b/docs/document.bcf
@@ -2348,28 +2348,37 @@
bibliography/bibliography.bib
- ransomware_pwc
- rootkit_ptsecurity
- ebpf_linux318
- bvp47_report
- bpfdoor_pwc
- ebpf_windows
- ebpf_android
- evil_ebpf
- bad_ebpf
- ebpf_friends
- ebpf_io
- bpf_bsd_origin
- ebpf_history_opensource
- bpf_bsd_origin_bpf_page1
- index_register
- bpf_bsd_origin_bpf_page5
- bpf_organicprogrammer_analysis
- bpf_bsd_origin_bpf_page7
- bpf_bsd_origin_bpf_page8
- bpf_bsd_origin_bpf_page8
- bpf_bsd_origin_bpf_page1
- tcpdump_page
+ ransomware_pwc
+ rootkit_ptsecurity
+ ebpf_linux318
+ bvp47_report
+ bpfdoor_pwc
+ ebpf_windows
+ ebpf_android
+ evil_ebpf
+ bad_ebpf
+ ebpf_friends
+ ebpf_io
+ bpf_bsd_origin
+ ebpf_history_opensource
+ bpf_bsd_origin_bpf_page1
+ index_register
+ bpf_bsd_origin_bpf_page5
+ bpf_organicprogrammer_analysis
+ bpf_bsd_origin_bpf_page7
+ bpf_bsd_origin_bpf_page8
+ bpf_bsd_origin_bpf_page8
+ bpf_bsd_origin_bpf_page1
+ tcpdump_page
+ ebpf_funcs_by_ver
+ ebpf_funcs_by_ver
+ brendan_gregg_bpf_book
+ ebpf_inst_set
+ 8664_inst_set_specs
+ ebpf_inst_set
+ ebpf_starovo_slides
+ ebpf_inst_set
+ ebpf_starovo_slides
diff --git a/docs/document.blg b/docs/document.blg
index af5aec6..0cb8286 100644
--- a/docs/document.blg
+++ b/docs/document.blg
@@ -1,35 +1,38 @@
[0] Config.pm:311> INFO - This is Biber 2.16
[0] Config.pm:314> INFO - Logfile is 'document.blg'
-[60] biber:340> INFO - === Mon May 23, 2022, 08:11:22
-[76] Biber.pm:415> INFO - Reading 'document.bcf'
-[146] Biber.pm:952> INFO - Found 20 citekeys in bib section 0
-[161] Biber.pm:4340> INFO - Processing section 0
-[172] Biber.pm:4531> INFO - Looking for bibtex format file 'bibliography/bibliography.bib' for section 0
-[174] bibtex.pm:1689> INFO - LaTeX decoding ...
-[184] bibtex.pm:1494> INFO - Found BibTeX data source 'bibliography/bibliography.bib'
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 9, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 15, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 22, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 28, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 35, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 42, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 50, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 58, warning: 1 characters of junk seen at toplevel
-[243] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 65, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 70, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 77, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 85, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 94, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 103, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 112, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 121, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 127, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 132, warning: 1 characters of junk seen at toplevel
-[244] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_Js0w/f4d088b3f9f145b5c3058da33afd57d4_115050.utf8, line 143, warning: 1 characters of junk seen at toplevel
-[262] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
-[262] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
-[262] Biber.pm:4168> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US'
-[262] Biber.pm:4174> INFO - No sort tailoring available for locale 'en-US'
-[279] bbl.pm:654> INFO - Writing 'document.bbl' with encoding 'UTF-8'
-[284] bbl.pm:757> INFO - Output to document.bbl
-[285] Biber.pm:128> INFO - WARNINGS: 19
+[59] biber:340> INFO - === Tue May 24, 2022, 20:47:37
+[72] Biber.pm:415> INFO - Reading 'document.bcf'
+[141] Biber.pm:952> INFO - Found 25 citekeys in bib section 0
+[156] Biber.pm:4340> INFO - Processing section 0
+[164] Biber.pm:4531> INFO - Looking for bibtex format file 'bibliography/bibliography.bib' for section 0
+[166] bibtex.pm:1689> INFO - LaTeX decoding ...
+[177] bibtex.pm:1494> INFO - Found BibTeX data source 'bibliography/bibliography.bib'
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 9, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 15, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 22, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 28, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 35, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 42, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 50, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 58, warning: 1 characters of junk seen at toplevel
+[263] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 65, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 70, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 77, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 85, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 94, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 103, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 112, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 121, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 127, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 132, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 143, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 148, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 154, warning: 1 characters of junk seen at toplevel
+[264] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_ELaU/f4d088b3f9f145b5c3058da33afd57d4_129078.utf8, line 160, warning: 1 characters of junk seen at toplevel
+[284] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized'
+[284] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable'
+[284] Biber.pm:4168> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US'
+[284] Biber.pm:4174> INFO - No sort tailoring available for locale 'en-US'
+[300] bbl.pm:654> INFO - Writing 'document.bbl' with encoding 'UTF-8'
+[306] bbl.pm:757> INFO - Output to document.bbl
+[307] Biber.pm:128> INFO - WARNINGS: 22
diff --git a/docs/document.log b/docs/document.log
index 98d64b1..5eb719a 100644
--- a/docs/document.log
+++ b/docs/document.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 23 MAY 2022 08:11
+This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 24 MAY 2022 20:52
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@@ -1210,7 +1210,7 @@ Overfull \hbox (0.50073pt too wide) in paragraph at lines 355--356
[3] [4]
Chapter 2.
-
+
File: images//classic_bpf.jpg Graphic file (type jpg)