diff --git a/20220328/Uebung.zip b/20220328/Uebung.zip
new file mode 100644
index 0000000000000000000000000000000000000000..a46637114292c36a77c600be31b59a5012d3afe4
Binary files /dev/null and b/20220328/Uebung.zip differ
diff --git a/20220328/Uebung/AppRelease.h b/20220328/Uebung/AppRelease.h
new file mode 100644
index 0000000000000000000000000000000000000000..8e34ceec8b7295b0a0b0318024561dfe39069a70
--- /dev/null
+++ b/20220328/Uebung/AppRelease.h
@@ -0,0 +1,6 @@
+#if defined (testconfig1)
+	#define FW_RELEASE	0x0123u	/* BCD format, 16 bit */
+
+#elif defined (testconfig2)
+	#define FW_RELEASE	0x4567u	/* BCD format, 16 bit */
+
diff --git a/20220328/Uebung/get_release.sh b/20220328/Uebung/get_release.sh
new file mode 100644
index 0000000000000000000000000000000000000000..3eeec91b37c80adb7930499f205ff65ff7c63e4c
--- /dev/null
+++ b/20220328/Uebung/get_release.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+APP_RELEASE_PATH=AppRelease.h
+APP_CONFIGURATION=testconfig1
+
+# grep: -n:Zeilennummer, -w:vollständiges Wort, -i:ignoriere Gross/Kleinschreibung
+# cut: -d:Trennzeichen, -f1: auszugebende Felder
+
+LINE=$(grep -nwi $APP_RELEASE_PATH -e $APP_CONFIGURATION | cut -d":" -f1)
+LINE=$((LINE + 1))
+
+# sed: -n:quiet, regex: suche nach '0x' und gib den String ab dort zurück
+
+VERSION=$(sed -n ${LINE}p $APP_RELEASE_PATH | sed -n 's/.*\(0x\)/\1/p')
+# Alternative:
+# VERSION=$(sed -n ${LINE}p $APP_RELEASE_PATH | grep -o "0x[0-9a-f].*u)
+
+
+# Ueberspringe die ersten zwei Zeichen aus $VERSION und gebe die folgenden zwei Zeichen zurück.
+
+echo ${VERSION:2:2}.${VERSION:4:2}
+
diff --git a/20220328/Uebung/get_release.txt b/20220328/Uebung/get_release.txt
new file mode 100644
index 0000000000000000000000000000000000000000..35bcbf01a7a4cd6e381ab54aed4ec35624f40e00
--- /dev/null
+++ b/20220328/Uebung/get_release.txt
@@ -0,0 +1,44 @@
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> cat get_release.sh
+#!/bin/bash
+
+APP_RELEASE_PATH=AppRelease.h
+APP_CONFIGURATION=testconfig1
+
+# grep: -n:Zeilennummer, -w:vollständiges Wort, -i:ignoriere Gross/Kleinschreibung
+# cut: -d:Trennzeichen, -f1: auszugebende Felder
+
+LINE=$(grep -nwi $APP_RELEASE_PATH -e $APP_CONFIGURATION | cut -d":" -f1)
+LINE=$((LINE + 1))
+
+# sed: -n:quiet, regex: suche nach '0x' und gib den String ab dort zurück
+
+VERSION=$(sed -n ${LINE}p $APP_RELEASE_PATH | sed -n 's/.*\(0x\)/\1/p')
+# Alternative:
+# VERSION=$(sed -n ${LINE}p $APP_RELEASE_PATH | grep -o "0x[0-9a-f].*u)
+
+
+# Ueberspringe die ersten zwei Zeichen aus $VERSION und gebe die folgenden zwei Zeichen zurück.
+
+echo ${VERSION:2:2}.${VERSION:4:2}
+
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> chmod +x get_release.sh
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> ./get_release.sh
+01.23
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> cat AppRelease.h
+#if defined (testconfig1)
+	#define FW_RELEASE	0x0123u	/* BCD format, 16 bit */
+
+#elif defined (testconfig2)
+	#define FW_RELEASE	0x4567u	/* BCD format, 16 bit */
+
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> echo "        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */"
+        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */
+Sie haben neue Post in /var/mail/peter.
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> echo "        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */" | sed -n 's/.*\(0x\)/\1/p'
+0x0123u /* BCD format, 16 bit */
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> echo "        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */" | sed -n 's/.*0x/0x/p'
+0x0123u /* BCD format, 16 bit */
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> echo "        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */" | sed -n 's/^.*0x/0x/p'
+0x0123u /* BCD format, 16 bit */
+cassini/home/peter/bo/2022ss/bs/20220328/Uebung> echo "        #define FW_RELEASE      0x0123u /* BCD format, 16 bit */" | grep -o "0x[0-9a-f].*u"
+0x0123u
diff --git a/20220328/bs-20220328.txt b/20220328/bs-20220328.txt
index 4556012b1243742ac21f6bff6c52587f86d6e4ef..4eca19b07977c77d38f02aba4b1522ad4cbb5007 100644
--- a/20220328/bs-20220328.txt
+++ b/20220328/bs-20220328.txt
@@ -18,3 +18,6 @@ grep -o '_modules_[0-9]*_data_[selct_]*background_image_desktop[0-9a-fwhqr-]*\.j
 
 
 Bilderstrecken: https://www.sueddeutsche.de/projekte/artikel/politik/krieg-in-der-ukraine-e333697/
+
+
+SUBPAGES=$(curl -Ssl https://www.sueddeutsche.de/projekte/artikel/politik/krieg-in-der-ukraine-e333697/ | grep -o "class=\"link svelte-1mm0cdc\" href=\".*/.*\">" | grep -o "https.*/")
diff --git a/20220328/get-imgs-1.sh b/20220328/get-imgs-1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fa2b11067d91aaa5597913f8f534de6631f0ee97
--- /dev/null
+++ b/20220328/get-imgs-1.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+URL="https://www.sueddeutsche.de/projekte/artikel/politik/krieg-in-der-ukraine-e333697/"
+
+SUBPAGES=$(curl -Ssl "$URL" \
+           | grep -o "class=\"link svelte-1mm0cdc\" href=\".*/.*\">" \
+           | grep -o "https.*/")
+
+for x in $SUBPAGES; do
+  echo $x
+done
diff --git a/20220328/get-imgs-2.sh b/20220328/get-imgs-2.sh
new file mode 100755
index 0000000000000000000000000000000000000000..08023470baf1971de3f869ac3bcf744c779f9bb2
--- /dev/null
+++ b/20220328/get-imgs-2.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+URL="https://www.sueddeutsche.de/projekte/artikel/politik/krieg-in-der-ukraine-e333697/"
+TMPDIR=tmp
+
+SUBPAGES=$(curl -Ssl "$URL" \
+           | grep -o "class=\"link svelte-1mm0cdc\" href=\".*/.*\">" \
+           | grep -o "https.*/")
+
+mkdir "$TMPDIR"
+cd "$TMPDIR"
+for x in $SUBPAGES; do
+  wget "$x"
+done
diff --git a/20220328/vic b/20220328/vic
new file mode 100755
index 0000000000000000000000000000000000000000..063daa1366b11b0914121af554892a2e2c68183f
--- /dev/null
+++ b/20220328/vic
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+debug=false
+
+if [ $# -gt 0 ]; then
+  $debug && echo "parameters = $@"
+  shift $(( $# - 1 ))
+  file_template="$1"
+else
+  file_template=$(ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null | tail -1)
+fi
+
+$debug && echo "file_template = $file_template"
+
+file_extension=$(echo $file_template | sed -e 's/.*\.\(.*$\)/\1/')
+file_base=$(echo $file_template | sed -e 's/\(.*\)\..*$/\1/')
+
+$debug && echo "file_extension = $file_extension"
+$debug && echo "file_base = $file_base"
+
+file_number=$(echo $file_base | sed -e 's/^.*-\([0-9]*$\)/\1/')
+file_stem=$(echo $file_base | sed -e 's/^\(.*\)-[0-9]*$/\1/')
+
+$debug && echo "file_number = $file_number"
+$debug && echo "file_number = $file_stem"
+
+while [ -e "$file_stem-$file_number.$file_extension" ]; do
+  file_number=$((file_number + 1))
+done
+new_file_name="$file_stem-$file_number.$file_extension"
+
+$debug && echo "new_file_name = $new_file_name" && read junk
+
+cp -pi "$file_template" "$new_file_name"
+#$EDITOR "$new_file_name"
+/usr/bin/vim -X -c 'set sw=2' -c 'set expandtab' -c 'set ai' -c 'set nowrap' \
+  "$new_file_name"
+clear
+cat "$new_file_name"