Diff of the two buildlogs:

--
--- b1/build.log	2025-03-09 01:44:09.022615250 +0000
+++ b2/build.log	2025-03-09 01:48:50.285975780 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Fri Apr 10 19:45:06 -12 2026
-I: pbuilder-time-stamp: 1775893506
+I: Current time: Sun Mar  9 15:44:11 +14 2025
+I: pbuilder-time-stamp: 1741484651
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz]
 I: copying local configuration
@@ -37,51 +37,83 @@
 dpkg-source: info: applying 0012-Relax-version-constraint-on-sqlite3-gem.patch
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/2434893/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/D01_modify_environment starting
+debug: Running on infom01-amd64.
+I: Changing host+domainname to test build reproducibility
+I: Adding a custom variable just for the fun of it...
+I: Changing /bin/sh to bash
+'/bin/sh' -> '/bin/bash'
+lrwxrwxrwx 1 root root 9 Mar  9 01:44 /bin/sh -> /bin/bash
+I: Setting pbuilder2's login shell to /bin/bash
+I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build/reproducible-path'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='amd64'
-  DEBIAN_FRONTEND='noninteractive'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
+  BASH_VERSION='5.2.37(1)-release'
+  BUILDDIR=/build/reproducible-path
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=amd64
+  DEBIAN_FRONTEND=noninteractive
   DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 '
-  DISTRIBUTION='trixie'
-  HOME='/root'
-  HOST_ARCH='amd64'
+  DIRSTACK=()
+  DISTRIBUTION=trixie
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=x86_64
+  HOST_ARCH=amd64
   IFS=' 	
   '
-  INVOCATION_ID='1e5e25d1eb89444bb94848653b7e282a'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  MAIL='/var/mail/root'
-  OPTIND='1'
-  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
-  PBCURRENTCOMMANDLINEOPERATION='build'
-  PBUILDER_OPERATION='build'
-  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
-  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
-  PBUILDER_SYSCONFDIR='/etc'
-  PPID='2434893'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=113768b4620342bdaf6a476065fd427f
+  LANG=C
+  LANGUAGE=et_EE:et
+  LC_ALL=C
+  MACHTYPE=x86_64-pc-linux-gnu
+  MAIL=/var/mail/root
+  OPTERR=1
+  OPTIND=1
+  OSTYPE=linux-gnu
+  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
+  PBCURRENTCOMMANDLINEOPERATION=build
+  PBUILDER_OPERATION=build
+  PBUILDER_PKGDATADIR=/usr/share/pbuilder
+  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
+  PBUILDER_SYSCONFDIR=/etc
+  PIPESTATUS=([0]="0")
+  POSIXLY_CORRECT=y
+  PPID=1193872
   PS4='+ '
-  PWD='/'
-  SHELL='/bin/bash'
-  SHLVL='2'
-  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.8yLc5uWv/pbuilderrc_fkba --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.8yLc5uWv/b1 --logfile b1/build.log schleuder_5.0.0-7.dsc'
-  SUDO_GID='109'
-  SUDO_UID='104'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
+  PWD=/
+  SHELL=/bin/bash
+  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
+  SHLVL=3
+  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.8yLc5uWv/pbuilderrc_ALL5 --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.8yLc5uWv/b2 --logfile b2/build.log schleuder_5.0.0-7.dsc'
+  SUDO_GID=109
+  SUDO_UID=104
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
 I: uname -a
-  Linux infom02-amd64 6.12.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.12-1~bpo12+1 (2025-02-23) x86_64 GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-31-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
 I: ls -l /bin
-  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/2434893/tmp/hooks/D02_print_environment finished
+  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -349,7 +381,7 @@
 Get: 190 http://deb.debian.org/debian trixie/main amd64 ruby-thor all 1.3.2-2 [49.3 kB]
 Get: 191 http://deb.debian.org/debian trixie/main amd64 ruby-typhoeus all 1.4.0-5 [36.4 kB]
 Get: 192 http://deb.debian.org/debian trixie/main amd64 thin amd64 1.8.2-4 [61.1 kB]
-Fetched 54.7 MB in 1s (69.5 MB/s)
+Fetched 54.7 MB in 1s (69.7 MB/s)
 Preconfiguring packages ...
 Selecting previously unselected package libpython3.13-minimal:amd64.
 (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19800 files and directories currently installed.)
@@ -980,8 +1012,8 @@
 Setting up tzdata (2025a-2) ...
 
 Current default time zone: 'Etc/UTC'
-Local time is now:      Sat Apr 11 07:53:14 UTC 2026.
-Universal Time is now:  Sat Apr 11 07:53:14 UTC 2026.
+Local time is now:      Sun Mar  9 01:45:05 UTC 2025.
+Universal Time is now:  Sun Mar  9 01:45:05 UTC 2025.
 Run 'dpkg-reconfigure tzdata' if you wish to change it.
 
 Setting up ruby-minitest (5.25.4-2) ...
@@ -1154,7 +1186,11 @@
 Building tag database...
  -> Finished parsing the build-deps
 I: Building the package
-I: Running cd /build/reproducible-path/schleuder-5.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../schleuder_5.0.0-7_source.changes
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/A99_set_merged_usr starting
+Not re-configuring usrmerge for trixie
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/reproducible-path/schleuder-5.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../schleuder_5.0.0-7_source.changes
 dpkg-buildpackage: info: source package schleuder
 dpkg-buildpackage: info: source version 5.0.0-7
 dpkg-buildpackage: info: source distribution unstable
@@ -1189,7 +1225,7 @@
 	dh_ruby --build
    dh_auto_test -O--buildsystem=ruby
 	dh_ruby --test
-	rm -fr -- /tmp/dh-xdg-rundir-2rh4clgL
+	rm -fr -- /tmp/dh-xdg-rundir-HkAylaL7
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--buildsystem=ruby
    dh_prep -O--buildsystem=ruby
@@ -1336,736 +1372,736 @@
 
 RUBYLIB=/build/reproducible-path/schleuder-5.0.0/debian/schleuder/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/schleuder-5.0.0/debian/schleuder/usr/share/rubygems-integration/all:/build/reproducible-path/schleuder-5.0.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake
 /usr/bin/ruby3.3 -S rake -f debian/Rakefile db:create
-Created database '/tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/test.sqlite3'
+Created database '/tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/test.sqlite3'
 /usr/bin/ruby3.3 -S rake -f debian/Rakefile db:schema:load
 /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --format documentation
 
-Randomized with seed 19245
-
-someone sends an email to a listname-dash-address
-  forwards the message to the admins if extension is -bounce and it's a real bounce mail
-  sends the list's key as reply to -sendkey
-  forwards the message to the admins if extension is -owner
-  forwards the message to the admins if extension is -bounce
-
-Schleuder::ListBuilder
-  creates a listdir for the list
-  creates a list-key with all required UIDs
-  subscribes the adminaddress and imports the adminkey
-  returns an error-message if given an invalid email-address
-  creates a new, valid list
-  subscribes the adminaddress and ignores the adminfingerprint if an adminkey was given
-  returns an error-message if given an invalid email-address with a space
-  subscribes the adminaddress and respects the given adminfingerprint
+Randomized with seed 3105
 
 version
   returns the current schleuder version if authorized
   does not return the current schleuder version if not authorized
 
-Schleuder::List
-  is invalid when email contains a space
-  is invalid if bounces_drop_all is blank
-  is expected to respond to #munge_from
-  is invalid if receive_encrypted_only is blank
-  is invalid if forward_all_incoming_to_admins is nil
-  is expected to respond to #receive_authenticated_only
-  is invalid when fingerprint is nil
-  is invalid if keywords_admin_notify contains special characters
-  is invalid if deliver_selfsent is blank
-  is invalid if send_encrypted_only is nil
-  is invalid if openpgp_header_preference is foobar
-  is expected to respond to #internal_footer
-  is invalid if include_list_headers is blank
-  is invalid if internal_footer includes a non-printable character
-  is valid if headers_to_meta does not contain special characters
-  is invalid if keep_msgid is blank
-  is expected to respond to #subject_prefix_in
-  is invalid when email is blank
-  is invalid if language is jp
-  is invalid if receive_admin_only is blank
-  is invalid if headers_to_meta contains special characters
-  is expected to respond to #send_encrypted_only
-  is invalid if receive_authenticated_only is blank
-  is invalid if include_openpgp_header is nil
-  is expected to respond to #subscriptions
-  exports the key with the given fingerprint
-  is invalid if keep_msgid is nil
-  is invalid if receive_signed_only is nil
-  is invalid if include_list_headers is nil
-  is invalid if include_list_headers is nil
-  is expected to respond to #keywords_admin_only
-  is invalid if log_level is foobar
-  is invalid when email does not contain an @
-  has a valid factory
-  is invalid if include_openpgp_header is blank
-  is invalid if bounces_drop_all is nil
-  is expected to respond to #receive_admin_only
-  is valid if keywords_admin_notify does not contain special characters
-  is invalid if set_reply_to_to_sender is blank
-  is invalid if receive_authenticated_only is nil
-  is invalid if forward_all_incoming_to_admins is blank
-  is invalid if munge_from is nil
-  is expected to respond to #public_footer
-  is expected to respond to #forward_all_incoming_to_admins
-  is valid if subject_prefix is nil
-  is expected to respond to #deliver_selfsent
-  is expected to respond to #openpgp_header_preference
-  is invalid if logfiles_to_keep is 0
-  is expected to respond to #logfiles_to_keep
-  is expected to respond to #bounces_drop_all
-  is expected to respond to #include_list_headers
-  is expected to respond to #set_reply_to_to_sender
-  is invalid if bounces_drop_on_headers contains special characters
-  is expected to respond to #keywords_admin_notify
-  is invalid if receive_from_subscribed_emailaddresses_only is nil
-  is expected to respond to #bounces_drop_on_headers
-  is expected to respond to #log_level
-  is expected to respond to #headers_to_meta
-  is valid if keywords_admin_only does not contain special characters
-  is valid if subject_prefix_in is nil
-  is invalid if deliver_selfsent is nil
-  is invalid if receive_admin_only is nil
-  is expected to respond to #key_auto_import_from_email
-  is invalid if bounces_notify_admins is blank
-  is invalid if receive_signed_only is blank
-  is expected to respond to #bounces_notify_admins
-  is invalid if receive_from_subscribed_emailaddresses_only is blank
-  is invalid if max_message_size_kb is 0
-  is expected to respond to #keep_msgid
-  is invalid when email is nil
-  is expected to respond to #fingerprint
-  is expected to respond to #subject_prefix
-  is invalid if subject_prefix contains a linebreak
-  is expected to respond to #language
-  is expected to respond to #receive_signed_only
-  is valid if subject_prefix_out is nil
-  is invalid if receive_encrypted_only is nil
-  is invalid if public_footer includes a non-printable character
-  is invalid when fingerprint contains invalid characters
-  is invalid if subject_prefix_out contains a linebreak
-  is invalid if subject_prefix_in contains a linebreak
-  is expected to respond to #include_openpgp_header
-  is invalid if munge_from is blank
-  is invalid if bounces_notify_admins is nil
-  is invalid if include_list_headers is blank
-  is invalid if set_reply_to_to_sender is nil
-  is expected to respond to #max_message_size_kb
-  is expected to respond to #receive_from_subscribed_emailaddresses_only
-  is invalid if keywords_admin_only contains special characters
-  is expected to respond to #subject_prefix_out
-  is expected to respond to #receive_encrypted_only
-  is invalid when fingerprint is blank
-  is expected to respond to #email
-  is invalid if send_encrypted_only is blank
-  .configurable_attributes
-    returns an array that contains the configurable attributes
-    does not contain the attributes email and fingerprint
-  #secret_key
-    returns the secret key with the fingerprint of the list
-  #refresh_keys
-    updates keys from the keyserver
-    does not import non-self-signatures
-    reports errors from refreshing keys
-  #fingerprint
-    removes whitespaces and 0x from the fingerprint
-    transforms the fingerprint to upper case
-  #bounce_address
-    adds the bounce keyword to the email address
-  send_list_key_to_subscriptions
-    sends its key to all subscriptions
-  #export_key
-    exports the key with the fingerprint of the list if no argument is given
-  #request_address
-    adds the request keyword to the email address
-  #fetch_keys
-    does not import non-self-signatures
-    fetches one key by URL
-    fetches one key by fingerprint
-    fetches one key by email address
-  #munge_from
-    is disabled by default
-    does not munge from address when disabled
-    sets from to munged version when enabled
-  #import_key
-    imports a given key
-  #subscribe
-    subscribes and does not set the fingerprint from key material containing multiple keys
-    subscribes and ignores a given fingerprint if key material is given, too
-    subscribes and does not set the fingerprint from key material containing no keys
-    subscribes and sets the fingerprint from key material that contains exactly one key
-    subscribes and ignores nil-values for admin and delivery_enabled
-  #keys
-    returns an array with the keys matching the given email address
-    it returns an array with the keys of the list
-    returns an array with the keys matching the given bracketed email address
-    returns an array of keys matching the given fingerprint
-  #key_minimal_base64_encoded
-    does not return the key with the fingerprint in an Autocrypt-compatible format if the argument given does not correspond to a key
-    returns the key with the fingerprint of the list if no argument is given in an Autocrypt-compatible format
-  #check_keys
-    adds a message if a key is disabled
-    adds a message if a key is revoked
-    adds a message if a key expires in two weeks or less
-    adds a message if a key is invalid
-  #sendkey_address
-    adds the sendkey keyword to the email address
-  #key
-    returns the key with the fingerprint of the list
-  #admins
-    returns subscriptions of admin users
-  #owner_address
-    adds the owner keyword to the email address
-  #gpg
-    returns an instance of GPGME::Ctx
-    sets the GNUPGHOME environment variable to the listdir
-  #to_s
-    returns the email
-  .by_recipient
-    returns the list for a given address
-  #logfile
-    returns the logfile path
-  #send_to_subscriptions
-    sends the message to all subscribers including the sender, if deliver_selfsent is false but the mail is not correctly signed
-    sends the message to all subscribers, in the clear if one's key is unusable, if send_encrypted_only is false
-    sends the message only to subscribers with usable keys if send_encrypted_only is true, and a notification to the other subscribers
-    sends the message to all subscribers including the sender, if deliver_selfsent is true and the mail is correctly signed
-    sends the message only to subscribers with available keys if send_encrypted_only is true, and a notification to the other subscribers
-    sends the message to all subscribers but not the sender, if deliver_selfsent is false and the mail is correctly signed
-    sends the message to all subscribers
-    sends the message to subscribers if deliver_selfsent is set to false
-  #delete_key
-    deletes the key with the given fingerprint
-    returns false if no key with the fingerprint was found
-  #logger
-    calls the ListLogger
-  #set_reply_to_to_sender
-    prefers reply_to of the sender over from when existing
-    is disabled by default
-    sets reply-to to senders from-address when enabled
-    does not set reply_to mail address when disabled
+keys via api
+  a key with broken utf8 in uid
+    does add key
+    already imported
+      does get key
+      does delete key
+      does list this key
+  check
+    does check keys with authorization
+    doesn't check keys without authentication
+  list
+    does list keys with authentication
+    doesn't list keys without authentication
+  import
+    does list keys with authentication
+    returns json with key details about imported keys
+    doesn't import keys without authentication
+    returns json with empty array in case of useless input
+  export
+    doesn't export keys without authentication
+    does list keys with authentication
+  delete
+    doesn't delete keys without authentication
+    does delete keys with authentication
 
-GPGME::Key
-  #summary
-    displays the expected attributes for an expired key
-    displays the expected basic attributes
-    displays the expected attributes for a key that's not capable of encryption
-    displays the expected attributes for an expiring key
-    displays the expected attributes for a revoked key
-  .valid_fingerprint?
-    invalid fingerprints
-      rejects Z9C71FB38AEE22E091C78259D0635044 as an invalid fingerprint
-      rejects 59C71FB38AEE22E091C78259D06350440F759BD as an invalid fingerprint
-      rejects 0x59C71FB38AEE22E091C78259D06350440F759B as an invalid fingerprint
-      rejects Z9C71FB38AEE22E091C78259D0635044 as an invalid fingerprint
-      rejects Z9C71FB38AEE22E091C78259D06350440F759BD3 as an invalid fingerprint
-      rejects 59C71FB38AEE22E091C78259D06350440F759BD3A as an invalid fingerprint
-    valid fingerprints
-      accepts 59C71FB38AEE22E091C78259D06350440F759BD3 as a valid fingerprint
-      accepts 0x59C71FB38AEE22E091C78259D0635044 as a valid fingerprint
-      accepts 0x59C71FB38AEE22E091C78259D06350440F759BD3 as a valid fingerprint
-      accepts 59C71FB38AEE22E091C78259D0635044 as a valid fingerprint
-  #minimal
-    returns a minimal key
+protected subject
+  is not leaked
+  is included in mime-headers
+  works with mutt protected headers
+  recognizes keywords in mails with protected headers and empty subject
+  don't block request-messages
+  is included as mime-part in body
 
-cli
-  #check_keys
-    warns about file system permissions if it was run as root
-  #commands
-    exits with a status code of 1 in case the command is not implemented
-  #refresh_keys
-    warns about file system permissions if it was run as root
-    updates keys from the keyserver
-    reports errors from refreshing keys
-    updates keys from the keyserver for only a specific list
+Schleuder::Runner
+  #run
+    delivers a signed error message if a subscription's key is expired on a encrypted-only list
+    does not throw an error on emails with large first mime-part
+    delivers a signed error message if a subscription's key is not available on a encrypted-only list
+    does not throw an error on emails that contain other gpg keywords
+    does not throw an error on encrypted but unsigned emails that contain a forwarded encrypted email
+    does not throw an error on emails with broken utf-8
+    injects pseudoheaders appropriately into a signed multipart/alternative-message (thunderbird+enigmail-1.9)
+    injects pseudoheaders appropriately into an unsigned thunderbird-multipart/alternative-message
+    does not throw an error on emails with an attached pgp key as application/octet-stream
+    with a plain text message
+      does not deliver content if send_encrypted_only is set to true
+      contains the list headers if include_list_headers is set to true
+      contains the specified pseudoheaders in the correct order
+      includes the internal_footer
+      does not include the public_footer
+      has the correct headerlines
+      does not contain the Autocrypt header if include_autocrypt_header is set to false
+      doesn't have unwanted headerlines from the original message
+      does keep the Message-Id as configured
+      contains the Autocrypt header if include_autocrypt_header is set to true
+      contains the open pgp header if include_openpgp_header is set to true
+      doesn't leak the Message-Id as configured
+      delivers the incoming message
+    with bounces_drop_all set to false
+      bounces and does not notify admins if bounces_notify_admins is set to false
+      bounces and notifies admins about bounces when bounces_notify_admins is set to true
+    Quoted-Printable encoding
+      is handled properly in encrypted emails
+      is handled properly in cleartext emails
+      is handled properly in encrypted+signed emails
+    with bounces_drop_all set to true
+      drops all bounces when bounces_notify_admins is set to false
+      notifies admins about bounces when bounces_notify_admins is set to true
+    mails not encrypted to the list key
+      handles a mail which was encrypted to an absent key and returns DecryptionFailed error
+      handles a mail containing PGP-garbage and returns DecryptionFailed error
+      handles a mail which was encrypted to a passphrase and returns DecryptionFailed error
+  after keyword parsing
+    falls back to default charset per RFC if none is set
+    falling back works also with non-ascii content
 
-GPGME::Ctx
-  #keyimport
-  #find_keys without argument
-  #find_keys with correctly marked narrower sub-string
-  #find_keys with bracketed email-address
-  #find_keys with bracketed wrong email-address
-  #find_keys with un-prefixed fingerprint
-  #normalize_key_identifier with bracketed email-address
-  #find_keys with prefixed fingerprint
-  #find_keys with correctly marked sub-string
-  #normalize_key_identifier with URL
-  #keyimport with unusable data
-  #normalize_key_identifier with un-bracketed email-address
-  #find_keys with un-marked sub-string
-  #normalize_key_identifier with some string
-  #gpgcli returns correct data types
-  #find_keys with un-bracketed email-address
-  #normalize_key_identifier with un-prefixed fingerprint
-  #normalize_key_identifier with prefixed fingerprint
-  #find_keys with un-bracketed wrong email-address
+Schleuder::ListBuilder
+  creates a list-key with all required UIDs
+  creates a new, valid list
+  creates a listdir for the list
+  subscribes the adminaddress and imports the adminkey
+  subscribes the adminaddress and ignores the adminfingerprint if an adminkey was given
+  returns an error-message if given an invalid email-address
+  returns an error-message if given an invalid email-address with a space
+  subscribes the adminaddress and respects the given adminfingerprint
 
 user sends emails with different charsets
-  works with japanese_attachment_long_name
-  works with simple_utf8
-  works with japanese
-  works with simple_latin1
-  works with thunderbird-multi-alt-html
-  works with simple_jis
   works with simple_jpiso2022
-  works with signed_utf8
+  works with simple_latin1
   works with japanese_shift_jis
-  works with ks_c_5601-1987
+  works with signed_utf8
+  works with japanese_attachment_long_name
   works with japanese_iso_2022
   works with japanese_attachment
+  works with simple_jis
+  works with japanese
+  works with simple_utf8
+  works with ks_c_5601-1987
+  works with thunderbird-multi-alt-html
 
-Schleuder::Conf
-  reads ERB code in config files
+Schleuder::KeyFetcher
+  #fetch
+    reports the returned body content when receiving an unexpected HTTP status from the server
+    fetches one key by email from SKS if vks_keyserver is blank
+    reports an error from trying to import non-key-material
+    fetches one key from a good URL
+    reports an error from trying to fetch an URL that doesn't exist
+    fetches one key by fingerprint from SKS if vks_keyserver is blank
+    reports an error if both, vks_keyserver and sks_keyserver, are blank
+    fetches one key by fingerprint from VKS if vks_keyserver is set
+    fetches one key by email from VKS if vks_keyserver is set
+
+Schleuder::Filters::Runner
+  is expected to respond to #run
+  loading filters
+    loads custom filters from filters_dir even with non-2-digit priority
+    loads custom filters from filters_dir and sorts them in, ignores filter not following convention
+    loads custom filters from filters_dir and sorts them in with missing dir
+    loads filters from built-in filters_dir sorts them
+  #run
+    runs the filters
+    stops on a StandardError and returns error even on headers match
+    stops on a StandardError and returns error
+    stops on a StandardError and returns error even with bounces_drop_all
+
+Schleuder::KeywordHandlers::Base
+  provides methods to register keywords
+  stores mail, list and arguments as instance variables
+
+Schleuder::Subscription
+  is expected to respond to #fingerprint
+  is invalid if delivery_enabled is nil
+  is invalid when fingerprint contains invalid characters
+  is invalid if the given email is already subscribed for the list
+  downcases all letters of an email address
+  is invalid if admin is nil
+  removes whitespaces and 0x from the fingerprint
+  is valid when fingerprint is empty
+  formats email address when email begins with a space
+  has a valid factory
+  is expected to respond to #list_id
+  is expected to respond to #delivery_enabled
+  is invalid when email is blank
+  is valid when fingerprint is nil
+  is invalid when list_id is blank
+  is invalid when email does not contain an @
+  is invalid if admin is blank
+  is expected to respond to #email
+  is expected to respond to #admin
+  is invalid when email is nil
+  is invalid if delivery_enabled is blank
+  #fingerprint
+    transforms the fingerprint to upper case
 
 Schleuder::Filters
   .strip_html_from_alternative_if_keywords_present
+    strips HTML-part from multipart/alternative-message that contains keywords
+    does not choke on nor change a message without Content-Type-header
     does NOT strip HTML-part from multipart/alternative-message that does NOT contain keywords
     strips related-part from encapsulated multipart/alternative-part that contains keywords
+  .strip_html_from_alternative
+    strips HTML-part from multipart/alternative-message that contains ascii-armored PGP-data
+    does NOT strip HTML-part from multipart/alternative-message that does NOT contain ascii-armored PGP-data
     does not choke on nor change a message without Content-Type-header
-    strips HTML-part from multipart/alternative-message that contains keywords
-  .fix_exchange_messages
-    fixes pgp/mime-messages that were mangled by Exchange
-    works with a text/plain message
   .key_auto_import_from_autocrypt_header
     imports key and reports no change
-    only imports the one key that matches the sender address if keydata contains more than one key
+    imports key and reports the change
     imports key and reports new key
     does not import key if sender address does not match key UID, regardless of Autocrypt addr attribute
-    imports key and reports the change
+    only imports the one key that matches the sender address if keydata contains more than one key
   .receive_from_subscribed_emailaddresses_only
-    does not reject a message with a subscribed address as From-header if list.receive_from_subscribed_emailaddresses_only is set
     rejects a message with a non-subscribed address as From-header if list.receive_from_subscribed_emailaddresses_only is set
+    does not reject a message with a subscribed address as From-header if list.receive_from_subscribed_emailaddresses_only is set
     does not reject a message with a subscribed address as From-header with different letter case if list.receive_from_subscribed_emailaddresses_only is set
     does not reject a message with a non-subscribed address as From-header if list.receive_from_subscribed_emailaddresses_only is not set
   .key_auto_import_from_attachments
+    imports key and reports the change
+    only imports the one key that matches the sender address if keydata contains more than one key
     does not import key if attachment has a different content-type than "application/pgp-keys"
     does not import key if sender address does not match key UID
     imports key and reports no change
-    imports key and reports the change
-    only imports the one key that matches the sender address if keydata contains more than one key
     imports key and reports new key
-  .strip_html_from_alternative
-    does NOT strip HTML-part from multipart/alternative-message that does NOT contain ascii-armored PGP-data
-    strips HTML-part from multipart/alternative-message that contains ascii-armored PGP-data
-    does not choke on nor change a message without Content-Type-header
+  .fix_exchange_messages
+    fixes pgp/mime-messages that were mangled by Exchange
+    works with a text/plain message
+
+GPGME::Ctx
+  #normalize_key_identifier with URL
+  #find_keys with correctly marked narrower sub-string
+  #keyimport with unusable data
+  #find_keys with correctly marked sub-string
+  #gpgcli returns correct data types
+  #find_keys with un-prefixed fingerprint
+  #find_keys with prefixed fingerprint
+  #find_keys with un-bracketed email-address
+  #keyimport
+  #normalize_key_identifier with un-prefixed fingerprint
+  #find_keys with un-bracketed wrong email-address
+  #find_keys with bracketed wrong email-address
+  #find_keys with bracketed email-address
+  #find_keys without argument
+  #normalize_key_identifier with bracketed email-address
+  #normalize_key_identifier with some string
+  #find_keys with un-marked sub-string
+  #normalize_key_identifier with un-bracketed email-address
+  #normalize_key_identifier with prefixed fingerprint
+
+someone sends an email to a listname-dash-address
+  forwards the message to the admins if extension is -owner
+  forwards the message to the admins if extension is -bounce
+  sends the list's key as reply to -sendkey
+  forwards the message to the admins if extension is -bounce and it's a real bounce mail
+
+user sends a plain text message
+  from thunderbird being plain
+  from thunderbird being signed-inline
+  from thunderbird being signed-mime
+
+status
+  returns status code 200
+
+Schleuder::KeywordHandlers::KeyManagement
+  registers keywords
+  .add_key
+    imports a key from attached explicitly base64-encoded binary material
+    ignores body if an ascii-armored attachment is present
+    imports a key from attached quoted-printable binary material
+    imports a key from attached acsii-armored material
+    imports from attached quoted-printable binary key-material (as produced by Mutt 2.0.5)
+    imports from attached quoted-printable key-material (as produced by Thunderbird 115)
+    imports from attached quoted-printable ascii-armored key-material
+    updates a key
+    ignores arguments
+    imports a key from attached binary material (without specified encoding)
+    imports a key from inline ascii-armored material
+    imports from an inline mix of ascii-armored key and non-key material
+    rejects garbage
+  .delete_key
+    returns a string as error message if input message has no content
+    deletes multiple keys that each distinctly match one argument
+    sends error message if no argument is given
+    deletes a key that distinctly matches the argument
+    deletes no key if the argument does not match
+
+lists via api
+  correctly finds a list by email-address that starts with a number
+  shows a list
+  creates a list
 
 KeywordHandlersRunner
-  rejects X-LIST-NAME with mismatching argument
+  rejects unknown keywords
   returns an error message if keyword is configured as admin-only
-  requires X-LIST-NAME
   loads additional keyword handlers
+  requires X-LIST-NAME
+  notifies admins
   stores a keyword that was registered
-  rejects unknown keywords
+  rejects X-LIST-NAME with mismatching argument
   does not require mandatory keywords if no keywords are present
-  notifies admins
 
-Schleuder::Runner
-  after keyword parsing
-    falls back to default charset per RFC if none is set
-    falling back works also with non-ascii content
-  #run
-    delivers a signed error message if a subscription's key is expired on a encrypted-only list
-    does not throw an error on emails with an attached pgp key as application/octet-stream
-    injects pseudoheaders appropriately into an unsigned thunderbird-multipart/alternative-message
-    does not throw an error on emails that contain other gpg keywords
-    does not throw an error on emails with broken utf-8
-    does not throw an error on encrypted but unsigned emails that contain a forwarded encrypted email
-    does not throw an error on emails with large first mime-part
-    delivers a signed error message if a subscription's key is not available on a encrypted-only list
-    injects pseudoheaders appropriately into a signed multipart/alternative-message (thunderbird+enigmail-1.9)
-    Quoted-Printable encoding
-      is handled properly in encrypted+signed emails
-      is handled properly in cleartext emails
-      is handled properly in encrypted emails
-    with a plain text message
-      contains the Autocrypt header if include_autocrypt_header is set to true
-      does not include the public_footer
-      contains the list headers if include_list_headers is set to true
-      does not contain the Autocrypt header if include_autocrypt_header is set to false
-      doesn't leak the Message-Id as configured
-      contains the specified pseudoheaders in the correct order
-      has the correct headerlines
-      contains the open pgp header if include_openpgp_header is set to true
-      doesn't have unwanted headerlines from the original message
-      includes the internal_footer
-      does not deliver content if send_encrypted_only is set to true
-      does keep the Message-Id as configured
-      delivers the incoming message
-    mails not encrypted to the list key
-      handles a mail which was encrypted to an absent key and returns DecryptionFailed error
-      handles a mail which was encrypted to a passphrase and returns DecryptionFailed error
-      handles a mail containing PGP-garbage and returns DecryptionFailed error
-    with bounces_drop_all set to false
-      bounces and does not notify admins if bounces_notify_admins is set to false
-      bounces and notifies admins about bounces when bounces_notify_admins is set to true
-    with bounces_drop_all set to true
-      notifies admins about bounces when bounces_notify_admins is set to true
-      drops all bounces when bounces_notify_admins is set to false
+user sends an encrypted message
+  from thunderbird being encrypted-inline
+  from thunderbird being encrypted+signed-inline
+  from thunderbird being encrypted-mime
+  from thunderbird being encrypted+signed-mime
 
-Schleuder::Subscription
-  is expected to respond to #delivery_enabled
-  formats email address when email begins with a space
-  is invalid when email does not contain an @
+Schleuder::List
+  is invalid when fingerprint is nil
+  is invalid if keywords_admin_notify contains special characters
+  is expected to respond to #max_message_size_kb
+  is invalid if receive_authenticated_only is nil
+  is invalid if log_level is foobar
+  is invalid if send_encrypted_only is blank
+  is expected to respond to #openpgp_header_preference
+  is invalid if receive_encrypted_only is blank
+  is expected to respond to #subject_prefix_in
+  is expected to respond to #language
+  is invalid when fingerprint is blank
+  is valid if keywords_admin_notify does not contain special characters
+  is expected to respond to #keywords_admin_only
+  is valid if subject_prefix is nil
+  is invalid if munge_from is blank
+  is invalid if receive_encrypted_only is nil
+  is invalid if munge_from is nil
+  is expected to respond to #public_footer
+  is invalid if set_reply_to_to_sender is nil
+  is expected to respond to #receive_signed_only
+  is valid if subject_prefix_out is nil
+  is invalid if logfiles_to_keep is 0
+  is expected to respond to #receive_authenticated_only
+  is invalid when email is blank
+  is expected to respond to #forward_all_incoming_to_admins
+  is invalid if forward_all_incoming_to_admins is nil
+  is expected to respond to #log_level
+  is invalid if include_list_headers is nil
+  is invalid if subject_prefix_in contains a linebreak
+  is invalid if keep_msgid is nil
+  is expected to respond to #keywords_admin_notify
+  is invalid if include_openpgp_header is nil
+  has a valid factory
+  is invalid if bounces_drop_all is nil
+  is invalid if include_list_headers is nil
+  is invalid if bounces_drop_all is blank
   is expected to respond to #email
-  is invalid if delivery_enabled is blank
-  is invalid if admin is blank
-  is invalid when fingerprint contains invalid characters
-  is invalid if delivery_enabled is nil
-  is valid when fingerprint is empty
   is expected to respond to #fingerprint
-  is valid when fingerprint is nil
-  downcases all letters of an email address
+  is invalid if openpgp_header_preference is foobar
+  is expected to respond to #set_reply_to_to_sender
+  is expected to respond to #keep_msgid
+  is invalid if max_message_size_kb is 0
+  is invalid if public_footer includes a non-printable character
+  is invalid if send_encrypted_only is nil
+  is expected to respond to #subject_prefix
+  is invalid if receive_from_subscribed_emailaddresses_only is blank
+  is invalid if deliver_selfsent is blank
+  is invalid if keywords_admin_only contains special characters
+  is expected to respond to #bounces_drop_all
+  is expected to respond to #receive_from_subscribed_emailaddresses_only
+  is invalid if include_list_headers is blank
+  is invalid if language is jp
+  is valid if subject_prefix_in is nil
+  is expected to respond to #logfiles_to_keep
+  is invalid if keep_msgid is blank
+  is invalid if deliver_selfsent is nil
+  is expected to respond to #include_list_headers
   is invalid when email is nil
-  has a valid factory
-  is invalid if the given email is already subscribed for the list
-  is invalid when email is blank
-  is invalid when list_id is blank
-  is expected to respond to #admin
-  is expected to respond to #list_id
-  removes whitespaces and 0x from the fingerprint
-  is invalid if admin is nil
+  is valid if keywords_admin_only does not contain special characters
+  is expected to respond to #bounces_drop_on_headers
+  is invalid if receive_from_subscribed_emailaddresses_only is nil
+  exports the key with the given fingerprint
+  is invalid if receive_admin_only is nil
+  is invalid if include_list_headers is blank
+  is invalid if receive_admin_only is blank
+  is invalid when email does not contain an @
+  is expected to respond to #key_auto_import_from_email
+  is expected to respond to #headers_to_meta
+  is invalid if receive_authenticated_only is blank
+  is invalid if internal_footer includes a non-printable character
+  is expected to respond to #include_openpgp_header
+  is expected to respond to #send_encrypted_only
+  is invalid if subject_prefix contains a linebreak
+  is invalid when email contains a space
+  is expected to respond to #subscriptions
+  is invalid if set_reply_to_to_sender is blank
+  is invalid if bounces_notify_admins is blank
+  is invalid if include_openpgp_header is blank
+  is expected to respond to #munge_from
+  is expected to respond to #receive_encrypted_only
+  is invalid if headers_to_meta contains special characters
+  is invalid if bounces_drop_on_headers contains special characters
+  is expected to respond to #receive_admin_only
+  is invalid if bounces_notify_admins is nil
+  is expected to respond to #deliver_selfsent
+  is invalid if subject_prefix_out contains a linebreak
+  is valid if headers_to_meta does not contain special characters
+  is invalid if receive_signed_only is nil
+  is invalid when fingerprint contains invalid characters
+  is invalid if receive_signed_only is blank
+  is invalid if forward_all_incoming_to_admins is blank
+  is expected to respond to #subject_prefix_out
+  is expected to respond to #bounces_notify_admins
+  is expected to respond to #internal_footer
+  #send_to_subscriptions
+    sends the message to all subscribers including the sender, if deliver_selfsent is false but the mail is not correctly signed
+    sends the message only to subscribers with available keys if send_encrypted_only is true, and a notification to the other subscribers
+    sends the message to all subscribers
+    sends the message to all subscribers but not the sender, if deliver_selfsent is false and the mail is correctly signed
+    sends the message only to subscribers with usable keys if send_encrypted_only is true, and a notification to the other subscribers
+    sends the message to all subscribers, in the clear if one's key is unusable, if send_encrypted_only is false
+    sends the message to subscribers if deliver_selfsent is set to false
+    sends the message to all subscribers including the sender, if deliver_selfsent is true and the mail is correctly signed
+  #subscribe
+    subscribes and ignores nil-values for admin and delivery_enabled
+    subscribes and sets the fingerprint from key material that contains exactly one key
+    subscribes and does not set the fingerprint from key material containing no keys
+    subscribes and does not set the fingerprint from key material containing multiple keys
+    subscribes and ignores a given fingerprint if key material is given, too
+  #import_key
+    imports a given key
+  #gpg
+    returns an instance of GPGME::Ctx
+    sets the GNUPGHOME environment variable to the listdir
+  #check_keys
+    adds a message if a key is revoked
+    adds a message if a key is disabled
+    adds a message if a key is invalid
+    adds a message if a key expires in two weeks or less
+  #keys
+    returns an array with the keys matching the given email address
+    it returns an array with the keys of the list
+    returns an array of keys matching the given fingerprint
+    returns an array with the keys matching the given bracketed email address
+  #fetch_keys
+    fetches one key by URL
+    fetches one key by fingerprint
+    fetches one key by email address
+    does not import non-self-signatures
+  send_list_key_to_subscriptions
+    sends its key to all subscriptions
+  #key_minimal_base64_encoded
+    returns the key with the fingerprint of the list if no argument is given in an Autocrypt-compatible format
+    does not return the key with the fingerprint in an Autocrypt-compatible format if the argument given does not correspond to a key
+  #export_key
+    exports the key with the fingerprint of the list if no argument is given
+  #to_s
+    returns the email
+  #bounce_address
+    adds the bounce keyword to the email address
+  #munge_from
+    does not munge from address when disabled
+    is disabled by default
+    sets from to munged version when enabled
+  #request_address
+    adds the request keyword to the email address
+  .configurable_attributes
+    returns an array that contains the configurable attributes
+    does not contain the attributes email and fingerprint
+  #key
+    returns the key with the fingerprint of the list
+  #delete_key
+    deletes the key with the given fingerprint
+    returns false if no key with the fingerprint was found
+  #secret_key
+    returns the secret key with the fingerprint of the list
+  #logger
+    calls the ListLogger
   #fingerprint
+    removes whitespaces and 0x from the fingerprint
     transforms the fingerprint to upper case
-
-Schleuder::KeywordHandlers::Base
-  provides methods to register keywords
-  stores mail, list and arguments as instance variables
+  .by_recipient
+    returns the list for a given address
+  #owner_address
+    adds the owner keyword to the email address
+  #sendkey_address
+    adds the sendkey keyword to the email address
+  #refresh_keys
+    reports errors from refreshing keys
+    does not import non-self-signatures
+    updates keys from the keyserver
+  #admins
+    returns subscriptions of admin users
+  #set_reply_to_to_sender
+    sets reply-to to senders from-address when enabled
+    prefers reply_to of the sender over from when existing
+    does not set reply_to mail address when disabled
+    is disabled by default
+  #logfile
+    returns the logfile path
 
 user sends keyword
-  x-list-keys without arguments
-  x-resend does not include internal_footer
-  x-subscribe with invalid arguments
-  x-subscribe with attributes (first one 'false') and spaces-separated fingerprint
-  x-list-subscriptions with matching argument
-  x-fetch-key with unknown fingerprint
   x-resend-cc-encrypted-only with matching key
-  x-set-fingerprint with other email-address and valid fingerprint
-  x-unsubscribe without argument
-  x-resend-cc to 2 addresses with missing keys
-  x-resend-cc to 2 addresses with one missing keys
-  x-get-version with delivery disabled
-  x-fetch-key with fingerprint
-  x-set-fingerprint with not-subscribed email-address and valid fingerprint
+  x-subscribe with one attribute and spaces-separated fingerprint
   x-get-logfile with debug level sends non-empty logfile
-  x-resend-encrypted-only with two matching keys, one of which is expired
-  resend returns an error about wrong arguments if email content got into the arguments due to no blank line
-  x-fetch-key without arguments
-  x-resend-unencrypted with matching key
+  x-unsubscribe
+  x-resend with invalid recipient
   x-unset-fingerprint with own email-address as admin and force
-  x-resend with utf-8 body and umlauts
-  x-set-fingerprint with own email-address and valid fingerprint
-  x-unsubscribe with invalid argument
-  x-list-key with arbitrary email-sub-string
-  x-get-logfile with error-level sends empty logfile
-  x-sign-this with inline text
-  x-get-version
-  x-set-fingerprint with other email-address and valid fingerprint as non-admin
-  x-unset-fingerprint without argument
   x-fetch-key with unknown email-address
-  x-subscribe without attributes
+  x-fetch-key with invalid input
+  x-set-fingerprint with own email-address and valid fingerprint
+  x-fetch-key with unknown fingerprint
+  x-list-key with prefixed fingerprint
+  x-resend
+  resend returns an error about wrong arguments if email content got into the arguments due to no blank line
+  x-resend-cc-encrypted-only to 2 addresses with missing keys
+  x-subscribe with attributes and spaces-separated fingerprint
+  x-set-fingerprint without argument
   x-set-fingerprint with email-address but without fingerprint
   x-set-fingerprint without email-address and with invalid fingerprint
-  x-sign-this with attachments
-  x-subscribe with attributes and spaces-separated fingerprint
-  x-set-fingerprint with own email-address and valid, spaces-separated fingerprint
-  x-resend-cc-encrypted-only to 2 addresses with missing keys
+  x-fetch-key with fingerprint
   does not parse keywords once the mail body started
-  x-unset-fingerprint with other email-address as non-admin
+  x-set-fingerprint with own email-address and valid, spaces-separated fingerprint
+  x-list-keys with two arguments
+  x-resend with utf-8 body and umlauts
+  x-subscribe with attributes (first one 'false') and spaces-separated fingerprint
+  x-attach-listkey
+  x-get-key with valid argument
+  x-attach-listkey from Thunderbird with protected headers
+  x-resend-unencrypted with matching key
+  x-get-key with empty argument
+  x-resend-encrypted-only with two matching keys, one of which is expired
+  x-resend-cc-encrypted-only to 2 addresses with matching keys
+  x-sign-this with attachments
+  x-unset-fingerprint without argument
+  x-subscribe with invalid arguments
+  x-list-subscriptions with matching argument
   x-set-fingerprint without email-address and with valid fingerprint
+  x-unset-fingerprint with own email-address as admin but without force
+  x-resend-encrypted-only with matching key
   x-resend with admin-notification and admin has delivery disabled
-  x-resend-cc-encrypted-only to 2 addresses with matching keys
-  x-fetch-key with invalid input
-  x-subscribe without attributes, but with spaces-separated fingerprint
-  x-subscribe with attributes
-  x-get-key with empty argument
-  x-resend with iso-8859-1 body
-  x-attach-listkey from Thunderbird with protected headers
-  x-list-subscriptions without arguments
-  x-list-subscriptions without arguments but with admin-notification
+  x-list-key with correctly prefixed email-sub-string
+  x-subscribe with attributes (last one 'true') and spaces-separated fingerprint
   x-set-fingerprint with email-address but without valid fingerprint
-  x-resend
-  x-list-keys with one argument
+  x-sign-this with inline text
+  x-set-fingerprint with not-subscribed email-address and valid fingerprint
   x-unsubscribe doesn't unsubscribe last admin
-  x-list-keys with two arguments
-  x-fetch-key with fingerprint of unchanged key
-  x-unset-fingerprint with other email-address as admin
-  x-unset-fingerprint with not-subscribed email-address
+  x-resend-cc-encrypted-only to 3 addresses with one missing keys
   x-subscribe without arguments
+  x-set-fingerprint with other email-address and valid fingerprint
+  x-resend with iso-8859-1 body
+  x-resend with admin-notification
+  x-resend does not include internal_footer
+  x-list-keys with one argument
+  x-fetch-key without arguments
+  x-get-version
+  x-get-logfile with error-level sends empty logfile
+  x-list-key with arbitrary email-sub-string
   x-resend-cc-encrypted-only with expired key
-  x-list-subscriptions with non-matching argument
-  x-unsubscribe
-  x-subscribe with one attribute and spaces-separated fingerprint
-  x-list-key with correctly prefixed email-sub-string
   x-fetch-key with URL
-  x-unset-fingerprint with own email-address as admin but without force
-  x-list-key with prefixed fingerprint
-  x-attach-listkey
-  x-resend-cc-encrypted-only to 3 addresses with one missing keys
-  x-get-key with invalid argument
-  x-resend-encrypted-only with expired key
-  x-resend with invalid recipient
-  x-get-key with valid argument
+  x-unsubscribe with invalid argument
+  x-unset-fingerprint with other email-address as admin
+  x-set-fingerprint with other email-address and valid fingerprint as non-admin
+  x-list-subscriptions without arguments but with admin-notification
   x-fetch-key with email address
-  x-resend-cc-encrypted-only to 2 addresses with one missing keys
+  x-get-key with invalid argument
   x-fetch-key with invalid URL
-  x-subscribe with attributes (last one 'true') and spaces-separated fingerprint
-  x-set-fingerprint without argument
-  x-resend with admin-notification
-  x-resend-encrypted-only with matching key
+  x-fetch-key with fingerprint of unchanged key
+  x-resend-cc-encrypted-only to 2 addresses with one missing keys
+  x-resend-encrypted-only with expired key
+  x-get-version with delivery disabled
+  x-subscribe without attributes, but with spaces-separated fingerprint
+  x-unset-fingerprint with not-subscribed email-address
+  x-unset-fingerprint with other email-address as non-admin
+  x-list-subscriptions with non-matching argument
+  x-subscribe without attributes
+  x-resend-cc to 2 addresses with missing keys
+  x-subscribe with attributes
+  x-resend-cc to 2 addresses with one missing keys
+  x-unsubscribe without argument
+  x-list-subscriptions without arguments
+  x-list-keys without arguments
   with broken utf8 in key
     x-add-key with inline key-material
-    x-list-keys works
     x-get-key with valid argument
+    x-list-keys works
+
+GPGME::Key
+  #summary
+    displays the expected attributes for a revoked key
+    displays the expected basic attributes
+    displays the expected attributes for an expired key
+    displays the expected attributes for an expiring key
+    displays the expected attributes for a key that's not capable of encryption
+  .valid_fingerprint?
+    invalid fingerprints
+      rejects 59C71FB38AEE22E091C78259D06350440F759BD3A as an invalid fingerprint
+      rejects Z9C71FB38AEE22E091C78259D0635044 as an invalid fingerprint
+      rejects Z9C71FB38AEE22E091C78259D06350440F759BD3 as an invalid fingerprint
+      rejects Z9C71FB38AEE22E091C78259D0635044 as an invalid fingerprint
+      rejects 0x59C71FB38AEE22E091C78259D06350440F759B as an invalid fingerprint
+      rejects 59C71FB38AEE22E091C78259D06350440F759BD as an invalid fingerprint
+    valid fingerprints
+      accepts 0x59C71FB38AEE22E091C78259D06350440F759BD3 as a valid fingerprint
+      accepts 0x59C71FB38AEE22E091C78259D0635044 as a valid fingerprint
+      accepts 59C71FB38AEE22E091C78259D06350440F759BD3 as a valid fingerprint
+      accepts 59C71FB38AEE22E091C78259D0635044 as a valid fingerprint
+  #minimal
+    returns a minimal key
+
+subscription via api
+  doesn't subscribe new member without authentication
+  subscribes an admin user
+  subscribes an admin user with a truthy value
+  subscribes an user and unsets delivery flag
+  unsubscribes members
+  subscribes new member to a list
+
+a bounce message is received
+  from bounce example
+
+running filters
+  .key_auto_import_from_attachments
+    successfully validates a signature, whose previously unknown key is attached, from an encrypted+signed message
+    successfully validates a signature, whose previously unknown key is attached
+  .strip_html_from_alternative!
+    does NOT strip HTML-part from multipart/alternative-message that does NOT contain ascii-armored PGP-data
+    strips HTML-part from multipart/alternative-message that contains ascii-armored PGP-data
+  .fix_exchange_messages!
+    accepts an invalid pgp/mime Exchange message
+    accepts a valid plain-text message
+  .key_auto_import_from_autocrypt_header
+    successfully validates a signature, whose previously unknown key is in the autocrypt-header
+  .max_message_size
+    bounces to big mails
+
+cli
+  #refresh_keys
+    reports errors from refreshing keys
+    updates keys from the keyserver for only a specific list
+    warns about file system permissions if it was run as root
+    updates keys from the keyserver
+  #check_keys
+    warns about file system permissions if it was run as root
+  #commands
+    exits with a status code of 1 in case the command is not implemented
+
+Schleuder::Http
+  uses a proxy if one is configured
+
+Schleuder::KeywordHandlers::SignThis
+  signs attachment (even if a body is present)
+  responds to the configured keyword method
+  signs body content if no attachments are present
 
 Mail::Message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234241665.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_22.txt.eml as normal message
-  recognizes bounce message subject using the bounce_email gem
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_10.txt.eml as normal message
-  adds list#internal_footer as last mime-part without changing its value
-  does not misclassify normal message spec/fixtures/mails/not_bounces/Bug_948980-_marked_as_pending_in_schleuder.eml as bounce
-  verifies an encapsulated (signed-then-encrypted) message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211932.txt.eml as normal message
-  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234241664.txt.eml as bounce
-  adds list#public_footer as last mime-part without changing its value
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234175799.txt.eml as normal message
-  recognizes a message sent to listname-bounce@hostname as automated message
-  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234210666.txt.eml as bounce
-  does not misclassify bounce spec/fixtures/mails/bounces/undeliverable_gmail.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_03.txt.eml as normal message
-  recognizes a sudo message with 'Auto-Submitted'-header NOT as automated message
-  doesn't change the order of mime-parts
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_16.txt.eml as normal message
   does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_02.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_18.txt.eml as normal message
   does not misclassify bounce spec/fixtures/mails/bounces/unknown_code_bounce_01.txt.eml as normal message
+  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234211024.txt.eml as bounce
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234175799.txt.eml as normal message
   does not misclassify bounce spec/fixtures/mails/bounces/tt_1234177688.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/malformed_bounce_01.txt.eml as normal message
-  does not misclassify normal message spec/fixtures/mails/not_bounces/Bug_948981-_marked_as_pending_in_schleuder.eml as bounce
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_19.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_14.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_20.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_12_soft.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211357.txt.eml as normal message
+  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234241664.txt.eml as bounce
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_04.txt.eml as normal message
+  recognizes a sudo message with 'Auto-Submitted'-header NOT as automated message
   does not misclassify normal message spec/fixtures/mails/not_bounces/Bug_948982-_marked_as_pending_in_schleuder.eml as bounce
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234210655.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_23.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_06.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_01.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211929.txt.eml as normal message
-  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234211024.txt.eml as bounce
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_07.txt.eml as normal message
+  recognizes bounce message subject using the bounce_email gem
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_19.txt.eml as normal message
+  recognizes a message sent to listname-bounce@hostname as automated message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_25.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_15.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234285668.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/undeliverable_gmail.txt.eml as normal message
+  does not misclassify normal message spec/fixtures/mails/not_bounces/Bug_948980-_marked_as_pending_in_schleuder.eml as bounce
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211932.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_21.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_08.txt.eml as normal message
+  verifies an encapsulated (signed-then-encrypted) message
+  does not misclassify normal message spec/fixtures/mails/not_bounces/Bug_948981-_marked_as_pending_in_schleuder.eml as bounce
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_13.txt.eml as normal message
+  adds list#internal_footer as last mime-part without changing its value
   does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211931.txt.eml as normal message
   recognizes a Jenkins message with 'Auto-Submitted'-header NOT as automated message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_16.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_15.txt.eml as normal message
-  recognizes a cron message with 'Auto-Submitted'-header NOT as automated message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_05.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_12_soft.txt.eml as normal message
   does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_11.txt.eml as normal message
+  does not misclassify normal message spec/fixtures/mails/not_bounces/tt_1234210666.txt.eml as bounce
   does not misclassify bounce spec/fixtures/mails/bounces/tt_1234285532.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_21.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234285668.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_25.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_20.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_17.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211357.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_09.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_13.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_04.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_08.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_22.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_03.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234241665.txt.eml as normal message
   does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_24.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_14.txt.eml as normal message
-  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_18.txt.eml as normal message
-  .keywords
-    ignores empty lines before keywords
-    drops multiple empty lines between keywords and content
-    stops looking for keywords when already the first line is blank followed by email content
-    splits lines into words and downcases them in keyword arguments
-    stops looking for keywords when a blank line that is not followed by another keyword is met
-    drops empty lines in keyword arguments parsing
-    stops looking for keywords when the first line is already email content
-    reads multiple lines as keyword arguments
-    takes the whole rest of the body as keyword argument if blank lines are present
+  adds list#public_footer as last mime-part without changing its value
+  doesn't change the order of mime-parts
+  recognizes a cron message with 'Auto-Submitted'-header NOT as automated message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_05.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_09.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_01.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_17.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_06.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_23.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_10.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_bounce_07.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/malformed_bounce_01.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234211929.txt.eml as normal message
+  does not misclassify bounce spec/fixtures/mails/bounces/tt_1234210655.txt.eml as normal message
+  #add_subject_prefix!
+    adds a configured subject prefix
+    does not add a subject prefix if already present
+    adds a configured subject prefix without subject
   makes a pseudo header
     that single multiline are getting indented
+    with empty value
     with key / value
     without value
-    that a line with less than 76 gets wrapped
-    with empty value
-    that is getting wrapped
-    that multiline are getting wrapped
     that a multiline with less than 76 get wrapped correctly on the first line and the following lines
+    that is getting wrapped
     that a multiline with less than 76 get wrapped correctly on the first line
-  #add_subject_prefix!
-    adds a configured subject prefix without subject
-    does not add a subject prefix if already present
-    adds a configured subject prefix
+    that multiline are getting wrapped
+    that a line with less than 76 gets wrapped
+  .keywords
+    takes the whole rest of the body as keyword argument if blank lines are present
+    drops multiple empty lines between keywords and content
+    drops empty lines in keyword arguments parsing
+    stops looking for keywords when already the first line is blank followed by email content
+    stops looking for keywords when a blank line that is not followed by another keyword is met
+    splits lines into words and downcases them in keyword arguments
+    ignores empty lines before keywords
+    reads multiple lines as keyword arguments
+    stops looking for keywords when the first line is already email content
 
-Schleuder::KeywordHandlers::SignThis
-  responds to the configured keyword method
-  signs attachment (even if a body is present)
-  signs body content if no attachments are present
+Schleuder::Conf
+  reads ERB code in config files
+
+authorization via api
+  blocks un-authorized access to other URLs
+  allows authorized access
+  allows un-authorized access to /status.json
 
 Errors
   ::DecryptionFailed shows sensible string in response to to_s()
-  ::KeyAdduidFailed shows sensible string in response to to_s()
-  ::ListdirProblem shows sensible string in response to to_s()
+  ::KeywordAdminOnly shows sensible string in response to to_s()
   ::MessageEmpty shows sensible string in response to to_s()
-  ::LoadingListSettingsFailed shows sensible string in response to to_s()
-  ::MessageSenderNotSubscribed shows sensible string in response to to_s()
+  ::TooManyKeys shows sensible string in response to to_s()
   ::ListNotFound shows sensible string in response to to_s()
+  ::KeyAdduidFailed shows sensible string in response to to_s()
   ::MessageUnencrypted shows sensible string in response to to_s()
-  ::TooManyKeys shows sensible string in response to to_s()
-  ::MessageTooBig shows sensible string in response to to_s()
+  ::MessageSenderNotSubscribed shows sensible string in response to to_s()
   ::MessageUnsigned shows sensible string in response to to_s()
-  ::MessageUnauthenticated shows sensible string in response to to_s()
-  ::KeyGenerationFailed shows sensible string in response to to_s()
   ::MessageNotFromAdmin shows sensible string in response to to_s()
-  ::KeywordAdminOnly shows sensible string in response to to_s()
-
-keys via api
-  a key with broken utf8 in uid
-    does add key
-    already imported
-      does get key
-      does list this key
-      does delete key
-  list
-    does list keys with authentication
-    doesn't list keys without authentication
-  delete
-    does delete keys with authentication
-    doesn't delete keys without authentication
-  import
-    does list keys with authentication
-    doesn't import keys without authentication
-    returns json with empty array in case of useless input
-    returns json with key details about imported keys
-  export
-    does list keys with authentication
-    doesn't export keys without authentication
-  check
-    does check keys with authorization
-    doesn't check keys without authentication
-
-user sends an encrypted message
-  from thunderbird being encrypted-inline
-  from thunderbird being encrypted+signed-mime
-  from thunderbird being encrypted+signed-inline
-  from thunderbird being encrypted-mime
-
-Schleuder::KeyFetcher
-  #fetch
-    fetches one key by email from SKS if vks_keyserver is blank
-    reports an error from trying to import non-key-material
-    fetches one key by fingerprint from SKS if vks_keyserver is blank
-    fetches one key by fingerprint from VKS if vks_keyserver is set
-    fetches one key by email from VKS if vks_keyserver is set
-    fetches one key from a good URL
-    reports the returned body content when receiving an unexpected HTTP status from the server
-    reports an error from trying to fetch an URL that doesn't exist
-    reports an error if both, vks_keyserver and sks_keyserver, are blank
-
-Schleuder::Filters::Runner
-  is expected to respond to #run
-  loading filters
-    loads filters from built-in filters_dir sorts them
-    loads custom filters from filters_dir and sorts them in, ignores filter not following convention
-    loads custom filters from filters_dir and sorts them in with missing dir
-    loads custom filters from filters_dir even with non-2-digit priority
-  #run
-    stops on a StandardError and returns error
-    runs the filters
-    stops on a StandardError and returns error even with bounces_drop_all
-    stops on a StandardError and returns error even on headers match
-
-user sends a plain text message
-  from thunderbird being signed-inline
-  from thunderbird being signed-mime
-  from thunderbird being plain
-
-status
-  returns status code 200
+  ::MessageTooBig shows sensible string in response to to_s()
+  ::ListdirProblem shows sensible string in response to to_s()
+  ::LoadingListSettingsFailed shows sensible string in response to to_s()
+  ::KeyGenerationFailed shows sensible string in response to to_s()
+  ::MessageUnauthenticated shows sensible string in response to to_s()
 
 Schleuder::LoggerNotifications
+  includes a List-Id header in notification mails sent to admins
   notifies admins of simple text-message
-  notifies admins of multiple text-messages
   notifies admins of multiple text-messages and the original message
   notifies admins encryptedly if their key is usable
-  includes a List-Id header in notification mails sent to admins
   notifies admins in the clear if their key is unusable
+  notifies admins of multiple text-messages
   return path
     sets superadmin
     sets default superadmin
 
-authorization via api
-  blocks un-authorized access to other URLs
-  allows authorized access
-  allows un-authorized access to /status.json
-
-running filters
-  .key_auto_import_from_autocrypt_header
-    successfully validates a signature, whose previously unknown key is in the autocrypt-header
-  .max_message_size
-    bounces to big mails
-  .key_auto_import_from_attachments
-    successfully validates a signature, whose previously unknown key is attached
-    successfully validates a signature, whose previously unknown key is attached, from an encrypted+signed message
-  .fix_exchange_messages!
-    accepts an invalid pgp/mime Exchange message
-    accepts a valid plain-text message
-  .strip_html_from_alternative!
-    strips HTML-part from multipart/alternative-message that contains ascii-armored PGP-data
-    does NOT strip HTML-part from multipart/alternative-message that does NOT contain ascii-armored PGP-data
-
-Schleuder::KeywordHandlers::KeyManagement
-  registers keywords
-  .add_key
-    imports from attached quoted-printable key-material (as produced by Thunderbird 115)
-    imports a key from attached explicitly base64-encoded binary material
-    imports a key from attached binary material (without specified encoding)
-    imports a key from attached acsii-armored material
-    imports a key from inline ascii-armored material
-    updates a key
-    imports a key from attached quoted-printable binary material
-    imports from an inline mix of ascii-armored key and non-key material
-    rejects garbage
-    ignores arguments
-    imports from attached quoted-printable binary key-material (as produced by Mutt 2.0.5)
-    imports from attached quoted-printable ascii-armored key-material
-    ignores body if an ascii-armored attachment is present
-  .delete_key
-    deletes no key if the argument does not match
-    deletes multiple keys that each distinctly match one argument
-    returns a string as error message if input message has no content
-    sends error message if no argument is given
-    deletes a key that distinctly matches the argument
-
-Schleuder::Http
-  uses a proxy if one is configured
-
-lists via api
-  creates a list
-  correctly finds a list by email-address that starts with a number
-  shows a list
-
-a bounce message is received
-  from bounce example
-
-subscription via api
-  unsubscribes members
-  subscribes an user and unsets delivery flag
-  subscribes an admin user with a truthy value
-  doesn't subscribe new member without authentication
-  subscribes an admin user
-  subscribes new member to a list
-
-protected subject
-  don't block request-messages
-  works with mutt protected headers
-  is not leaked
-  is included as mime-part in body
-  recognizes keywords in mails with protected headers and empty subject
-  is included in mime-headers
-
-Finished in 9 minutes 52 seconds (files took 1.98 seconds to load)
+Finished in 3 minutes 22.1 seconds (files took 1.21 seconds to load)
 583 examples, 0 failures
 
-Randomized with seed 19245
+Randomized with seed 3105
 
 
 ┌──────────────────────────────────────────────────────────────────────────────┐
@@ -2190,81 +2226,175 @@
 dpkg-buildpackage: info: binary-only upload (no source included)
 dpkg-genchanges: info: not including original source code in upload
 I: copying local configuration
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/1193872/tmp/hooks/B01_cleanup finished
 I: unmounting dev/ptmx filesystem
 I: unmounting dev/pts filesystem
 I: unmounting dev/shm filesystem
 I: unmounting proc filesystem
 I: unmounting sys filesystem
 W: Stray processes left from build:
-* system-pbuilder-build-schleuder_5.0.0\x2d7-2434893.slice - Slice /system/pbuilder/build/schleuder_5.0.0-7/2434893
+* system-pbuilder-build-schleuder_5.0.0\x2d7-1193872.slice - Slice /system/pbuilder/build/schleuder_5.0.0-7/1193872
      Loaded: loaded
-     Active: active since Fri 2026-04-10 19:45:14 -12; 21min ago
-      Tasks: 58
-     Memory: 123.6M
-        CPU: 3min 27.511s
-     CGroup: /system.slice/system-pbuilder.slice/system-pbuilder-build.slice/system-pbuilder-build-schleuder_5.0.0\x2d7.slice/system-pbuilder-build-schleuder_5.0.0\x2d7-2434893.slice
-             `-run-re35f48a7e2964f2f82c31998046bea10.scope
-               |-2474118 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list407 --use-standard-socket --daemon
-               |-2474226 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list410 --use-standard-socket --daemon
-               |-2474581 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list412 --use-standard-socket --daemon
-               |-2474922 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list413 --use-standard-socket --daemon
-               |-2475311 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list414 --use-standard-socket --daemon
-               |-2475641 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list415 --use-standard-socket --daemon
-               |-2475818 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list416 --use-standard-socket --daemon
-               |-2475847 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list418 --use-standard-socket --daemon
-               |-2475866 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list419 --use-standard-socket --daemon
-               |-2475889 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list420 --use-standard-socket --daemon
-               |-2475908 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list421 --use-standard-socket --daemon
-               |-2476192 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list434 --use-standard-socket --daemon
-               |-2476277 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list435 --use-standard-socket --daemon
-               |-2476379 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list436 --use-standard-socket --daemon
-               |-2476484 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list437 --use-standard-socket --daemon
-               |-2476521 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list438 --use-standard-socket --daemon
-               |-2476590 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list439 --use-standard-socket --daemon
-               |-2476664 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list440 --use-standard-socket --daemon
-               |-2476720 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list441 --use-standard-socket --daemon
-               |-2476748 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list442 --use-standard-socket --daemon
-               |-2476809 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list443 --use-standard-socket --daemon
-               |-2476819 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list444 --use-standard-socket --daemon
-               |-2476876 gpg-agent --homedir /tmp/d20260411-2443738-ux6xas --use-standard-socket --daemon
-               |-2476911 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list445 --use-standard-socket --daemon
-               |-2476922 gpg-agent --homedir /tmp/d20260411-2443738-ilhv8x --use-standard-socket --daemon
-               |-2477091 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list446 --use-standard-socket --daemon
-               |-2477169 gpg-agent --homedir /tmp/d20260411-2443738-4i5iyj --use-standard-socket --daemon
-               |-2477188 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list447 --use-standard-socket --daemon
-               |-2477201 gpg-agent --homedir /tmp/d20260411-2443738-6bbdy3 --use-standard-socket --daemon
-               |-2477345 gpg-agent --homedir /tmp/d20260411-2443738-9qfgu3 --use-standard-socket --daemon
-               |-2477410 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list448 --use-standard-socket --daemon
-               |-2477458 gpg-agent --homedir /tmp/d20260411-2443738-3ksb8r --use-standard-socket --daemon
-               |-2477658 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list449 --use-standard-socket --daemon
-               |-2477814 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list450 --use-standard-socket --daemon
-               |-2477986 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list451 --use-standard-socket --daemon
-               |-2478254 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list452 --use-standard-socket --daemon
-               |-2478367 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list453 --use-standard-socket --daemon
-               |-2478388 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list454 --use-standard-socket --daemon
-               |-2478402 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list455 --use-standard-socket --daemon
-               |-2478414 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list456 --use-standard-socket --daemon
-               |-2478433 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list457 --use-standard-socket --daemon
-               |-2478447 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list458 --use-standard-socket --daemon
-               |-2478466 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list459 --use-standard-socket --daemon
-               |-2478490 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list460 --use-standard-socket --daemon
-               |-2478530 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list463 --use-standard-socket --daemon
-               |-2478562 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list464 --use-standard-socket --daemon
-               |-2478611 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list465 --use-standard-socket --daemon
-               |-2478629 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list466 --use-standard-socket --daemon
-               |-2478670 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list467 --use-standard-socket --daemon
-               |-2478741 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list469 --use-standard-socket --daemon
-               |-2478755 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list470 --use-standard-socket --daemon
-               |-2478895 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list473 --use-standard-socket --daemon
-               |-2479037 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/something --use-standard-socket --daemon
-               |-2479119 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list480 --use-standard-socket --daemon
-               |-2479179 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list481 --use-standard-socket --daemon
-               |-2479205 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list482 --use-standard-socket --daemon
-               |-2479262 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list483 --use-standard-socket --daemon
-               `-2479327 gpg-agent --homedir /tmp/schleuder-e650bd2f7c9c4bb10423d92d5d4e797d/example.org/list484 --use-standard-socket --daemon
+     Active: active since Sun 2025-03-09 15:44:16 +14; 4min 31s ago
+      Tasks: 150
+     Memory: 485.2M
+        CPU: 2min 31.044s
+     CGroup: /system.slice/system-pbuilder.slice/system-pbuilder-build.slice/system-pbuilder-build-schleuder_5.0.0\x2d7.slice/system-pbuilder-build-schleuder_5.0.0\x2d7-1193872.slice
+             `-run-r06af7e37f404417184911c1cd3be0ce9.scope
+               |-1202483 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list187 --use-standard-socket --daemon
+               |-1202497 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list188 --use-standard-socket --daemon
+               |-1202512 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list195 --use-standard-socket --daemon
+               |-1202547 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list198 --use-standard-socket --daemon
+               |-1202593 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list199 --use-standard-socket --daemon
+               |-1202643 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list200 --use-standard-socket --daemon
+               |-1202689 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list201 --use-standard-socket --daemon
+               |-1202723 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list259 --use-standard-socket --daemon
+               |-1202761 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list260 --use-standard-socket --daemon
+               |-1202802 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list261 --use-standard-socket --daemon
+               |-1202839 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list262 --use-standard-socket --daemon
+               |-1202877 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list263 --use-standard-socket --daemon
+               |-1202921 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list264 --use-standard-socket --daemon
+               |-1202963 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list265 --use-standard-socket --daemon
+               |-1202992 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list266 --use-standard-socket --daemon
+               |-1203040 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list268 --use-standard-socket --daemon
+               |-1203055 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list270 --use-standard-socket --daemon
+               |-1203072 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list272 --use-standard-socket --daemon
+               |-1203106 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list281 --use-standard-socket --daemon
+               |-1203113 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list282 --use-standard-socket --daemon
+               |-1203120 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list283 --use-standard-socket --daemon
+               |-1203129 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list284 --use-standard-socket --daemon
+               |-1203146 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list285 --use-standard-socket --daemon
+               |-1203172 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list288 --use-standard-socket --daemon
+               |-1203221 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list290 --use-standard-socket --daemon
+               |-1203264 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list292 --use-standard-socket --daemon
+               |-1203280 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list294 --use-standard-socket --daemon
+               |-1203288 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list297 --use-standard-socket --daemon
+               |-1203297 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list298 --use-standard-socket --daemon
+               |-1203314 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list299 --use-standard-socket --daemon
+               |-1203347 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list301 --use-standard-socket --daemon
+               |-1203396 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list302 --use-standard-socket --daemon
+               |-1203445 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list303 --use-standard-socket --daemon
+               |-1203486 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list305 --use-standard-socket --daemon
+               |-1203550 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list306 --use-standard-socket --daemon
+               |-1203587 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list307 --use-standard-socket --daemon
+               |-1203624 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list308 --use-standard-socket --daemon
+               |-1203661 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list309 --use-standard-socket --daemon
+               |-1203702 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list310 --use-standard-socket --daemon
+               |-1203746 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list311 --use-standard-socket --daemon
+               |-1203787 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list312 --use-standard-socket --daemon
+               |-1203824 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list313 --use-standard-socket --daemon
+               |-1203868 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list314 --use-standard-socket --daemon
+               |-1203907 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list315 --use-standard-socket --daemon
+               |-1203946 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list316 --use-standard-socket --daemon
+               |-1204003 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list317 --use-standard-socket --daemon
+               |-1204050 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list318 --use-standard-socket --daemon
+               |-1204099 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list319 --use-standard-socket --daemon
+               |-1204136 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list320 --use-standard-socket --daemon
+               |-1204171 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list321 --use-standard-socket --daemon
+               |-1204213 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list322 --use-standard-socket --daemon
+               |-1204252 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list323 --use-standard-socket --daemon
+               |-1204296 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list324 --use-standard-socket --daemon
+               |-1204351 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list325 --use-standard-socket --daemon
+               |-1204391 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list326 --use-standard-socket --daemon
+               |-1204440 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list327 --use-standard-socket --daemon
+               |-1204497 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list328 --use-standard-socket --daemon
+               |-1204534 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list329 --use-standard-socket --daemon
+               |-1204581 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list330 --use-standard-socket --daemon
+               |-1204622 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.net/testlist --use-standard-socket --daemon
+               |-1204670 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list331 --use-standard-socket --daemon
+               |-1204730 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list332 --use-standard-socket --daemon
+               |-1204765 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list333 --use-standard-socket --daemon
+               |-1204830 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list334 --use-standard-socket --daemon
+               |-1204898 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list335 --use-standard-socket --daemon
+               |-1204943 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list336 --use-standard-socket --daemon
+               |-1204980 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list337 --use-standard-socket --daemon
+               |-1205017 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list338 --use-standard-socket --daemon
+               |-1205052 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list339 --use-standard-socket --daemon
+               |-1205092 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list340 --use-standard-socket --daemon
+               |-1205132 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list341 --use-standard-socket --daemon
+               |-1205196 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list342 --use-standard-socket --daemon
+               |-1205268 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list343 --use-standard-socket --daemon
+               |-1205309 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list344 --use-standard-socket --daemon
+               |-1205344 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list345 --use-standard-socket --daemon
+               |-1205386 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list346 --use-standard-socket --daemon
+               |-1205429 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list347 --use-standard-socket --daemon
+               |-1205466 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list348 --use-standard-socket --daemon
+               |-1205501 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list349 --use-standard-socket --daemon
+               |-1205559 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list350 --use-standard-socket --daemon
+               |-1205594 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list351 --use-standard-socket --daemon
+               |-1205636 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list352 --use-standard-socket --daemon
+               |-1205693 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list353 --use-standard-socket --daemon
+               |-1205763 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list354 --use-standard-socket --daemon
+               |-1205813 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list355 --use-standard-socket --daemon
+               |-1205862 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list356 --use-standard-socket --daemon
+               |-1205903 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list357 --use-standard-socket --daemon
+               |-1205940 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list358 --use-standard-socket --daemon
+               |-1205977 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list359 --use-standard-socket --daemon
+               |-1206014 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list360 --use-standard-socket --daemon
+               |-1206068 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list361 --use-standard-socket --daemon
+               |-1206112 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list362 --use-standard-socket --daemon
+               |-1206147 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list363 --use-standard-socket --daemon
+               |-1206187 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list364 --use-standard-socket --daemon
+               |-1206229 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list365 --use-standard-socket --daemon
+               |-1206281 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list366 --use-standard-socket --daemon
+               |-1206327 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list367 --use-standard-socket --daemon
+               |-1206369 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list368 --use-standard-socket --daemon
+               |-1206411 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list369 --use-standard-socket --daemon
+               |-1206457 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list370 --use-standard-socket --daemon
+               |-1206503 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list371 --use-standard-socket --daemon
+               |-1206558 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list372 --use-standard-socket --daemon
+               |-1206597 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list373 --use-standard-socket --daemon
+               |-1206638 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list374 --use-standard-socket --daemon
+               |-1206673 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list375 --use-standard-socket --daemon
+               |-1206719 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list376 --use-standard-socket --daemon
+               |-1206758 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list377 --use-standard-socket --daemon
+               |-1206800 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list378 --use-standard-socket --daemon
+               |-1206858 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list379 --use-standard-socket --daemon
+               |-1206897 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list380 --use-standard-socket --daemon
+               |-1206963 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list381 --use-standard-socket --daemon
+               |-1207007 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list382 --use-standard-socket --daemon
+               |-1207042 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list383 --use-standard-socket --daemon
+               |-1207091 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list384 --use-standard-socket --daemon
+               |-1207133 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list385 --use-standard-socket --daemon
+               |-1207177 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list386 --use-standard-socket --daemon
+               |-1207222 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list387 --use-standard-socket --daemon
+               |-1207231 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list389 --use-standard-socket --daemon
+               |-1207238 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list390 --use-standard-socket --daemon
+               |-1207245 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list391 --use-standard-socket --daemon
+               |-1207280 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list399 --use-standard-socket --daemon
+               |-1207299 gpg-agent --homedir /tmp/d20250309-1199804-cbfrsc --use-standard-socket --daemon
+               |-1207323 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list400 --use-standard-socket --daemon
+               |-1207335 gpg-agent --homedir /tmp/d20250309-1199804-kjnimi --use-standard-socket --daemon
+               |-1207376 gpg-agent --homedir /tmp/d20250309-1199804-gl95gp --use-standard-socket --daemon
+               |-1207395 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list401 --use-standard-socket --daemon
+               |-1207406 gpg-agent --homedir /tmp/d20250309-1199804-68pcih --use-standard-socket --daemon
+               |-1207470 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list402 --use-standard-socket --daemon
+               |-1207515 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list403 --use-standard-socket --daemon
+               |-1207561 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list404 --use-standard-socket --daemon
+               |-1207609 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list405 --use-standard-socket --daemon
+               |-1207630 gpg-agent --homedir /tmp/d20250309-1199804-4n662h --use-standard-socket --daemon
+               |-1207649 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list406 --use-standard-socket --daemon
+               |-1207656 gpg-agent --homedir /tmp/d20250309-1199804-1n7pee --use-standard-socket --daemon
+               |-1207696 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list407 --use-standard-socket --daemon
+               |-1207725 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list408 --use-standard-socket --daemon
+               |-1207741 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list409 --use-standard-socket --daemon
+               |-1207749 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list410 --use-standard-socket --daemon
+               |-1207810 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list412 --use-standard-socket --daemon
+               |-1207895 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list413 --use-standard-socket --daemon
+               |-1207914 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list414 --use-standard-socket --daemon
+               |-1207929 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list441 --use-standard-socket --daemon
+               |-1207962 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list477 --use-standard-socket --daemon
+               |-1207972 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list478 --use-standard-socket --daemon
+               |-1207982 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list479 --use-standard-socket --daemon
+               |-1207995 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list480 --use-standard-socket --daemon
+               |-1208005 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list481 --use-standard-socket --daemon
+               |-1208022 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list482 --use-standard-socket --daemon
+               |-1208033 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list483 --use-standard-socket --daemon
+               `-1208043 gpg-agent --homedir /tmp/schleuder-06d3e0cb4bd2b05d6943c2a9d5c2185a/example.org/list484 --use-standard-socket --daemon
 
-Apr 10 19:45:14 infom02-amd64 systemd[1]: Created slice system-pbuilder-build-schleuder_5.0.0\x2d7-2434893.slice - Slice /system/pbuilder/build/schleuder_5.0.0-7/2434893.
+Mar 09 15:44:16 infom01-amd64 systemd[1]: Created slice system-pbuilder-build-schleuder_5.0.0\x2d7-1193872.slice - Slice /system/pbuilder/build/schleuder_5.0.0-7/1193872.
 I: cleaning the build env 
-I: removing directory /srv/workspace/pbuilder/2434893 and its subdirectories
-I: Current time: Fri Apr 10 20:07:08 -12 2026
-I: pbuilder-time-stamp: 1775894828
+I: removing directory /srv/workspace/pbuilder/1193872 and its subdirectories
+I: Current time: Sun Mar  9 15:48:49 +14 2025
+I: pbuilder-time-stamp: 1741484929