Compare commits

..

1 Commits

Author SHA1 Message Date
LeeW c0708a09cc ADP-216: updates README from UAT feedback 1 year ago

@ -5,28 +5,11 @@ Purpose: Manage gpg keys for:
# Key Management # Key Management
* Role: New User: new key to be added; can be a new employee being added for first time, existing employee getting access to a new repo, key rotation, etc Roles:
* Role: Existing User: user who already has access to the appropriate project
* Definition: List of all users: [verify/.sops.yaml](verify/.sops.yaml)
* Keys Repository: This Git Repository (`communication-keys`), manages public keys and configuration in Project Repositories
* Project Repository: Git Repository for each Project which contains SOPS-Encrypted secrets, e.g. for GitOps Deployments using Helm Files
# Playbook for Configuring Access for New Users
## Overview: * New User: new key to be added; can be a new employee being added for first time, existing employee getting access to a new repo, key rotation, etc
* Existing User: user who already has access to the appropriate project
1. In the Keys Repo (`communication-keys`): * Definition: List of all users: [verify/.sops.yaml](verify/.sops.yaml)
1. New User creates,adds GPG Key
1. Existing User configures groups
1. Existing User configures verification SOPS Config
1. New User installs SOPS
1. New User verifies SOPS installation using verification SOPS Config
1. **Status**: New User has working key, working sops installation. Caveat: No access to secrets in other repos yet
1. In the Project Repo
1. Existing User adds New User Key to SOPS Config, Secrets Files
1. New User verifies access
1. **Status**: New User has access to SOPS-encrypted secrets within Project Repo
## 1a. Onboarding: [New User]: create and add a gpg key ## 1a. Onboarding: [New User]: create and add a gpg key
1. Clone this repository 1. Clone this repository
@ -37,26 +20,38 @@ Purpose: Manage gpg keys for:
- CAVEAT: step 14 is not necessary, as it is specific to a GitHub account - CAVEAT: step 14 is not necessary, as it is specific to a GitHub account
1. add ONLY the _PUBLIC_ part of your gpg key!!! to your branch 1. add ONLY the _PUBLIC_ part of your gpg key!!! to your branch
- file format: `<email>@netgo.de.gpg.pub` - file format: `<email>@netgo.de.gpg.pub`
- **Example**: `max.musterman@netgo.de.gpg.pub`
1. git: commit the new file, push 1. git: commit the new file, push
1. gitlab: open a MergeRequest 1. open a MergeRequest
1. **Hand-Off**: Assign the MR to an Existing User in your Team to have your key added. 1. Hand-Off: Assign the MR to an Existing User in your Team to have your key added.
- Hint: Look up all Existing Users in the comments at: [verify/.sops.yaml](verify/.sops.yaml) - Hint: Look up all Existing Users in the comments at: [verify/.sops.yaml](verify/.sops.yaml)
## 1b. Onboarding: [Existing User|New User]: Add new user to groups ## 1b. Onboarding: [Existing User|New User]: Add new user to groups
**Prerequisite**: Determine the groups to which access is needed, e.g. a specific repository. If uncertain, ask a Team Member for help! Determine the groups to which access is needed, e.g. a specific repository.
If uncertain, ask a Team Member for help!
**Technical Instructions** - please forgive the complexity Technical Instructions - please forgive the complexity
Access for each repo is tracked using the `./groups/` directory; each sub-directory represents a "group" (Note: some "groups" are also "roles", e.g. `admin`)
Most of the groups correspond directly to git repository names, aka "project name"
Create a symlink from the group-directory back to the keyfile Create a symlink from the group-directory back to the keyfile
```shell
cd groups/<project_name>
ln -s ../../<path_to_key.gpg.pub>
```
1. `cd groups/<project_name>` Example:
- **Example**: `cd groups/devnso-adp-argocd`
- Explanation: Access for each repo is tracked using the `./groups/` directory; each sub-directory represents a "group" (Note: some "groups" are also "roles", e.g. `admin`) Add "Max Musterman" to the group for `devnso-adp-argocd`:
- Explanation: Most of the groups correspond directly to git repository names, aka "project name" ```shell
1. `ln -s ../../<path_to_key.gpg.pub>` # navigate to group-directory for devnos
- **Example**: `ln -s ../../max.musterman@netgo.de.gpg.pub` cd groups/devnso-adp-argocd
# symlink to pubkey for New User
ln -s ../../max.musterman@netgo.de.gpg.pub
```
## 2. Onboarding: [Existing User]: Configure sops config ## 2. Onboarding: [Existing User]: Configure sops config
@ -64,98 +59,57 @@ Context: This repo stores the keys used to encrypt secrets in other repos; these
For verification purposes, this repo also contains a _sample_ `.sops.yaml` to which every key in the repo is added. This allows both Existing Users to instantly verify the new key, and New Users to verify that their sops installation works correctly. For verification purposes, this repo also contains a _sample_ `.sops.yaml` to which every key in the repo is added. This allows both Existing Users to instantly verify the new key, and New Users to verify that their sops installation works correctly.
### Update Verification SOPS Config ### [Existing User] Update Verification SOPS Config
1. Checkout the New User's branch titled `add_pubkey_[firstname]-[lastname]`. Follow the interactive prompts:
- CLI: e.g. `git branch add_pubkey_Max-Musterman` ```shell
1. Run `./verify/usr_confirm_keycfg.sh` ./verify/usr_confirm_keycfg.sh
1. git: commit the new file, push ```
1. **Status**: New User has working SOPS Configuration
1. **Hand-Off**: Proceed to next steps; Instruct New User to verify access to secrets Now the sample secrets file _in this repo_ has been updated, and the New User should be able to decrypt it!
Hand off to New User
### Update Project SOPS Config ### Update Project SOPS Config
The following commands explain how to update the `.sops.yaml` for a repository. The following commands explain how to update the `.sops.yaml` for a repository:
Note: For a worked-through example, see next section. #### Prerequisite
1. **Prerequisite**
1. Obtain Project Repo
- CLI:: `git clone <repo_url>`
1. **Create Branch**
- CLI: `git checkout -b add_pubkey_[firstname]-[lastname] origin/main`
1. **Configure Project Repo for New User**
1. List available groups:
- CLI: `${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups`
- Reminder: Group Name usually corresponds to Repository Name
1. Update sops config AND all secrets files:
- CLI: `${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group <group_name> --find_secrets
1. **Commit the changes, Create Change Request (PR/MR)**
1. git: commit the changes to `.sops.yaml` and secrets files (`secrets.yaml`) files
- CLI: `git add .sops.yaml $(find . -name secrets.yaml)`
- **CAVEAT**: check for other changes with `git status` ! The files do not always follow consistent conventions.
- CLI: `git commit -m "adds <firstname>.<lastname> to sops config"`
1. git: push branch
- CLI: `git push -u origin add_pubkey_[firstname]-[lastname]`
1. gitlab: open a MergeRequest, Review, Merge
1. **Status**: New User has access to SOPS-Encrypted Secrets within Project Repo
1. **Hand-Off**: Proceed to next steps; Instruct New User to verify access to secrets
#### Example
**Prerequisite**
Obtain Repo
```shell ```shell
# E.g. update sops config for DevNSO # E.g. update sops config for DevNSO
% git clone git@git.dev-at.de:cloud-solutions/nso/devnso-adp-argocd.git % git clone git@git.dev-at.de:cloud-solutions/nso/devnso-adp-argocd.git
% cd devnso-adp-argocd/ % cd devnso-adp-argocd/
``` ```
**Create Branch**
```shell #### Commands
## OPINIONATED GIT - use preferred method
git checkout -b add_pubkey_max-musterman origin/main
```
**Configure Project Repo for New User**
<!-- TODO: auto-determine group with git remote show origin -->
<!-- TODO: auto-determine secrets files by integrating the 'find . -name secrets.yaml' in the script -->
```shell ```shell
# List available groups # List available groups
# Output:
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups
# INFO: listing groups # INFO: listing groups
admin admin
automation automation
devnso-adp-argocd devnso-adp-argocd
# For a given group, update sops config AND all secrets files - New Users cannot add themselves! # For a given group, update sops config
# Output: % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group devnso-adp-argocd --find_secrets
# RUN: generate SOPS config # RUN: generate SOPS config
# RUN: gpg --import *.gpg.pub # WARN: no secrets file passed in, make sure to call 'sops updatekeys' on secrets files
# RUN: sops updatekeys ./loki/loki/secrets.yaml
...
# SUCCESS: all users with keys in this dir should have functional keys
```
**Commit the changes, Create Change Request (PR/MR)** # [OPTIONAL] For a given group, update sops config AND specified secrets file
```shell % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd -s ./adp-api-devs/adp-api-devs/secrets.yaml
# git: commit the changes to `.sops.yaml` and secrets files (`secrets.yaml`) files
% git add .sops.yaml $(find . -name secrets.yaml)
# **CAVEAT**: check for other changes with `git status` ! The files do not always follow consistent conventions.
# output:
% git status
...
no changes added to commit (use "git add" and/or "git commit -a")
% git commit -m "adds max.musterman to sops config"
git push -u origin add_pubkey_max-musterman # commit the changes to any .sops.yaml or secrets files, e.g. with
## OPINIONATED GIT - use preferred method
% git add -p
# 1. review changes to the .sops.yaml
# 2. press 'y' to accept the changes
y
% git commit -m "adds <firstname>.<lastname> to sops config"
% git push
``` ```
Now proceed to with the remaining steps, i.e. gitlab: open a MergeRequest, Review, Merge At this point, the New User has been configured and can grant themselves access to any of the secrets files in this project.
## 3. Onboarding: [New User] Configure SOPS ## 3. Onboarding: [New User] Configure SOPS
@ -164,18 +118,30 @@ SOPS is used for encrypting secrets, e.g. credentials for various systems
## Install ## Install
1. **Install Sops** 1. Install Sops:
1. https://github.com/getsops/sops
- Note: https://github.com/getsops/sops
Note:
* MacOS: If desired, one can also use brew to install sops: `brew install sops`; although this is not officially maintained, [the formula is essentially the same as the official installation instructions](https://github.com/Homebrew/homebrew-core/blob/4496ce5131bc09e7065fa0aa8fb96366a3df6477/Formula/s/sops.rb) * MacOS: If desired, one can also use brew to install sops: `brew install sops`; although this is not officially maintained, [the formula is essentially the same as the official installation instructions](https://github.com/Homebrew/homebrew-core/blob/4496ce5131bc09e7065fa0aa8fb96366a3df6477/Formula/s/sops.rb)
1. **Configure Sops**
* Add the following to your `~/.bashrc` or `~/.zshrc` - but _not_ to your `~/.profile` as it must be set per session: 2. Configure:
Add the following to your `~/.bashrc` or `~/.zshrc` - but _not_ to your `~/.profile` as it must be set per session:
```shell ```shell
# Enable interactive passphrase prompt for SOPS # Enable interactive passphrase prompt for SOPS
export GPG_TTY=$(tty) export GPG_TTY=$(tty)
``` ```
1. **Verify SOPS Installation and Key Configuration**
1. `./verify/usr_confirm_keycfg.sh` 3. Verify
Run the following command to verify local SOPS installation _and_ key configuration:
```shell
# Follow the interactive prompts:
./verify/usr_confirm_keycfg.sh
```
## Usage ## Usage
@ -190,9 +156,7 @@ Note: The `GPG_TTY` is necessary to have the password prompt appear. src: https:
Note: `secrets.yaml` is just an example; the file can have any name Note: `secrets.yaml` is just an example; the file can have any name
# Playbook for Removing Expired Keys ## 4. Offboarding: [Existing User]: Archive Expired Keys (EOL)
## Offboarding: [Existing User]: Archive Expired Keys (EOL)
To mark a key as expired: To mark a key as expired:
1. move it to the `archive/` dir 1. move it to the `archive/` dir
@ -218,7 +182,7 @@ find groups/ -name ${keyname}
# For each group, update sops config in that repo # For each group, update sops config in that repo
# Example: # Example:
% cd devnso-adp-argocd % cd devnso-adp-argocd
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group devnso-adp-argocd --find_secrets % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd
# now git commit, push, etc # now git commit, push, etc
``` ```

@ -1,42 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
tPQpHpp5OcriKFWxiZSM41Wm5yHn5Yc=
=BUTZ
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaD2xXRYJKwYBBAHaRw8BAQdAKL1LP1gP7t3R41tNdVH5cUu7OksuY7FDwoq0
EX/IznG0KkR1c3RpbiBCbGVzY2hrZSA8ZHVzdGluLmJsZXNjaGtlQG5ldGdvLmRl
PoiTBBMWCgA7FiEEjWAJEv1C71NS043SL9cfRX73u4sFAmg9sV0CGwMFCwkIBwIC
IgIGFQoJCAsCBBYCAwECHgcCF4AACgkQL9cfRX73u4trEAD/Z/e5IU9+PyU0oSFT
tu9i2t2muFwrNdxsrkgATNJoJqEBAPGRo5apeOwH/8rqfOnK89AMUPPD9DS5Giqg
RPOT4/UOuDgEaD2xXRIKKwYBBAGXVQEFAQEHQKI0sArCldO4QoHZZNUDpk2e92WC
aJSpEpqaQ1ODqGVwAwEIB4h4BBgWCgAgFiEEjWAJEv1C71NS043SL9cfRX73u4sF
Amg9sV0CGwwACgkQL9cfRX73u4tnzQEA5+wX3G6uInM8rkMCGxaZ4/0gV30Kc2ye
1YqWNjZBgKUBAKLeSWj7VzdV/nZ/rgmrZx44pQxbsv5IYaZbYKxanuwD
=vPAd
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaBTWbhYJKwYBBAHaRw8BAQdAkvaY0BFbzEITBsCR3A8JnjrWZ/4orlFY7Ixe
aUSE/de0Hkt5cmEgS2VyeiA8a3lyYS5rZXJ6QG5ldGdvLmRlPoiTBBMWCgA7FiEE
u6DCZkei2Hq6GG1vPShOpyX5VS4FAmgU1m4CGwMFCwkIBwICIgIGFQoJCAsCBBYC
AwECHgcCF4AACgkQPShOpyX5VS5KCAEA5Fc+i9r1+xVRKqlf+XqX6PT1uhWKyrR4
+p6D0Q8/aCcA+wSuUcrwSNTcxfKF65wKyuOiNw5lWTTYq8vcwjIDYgUIuDgEaBTW
bhIKKwYBBAGXVQEFAQEHQBddu45Nfx+u3scccplH1OBLxSeOn6nKiSyVrrd8ySII
AwEIB4h4BBgWCgAgFiEEu6DCZkei2Hq6GG1vPShOpyX5VS4FAmgU1m4CGwwACgkQ
PShOpyX5VS4XpQD+JFrljM9ywUV17RjxZQEWpvviHGnWXYiayy/LbULb0M0A/iba
nN8E8ow17zqpng5Jqm7a/IYy8yQsNB0FYf6ddMMC
=FqJe
-----END PGP PUBLIC KEY BLOCK-----

@ -124,17 +124,18 @@ function main(){
fi fi
# "anchor" for actions relevant to this script # "anchor" for actions relevant to this script
repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)" repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)"
# OPTIONS: ARGPARSING and VALIDATION # OPTIONS: ARGPARSING and VALIDATION
# assume location of script as running directly from repo with keys (instead of as a standalone packaged tool) # assume location of script as running directly from repo with keys (instead of as a standalone packaged tool)
keyfiles_dir="${repo_root}" keyfiles_dir="${repo_root}"
# dir containing .sops.yaml # assume location of secrets config file in pwd
sops_config_dir="" sops_config_dir=""
# path to group definitions # path to group definitions
groups_def_dir="${repo_root}/groups" groups_def_dir="${repo_root}/groups"
# optional:
opt_list_groups=0 opt_list_groups=0
# optional: specify "groups"
groups_list=() groups_list=()
opt_find_secrets=0 # optional: secrets files to be updated
secrets_file_list=() secrets_file_list=()
while (( $# >= 1 ));do while (( $# >= 1 ));do
@ -150,8 +151,6 @@ function main(){
-lg|--list_groups) opt_list_groups=1 ;; -lg|--list_groups) opt_list_groups=1 ;;
# ARGS: [optional] [list] specify "groups" which correspond to e.g. job groups, projects, etc # ARGS: [optional] [list] specify "groups" which correspond to e.g. job groups, projects, etc
-g|--group) groups_list+=( "${2}" ); shift ;; -g|--group) groups_list+=( "${2}" ); shift ;;
# ARGS: [optional] update all "secrets.yaml" files found below .sops.yaml location
-f|--find_secrets) opt_find_secrets=1;;
# ARGS: [optional] [list] specify files containing sops-encrypted secrets # ARGS: [optional] [list] specify files containing sops-encrypted secrets
-s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;; -s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;;
# ARGS: [optional] [list] specify files containing sops-encrypted secrets # ARGS: [optional] [list] specify files containing sops-encrypted secrets
@ -185,22 +184,12 @@ function main(){
# locate appropriate sops config if default assumption not found # locate appropriate sops config if default assumption not found
# dev note: '2> /dev/null' to disable debug output # dev note: '2> /dev/null' to disable debug output
sops_config="$(fn_sops_locate_config_in_git_repo 2> /dev/null)" sops_config="$(fn_sops_locate_config_in_git_repo 2> /dev/null)"
sops_config_dir="$(dirname "${sops_config}")"
fi fi
# Paths to Secrets Files
if [[ "${#secrets_file_list[@]}" != "0" ]]; then if [[ "${#secrets_file_list[@]}" != "0" ]]; then
for secrets_file in "${secrets_file_list[@]}"; do for secrets_file in "${secrets_file_list[@]}"; do
test -e "${secrets_file}" || (echo "E: could not locate file with secrets, tried: ${secrets_file}" && exit 1) test -e "${secrets_file}" || (echo "E: could not locate file with secrets, tried: ${secrets_file}" && exit 1)
done done
fi fi
if [[ "${opt_find_secrets}" -eq 1 ]]; then
# DEV NOTE: this is far too complicated
# loop through find, src: https://stackoverflow.com/questions/9612090/how-to-loop-through-file-names-returned-by-find
while IFS= read -r -d $'\0'; do
secrets_file_list+=("${REPLY}")
done < <( find "${sops_config_dir}" -name secrets.yaml -print0 )
fi
# /VALIDATE INPUTS # /VALIDATE INPUTS
# /OPTIONS: ARGPARSING and VALIDATION # /OPTIONS: ARGPARSING and VALIDATION

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ9LiixYJKwYBBAHaRw8BAQdAo9TZ7FbNytrM9Odrm1fg4SV3AurPr6B4Z6wT
bYmc0Iu0NUNocmlzdG9zIEFkYWxpcyAoR1BHIEtleXMpIDxjaHJpc3Rvcy5hZGFs
aXNAbmV0Z28uZGU+iJMEExYKADsWIQT38yjw5JWOTHhZd+I7iqC6q62v5AUCZ9Li
iwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRA7iqC6q62v5JTTAP0R
ME/a4n1TkA7QtUc06KEhdYPld8T3udBusk67jWLGMQEA/niJGzcmoSbNDGvC6hLi
fw9ZlohBFItF8Dur/mLPWgS4OARn0uKLEgorBgEEAZdVAQUBAQdArq2uimWJutt0
DsCEPAwlirHZI476ks1eNr8n3RTzbhEDAQgHiHgEGBYKACAWIQT38yjw5JWOTHhZ
d+I7iqC6q62v5AUCZ9LiiwIbDAAKCRA7iqC6q62v5KgjAP9Q/dfkGy0/9cKJsmPD
emKfbZbQ8FrNX70+oYMGxjV3WwEAyol9yD1pJSt1g3R9/oHo7/KW5ZsXbVIx/Vqc
uskiLgA=
=sg0j
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaEBF9xYJKwYBBAHaRw8BAQdA6syYUNOSScarxQGom8QcmY/yaK+OWhAQ68IY mQINBGJWv54BEADYY6n9rrteddJ99h3erlB3pgJV+ixR7Qb/sCRFiMGcEV9PLiZr
dj7KxzW0JENsYXVzIFBhZXRvdyA8Y2xhdXMucGFldG93QG5ldGdvLmRlPoiQBBMW 8vkRlrRORaIxFXa/xnYrQ12oPbXjWDajp389W7pRHTgw3gCKRVk8eb1rwT9ZbE/U
CgA4FiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwMFCwkIBwIGFQoJCAsC trAL7ug7C+hPPkqiByHBbJ9mSfU1SrnLCAO8QFP0SXn6BVB6qSpouuorgZKwwjMm
BBYCAwECHgECF4AACgkQNDzxIYpmTTHvVQEAi2IabzcpNK6ZBmsP2NL52oXhY4iM Bef5Qgb9RfcrCoGQV/ks8za/aPUOuqxhyEm6bmys0jy5UhkYEvvT/RIZFD/mpv/P
bzDEtJul0E/hcvEA/3cPIZ9lIB8WeA6SK8nAgV5AlxGXsCdHsv55A2F/vDEIuDgE hSOZNhQ2Job1PQgaIsM5KH7HpxOjZSjaPeA/buhyFTKCkAd474BHUWIAVxD65Kx3
aEBF9xIKKwYBBAGXVQEFAQEHQNGjADOks0AjX4qlQ3xgSOP0RBIELjqYBH/Ihiwf n8pWIgbdd6kPgEOCycVx1SyNfdwz7WRINKZlTc3lJYLFy72xzhs0w4W85ssxB8mQ
eQ9ZAwEIB4h4BBgWCgAgFiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwwA jwjoauMTGV+dqgsnqBIbDpYE16avUvS988vLicXhZb+dz8jmwxqBojwxGi/IvhLv
CgkQNDzxIYpmTTFyOQEArR4vKYPP9cD6Plsn0pK4hONApCEHRKGC0d3JtUkZvJAB 8x+2RD4ZZt3BpEnGI7JRN4FBpAK/kFGWbLKFgJZa+7cGfmC40zfTDqNdegukjtt0
ALaWq4tjsPm4wF6D9RMN9tCuPPVtt/FbGzVBlm3OP2sL puz5X64kJMGQ8ZucmG5x8fgW9qZv7bDZUXVDWIz2QynUxmDuGjzXyTIYlp9DJyQL
=PsTc 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
1vC99G5EtuXL1U37Qp8Kug==
=vm8K
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,51 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=++7P
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ9Lk+hYJKwYBBAHaRw8BAQdAAImByKSkf+XTHj9o6BareP+aIhkTz1KV+4ZI
AsSgv/u0OURhcnlsIFNhdWVyLU5ldW1hbm4gKFNPUFMpIDxkYXJ5bC5zYXVlci1u
ZXVtYW5uQG5ldGdvLmRlPoiTBBMWCgA7FiEEAUMBn2JGntWmoBbCGcp2TTdZD58F
AmfS5PoCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQGcp2TTdZD5/T
6gEAkVq5UnUPs6poLj2Tdqzlj13wToRpP3WFmDaa4mB9uM0A/1Yfde+hFFKIWPFR
hnfXeBH7HLHLC6EC7U58B8P8/aELuDgEZ9Lk+hIKKwYBBAGXVQEFAQEHQJZ2QRYW
XQ6N/wtLePHyafLb+D4wW4Di5SwoO2P/RwVZAwEIB4h4BBgWCgAgFiEEAUMBn2JG
ntWmoBbCGcp2TTdZD58FAmfS5PoCGwwACgkQGcp2TTdZD5939AD/U1HH5hOyo5n7
660ZFL5PoZpm9yxPwAUPa+Mp63QR/IQA/RNlBVGaCRlgWsPa7COo6n7yc0XfB6bi
on9JkIJgK0oB
=PxAk
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1 @@
../../lee.watson@netgo.de.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_poc_workload01.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_qa.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_qanso.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_rancher_poc.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_sspdev.gpg.pub

@ -1 +0,0 @@
../../christos.adalis@netgo.de.gpg.pub

@ -1 +0,0 @@
../../daryl.sauer-neumann@netgo.de.gpg.pub

@ -0,0 +1 @@
../../kevin.bauske@netgo.de.gpg.pub

@ -0,0 +1 @@
../../lee.watson@netgo.de.gpg.pub

@ -1,15 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaWUQSBYJKwYBBAHaRw8BAQdAGT3vXIrTITynXkjRlamZJ1jLs2BffQVz3Iwj
SZpFq3W0LXN0b2VsdGluZy1hZHAtcHJvZCA8TlNPLVRlYW0tRGV2T3BzQG5ldGdv
LmRlPoiTBBMWCgA7FiEE6ETrYVE2JueMSyYw4oFhS7o3stEFAmllEEgCGwMFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ4oFhS7o3stE2ogEAqUcUv6AEHqvL
Xy0PFAm/3wAdXsenNXvoqo4VYb2OCHMBAM6ArZXqwh69C0eXqyuVtsOlG19Cqeby
z2uNWy0IdPQPuDgEaWUQSBIKKwYBBAGXVQEFAQEHQGiJ5ojUcda4EI6pNnQECBZB
O0CYeGZdT2mw2KpjjkwUAwEIB4h4BBgWCgAgFiEE6ETrYVE2JueMSyYw4oFhS7o3
stEFAmllEEgCGwwACgkQ4oFhS7o3stGRYwD/X69urpUy3GpaiCLRa62MAXbNacbZ
wokxqcpUc9ygHn8A/1zSkEyzp3dm86wv6oY70FfR4K1dfj73ltD39l7UtD8M
=6EQP
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +1,41 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaPiOmBYJKwYBBAHaRw8BAQdAgwGFW1hsK88TTcY4Iw8GZSVAknR0iRKnOZL3 mQGNBGUf5j4BDADSd88HFIDGQseOiuJ2TXkqGZE//VDJFcXLQrbwTQaZXSLPkVc9
J+cp2fu0KUphbiBKYW50emVuIChzb3BzKSA8amFuLmphbnR6ZW5AbmV0Z28uZGU+ mZeTKbaEup4H0TYIR6cIUGEuBKRNXvxFJeriurC6jiy/ThNwW2tfRdSGxjyfjRro
iJkEExYKAEEWIQS5LdybkIvzkXdY0ihEbFHgSa44ygUCaPiOmAIbAwUJA8JnAAUL xcUWIogg24dOikoCb7QS3lCt/cAU4qEwmjFKX5Oqjg/ZdN+ODUlxl2pbLeDez93r
CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBEbFHgSa44yphwAQDIKCvEYJ2x X/eBEFLFxPIZIRn36GNL1M6b/nSNkhMUfV/Z+O8NUP3NoU/bNsiFyJy07zlPLap6
gd8QClL31SGpD2/5fJ4x/9cXa2pwmcPo4AD/dWYsVwX6iisiE46U2IIsL7ojDa2J xBRyBnn7zCAnuMGtvUcPVr9IpSc1AOHmMVBvhV8UpYhAX3+Mz+0WuaFRABMmkXOm
IYJPrb/HrL8w2Ay4OARo+I6YEgorBgEEAZdVAQUBAQdA9qvcdBmc2TvcReuAu3YA XoO++6jVYwXh6b4ugsF3OtAJ+NYnbF4jWEqiGjVNbGEX1ikRMxlgFwM28VMNXc04
ePpddYljq1L7ihWZDUWrtRMDAQgHiH4EGBYKACYWIQS5LdybkIvzkXdY0ihEbFHg FduQAArBRmsC5IFL6OoO9Ybx6y8eJ7/NVo/3ry6adnCUizzQTwSFn/iguvFs8xKG
Sa44ygUCaPiOmAIbDAUJA8JnAAAKCRBEbFHgSa44yi14AQDPHLsJLjE7csjNPVGi NBYHlKZLAuqvYYJdLE9Jvs8Hy/ERGNwphl741CEcWHWrLVRljIh2b343uAGIRdoT
9XUcfq54ScEc698xyuk8LFMSKAEA0dzeY7tnfGNr7m2jq3odopRmMo99Xaw5h4YA otCGA4wJMK4ePZcAEQEAAbQiSmFuIEphbnR6ZW4gPGphbi5qYW50emVuQG5ldGdv
cQD/yQo= LmRlPokB1wQTAQgAQRYhBLpjKJSNUBdfGWqrURHzJGA9Et1WBQJlH+Y+AhsDBQkD
=rCLM wmcABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEBHzJGA9Et1WL0UL/1si
cI0FMbC+H/zF2WRqNz4LcjV8SG9oTzwdeMV1CWdL1DTkbrWxHlIPVlwYmegAlzo9
9lOJEKcNUwhfyui43cLVBMmL7LULPwCOu2r+DGtQhbqI6tjKz5gNYLiBsc718M8Y
V/V//EcWTtG2uJFQ/Axq79r/HZXZ0/J8P9UXN5aVJXkhhJxZZn8QtcUblnKAyykz
QFac3m0b3SayPRSEVfDszOzrc2bFZiwav6dVBIyBpf9qrCChEAIpzqLzf7pxvWz9
VO7MzQaYYX3g4clkId1sCGPhYQuzdyCSVVyLFeGtFFnk/JeA7Bg3xaKC/aYSpaSZ
qFaXhDv2+pQ9MzYnSZ+i8IhBi7k3lLJbzDWTV0SJLvxoUIpyNL9ezwV7xweWRjQV
9XLCearZPoWxaAOqC8+YOG6FYtIW5pbVQ4j59FZz0UexD+kZHFV5TrZX0EYLkzrh
n/ZXEsMhCtok6eqyNe9DgRYnIH0QMHOSZf807D35R/zUzBwnOOtnmfxRwtksrbkB
jQRlH+Y+AQwArPtb+qWExEMBtUcsfq0P6+BDaJHcdP+PPb3Oa8plmDjRjTf7Exsm
KwQTGRZbYRlNFfh8072TSiu5rhNLyCfY0a79DPk2r1r3i4czx2x+m2m7ao0ZsOzE
tkdejlqxi9TIjWhxdSJHHcizeh1tOJU7TZhG04CW8bRtS02L4hCO7JKq+KTZm4Qk
IE0xaO0qDxnpmosK1jQmiURFHprOl2ozJ9HqeUjfSi93baxcVzrbbBbd+OM7JU4d
+cokhvTQdPPRhaUz5i6wJm2mFkjwr308SgzLsohF7Q0tP+wY7rsSeOscxo8sRuXc
DRpx1aJ6gLZmB2bPjqR0p9kpJy448x4KOBBXkKVFNzvRuG4oZ8SPO1DnP9CroHoO
0l+4NWCrHj7EWaj7mgLyNbJjkKULjwpjTsg3nWJj8QrISQa7ejZxVU96Kyk5WGEK
gvZz3/Eocrn+D2vFd0GOEN1qSxEaBLkynsTLaj4+7cm3V/QUZyrIuUjtYyhL5U/+
HeiZSaM5Mk99ABEBAAGJAbwEGAEIACYWIQS6YyiUjVAXXxlqq1ER8yRgPRLdVgUC
ZR/mPgIbDAUJA8JnAAAKCRAR8yRgPRLdVmnxC/9IntQx0YGcLlIXNEIsTE6Q99Gz
TWuTGq5dZCKxuRoT1V5Tmj9zJ7hS3qS+jK+gQKucecMWHogyHJmJjr9OY5A2E3yg
fL4qr1ZrN4i5ozTKd6r19CkU8YupjexKQ4pwSwaj6ovtjr42XmMXTyZhRx02XNvB
cj6Yavr/+586+MKINSfTEFoat74cyUM/SnORkQB+Z+XEPVnqN+gk5nbq1v72mdWV
ooEKvlXu4samcaJaGSYHGH2WXWwsJ0mnA00AhshwC9i+6RCcJTieHIngtTfQRQ+1
joR8eMvLQTj09Nt5PodcjfQ2jxBKtnQTcyssV1V/Jf/tsAa1pP1unTDHfOOphAXf
MZyhszMs7816JcAwtulz+LAq3QO2Ogp4oVE0dKk7vyIJ0hCtRtDDl6t94DjDSzUl
U91KMpm3KZiXSTuBEVuZuU/GCKmQ5OyVKWMTzLlBHvp96oj8+WsJzTkuJwBHWFmZ
uiK1kd08gp9i56uy5tkQtYJGpcsRNJNSnyAbEcM=
=4tfB
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaVu6PBYJKwYBBAHaRw8BAQdAbz/r57Lm/FBp1dm5BArSxWkBw8eOd5LAEgrz
UF09DFu0Hkpvc2UgTW9yYSA8am9zZS5tb3JhQG5ldGdvLmRlPoiTBBMWCgA7FiEE
PioaTZqHkx9OqHfB3V9C1RR7X08FAmlbujwCGwMFCwkIBwICIgIGFQoJCAsCBBYC
AwECHgcCF4AACgkQ3V9C1RR7X0+GiQEAlsxJIg5oohIWZow4q92KpU9CpzQBeehe
U4fYhF5SCyMA/2MsjnAf/Vl4LJ3uPrT2TIWWK+GmYMJCkUAXieUUZWEKuDgEaVu6
PBIKKwYBBAGXVQEFAQEHQCvMecH8iY4hOktm6KR9iuBfqOxxbhbX8onTHWBo0PgC
AwEIB4h4BBgWCgAgFiEEPioaTZqHkx9OqHfB3V9C1RR7X08FAmlbujwCGwwACgkQ
3V9C1RR7X08GxwD/TfvxybcTthZKKsBDXkAk1DtWeGtylILM2o97G1+b3TYBAPUq
lIaCk1ONGHQn8OMYFsDz47s3IuWGz6ug7E3RD+sI
=+/5q
-----END PGP PUBLIC KEY BLOCK-----

@ -1,40 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=nsrr
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEabqreRYJKwYBBAHaRw8BAQdA7g95BK26aTSQrEt+tIU5zca255cFpcNnX247
LUtsgni0KFJvYmVydCBLZXJzdGVuIDxyb2JlcnQua2Vyc3RlbkBuZXRnby5kZT6I
rwQTFgoAVxYhBDFUmDi5xHQMO5dD4a8dHwwb/7FxBQJpuqt5GxSAAAAAAAQADm1h
bnUyLDIuNSsxLjEyLDIsMQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
CRCvHR8MG/+xcfiaAQCC2SJIzbwax8j1YaIbFrzHnEpAJwk9T1KUY8YUZ6cB6wEA
2uuKzW7+Jci3gRyZd0955nZaMfcGiNT8Bm/Tbpv51Aa4OARpuqt5EgorBgEEAZdV
AQUBAQdASZ+QQhYV6o99vYwbRgMK9DuarCv0T+zvuBUacHkwJ3YDAQgHiJQEGBYK
ADwWIQQxVJg4ucR0DDuXQ+GvHR8MG/+xcQUCabqreRsUgAAAAAAEAA5tYW51Miwy
LjUrMS4xMiwyLDECGwwACgkQrx0fDBv/sXE1CgD8CCYs7PTvMVLeuL2vW5d3UXDA
mcOfLsln58mlWbN/04kBAMtAhlusXias4q/TlCMNkM4jfxcWq2eGu3MJV3NuHO0O
=+n3d
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ/fhOxYJKwYBBAHaRw8BAQdAu8VIhoCmqQSnlln72LVE2sW5cE5GS84pxwyh
HMbdeUm0Pm5zby1hZHAtbWdtdCAobnNvLWFkcC1tZ210IGdwZyBrZXkpIDxOU08t
VGVhbS1EZXZPcHNAbmV0Z28uZGU+iJMEExYKADsWIQSStkvV+zaOVwy5b4nKfQzD
RUpClAUCZ/fhOwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRDKfQzD
RUpClLG8AQCv3LTFvw+SzZWa0sLnvahtSR8wIpNw52+qelWDwaMYmwD+N7KhqarI
V6+TWJu9uxpc+RWk/vjlTGDchPeDoCs+xQ24OARn9+E7EgorBgEEAZdVAQUBAQdA
g8dAmTCmmnYBBqPlZDS+FMUpWMhAvCVUfmYai+ZHDQoDAQgHiHgEGBYKACAWIQSS
tkvV+zaOVwy5b4nKfQzDRUpClAUCZ/fhOwIbDAAKCRDKfQzDRUpClDChAQDI0wF7
PGDmqbGOXVKv0uPbTTLhu7oXiBq//blhkhCrjwD8Du/aEdCYoz9m6tobA01sKU+4
Gt1e4njTYlntGDL2kwo=
=hFQO
-----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
jFFod9cNJ83PKqPUAJJa03e6zyhiKg==
=gk4m
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaJMgXRYJKwYBBAHaRw8BAQdAE6GbHO8yvEW3377zNntvGCj5lJJ1l0h5Bk/6
+cKgWJ20RG5zby1hZHAtc3RhZ2luZyAobnNvLWFkcC1zdGFnaW5nIGdwZyBrZXkp
IDxOU08tVGVhbS1EZXZPcHNAbmV0Z28uZGU+iJMEExYKADsWIQTJA8BGoGPfv49B
xldrJs9JaBKwCgUCaJMgXQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
CRBrJs9JaBKwCvYpAQDWvMMhe+v3nIttUfEpln+8YQ8KSezLiCpJLQB4o5zt5QD9
Eo/ZIFriX11Y5yxnEjoFkH1LXEj66oGpMTjTojLpaA24OARokyBdEgorBgEEAZdV
AQUBAQdAuvufjrlZjxi5bpQ4MrR/Mk6qxPqU8MFQUc2Df+/alUwDAQgHiHgEGBYK
ACAWIQTJA8BGoGPfv49BxldrJs9JaBKwCgUCaJMgXQIbDAAKCRBrJs9JaBKwCloU
AP4vOcXLiHQ2nkbSm6CeP//0GX0WpsxMniOlqVxkZM5J+gEAu+IulrGA6fNrKNiv
cHh/X5eSsexomJXmxZ8dUOOhFw4=
=sfF9
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaPtbMxYJKwYBBAHaRw8BAQdArKya+q6E/VlCAURWAj3Ggnia56yVrWSE7Jdp
cefGole0HW5zby1hZHAtdGF4IDxkZXZvcHNAbmV0Z28uZGU+iJMEExYKADsWIQSR
K9ShLWb5kxw/39GTy+xZ+yN5eQUCaPtbMwIbAwULCQgHAgIiAgYVCgkICwIEFgID
AQIeBwIXgAAKCRCTy+xZ+yN5eS4hAPsG/JbybnexMPfb7gsIiqSheeTvrGQnU1bO
2Ouz6e0FcwEAgQKoO2dbkM3/webS1F7zX0p0o1XZMW1ecHesTvQF6AW4OARo+1sz
EgorBgEEAZdVAQUBAQdA70MTcqVm07fe5cZGkR3evSc0yVRM/7WlVmS3N1JRER0D
AQgHiHgEGBYKACAWIQSRK9ShLWb5kxw/39GTy+xZ+yN5eQUCaPtbMwIbDAAKCRCT
y+xZ+yN5eRveAP49bhetFkuylYLcgEPKIWZom/0clG96YVUIvsCi42SeBQEA4CrN
JEoxwAR/oN1gcCbN2g2fqmirO1PbEQ4yPTLYVwk=
=yjPi
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaWUQSBYJKwYBBAHaRw8BAQdAGT3vXIrTITynXkjRlamZJ1jLs2BffQVz3Iwj
SZpFq3W0LXN0b2VsdGluZy1hZHAtcHJvZCA8TlNPLVRlYW0tRGV2T3BzQG5ldGdv
LmRlPoiTBBMWCgA7FiEE6ETrYVE2JueMSyYw4oFhS7o3stEFAmllEEgCGwMFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ4oFhS7o3stE2ogEAqUcUv6AEHqvL
Xy0PFAm/3wAdXsenNXvoqo4VYb2OCHMBAM6ArZXqwh69C0eXqyuVtsOlG19Cqeby
z2uNWy0IdPQPuDgEaWUQSBIKKwYBBAGXVQEFAQEHQGiJ5ojUcda4EI6pNnQECBZB
O0CYeGZdT2mw2KpjjkwUAwEIB4h4BBgWCgAgFiEE6ETrYVE2JueMSyYw4oFhS7o3
stEFAmllEEgCGwwACgkQ4oFhS7o3stGRYwD/X69urpUy3GpaiCLRa62MAXbNacbZ
wokxqcpUc9ygHn8A/1zSkEyzp3dm86wv6oY70FfR4K1dfj73ltD39l7UtD8M
=6EQP
-----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
4hXDgcudtCquYStf
=oxRT
-----END PGP PUBLIC KEY BLOCK-----

@ -1,37 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
WrZm
=4hZt
-----END PGP PUBLIC KEY BLOCK-----

@ -1,42 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
omEOA9Ja52BBiAbwxNXX5zJr5wq9xAc=
=vKTw
-----END PGP PUBLIC KEY BLOCK-----

@ -1,53 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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 /chkgw==
qOP6EPU498zUpkaLaxyT =57sy
=Dc8a
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
JhujuU9eIqCXYO4i3GW2OMo=
=cYe4
-----END PGP PUBLIC KEY BLOCK-----

@ -2,64 +2,68 @@
# CAVEAT: DO NOT USE THIS FILE AS-IS in another project; copy it and remove the unauthorised users # CAVEAT: DO NOT USE THIS FILE AS-IS in another project; copy it and remove the unauthorised users
# Fingerprint | User Type | User ID # Fingerprint | User Type | User ID
# 533A89DD49FBCDA2BF014A936C962DD77704154A | autom | build-infra <NSO-Team-DevOps@netgo.de> # 533A89DD49FBCDA2BF014A936C962DD77704154A | autom | build-infra <NSO-Team-DevOps@netgo.de>
# EFBBBB131CF1D863005C18868C8C09CA950B1DFF | autom | smardigo automation DEMOMPMX (smardigo automation DEMOMPMX) <NSO-Team-DevOps@netgo.de>
# A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 | autom | smardigo automation DEV (smardigo automation DEV) <NSO-Team-DevOps@netgo.de> # A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 | autom | smardigo automation DEV (smardigo automation DEV) <NSO-Team-DevOps@netgo.de>
# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de> # C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de>
# 0E8955A79FF4687A3ACF78E50B5E444C75867E58 | autom | smardigo automation DEVNSO (smardigo automation DEVNSO) <NSO-Team-DevOps@netgo.de> # 0E8955A79FF4687A3ACF78E50B5E444C75867E58 | autom | smardigo automation DEVNSO (smardigo automation DEVNSO) <NSO-Team-DevOps@netgo.de>
# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de> # 98235A419EA3586BFF4E3FC692D4A5202A0D9519 | autom | poc-workload01 (poc-workload01 gpg key for sops) <NSO-Team-DevOps@netgo.de>
# C903C046A063DFBF8F41C6576B26CF496812B00A | autom | nso-adp-staging (nso-adp-staging gpg key) <NSO-Team-DevOps@netgo.de>
# E5B4FE1E0209DFFE320D2A2E47087747D89B72EC | autom | smardigo automation PRODNSO (smardigo automation PRODNSO) <NSO-Team-DevOps@netgo.de> # E5B4FE1E0209DFFE320D2A2E47087747D89B72EC | autom | smardigo automation PRODNSO (smardigo automation PRODNSO) <NSO-Team-DevOps@netgo.de>
# 890B2EB48F343D4C6DB9DA0916826F30002D3C1D | autom | smardigo automation QA (smardigo automation QA) <NSO-Team-DevOps@netgo.de>
# 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36 | autom | smardigo automation QANSO (smardigo automation QANSO) <NSO-Team-DevOps@netgo.de>
# 42AA7F6BF795490C1A522C730ED842BE1216E0C1 | autom | rancher-poc <NSO-Team-DevOps@netgo.de>
# B4BAA59056DC362809388F3F2119881095EA7DED | autom | sot production (sot production gpg key) <NSO-Team-DevOps@netgo.de> # B4BAA59056DC362809388F3F2119881095EA7DED | autom | sot production (sot production gpg key) <NSO-Team-DevOps@netgo.de>
# DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) <NSO-Team-DevOps@netgo.de> # DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) <NSO-Team-DevOps@netgo.de>
# AC9B0DB590F4AE2017C2AD836113AEB66C510C3F | autom | ssp-prod <NSO-Team-DevOps@netgo.de> # AC9B0DB590F4AE2017C2AD836113AEB66C510C3F | autom | ssp-prod <NSO-Team-DevOps@netgo.de>
# 43DE8A01ABD706717C36018C48C47C125C022F29 | human | andreas.rother <andreas.rother@netgo.de> # 5623CCAD4242CC3E0225A62986AF09C173781578 | autom | smardigo automation SSPDEV <NSO-Team-DevOps@netgo.de>
# 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 | human | Annika Biermann <annika.biermann@netgo.de> # 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 | human | Annika Biermann <annika.biermann@netgo.de>
# 9F5341688D2F9024A15541C9E02949D0F7769E2C | human | Bas Cancrinus <bas.cancrinus@netgo.de> # 9F5341688D2F9024A15541C9E02949D0F7769E2C | human | Bas Cancrinus <bas.cancrinus@netgo.de>
# F7F328F0E4958E4C785977E23B8AA0BAABADAFE4 | human | Christos Adalis (GPG Keys) <christos.adalis@netgo.de> # 17B8FDF68AC123EB666934B17D0DF6EC048A5D77 | human | Claus Paetow (Firmenadresse) <claus.paetow@netgo.de>
# 659FDED43DE155FB772A339B343CF1218A664D31 | human | Claus Paetow <claus.paetow@netgo.de> # 03ADBCD31737EB474A4BD235CE615FAF927A2054 | human | Esther Fuhrmann (GPG Key for SOPS) <esther.fuhrmann@netgo.de>
# 93593B8B0B7B88EA2DCC99F9388B6A662C356822 | human | Daniel Risse <daniel.risse@netgo.de> # 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487 | human | Hans-Peter Wissenbach <ext.hans-peter.wissenbach@netgo.de>
# 0143019F62469ED5A6A016C219CA764D37590F9F | human | Daryl Sauer-Neumann (SOPS) <daryl.sauer-neumann@netgo.de>
# 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke <frederik.marticke@netgo.de> # 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke <frederik.marticke@netgo.de>
# 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E | human | Hoan To (Hoan To GPG Key) <hoan.to@netgo.de> # 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E | human | Hoan To (Hoan To GPG Key) <hoan.to@netgo.de>
# B92DDC9B908BF3917758D228446C51E049AE38CA | human | Jan Jantzen (sops) <jan.jantzen@netgo.de> # BA6328948D50175F196AAB5111F324603D12DD56 | human | Jan Jantzen <jan.jantzen@netgo.de>
# B643A5D780A01F24E95AA100DE6F8E2C149C3748 | human | johannes.wicovsky <johannes.wicovsky@netgo.de> # B643A5D780A01F24E95AA100DE6F8E2C149C3748 | human | johannes.wicovsky <johannes.wicovsky@netgo.de>
# C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske <kevin.bauske@netgo.de> # C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske <kevin.bauske@netgo.de>
# 0DB51A7E90AC6418B7DB83724D38970874850C33 | human | Kleanthis Damianidis <kleanthis.damianidis@netgo.de> # 0DB51A7E90AC6418B7DB83724D38970874850C33 | human | Kleanthis Damianidis <kleanthis.damianidis@netgo.de>
# BF3D5CEA36DB58AAE1063D0BB341078652D87924 | human | Lee Watson (dies ist mein schluessel, es gibt viele ähnliche, aber diese ist meins) <lee.watson@netgo.de>
# 73C2C9954D1BC94DC6682525D2FA233B52AEC75C | human | Michael Haehnel (NSO DevOps) <michael.haehnel@netgo.de> # 73C2C9954D1BC94DC6682525D2FA233B52AEC75C | human | Michael Haehnel (NSO DevOps) <michael.haehnel@netgo.de>
# 3511D1A5B7B2AC97BAE8AF3EE758168C000375CE | human | Thi Nguyen <thi.nguyen@netgo.de> # 13E169CF5C35EF164628764AAA2EECBDE0B38CF7 | human | Philipp Eichhorn <philipp.eichhorn@netgo.de>
# 13D7771BDE5241293F3EDA442AB3335ECC93DDDC | human | Sebastian Schröder <sebastian.schroeder@netgo.de>
# 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A | human | Thomas Steube <thomas.steube@netgo.de> # 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A | human | Thomas Steube <thomas.steube@netgo.de>
# BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5 | human | Tobias Plöger <tobias.ploeger@netgo.de>
# 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl <tobias.stroehl@netgo.de> # 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl <tobias.stroehl@netgo.de>
# D667348F310C57655FCE5D4EA689FF232FD681F0 | human | Ulf Fischer <ulf.fischer@netgo.de>
# keys in https://git.dev-at.de/smardigo-hetzner/communication-keys # keys in https://git.dev-at.de/smardigo-hetzner/communication-keys
creation_rules: creation_rules:
# list of keys for encryption in stage # list of keys for encryption in stage
- pgp: >- - pgp: >-
533A89DD49FBCDA2BF014A936C962DD77704154A, 533A89DD49FBCDA2BF014A936C962DD77704154A,
EFBBBB131CF1D863005C18868C8C09CA950B1DFF,
A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439, A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8, C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8,
0E8955A79FF4687A3ACF78E50B5E444C75867E58, 0E8955A79FF4687A3ACF78E50B5E444C75867E58,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8, 98235A419EA3586BFF4E3FC692D4A5202A0D9519,
C903C046A063DFBF8F41C6576B26CF496812B00A,
E5B4FE1E0209DFFE320D2A2E47087747D89B72EC, E5B4FE1E0209DFFE320D2A2E47087747D89B72EC,
890B2EB48F343D4C6DB9DA0916826F30002D3C1D,
4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36,
42AA7F6BF795490C1A522C730ED842BE1216E0C1,
B4BAA59056DC362809388F3F2119881095EA7DED, B4BAA59056DC362809388F3F2119881095EA7DED,
DF977A1F65999F4CDD721A27516F64D5932B8AD9, DF977A1F65999F4CDD721A27516F64D5932B8AD9,
AC9B0DB590F4AE2017C2AD836113AEB66C510C3F, AC9B0DB590F4AE2017C2AD836113AEB66C510C3F,
43DE8A01ABD706717C36018C48C47C125C022F29, 5623CCAD4242CC3E0225A62986AF09C173781578,
1EBAE111F6EAE0CF136358E8625C5A3B8DA21485, 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485,
9F5341688D2F9024A15541C9E02949D0F7769E2C, 9F5341688D2F9024A15541C9E02949D0F7769E2C,
F7F328F0E4958E4C785977E23B8AA0BAABADAFE4, 17B8FDF68AC123EB666934B17D0DF6EC048A5D77,
659FDED43DE155FB772A339B343CF1218A664D31, 03ADBCD31737EB474A4BD235CE615FAF927A2054,
93593B8B0B7B88EA2DCC99F9388B6A662C356822, 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487,
0143019F62469ED5A6A016C219CA764D37590F9F,
9E561083EACDE14694C73A323A2F6C1D153D753F, 9E561083EACDE14694C73A323A2F6C1D153D753F,
9F08DA9D42379AFE6610E9E615CCEC6801DBA02E, 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E,
B92DDC9B908BF3917758D228446C51E049AE38CA, BA6328948D50175F196AAB5111F324603D12DD56,
B643A5D780A01F24E95AA100DE6F8E2C149C3748, B643A5D780A01F24E95AA100DE6F8E2C149C3748,
C19A7D807525CE24443CA9A49372E896B41FE700, C19A7D807525CE24443CA9A49372E896B41FE700,
0DB51A7E90AC6418B7DB83724D38970874850C33, 0DB51A7E90AC6418B7DB83724D38970874850C33,
BF3D5CEA36DB58AAE1063D0BB341078652D87924,
73C2C9954D1BC94DC6682525D2FA233B52AEC75C, 73C2C9954D1BC94DC6682525D2FA233B52AEC75C,
3511D1A5B7B2AC97BAE8AF3EE758168C000375CE, 13E169CF5C35EF164628764AAA2EECBDE0B38CF7,
13D7771BDE5241293F3EDA442AB3335ECC93DDDC,
0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A, 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A,
BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5, 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5
57F93F2A6585CF2DF9A3B31F13B9F45E122698D5,
D667348F310C57655FCE5D4EA689FF232FD681F0

@ -1,474 +1,524 @@
demo: demo:
credentials: credentials:
secret: ENC[AES256_GCM,data:OPizW/n+6g==,iv:HZU7lCnFHfiqEMt1UCxc/oved0bTAkLaCYWvYJeVLSU=,tag:nAVN+IYVi7PKogYj7MoS2w==,type:str] secret: ENC[AES256_GCM,data:m3uKjs2CMg==,iv:REr+W6QAcMXjC6kt4+U9W680N7NmOaPCbf5ZsL5v+GU=,tag:JTcpjBULW1tb6wYyQO1cWw==,type:str]
sops: sops:
lastmodified: "2026-05-17T14:21:50Z" kms: []
mac: ENC[AES256_GCM,data:JOck+tGHp8GCi4GRAhpr8vvBK1PcR5Vmmy4TPpPw/7JM2uKlIKhfWSm2VIECJ+06AbUJ7NYJaGzyfoIuN9Np5RwjKRFLCM15P0cImOPrPjIG9ebgZcAK6MNsTbuHotpEnRyQEGyidOJWGrDdt4qYfGio+VGTv2dCgnXGMrMQh4M=,iv:26HLOg7wFAjlshkrkPlfAyJ+XFXYlxOXpFrTJo0QcP4=,tag:1waIXChc1ksPna+k5erLQg==,type:str] gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2025-01-30T16:32:18Z"
mac: ENC[AES256_GCM,data:DNsgx0KhSbgbCqqME9MUJxHQSt4vVc/C2xfkckwjhK5nb4dW1Bz3Y5wAzPlOkPPKp9YB70/q2spw8MKSiJgeujfqnogPtZ409lbi3/RyF/7WxnJM0KFxdrsQwxfOJdYjfXnXicW9CD6xYPn1+LUVVqnRDBXt4MIzc5AMqaXy8pQ=,iv:dhVa4Dig7E3fld2Y3upjw3/P87bV6/C2oGDBgqQYRVY=,tag:RA9qsnRNMnznkNBDkjssIw==,type:str]
pgp: pgp:
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA49EwzBHBfyRAQv/ZGrl0eO/5M6eLZSlO9tBUMMZ+eVFNIsbVCBi66nCXav4 wcDMA49EwzBHBfyRAQwA59rrxcceb6CV066UH5esTFaElafvGExF5nKTewi0lGMO
lYV3Y8spiW63kR1kqbQw6t3EzJ34PRXYwnDzeuRG0GH8UOvexx4iTUnx+0UY0y9H vDKjzKSeDHv2GtitqDaxeTamFt7sZEiKV4XNowlRAY2lx9EN9JVgKGTg8ZEmo0nq
tXQvkeDAU537tkttqKSetmdm9HETNYg24zHXVhqqdZI+w0DgBivjs4owSpox+IpY NpQW0fgaFNI/xqEd6ravF2Sr/UUUBsYDVl7j2cYIJT+ShHDCA97I7kEof6Z/fu0H
3yeMhqQniGivb1djpZYiM/iRVZrqM2MI92FDlv+Dt8S5asNGBhgpYS5xA49EUJxj 6cLGuv0KA9wHVTj7+q/dBtXJUfyMBBE98GZde9lAJBvjDSa8I9/zm5gdrxtvOG2p
ET6CAdFBScy1eeDxXb5fLohEZuLDiZhoVycD7DE1JwQpjgPtkQAoKJDJUMD/TfMQ g6N7zV79WvZtE+pwNU8jQKqU6bVzFXNGMtRn6fo6ArUkFxmdzYe2KLHA9KzxVVDp
dq7AfYJa4OEzUk1yQBvR1gHfFtCsPdSgEDPJlULPFHkggOxLTJpFNX5uYbPu4enx GCqofBtqYzLTxFNkfgpmvdMWhnrmLbDYJc/r4MsgZR4L5LrP/AFDTOHePcHeo1+I
kiN8G4xPNrdNVPOPOXYWdE6F+jcCHeR/C01JQDDmyqWsQwE6QB76yYj5liL5hMGl /H6ZVluZ5QRdijvR68Uo7/j7OzIjSA8OCYPxPSpmUyr3MVGOwWnSDbGcHVu0sB34
JoGnnpXtSwqltZsjUONjusLj0zAtY5s+yXEYk1/qunocFZISM0dVEW+8pfoWvxJH 8+3sHoguDfKO1NBFLJtoxknJxSEAph6OanNwGU/5tp3tunFfGryrgZgpVpheC0tP
qDZ00lGq+nxndhEHhBHy0l4B7INs8mvLGjQZp9PlT3C58+gimP5amjuuOOuz87cI iT7awd3982HxnwC7MJ1H0lEB+MT5H6i8t6Vba9jCl0KTY3+BGzc8rVOSJWsQcsIH
LHSfrqkj1NwX9NITfPsox7pffM4TBeI9BHxEpsvv9SLVDh5JRqXBnAh6UYqqRR0k LS8DuNh9YkF5bhXxtvLBQyAtATle0swu8oPHhM9fPwLHdy6+36lwW6H5v77tCY2/
UFEdTA9i8VrfXzcR2f2Y a04=
=UhEI =Rntn
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 533A89DD49FBCDA2BF014A936C962DD77704154A fp: 533A89DD49FBCDA2BF014A936C962DD77704154A
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA/3nDyRfgQqhAQ/8C49AJrs1o1uMaEcAaxcZYlnEqUG4NBzA8Ry/a6WfwOD1 wV4DK0+AyNumsXsSAQdAMYFNwKZg8MrY0KlULLnfvFdVc/fuXsnYiahI2MYBu1Yw
k2bFDETqnrnqRQfwZ68IyR2VZJK7Zb34fu7kzyNc5uun/VYoN4rmHaT76VaEhBMX 6Tqaeqf5YCg08kRlDwugXpReiFFKsT1TpjMjLGQf3OxxM45LOE5cUkJoQCYHwRpH
goxnF2OfEBSQn6QokwA84EdJnm2bgLZK1zhsLnHvHElQJkaktfNoX6OyWRz9ISAA 0lEB2m8lED2E336NonUt3fOtvM5vaCS+ajfP320mQEPgEz7QbA2WrcIlat9OJED4
txGCUt2UmOgBrILy5HeMIpbcrW5Ge/7wuvuytAmt5HzNXCOe0kIZ8BKNxg58wMUJ HrnssHzGtEFui9XUp2z5yv8aubkmJXlfP7clnrkY9KJ0MDA=
tUEx97tqjadcDARU3pEmC1nwMN+pjzTIFXoTj/kC0GHvLsxZbfhO41CE3VWXFOX4 =kTMq
0obdntu/punBC3FiQuM4LOy7HsLQzr+2/2ye9WlIgQK0GNAl1GwZl/AGvSsUyWIC -----END PGP MESSAGE-----
O/meFx8PbgZ7Ia09lf/+2mCx2nDh79JUSfWVKx+AZK8Y8/ZfP+pydTNNmLoBgcxn fp: EFBBBB131CF1D863005C18868C8C09CA950B1DFF
MfMzJ2q6M9UCJ/V+A7cpDbV9Mr0g/IkVa+OSSAuZ/ulB7a/knSZCtHzUqQP9Y3Gk - created_at: "2025-03-04T17:44:07Z"
bKosRB9pdpgpkPCXX8SSfqY7E6/quJeBYXFvM/n1Xddsa3VRY+g98eyHPBjGtfnT enc: |-
d8JDDdmzZNhxmIH2Wtj7BXsONbaJOCcueMMck/esB/w6e93GqGoj55pza2ufY+lY -----BEGIN PGP MESSAGE-----
oN2KGM9+jbEwpbREln7VOfzE3llnMwHWzfz79iO5L3dxjrpPHBPyIbydMwRu6DDS
XgGoszO5in1cAqFXajX/KKWjqpfbc2ZvJ7igBmxSx4IEbWDZ3qe/WCwNwXynrTO9 wcFMA/3nDyRfgQqhAQ/+IDo5diT1oTdYlbwxRbZKyrRWygNGLrWZjr1/KH1jnxzq
zuqizVwm+fr/095t76clE/8g1xfg9FC3WIpqELQV6/AoxheNiVtQF3BzhmfzVVw= MCUY4Hba3Jvwhxj/Y9V1sQAPAjSG7eFNAWCtbo0UvJQtW6syUyUFBob8jyZXTZo1
=KAay cHWB2TRRr7rjyRxnw4Mug5DHfUUVK6CagXr0Fg+wvJQnluGbsE3Krrm8C8FSWdBo
E0Y4nVmDWnwNWegTHbd6x3MlST09STLPLGnL1vNAEPgSz/5xswtKzFr83th7ebmm
Ojjhwz9KkYwgpFLhPlDQ4d0YwA1mwlAFKoe1vPjIcLNUTxDuzb3VIJxt5Gi9GKid
9PzgDQf6Gx5Dr3VRTLPQm4pT8HUjH0wNyY2vM6bQUnSQy/ztxdhiV2rq7m1YXc/E
3ry7gtkwxwsrfA6x3g9QiWKgf7XlCCWL8bwfXqOOpelsw1Y2czhbWh9qJmJJE+j7
N7b2EWrXYSaNsnbyptnq1+wInIzvBL1fAQsoqkwW0DdKaqdYnAsDmwHBYwUzmN45
O7K0C0EevlWOTxCYV259ZXCr4G631kqaSYTxVfGo7uO77uu4CfV/1SfqbmWEtSpD
jkLPA/7tlkfNlT4t3V0hCOiv0N7bn7qwMo1IHwL9plmgqAxOqRohDR486kb4RgJg
c1BsCQ0vzkYTl83+fN0AfmnfiD1eIr+YvHV89pAjA+k4H/e2IiIr4D3aoewJmQTS
UQGmD6DzVHnEz5KKQuejN7BLmDLuHojNY0YY9Q+JA0xN2mvYjMXSDMMqcoJA3z+e
KFmATIU9LsLezDStUiqE9j5mjpnJdb/zupMFvjz8RtpkgA==
=myeF
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdAkZDO1Ay7iJ4pWwSAgX4bnXMsJE37onmze1EwM06jXRUw wV4DuAaR73LFvScSAQdAsVQhCe2FnHzzNcznoNGXjjJmIVh61Wx0jYlWayHixW4w
xwYDMqt9x84nBpFmknO/JzU8ij3ATmWTB+qXc+/CULhMr+ykrs0K5OmXg4uXknSU My3BL/Bk4oDSxBfUQ28UWkFGUg1IPKu69lAc16rGyTq9RVYGRNl3ZTAUY53+Pp/w
1GgBCQIQq5dNVTRv7TdSoThMaoRaocVW7r+Bdk6UdQdcnPcw0O2v7EigVf9tTwvT 0lEBYxxw1Ohm4gsJpUbqDIV14v50qh+otssrJbbQ/Fe+rPFkzKGydRhOrUYLLWDj
wtqU+qPQ1CFI/zUGiN/FCNowdglP6i7iOshjNwY3foL/ldTJ1qZ1DpjLj04PGtMn QZruVU2YkHGU809lEW2jJHmcSlDVLUXO/6u9FBGZ1WSj+pA=
Vz36jQ0dxeK2iw== =w8U3
=Nvrf
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA3LBDEB9lMmaAQ//T/LmGDEm8eLwTEvhTeWIlRalvYzPlc7JRlQopGi3D9Qn wcFMA3LBDEB9lMmaAQ//dT6qK8f0CaddMWsNHvovjITEI9m+oFl7as/JnpFLnU+U
EEkAgz7hZhAEh6TnDP57oVGO7IeoebMZWfkGsG+n/tCmCJdSnEhwO9gUVisL+ZDs OUQs90dq292FUhVcOeWfPkllh7o9DI4JJYx50bCJOBxKcBTyDjmnsEK+QyB4Ezi/
d43iGFNPZYOfNKMZAkZBJrWHfvDbulOA7peW6wWjlLiNvsxBsOVXk7Sq0awrIim9 bgDlUyVNFgj6YER4AJfx55jXO5vBQKjpyFQUAoTUVdeact3DF7VQNsWQop9avSfq
ExqI/F0llmfDduGOjevayroWl6EIL8COoGAV9lUAketlan2wu7zInebjiBVNmD7R lY/1N3R2PG6HUDKsS4R/dKFbnlkbHD6zq6JA6mFy6HTbdlVUGPlwmfUoYoVTjgpx
r5M2YdLPvGLYxFANRkiF4bNOLS6kJLrwR0Pse46L2xcOxgqdlLTvKqRjd0rT5P58 tpAOusp7xAlwm7k88g3PeXkSU2dyG+xBia03ySQlKw6UqbQZbshvTvLlfasDEsqN
835G05J6RJyknZwctOUWBsjw/x/XTlPTpyt7yvlcLjTPRQUOraVyBO6578OADgh0 nVArwTeY940ZjJcoHGBU8YYg4uXi0TMSh7NfWachOXVEVroNwKZu30zJL29QyiJp
rL4JaXgilO9LkqcXDuO46BpNYhGV9RPFWffSj+JySFmKp+auqx9uLOrTO6M1yAMO cVQT2SOHLdI8X+Qf2NjIgqIABkwOubvoM35gWxqSgOsqJOTNlKc8tCcuvjy3KPvS
bfhjoTe1/QCdqo7kv0vkP+UvSA7jUQPuYfjx8pDk27KOaNra0JYuDg05HjkfKdgM YoQSZb75/6T+kghPs4/UMzdpDbLsfftjpxdcnO+DT6ukk3M8lr22aQo6tqaQnFqB
BW/y1R/J3sI06ZIgpMEwEaUW01sLl069hWMdPt3lmxN4Fffd0kwcORMhoHbLk2ap U4+oxg2mmD26KOmir5ctl+qLMlUGaTni54BHxNwivgagkwTL0EgRsy08saZdnoh2
IQjvPFXbKvkeSqbT2D+xcP5ZLPiFjJIswARsPdMZ5DJCVBMplZN38UEG812DEeJ3 w4Ww2qwlsy2tnHXD41f8g9va/sluzd9NgbO+irSigQVKw1vVCanSXWpUoOPT5ahM
NX5rHnDjuK1jvuLBfDNDAPn3D050J6bhfMsFhxtFtoR7h1JPCIimMwUlD5IHF3vU lu0KCq9E3CDqHm7vGDNO7TDskKqVkCQ11C3ge19swHG+YvAW9uYONV9dPh/el7bS
aAEJAhBeWa6k3fPk+IRTVEz0FIiRavY7zCZQ/sEa6Lyia8EUUa3tf9+bcdPOlfhA UQEQ23+TsHgVkwLAilxel4hEiQ/giD+x2wInm8JV3mmLuLqBcB6oMzsgE37hxhsT
s9LyW7JIlB+vr9pRc6hGZtMoZyE9AHTvhrUon+kdIbjjPfOQi8GBdZhnekZgU/ma Khz8+UO4pgn6Cj1G//pyqVlwIqdSFrLJqfSF8unGvTqMbQ==
8nnptk0wy2lm =1qti
=kWMa
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58 fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdAB2+rwOGPDDo1FBVH7xOch2mYqYRuCfK76RMWO8c05XQw wV4DpyXAcYv7T/8SAQdA5zRWWv2VlGjv6HzyVLHyLU2dmBfXuMX8MN+iWecYHGAw
wzgWtERYWkv89EAWIZ/UnHRW1O1rjdNLln4kMSU1Kifsa6a2PoXHW0GKwJuSRbKD N8MwLk/F5NBHyJiOCS2mGCSRZ9+so1m1DAt1SSJ7xvJ4hKRNL35X65hZG/SSba3U
1GgBCQIQGOocovbt9PSawdeZEWRHm34nAepDElTCwzR6yz683t+XXMiYUWiabeaH 0lEBmC9MQZ9aOpVScVIe816vTn1GfVKtmakl08b+2WAIu5sY7faZqn/kCxlENyoZ
0PEYkmzTLBIoQczMxYnLkounWV/fC3a6b9Uxu0fXHHhnAzDxN2uqayB7Tf2bFLrJ C48WgsgrAEeDLWL24Ka1EFrhSeTTpWG3qt43VbT+mzwHUNs=
W5dXEU5DxTbw3g== =i/wf
=XNXm
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 fp: 98235A419EA3586BFF4E3FC692D4A5202A0D9519
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4Dq7ZJnmCAxTASAQdAJglxvcSzotQdLCxtFlS+1ZaT2zW/FafDlcUsaiG1HS0w wcFMA911WKxzIy2nAQ//X8lU72Gwrr8xJEf1s4ngqdStGJJC5zQyIWvrC2DdGDE2
xN/ljIPhq9rxXWfw8nBVzqFabq4fOBrIiLOQamZf6JGv7rBhrS2v/fK3gXyiFmSQ 6do8Y+PBKOyvYq+VhbVk2dxeCoBJKdm8kq+xpJYY0uYeai2QvTcgItUJR8Q37zmH
1GgBCQIQVyjGtiH2dfWOy9/mxG0gOd7luvaD9fkmG3txyJGnKoAfKSx0p8b+hxjh LwjUnYAz5vz/ikmOiFlIfAcj93zKLXS5U/DHgAKiSMlMAiH8tRwV9cpgB8DcKYTs
wNF6icPQdpBuPYhCofUQP7eONLV3+SjYKtUsXEamrgADAhUneC1Or3ehrjjMku+U WhWVyqPJfrxuG6zUMUfnjQYt8w+XI3niQm5T/xBBNtY33UMU7v09NSsACjHe0b9z
WX96fBMaEgU1Hg== e8a0O/NuIL5yEEjB08vmH75ENlRYTta/6J7gZsc+BVKDM8GtSMbj0apiYRjtcv5b
=sqwk o46eReMJpgs1k7zqN7THpif99BfzYthnlL+cO2EjRTd1ELx7pGON0YX1usLNlbOC
L7NgHMg9lt1fsU2xXxCCaAD4YpIFhQr8Gse3bDQmes9XldIGBA4+9O1kRbuYpQig
ezdlX8RPZJaBbexWb93KxbjK6qyBaJ2UJZxE+e3k7r9bRN6XqFSiGoxgpL8bJjMu
7XQlqI3EWS2Xl+VE6NJ+GV5xRAUTrKXTbU5u4NWBxtZZ4E+hFzDhLHAdMYJcHest
Fkqd3iRSu/G8yymvf44xQ7W6DQXaQYrLGOb+d3k91hOU2sBh7H6pw7zcwKp5a4Tg
C5fsvTaHBBWiHpT5B3qqTBmpfDLck2PwAjHRprhNZrQj4oLqPSrfdjzvViVBWKbS
UQGpPA57Dgf53AsObPp6+snyGUkCSOFcfy/CKJIJNRX1NrsfO4IWhWPCYduVfIMC
s4VC+Rh0EeoqAOrhRlsenYhzYE6Ku6WBx2yOayJqAkWgKg==
=UlLG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C903C046A063DFBF8F41C6576B26CF496812B00A fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA911WKxzIy2nAQ/+KXi4SEmXqjITWjxgvCGDV/wyIuxaROPRdcaeCUpIAW2y wcFMA2Cr/drkb+8JAQ/+P30LCNnKXN/o/fzkcXPnXsyV85rcgHSF13722oDO8xTk
5evVJqgju0hNJB4O94hgj7nfdXq7z60XoTTJj+Jul+u8I5mRkjwIeli2vgpW122c 2SU/HdiBQ5hXu7F4Zg01314DW/CI4+jWt9gKbn255WnETYQhre+k1prKRSQ1HFYL
4Rt27JslT6OFHb94OX3cu9rwprgA8yTFNwMBQRyaTF1pd7U+8BaYmgK7IIw2tGF0 qSkbaFoW1NM3+RoM1hUBojVJ26+APjwNqn/+nx3QSKsirgCUynvJTTI479bvY+vL
9ZkiXjyOANd2gSXv+QA49ceez4S9UDFJogm2FEOB2wRARNQgmgb1lP1kNpPV+dpW S+DiSct1UYyqsZpmUDxLL/0ta60ekWzOaGMzBAaSmdlg9sSRslX1lZkicwLzSC/X
qRu0JfComcqck+w0XKlETXgm+nWY2ut5iNwq1HikzR69e0PNYgX+P0uSE7MPLyt7 0BfuBXLh/KvGlcAUh7dubFWeae3CT8oMIPHNdQLQZKFtfg10vgboZXsv+Zu0vE0P
7g9vlYSofJjHYaN5nGCHO6Q0GErHOmug4AH4elPI/z0K3KhKMCYQiGuHGyGli7Q/ wRxXfc+cz66NzKBuBDna2c1wTFOxzfJLd7jFBnHKavbFwGKQsumMNCOMGA6mP0yo
/9x2cXxCdGSuO2xem+Eigz6hTKUWIskHWCMLm4xmW6gzWQmA0Zo8XmapvDqAfu3W Xt/4j/7NonwG7hHPTiCxlN3viVM8j52H3ExLwoaOhcLALzVaJbM66bLGFUI//T+J
w5yR99A1Fsd6H3YxPQ7jVp4NDgE7z2UfRQXEi4a/Xx0kUK9w9A+tL3daS/JNnjNl MjAfdl8ixtiqw0iVR4Zu2x6PeOuwbwuRUuRUMauBFHUKqi/l9QXpOQenySUlqU2w
bLT+Amg7sIGxhKzaqDp3u/5Pjb2INBerChmIlEzA1UOVKgGuYCYAjKn2wJB0nkcU nSDawTEW7pzHxwuC4KrAUdEOml7+VIyv3RSmLeIbRhhSm5DT6wcQrIPk24o87ujR
BvPiU/zA9D7vkpWadZI4gwFmOXEYOLXh7JheYRh+zzMjiZRxmnzKDl8SaCj2cDuh enbiWDFLdqPUBostnwiz4D0AanzQpinb9WIr23kBI2OmTMvlwu0hlxALUQ/mTBwA
wPFN/QZeS5Jfhv9e53GEswD9HCgjiuG1N8WzsZqZfnWLm/DR6nrCqif4AUZxEf7S f/oKp6BJZBqyPyr6pZoiUPElgALh/83D4w4+xNxfjXTD7ZQSQSVYHQ3mFiW6CXrS
XgFbaahY9dhEnOmrtetMwadaDpA7P88FRYjyXIOPOlxGG/gz4CRtLULfD5kVJLYr UQEzbFCPi0cz+PAeUynGtyVh+R5FQS72JaGFTqy5+ggaqyxowtgeGHz1X/hq6y7J
0P/qn0BgxDamNE8VQaBo+CzELFFgQOd8dh8G36lMXryUkYCAsCw/e1BRDIflZ1c= IDCX4rNTx8DbQjoFtntJloMWcvfAiaVnYMr4ghgKRmoCiQ==
=Hu2A =ugtl
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC fp: 890B2EB48F343D4C6DB9DA0916826F30002D3C1D
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA5pTFdxsndstAQwA6Z65qXNpzM6PQu+aEKJpzuoB1yQHdLTf/9OrfCJrpqSP wcFMA3Zl11RyMNviAQ//fs7kWhDVa93Tm8BwbVBnAm1fl3SLT67hpOsFKgyPjEIk
mFFUGfG/krDunC/FLk9HzAWGY83zJJs4ShGjGmg1hdKWcc42AVoCown4i7X5hKux 4tNl0HRSzvFrMok/Hy2lIDOKilmM4/mBR55jdEgNN5JGK5GFOiF97j8KJr3YepH9
LMvJ6RNWLA4aMDXvxP5hvDqxQwClbnXuYwlRJ91De3WkHkD47vzs5XD+mz3aUW6i BwVjsTSqR29bWol/fCJup22RGfVP08POEr5GXGYsbKnG7tkYbjyGITx53JdOo7rD
6pqzMJU0y2pzWpc67+SkNkTEg+5GgkomanqxlN0X9hsy1UuM1Xz5nAZsrqPC80Wr +ozkx6gHD31w1khMNXj17RvC288ilSnXKDdzT1QIRZf3pa30b7pb4wAaj8wiBJ9u
8ILFG0pDsQeRmvWnB/ReDsSmwDCywDaGbQg/CjDVqJ+MufioXQsQL8EHdKkp78JD vmv4pmpgcFRanvRlCjcSg08jX6I8i+iwIBEDvm4IA+i5/rfFeV+Ugbx1C5U9u+8M
fc1v+mYAAWZ5/TdgHF46FjwHdHvlTojA301Ic0WTEi5YtngMhIB7tFlQl6Gudsrt s1IAsdH9fHn4zTsEQgwZ+/dekDiw2HGTpsJqkhxjm2cI+N4h8TqD7jxuffbPeKJW
GsifnlhhvXK7mwckbXXvHlwyODZLAa2LUcX0zo/99GVRUU/B/6fdkJMS7kG+ZMus USmMHoSMrjRNTERjHAFoumXLcFLw633kbeYnQSByfGHZJvfPBnMWA7TPxCjPHHF0
GpO39MFHPKiMJ9qvtwPra1nOGrLv7Gy7HndqZ5Be8pQ4Qq9CuUpCicLMvZ0QjwCB Y+BJ24+7p3xr73etLP79P7Vc6THBG5q/3xHpztEv45ZleSzXYrgRDC/zoetk95c3
4/Gzxs0mlPx2dZpd5F1C0l4Bk0/Hd+Vqyhl1bxwRlI0vMozeRjepQ3UlgLUSddmh FMdxUURHCiS4QwpeTMPFloV/XkKG7qhqVXrJEsd9Gf1QKG94Ep5mllbIhOfGX2yz
XhJTsyLSXYIeasviQM7wve50+c1aOWVb6+KG40NJC1x6XKdU0Y8PBkN8101KadI+ h/kzUD/+z8YD+IoUXFNSAnq+9HTxB3LzvZKSvTFH0zUIIwXPcFOoUymh8bJOdlGf
1xfJhEdsSHuAs6maH0DT AL6cy0WQ9lqoT0/ALCOrxQu0l4nfKM7RaPoJZHiqdntDr0gykpfNtIAY92nPug7S
=Jv1z UQEgwnE690QBTnyOoNJrcvs8zipV8so2VGKxRARDtrbUedI40a3g3Vax5fTLPHWb
EU9sUde4Q6msevEmrTKFCzPe2zHSnq6pLEpNhLpIUiV9SA==
=P9Me
-----END PGP MESSAGE-----
fp: 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wV4D0Z3mmZqL/KkSAQdAzv7oU9PEct/VghS6oZqKeqcTWIThBuSHzE9Lm1QGfSgw
KdBeR6DsZJv57zUw+OzGczxitJ0PaP6PuV76utXD/pJGp9ItDbYSQ+g7ILRf0z6v
0lEB0+p1MPajO8IqCKaU2cHndEb8zma7mexf5yTvrAjyfobGAB9WXWt0hF1OolnS
geCrg3U9Z9UMKGZ8FaqeKk9PcxeZpt54M8Xe/Cg/dKO12qk=
=zj3E
-----END PGP MESSAGE-----
fp: 42AA7F6BF795490C1A522C730ED842BE1216E0C1
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcDMA5pTFdxsndstAQv/S3MAPxPFSkZWThwh/AgcsdWR4RSX/4FhJfKYUBVGef7U
hNAQ4LI7KYrtPffapufL5DlfT6YY+lGuoBUumYQYB9WYeydjoreudy4kuWy5ReZH
qa2gB2nB7n/CRODPPDl1g4JCzlV0acCoHBC/AdDIhG4F46r+6zM4MM+yNuKOiMWx
e4UmBHSwakKOylm6XwfuX4wD8vFo4+H215jvUIldKJgZ5fO/PnCuqlCeRaaH7nFl
SxQ8GP7RGaHxKH2B3ranz4KnNoeHxF+LaBikXlq0tppk5vnta1LjLYJB5xRs9uOR
TeN5/j3qnSnqcuv1KSgrBGYZcMYmjIMfTAsSYeV56Blbs4qA3O0IxRczbF68JLLx
pBYlbVcSpd8gJguifcgUXSUmUHTBDMpTRusQ4U4Ecf1oNR1sOPP1mZxmxDkQOrPR
Zuvi5KItTbjDhT3fTcSqpIIDGeo3v3xbmvSVxzyy+pU+uY0Wztv+C7W8yme6Tzsr
fwHIn9Bw6UcCyO0sRO3K0lEB8RYBarlE21GeX3YS46eX7Sn5/qpceTA15THqh2uj
/T5+OmH/CQ5j/oggKxctx6PS2D4XlyhG6eLTfBZAXnmsAl0LtAgeo9uMWCPG+K5l
jMs=
=X9dM
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B4BAA59056DC362809388F3F2119881095EA7DED fp: B4BAA59056DC362809388F3F2119881095EA7DED
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DwvSwby3S138SAQdAxw4d7vm2IVVgEEq6z8owjVOq8URQ5D4lG5roLO7vgjww wV4DwvSwby3S138SAQdADSwT2HHeiE3R6m9m3Agfcfj1x6uYRkvovSDW1OKFZlow
sERbOq0zQ+O838wQtwy1q+7bpEI/QeRghpSwPlDLwfPk6p5ZNdDjmbaxjW/PX+0i 0Jv5Vr/59L4RnIanZ7zBS2/axzk0JDGzgURZFh+KSV4tGuGttLWnWlPrAFqLPmLK
1GgBCQIQ9uI452FBodTCP/M0AkJKxReiR53bqcc9xsLxYBPS5rnxpyH80imw45qq 0lEBMbT9fjxCO3itbexnUmeOeBSCspJ+PlmTxzLp610Aq8Jjrx7at8I/wfk+EDgo
e6Wwjpu5eH5VzaV8EjTJJ8eYirqZVzvbeEdKsEALii04l1sHOKcMsBmvnHpiAsnV 8Th61Jt6qmsNDOrI/Yn4D9fSZzQyjORA4S8k0haZ0mbNl5g=
c9CUrbvYXcfVAg== =kWN2
=/GFm
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9 fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4D3RW6IFeToCoSAQdA5bAhHoB/UcMb0fRlplDgLpWnmzQr2ApSpiP7S0ijdRww hF4D3RW6IFeToCoSAQdAE/qpxjjka0byA0qRiMtvCc1flWMH4EWBMmxJSr24dmow
EWmo5eik01fM0tyHTFQRbsXmiXRqVKTbmX9E0IdEVjMnzkhX04ZARm1AToR4cnYj dyPYx4SALJve0C4X50hs8WTDFj9bdlVBAUi6ros42XgjUq0omiNcCNMNLNliXIre
0l4BPzq7iHftyjf3G0VM2eUC+FkuSjxt6jDUCTKce9IqF0HpnWljVE75+DtuOWIz 0l4BdnSW0oVXJgo4GgLAw3ldi6chzxtKz2/XMiNo+T5yfIKDdqn1So/c829J2kH9
hvdKp7wRwAiFT2qDNEvcWcKi9g0ntHLFDSCmYzadvcb5X0BmRJiYN4NHYKFbONIq CwPY/vvaIVvpbjDQ2ovck6grtbelBuLS/pXG8j/SlLMQKWXLU8Yh5a3QGQ8+QP8j
=bZH0 =KNuv
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: AC9B0DB590F4AE2017C2AD836113AEB66C510C3F fp: AC9B0DB590F4AE2017C2AD836113AEB66C510C3F
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA3n4x8uRQRGSAQv+Kv31sB7Ce77SM8JR8Gx0bkFSHy8LlVYbkPh1OazWNNs0 wcDMA1j++ZN0cDPgAQwArsAQFAnZIyrgbxv579qdfRTGavcrxPpP2bjYUHW4DF8t
T6vB864fia+u9e8btgFYmKSAlJMxhOiLRkcfImb/6VwfvSptA2+xoby6Q1niuhda YzgD1pGPqt3Ypq4dn611lY8RUfLZ8JDUlYQTC1dLjUrtRD24UiFwHAtnBKd2PURm
rT2uH6Bsctrzu4RsmLTpCnU4xu23lVEeHnqGh35d1mZdMcSYqrdqcbPmgdr5Ak2b xmi3LZVWZx9/ko+vUykq3DKGMeFkmqr+ZSGsjV0BMNylwJ543Fd6uuaRCymkqhTm
XfgHR4gOlIYVwYNAsngAOgT9tvdO2b8wKpR0rhRWkgYDVn/mR8kRcXKwLxmQ4gcM 4y5nvVnchWHhv2qdHW8R5nbrjHhcx+pEsqhH1v6o4HXVDqwdb2n3Tkqv9ogbqO1q
0OyuwR+KzxsdX0YbkiuHki4E82WSGpBPs3mnDHZ+iIBTxfb8eeCdEwFVoXKuGkug nKp+fTJ/H1Uo1fljdyrKskEArvaYv/lmxY2xSnDDTDcEuHUv1ES18KrGjflxIwRA
1xlpFNPeaYdVDhRGuENCbGFxymVo4IjAKfdIckhO6epMem1uj1nZylU0SIrpUB7j sZYbHp+1Fbb5a2Zh6ySrg723C0lQOi8jWyr0pZmrFkH2EUXc2nLeFykYAaQVV4Rm
tLy/G+nGgHG9deCXaQZsniouXIMTpMSZJ4GPtAY38IBk/2Q/R0VJ8wXjJFXhrEYN igISVbrPqdnd30Ppd9KhKCRFVqzLu0TQvtafcEoFKCNi6wYMBakJOEZXYJZ2O66A
yYoNouSfLzYTfcLUZtGPt5HZg821PyMUKQDYN+bXWpT/Ac5TDORDV212/ZJWy1Yy DTrFRTYut8DufzHuj89iJ9cxeUCAlIcYS6JvKmjRCDyizzsNrgeSdpyf9LRp4Ba5
h7xFxWq4n1TvuZ1uBH1d1GgBCQIQSpeSwfjrwkzixT/e7mEL97x/VKWNOQavxchV uRaOK9wrpyX1TPCnAfxm0lEBU+pqhcsxdM7eNv0KvYJOIj7aQzWgfC44hjlNoFOa
KOgwI46V4nJzn0S+S4NRQAPQ2n9079QAbA0qHxQNI980OfrtQ85CjZh5AcHFrt+X 7/O19kTASE1SrR+zZqC2H8WMG74lk63Uw3lRXPSpV4a2bNVoHkxMcO9byODcft9M
ClITVNnE9OhjQ+I0Y512wLhuuoQXyyqqWw== fo0=
=aZNb =k5Fc
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 43DE8A01ABD706717C36018C48C47C125C022F29 fp: 5623CCAD4242CC3E0225A62986AF09C173781578
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMAx5drVN5V7yDAQv+J3wPBNcrHZX0WIHOEtkf9800tU04UfvbjMAtVsoToKf1 wcDMAx5drVN5V7yDAQv/R5AjSEZhrkQ8v1FC7zVaw2MNcfJQMiX4Q8ybnC4G2bbi
FM8QaCvNnaOVHMvpFqcL6eMrtWxYNxqqsv4VuzcG2ZZvtxJTIHErZ5e9VEAymbdS UL1Mydiphqh0tdjsPClDmYyVxFDCYuTQACw3HIJRrs4QCEThtI1gpTLcuWDcccu9
uI/7pdHDijXMGFs8l8PO3hj8NagUB23lZTzUIjrGiBeScL81EqeLU+0WU8CEBb8E h17kmNGrOLoelGpZZr9sP1nVQBhc1T1aAGO0f3z/MvEbSMLUcp1+AXSLrtuxl3ME
0OMMEOKAkcfLZgQD7rrHxET0CqrKCdqY9aSn4sUm03ggX1tw6rde7Zc4xyZNqPdH 1xw201q4571MA2xReAiCC+HGK8SJwpdpBr/W4YBajJB5LWBUbKJ0P411VIGJYRV5
VAiGXJakVWs1h5/ngDHI4ZxDPDcheCmVbY1uMnwITLoAxZ43o6Vpsw0tCAzSHRIr VUrB0ctyuGmNqkwkqBlvl79eRS8N6CW0adWY+aIQ6cWGxcitKtN4i/BE5cIre5Fe
Xtz9PGiMgo6zIZgg+k0u02duWjQMZr0s4XaGX0ODKSrCrDGkxavvaUii0cS43pcn a0Wa67FGxSI74MdN0uxRgbE7TkHBHhiHp3RaC7l3vHfs1LVNuoB3AoEcAc6Mi/dN
LWOpfHybpYMz/HGInPfV9sbhA79DLjzPYtMvaKFzJNiM9al7SRJPu6gXzHDPyE1t QAhwAOWJd6Um4FBqIcSDe2N9gjIoqhg+teZVoF8HKcatU5p9jDm+R60fO4DRys8e
m81WJbuhPAAlXaTR723/iYQWSQtEwbWq9tg85jy45tR/ASNBxoEZGQLeM5avQ4Ah Rq5CPEjRVTDeUT1Nv6cgq9QJ0LmWVz3VUbHRhFbAjZ0rAzqpXe+HXDmOC1+DMTT/
p6xwjLD0yw3+b88eUpC50l4BvThNSeYo2ur3jh2+sDF+u+SxwBkAqKOJczv/mqzx aXsLqP3VjE8y5yDK98Pf0lEBrCUkCAKm/woq70tv53MjRm88DyU0NFvT69BPieH3
YfI/pT/aL7UFrOdVdbkeTOh2gxNBLceHekOySO4PdX6TunwWgC0jwJUK/twcoXsB lrc/q9Q8Txr8LzvOyjpS/mPj4ORulInMPc0n5vYBcxQQg7+M9P0JnTy+ckNWBkQ/
tVc+A8zokOLHDq/NQwAa Lq4=
=sUZB =gmlL
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DRPQAGSQLsJYSAQdArbm6D8/ya2HRzvot5e9B7A8DdqEhauchaXAHgzjti30w hF4DRPQAGSQLsJYSAQdA5WWyS8peeuXEesR/Ts5Gupa+bReYqJ3ocLw2tenrjiEw
6A4tDonnCXpxVI1uuBMsZhEICrzyRZ2aLTfUAloq3elnXLK2IRYKAaEoii+0Ei0M za1udIqbwwgAdp7TQ+8GXdN/uErM+o66PE7DzQMz53pP4PLWyfgNeR0qHzlu5Zec
1GgBCQIQ9DbHZh2dRjZLdjCCZwiUGuan+UYtlJxTUsGC1wl/u/Qhe1+e1+0Jes0f 1GgBCQIQfTaLmc6+U4G0QiTtW+tuUIlPySgagN2xZmVr2Of75mfaWSMQV2FbbVId
vfJ2ZKI061X3gsLVJMcjXEw11SHhqI9wh/zIWgYTp7bnEcocO+sYtchob8qynwEN S4laxU+vTZvZq7JtAuieicAA5fPGq11TVPkbXkbwbVLe/UfbUqnB1Vhjn1C/vKQ1
sq4e6JF924eh4Q== Jxxf9oTCSRduSg==
=CcxN =M9yG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9F5341688D2F9024A15541C9E02949D0F7769E2C fp: 9F5341688D2F9024A15541C9E02949D0F7769E2C
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DqL0Ka4V5gcISAQdAVKgpyaSgq/9j0/Xx5g0j9vByKkewpQbS97Ojp4SRi1sw
WoP7x13tUER8Qf31NVFhI184yIIgtl2hlJPIeHY1FlcVk0Wuqdxq4teW8xKvxRuU
1GgBCQIQ7nnRbDE01B7ldujEgRx04Y6ErI3joFzifeiVQCZ/Ou83seDST3TKeW+a
yzPvkE0ZQPKUHchTaJf5gKKEThw6w4rVsIKO2jXKCX7/J3Djy8Xxis/lXxG89HsR
PtqB5Ph3R+U7BA==
=fuja
-----END PGP MESSAGE-----
fp: F7F328F0E4958E4C785977E23B8AA0BAABADAFE4
- created_at: "2026-05-17T14:21:50Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DbFrAcOA5jGISAQdAm5+uPDWzUJjBpXQp1RLNiiMDVitvxN/SH96xDA/Q+iAw wcFMA1kDHheI9SLWAQ/+IW2hkHvCThxNheQj0jwdcYF9sUGzVtfG69edWujpOcJ3
6EbF9Zdj7XvspurbdvscXW/GUHgQyBB4D6/cwpSCrT97zE+kQ29o9gbCquqQT05E OQIEaHn/igp1Sog6oU5/JWhNL+tq8+67WoOakI88+ljZYrh0XgolcaB0chnLoXAT
0l4BysTpf/DrhdzH6MHJLpGRNQy4+u34LJad288MWbKApm/V3687eBAAZQ18SNKY BKp/J3KyyS7RHMWbQpuBHsGF/YTpfyYSjxk2pzRgUiJ6CBGWJ9yDmo/WuNuUJl6m
b46a2eDuOJq2b9ZCCqFHaoLBmc+wefo4RsP9e3EYOjW43OYIDnUVTu1r4d4Z3Uiv X7ei9opPYiiFzQCRUsORgUv61iWqsdP3uPqN6KTQJ5CELqhxyMPn5FWtFSmeVbw7
=+3z0 NkraTCD7pQCgV3dep6mUtvaN6Gk4LrGX1KtDNBp3hX/f723dFI3NlLqrWKZo7DPN
zndHBrMMqEbewbk4phiO1162ft3FCRksaWuK+CRtehswMElss16gM69T58w4bibK
y0QCrO4FXQBPmGD+upRN3kXZYvQLIIJxtjdMO90ktqgyjSkJ6eSh1qJAmLsjs6L/
O6Uuwg+SRtZQDipu4ItViOFveTEl2sJtD3k1aNWkkuEW5PktGrleiePfiD/Uh4M3
azH1yQJNnAf0SkoUpBLboQX/LYhjw0t7ifm14VU22NHHq2yqKQ0KdwMcp3y9Q3cn
jx7ncqxuYVP1mgV9SHnRmWq8LMuYzGPAkeBqfx3dX9NtFEMQLPcczhvl0ujBbEr0
G5McwY6Su7XC9qwz4PW4yhERhJb+pnUQdVS8UJLnFgGt+yDYgpom8KyD1eEa/m7S
UQEG5qqrdo7rBX5udl2QEbrslew+m2AJ0Lcy1iPP1Xrp1KLaeDDHncYFO+VaSQM4
5fHyHwB0JAW/5V/v+HsOZq+kARm7vxjdqaddIf1werToFQ==
=lGmU
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 659FDED43DE155FB772A339B343CF1218A664D31 fp: 17B8FDF68AC123EB666934B17D0DF6EC048A5D77
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA0JLr4yo8A4WAQ/+MhQYcasR1lZdFnUk3L/HhjkrVt9xQ0f4qLqNc3BE6dNx wcDMA195cwtvYnl1AQv9ECVPyiqv8m+f44zOhB4+zFLwOmaOrW+xRTxJF1yDft8t
sLS/AgkldsnrJZnM6+5g2+VICQ73dR2zDZ9wxfMZfJGznN/iYWCGbDZLGxQAPlTi NHayPc3He8+BXdS2dHerN5hDuH+ZoT6zFf0heJGLN2KHH6zRjQ95FH/SkN7Ot2rg
B8ofOOSK5YXlBi3N5cMclaZM548E4qFaUh7KU0slwZC70eEYyhUU424G2jhKQ2Rm tC2CmmuDxnwKhdngv/Sr4mtdeUj4sQtmsgbAxKuIxMy1XO87wi2+lepl6mYaU1HZ
g3fu+iPB87MHfx4gRkUwC34yvXJEf4Po9T6pxEv7wpFGTts6VRCm1V3iOPz66dM3 Xb7Ju/Z/z6QEKi2WUhd4MlLlmbKGJ7f/RXYjXe44e2ZyE2rwylMHPolQ3XwEwqUg
Kdly1r9uY5F6LCuD91GU/A6auw1dwxufqbvs0vA9q9eu+FGks+1KQu+Gr/A+469l vCX85xAS4nThWX6DwF2t/LmW36vJhj62zTJU56Hns9RuZAKgIVsABZWwT8quOcX9
LttpriX6S3EUpXfyJihvlKFqTyHqQZkWoebgFpuVmyh9wC0q0hCCxmk6HF8hloGY 2r5dwI3lmoaY9cUQu6hLv9dRsKRlHvCveaRJb0Rq4aWkU/EIZgEobMjIJbdVDPDi
xAemKCPpf4Ee/ydcPTDtgZDv2zR2SA1t5sryUrBdK+bmgflNP9vFcGAt+vZzC0aN nG2cZ1YC8gGBNazt1Ypy7iQOpQDR/0yNOwvQksveKigpiyuMOkdrKITsD0hVh9dt
hE9zQsiubOHWoNCXD8z/DQYLaSNFOznchrcd2tCqW8xIjl91mGFKhoeuBv3c68N5 RrqzHvRyZkiEm5KvDP4T7FYaMkTG5z8gd+0gp9FbUqtdivfaRr8Ewqz6DL+mLGWx
PHtGIILW90lu21Qtc8u3Lf9TFwjxNxkbQCCf/By73PWPwldOiX6FQKKW+2nmERuy 9bH88IIDAtZk9sdkYs+S0lEBzvqoZQN0QUhaJWjCfbYk3QhjxRifEDnzK43q0ESZ
u/6dtOrL2i9/WRVVzniIiF5D+xR/1vN2VduUzMQpLRdjz5U/G+oQ2L74Ebj7z7us KJCMqB+ujsTFsZOEbk2hdbB0GtkQ92fazi1ADbg9eTI9hyI0nYVHU86NQws6cYol
kTwPcoHN6nZiMSnPUjHDj7HRAZp2T9bWXGQbRIm1aj9jbnaigm9xki/jqYhgf8HS jQc=
XgGCuTPNSwGbGh9qov5YrqnidDkeLl05puGsnV9S8VB9uCxC83qB3y1EJ77RVsD1 =2xds
XzDDafrkQgStOLXQGBMYqeG3RjBR1Iq4Ng754Mke3Pdg+tM6jKFgqP9jdnJViwA=
=L9WE
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 93593B8B0B7B88EA2DCC99F9388B6A662C356822 fp: 03ADBCD31737EB474A4BD235CE615FAF927A2054
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4D9oMBxyVlaokSAQdA9qq25Rk3+ecAiD30KN6ZbYQ5Rs1fpfuoVHi/yTSnRCYw wcDMA/IHQvF5YsEcAQv/UMgerVrfVFuNjIurmlsc3lTz4FEa8SWDo+4FzWkcpDVU
lW/nVamEfdhYCJW+oGDhPTagLIEYQit76yB9BjJ74aRGBnmoNCemnsgptDD6NtEx oeGq4S9RoX80RtzW6QXmHA/dwnNxlAVFivNykCDXYQmPsUr3k1VX7lENWaDu9B+D
1GgBCQIQT4qs9oSWF7nT7RbqUuHZo+rOrMQa/Tc4+aNeT4t+PvunGYAPFwfI6YFE 2Z4RxoPwRN5jxSo+wFj+y3G1IuYFRaAk4Uy6tc+tG7K470JIzciEkN8zVxAuhd+M
K6MxpQbmtyEBbHDInz2TRNqh/EKW8ZHx3jULUUSCkf5TII8qFqzD2tPB9bW7VO4k ajgC3+wbRYRYbrAZT3t4NVoyDUTAU0lmTlRG/hHx/uLCR4QItL5lWeHfulKX3gQn
cehLkWIlYYT4OA== fq4hhhKMC3oqrdGrqoPL9RT0U7dSAVjyFMCgjWDP8IFS/PcK2tvJlAYf6vlm/FC1
=zAPp 4/N5XiW70F/jwXhPjnnoDZsd/P4wQUdkaMXjNtC0xWhOjsopL4J00KP+i7QLgpg5
i7WmF7FcWUcKpxIQOuKYUocsUjOELXIo3cBTsGPXNZdM/thE6kM04kHIJ3P8CiSJ
pzXOmskOlUFZ/btC7ctwEPq/BnADE54t1yyaN5iSEUdXjn9izv3BUyK1GVlxK60V
4LRZ7FrAWE2szXRsLGur0lEBamlOdPrpe/u17GEK5PekTA/s00BoWfjXmep9j4Ti
8LxtAoIgVWN25i8uYLulqNHXT2eT8sWPHw2YEVzNGPaxitsDEwUsOJZL4FXmu25C
g4U=
=SLdk
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0143019F62469ED5A6A016C219CA764D37590F9F fp: 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA/fyan/DNa3uARAAjerLYo+89cPKRGeXJnv2rNoUMPZL3udG+7x8A+RAstXp wcFMA/fyan/DNa3uAQ//d3+Vg6+kbssPoolgUhc1vcd76ZXQ3MbfJdUpn1Y38Tsh
Vj35qkocQ/PV/yeZWESlhamXHKpzGtuF8QoOukRvqBs17n731q5bEe3tqU7azZGZ 1Rxp2m+CHSbp0a2ljTFtrbyvcXE9Wy4ovjRXy6DR1JWOpACWO16D1tQY59xcw13i
DGinvqwLVVwMxxDj3z2lczFK8hl5GwOlfN+MtZvb+/bRm7d8QPPMH2Y2OoNU4sVR oBnnsBY1vEutckPPK5F8jRF5dpNfsSuzUGThqVZbERZ9RwEbOsQH8rK2FIXWIUDi
8fztXlGqfmZqDYXoYkCr4wDCt2XLS9W/ydDJlGmjvebpx9E24HUcgNcKwu6pUSwV Kp6I4rKqH875JkEf1/xOtZ3FO73QY3OEelW4uESKhteN3Y57zeib6xCv3K0Fo2LQ
UHI6UU/rtJ8Nw31G50Ar8RRc0vGIHiLNdEDHr1cDVbtvf0ySy9kmV+M+Y69cOhZG WqEBO+w5s312eS4eKnSLUfcbrD0Ct4Cvqqh1AA2nexnLcUjue4cOTXPQeJ84rML+
lFbG/RjUaWFvueS11PIMc3c5vZ/7WNcv6dCIN0ek/W45Ib3IwckhJnbuxPImwl7u eRp0uvs1gU+fB4XQiaPqKhGqa4NRd8N6hx+sOLjnn612CmrFs3q762Lx92MuZf+R
SiiGwbMCAjNLrWJkfIa9d5aKMHZ0TycPVRWPthxW0fJ5Xfv8Ta+0WnTIG5Gew3YW AWdsLoiZq0jFPQTEqPUP1RdCt8682y3JPeig+QV5XpNo4rBXGOnKKRkCXkUemWoz
nuxtMkoH/HVJV1Ea+AmcM9cj3SqQftK8A3zwMY/y1uB4B2yO33AU651aPCKp02yU /YjnGv4cFJf4t8MxjYSCKFWpONbmVWhFVXOnVOolXSUHtV3fI2toG5b94g1EeQeL
z2JGP+GYdTaL1dkAqfp+b/tMXHDgXjSGVGnfIqu6yYg4pIs3k0M4R8yN6Pb1U+qc Wuy83nyd8lm0OmPL9gmCgQVCBrP4u5tVInWyyWhF+I/CxL3wo4J3CUpbD4WjsY8o
x6Q5ZdLdDjuEN6iEMz8MSI5C6q0Hxf7MFFLPTn83z1aywNYsfKxqsovvOZV90VC4 xke0o5uU15B1SlYxPBJLmUfNDiygjZQyB/lOKZ3BI5zuXUDJyb1FcP169WeQSUZP
AnQG6PZ2I+cI+8IMLcAoPPfC9iDsBz9fp6NC9zAsBvH6YrkumOfp3J7ESrieTo3S EkaRHkVj7pqqyMbjunF/2ZP7r21SYk88rToinH01HqQV8G2Fmxw6MBpbfU9/91zS
XgFIBgIV9Dw6BO/6BqMJ0HCrlV6cVudf4r4GoE3saRjvGImRFe00LrD9TLPlber1 UQFfxsGD8sJmSk3XjigjVeoXLkO8KWfFGbm0lCoa+TI0MfiamYEMhJPzQR8gwtxi
WGxNBcY/KAf4RUU4ERSB+jKERgYISKdWDbogGrOsOPk0AGbFEOBoxS6/vkNPJXA= DEsaz5B0GVwrbMOHG54MqPUGxPV+cHtnuWxbtRmxG0oQ1Q==
=LaMt =cPOL
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9E561083EACDE14694C73A323A2F6C1D153D753F fp: 9E561083EACDE14694C73A323A2F6C1D153D753F
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA+cOSmNXMUmKAQwAjvtVviC+gqYHSCFmTq/22FjeJvCzG0/3ww75p24VvxG2 wcDMA+cOSmNXMUmKAQwA1PRef5Kz4hHgEmui6uUioadp7ogQ9T30l2JOPnghdg8s
Xs8q4BEdoKu7yQiYHpHGzQbXBBfKXy2ecZRT6bFpqLW/YDn9At54l78x2Lr4SBmf YRuOgjirBJqkkaBO8iz+l41DvTNQHAwkPV2zoCKCpHHyeM/hNy0LK8QfyBadGoSB
cKJZIAFeUsa4Zqd+OEMMcZ/q+49iDYCm3lv4eJy0mfxC24PS/m2ihx8MwSz1oOEq ENxnre8WvwCQAl7w1jUzy9rR5ugVWd92K16DE49BMR3tczfmOt4GVegG/CknJBvD
eutHDAl01bjPlGaH9qN9xDBx/75P0edJ1wT60vghQRy92nSURyDFdZKUX3LKNT0V 4KPcancT+KW5PBOsnefu7KqEMDVl0wtEC/FeCVQlg7pECIcrEqB7i0lfCqHJBi0x
ioSaImYpkAEgoXBG7W1GWztmU/Y/JY2ksRU21GB0Ur3lmoFZqjZZf033xn2gedF1 ZAb+QAKyKImIToxPbSmGKlIbnICDlHkLrjR+b1lee7FysBWswlXC1I9sZCSx991h
SaVHUPtmIMYX7QapX04l/2jALYmsFRKaAlACFU9dR2OYIz4nps0/OQCcLLK/TJsn /bCk5sX9GgRVkeOfSd/DJ6jVIdxMlb6PtI6Yr3cKjdJHxroLdKd9GqT9TsyKxsNi
a5FTrrJR89CY6u+22NYmjjGMRZAxrnLEWL8MDTbBgVevIkaTCtEih43Yi1eLwILq /6IPo3ZiNsKtVj0ax6V49Ep7+0HDdFJMKosG2N5mqLwGcyl5Vno4PD5lCiCyLAsA
GVFm1iBKKikTs+GXOI+9Ye8YJ+aCHPPdJXUy38k0nG96TFO6l/QmEeOd9yfuYozQ Rpp+KUTTihWOcKixdmrup2+IfgHPx8EwbtCtl2cS2POKQCA1qZv6UK5qoncx8+ez
q3YSChDeJmKn58gE+5So0l4BePJ7cn/DBoJtF/iBpCgmleEo+CJ2YuvfifqQRz6u /Sld5DXucNsYDto8XcGs0lEBmksc668Jrcj/PAL0pXXTLnziuQhFMhL/9T8dFjvB
HNY7z4jBs3eAznTgM2ZVDTn3do0qJqVfddoeCErbGtm1uWXYGERWZWp4+fhWb0Lt MvMVCFwQc4m3/ebFTddsYtlN2PF2rlSaOikijclN7hLT9bUPQJVr0SITiPolgg0y
Wq35XZ+yr8WDRUlHtsaa v6U=
=4d5e =KacW
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DrMuSzhFbHkQSAQdASZkqTXPijGnYNdOnrzS9tqgVJKIj3n/bjt3y7QSVPlUw wcDMA5bUWViEqX+EAQv/SyHaPsOtqYugafiYw6M5pyIlBdUlVDgh19+e6eWjVLLR
MMfwIdRjrvN07YriPmpLtYqJCCxQNGVNC6ye0bhCbdoCyomZtroiDdAhKYFr7dcE nwrIsgHvWGi4+/10pSJGXJIPXx0u2a7etrodKPM1TjJLyMUz2MEQOAVv5pPT7lE4
1GgBCQIQPQr5Yzn5xFWjCcKM1ut7kL/Na9uvyiHqrtp2a/vZYAbnQzBf97lbgpGt 9KESZ/c41SSnjmgS+bhvTo6J0WAg/yMzGNahNAs5ZPqSuWWFqLIoeiHQjvPPZ1eF
GwdPt1gmuc3wcAh2nG0vFltHYyJ3BAF49t8Ol2vYXrxFt7R5txxve6Ijr5RD4N4J szo1wqKZz/Pe5gNEVKenN7+EhMSU0Kzya7U3yErxsjtkMSf2vOrlKkXyuTgsiPXQ
ovWR1zjnvN6jOg== LyrG04EnqRo9AZQgR+3BvOUxAoJApjBgeIteKtqu+qNI/bHh1f4EiVrkBk008IY/
=fm+K DM2qIiX5/EmT0l0dtpwPYbmfdqnKqUNygE3eGiCdizmceTnkETHatX73g7UBsIul
3BFWSjD7svl3onhocygIo7aCQVgDDULm+t/SJstXYIh4lrjqQmswYM0VDzfaiCne
u/lrdBTvSSlnilGk2GbJNJx1oaUU9gERqYYUdUTD1t2/JmAaudTTqsHhFsKWPnqu
lDA/idHZlfQeFexW6gBo0lEB9XBd/jzfCUw798EEuvgrMFre4UGo16obVjnxWrJ6
WLqbDRNWPzT43uAAW2Os9aezL0qglXcNX5dI/ve2revJOyVsIt6CkxvjlzJiQPZn
q4A=
=D4n3
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B92DDC9B908BF3917758D228446C51E049AE38CA fp: BA6328948D50175F196AAB5111F324603D12DD56
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA8YZutSkx0fiARAAm4woZmQf9KWuahM4fPkMofMKzL6DGCFGfFu3HabFnVAv wcFMA8YZutSkx0fiARAAmwvzEOXs0PBK5w7h/38B9GRgmFCv84CL7XKn4uYXW9jA
IAVqW6lCpGPI3XVM9idi3Qie+SqHU/Frz4phu616b27u/7kSdwsUQJ2UrBuYHHvN rzvSjj+dj0/cIjCLEo+6RqxahfHqTsGPlzCtEm+BI9mJX8RBpEkclnkAQC63EO/h
HptrEUKZFnddbo5kfKa/Ad4Bm4ItzXH225xV1tvgQUETBEPAjFblFf8Dg0jePFYv /vl04Oztu3Sg1ADTEeyEHvx+bhaE1jJ6LYcc74ETsJNQqTJmAsTq/tme73pEWHpU
hI4ObFzYytkUK5Ck5dcRAbDSd0SHe74Hfh53zLZRpl4/PlCVdKrUvjqT8EJohC/5 SZeFg9RCs3iFLGG+FkJsoOv+TmUF5u3NzAz7DZJi5gB+LgzJ0JukL1LAQ3o+un6e
FQqZ5M88GI89Zn6Bvhxz0YKnJl0WvZ0yGHF2xRT4sL9fJq0cbQeUKBknFdll+4Nz qN4yZOhc8ZeXVK9X08MMZ4a3ErsWmTXzywsWie8dWxDAA48n8wJKgt2xExygywW3
NEIq46i+b9CsCWopeaxlRpcwaST53gMiGYktddrA4XUvlNK9GQA98pbZtkfCYA5r 36Ugk2WNfWY4TlrXYNtG90/22BHOXDRWTrw7NrHUYSUf7MzhfkEu+IQNYtY0um5D
H82uC+WvQsJJYrfyoZwcww5YDoZrm0vDmZe0pFWXZsXz4pwnc5Gn25gDw4cZ9Okl 9aqwa6mLComBuYlXOu5ItPQfy0q+TF5sURXLx45TKH/KtQVVEJMbe0frwDZWLCsh
WHHGEwUeB7lKy4B01DJtN0pgO3rIOQycV97zFlWyWfmgU5I71lBZVhh4J7t0D+iB GZ6F4X1/ddxlNBOLPm/ysBA+9a0fvNK4tlsdeD55vkqjY8o0iBK4GfzNYLGSxhs6
X2VvD1l7oQzAgphdoggADOkTifZ8EOmCxLrJJOmsxOKBlUmob3WKzhIcy/DmmTYZ AiMtGAIhDQejaldsV3CUg7L2KSA51KPx7Db7FlY0KpASPZrh9ADePbkgv1vBNMBp
wTCxOpLDFHRWaq5hynT34372TwHblXA9R2z5U/taNX45ENYrfzSAEhOwGX1fYGZZ pxDXdxBLakhwgruJEcMQ24vjdNF1U2gAuzcOMmUz4P5mKTqgLoBqZmbAuUMaRjm4
8pjB6SGBWYYoiBW0MqAkGHqWv2BHEY8POmX9A4glUjtftPWTLHmDtu1SjC3mDPbS z3D6XMVFhWIj9HSesbnOg8REEfh7PwMgER2QGSyolTKomd77Qa1DNw/RZXyPI/XS
XgFGa5sFtQMh0SGENacIwu8iqXDq0Z4ivkK9KDDZKt+BCmvZWGk5rvO91ZqCX3RC UQFlSb9MVVjmKswCvAUHayjpVimTqBQqmbRcR4PQsLmKuylC/mueAlcawfSjjKli
c9yrfExWKEAq9+MQ6qjxpzdmpz1ThIrdYghcnz0+nR66wK5QQAMyo4JJ8pTqAn8= vW9jMuddQjLJAxih1GhVJbLR6xQZhM/3vzG5Ovt005Qhpw==
=fhpd =vQIB
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748 fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA9vEXLVODHp3AQv/e502IrrUfeQDZbx1YIL2ulTX4Mi/o6C4M1mT0spXeqFW wcDMA9vEXLVODHp3AQv+LOnf8kWrZoWoxnED1e9BDtuitn8Q5AVB07e4u8RA+0oD
BKKDV7JPKiuZqTD3Db3qS9hZaYaBtw6m4+opR1AiSdBI3+IHENx7uepIrsCKSoCZ ALOruldWTMzEWMzfZESz14gTF+A7A5LOemmiewZwjzu3QSeANvwZfItjeqkm4Vvi
XL8YEA1H8VS3ZsaF9SyrmF5MNt9fj20/UtKnTrXzVNHBhRghSF/iQJgmIQSOR/Bs 3CNB+I7KmZ1k0p/RmKBiPqWjlFYLplh68e0Ivc63R6bwfbJWmYPYjm78oFqq7HTs
OCbEZFPbdxNineI4UgT0LymPAMzl9x8VDpJgx/PXdU5yAfqk6i1vwcWM/Wt1f6Ai +WoUkSzmZQdWhVjCG/qtvA2pEq9kCTzIqgPWL+8+O2TPdbZ+xbYF2UZbvd/UQ2xI
XXg0ic7Q500/n6H2/HPpU/h40NQtUSL5WEUrLDDTM/SBoNjGnsE5pPJsP4PbXuXM 3VXAV1GkKihWaQmr7nVhH2QZpw1Y8ER1EuixVXi8LloiD+x8KyA5hbjCh3RRvtMr
dft46OUg8N/oZuoN/DVCxQxCUkjswpMsIgduHLfh9EtUFveHh16g91stslZeQJod UyphedMIQLFkU5cf99YvD6gqqAcnB50yX/mPYtbQR2RzAUuppnmyUg4O+ouhmL/r
3RDAZYtcrEiaLy/Cld7DHykW0hjsnYe7xRv9SCp0rl0cfJljqVUjB3H7ZtRNRZhS CJC1uiRabspZ7VDHQKVyPcjP5g55gZPtoJJqJrkPr5rBIEE6v2UFPq9isUhn4+tb
btEuPKUIyUc5yeHG5tzU8+B2EhlOu2v4U3CGKqnJ0uA25WaJ1bKGGpkDlCRrBdxY YqenVTCg8X+sgjiqeEsyMKNCqwOlBK//mNcXmVTJelHQzRJgrMSzOi+5yb5whgNs
XmpPNQNCtHe30Gq1/dD80l4B6tI3Aj6WcdJvyzK98MnzWNzQY/IZNBHvfLxdcfX0 wlwR3w0EPqRpTyJu8fxw0lEB4Y2mF7FWiZ7GUe/RiOLak92tja7VWt+xcr2baPIt
bdfc8w58YfDdqhGZXtQlfrqjB9CoZx2vhGk8wQevw8/6Z2VtGpwVX4+iY9q5aYvL 0E1XpI/aSrA+sReH74iRC+unmFRagkdo/cUYfCX0WT9ZKAA5OHYcFBOCbCMkTX9p
XqcHeARup0yzrBI8i46I u4M=
=iFpW =GPTC
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C19A7D807525CE24443CA9A49372E896B41FE700 fp: C19A7D807525CE24443CA9A49372E896B41FE700
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAztV5cc72nziAQ//YN+hIkadfvYWgUS6pyfym9ulATzJszRyaZk2MClrSHz6 wcFMAztV5cc72nziARAAmlYtXpJOJv3KzfYdO2opekdIupkW4p2TSLaXzKsmHaoH
aY7mDVHskvlY9laeBR0xSinEzY0z9zus65/zSYC4hahwVUPPPFh1gmkOtEJpWWRR wcz/5M0+yJq3UZcOpcYZ1WQt+LrIYE7cNdh+tDEFohYE4kLHFRJYirdASgd2Ez6K
KJHNDQe/ucmNy4evlquCz/CCgABBN9De6oXlo5lZoi+X/gKSLwwZhPKu99TpinHK xZc5h612MS644uSf2c7dvyEniOUNtiyqHJadL+/BkXpdECvfwDAuff7vrYgPMLOI
z9MGuxyxdudBWFJA5lkW53t7TExZkVRa5uu+vBF+8klxGLE1B0QPp0myFWhW3lMA H3pUD16ng+7cF1mSq9dnoKGJN+qajFT+3DlaZrBnSa3uMFAQw/SIGknIGpBzI9UJ
lil1DL4lEsWNjI+4rNw9ZNPLZ1aEYdrGVcOCrs7o51BDSxMhYks0wLYaDPSMYco9 ZV9qU3P5+/3cpEq+xYsRjylIqzxIbhV4OehIgISFdh8MvLmPAxLx/vEGh2wHyPK8
H7u2m4yvhUBXi7aYNUk8+DFJHvlTk8NSmFQtwmCDEf/cPzV348PspoAoc5Ans7VA r134kD03wyX6Dkfqe1QkTLcvraAEiNsuWW39MIoh61mFBD+bx1SPXAMkEaotyEhA
sGvHjil/f4S2e6ayU0sdSf7uedBPRkQ6bVkta2DUj7lDGLO739n6McuknhbwYlQj 0Bg+LuoRkoNEeghXvUz7V7dP0WfufHjuWY5mNHLBfkc7jbx6ETWn1KHZmTMrpFno
zm6tkQ62v59nR2nhNbpL1csc/Ksfkdp6sJbclQPCA2TLgx+K/1lSSZd6E1aJf6St S46qpZnacVGQOcPs8PoOZ7FHhr6GMnHsZXdTkVJW53PrrJ51Sf6wiTGq2XWIcXjR
dZGRUy1PjwRIy6TwrctswuIMSxCG7ZEtdE1TIWKATgcRfcbWWOLvglt6sarbCNon PIqfPej9JtWp+dpuxmOZYW1yMwTMrr2lsxQ1afEGtTIyF4+WYwrGiqj+6o5MJ0f5
IerhQ4dGMd1aXhU6O7/1PIcXf7dA4oqmyHe1BXSpoXcKft08GULpZWsVBftC4Ay/ MphpD7iLwJTKo3JW6u+vuJ0um1i3TTvlhIgxO0vQZ5XX93rGZydNqnPXtJJk9wV+
+vCGFIUtxhmkqP/1TXByZBdw2c4MITqNWrv6eJoxTg2wMuhdy8G26KL5RpNPyjrS RMZfGAwy+xCpcW3rpmtzLm93JyU08ttlpfpcQKZou+/CUyQQHWTtvjGN/ZpXM9DS
XgGuJntCHnLofzyu3jgs1NsBwXm+S5keE+9rBT533W2fjtwmtGN8pOowc9tDN3gL UQGvX7FTCvLwvcIvtn2wHMuWmnHSSALrcbU+vY6CV6GBHvdsl/ImJ9Co0rq+M3VY
hx/Sgqmf/D33XVfnH5FlCKRsqEYwVplslfklgjDlDob2wKIjcUIjrbiWZ/9Du1Q= t/tolxsGPSRO981BgWmz1BNc9TahsosWShFS3mTrwPbMoA==
=18wd =v/V8
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0DB51A7E90AC6418B7DB83724D38970874850C33 fp: 0DB51A7E90AC6418B7DB83724D38970874850C33
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DZmNQj/lmIGsSAQdAHsFusAI1XmMWu8RvjcK2FAtiazaGxPq37xZLTGbd+3Aw hF4DxQtfVaqAjfQSAQdAxexVKG464D0ioLMokAOrzNihI91cFatH1FTMJAb5fzYw
dcWsrkdYYYOpziOnzFPFl9+Jkw9SZmg19Y0gnr8x0D0EYGntreiIGae/amK2CIk6 8hpnBiccDrbZHotReamlNaoJt7jGn0Qbm9NtJBd4fmui+KX1ebcbc/8BG+3mdRna
1GgBCQIQdrq8vRwktEfaOY2lw11yvcgxScxTUSnRekXDmrZFXoC0tOz9y5Hl/m1t 1GgBCQIQtHx/QUdWkOIlA4HepwkxbW8iQx43na6T984cKerAsy76hQpualuwjol3
BaqNk5rB/ZaS1bxmWjnntOmamHYJkmmxxu90RbeHvRn/FPzaBOY8afaqHXVF/qV1 Vo9t3dFzS/AuqbOY2wX6TvWrXKvamkcKhlmTaGiqVikYe2Y/tPWhB4lHNSMWheZB
IIfVAZBobrWuJA== vVHnbym+rixhjA==
=/l6/ =Irjp
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C fp: BF3D5CEA36DB58AAE1063D0BB341078652D87924
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA6r2J+JSOMNuAQv+MiLJUpEczlb4dfa5VYkAsZqmuJEbM5JM4kzlCFuO0n28 wV4DZmNQj/lmIGsSAQdAWVdKmqeffNGzocmRTUOVYEAN4XL/z82Dk/IuCY7ryAkw
tfOdiQRY2q+l0s62gxUx9jkmDY6jWWnWXi+Pp34weEU0cOSY3WTPdQTmAcz0fL6G dCokC/yI07J0fj15TKnetYCdpa8jTKTXoc3Z4uLSn0T1aKg1+FtvoofC3DlsYszs
SVJ8jf8gOLcL4/ubno1oITR5M8DL8G7vZlZ2eoiz0mGwFSJ/jvAWuHZmlCnEfew/ 0lEBBGlM+zxriJOlOkPWx++tvOSxAKpp2HPO/0ElcZU6npDK69L7G3kIW0gzjQ5Q
HvCcC0zDv+rYBrgyl547Z4werfXLoMlw0g9eayKTf6ZmDAveMx/9Sfj6SwtyiYtQ KH2rjxPC++ThCFhAwwjwSLbIryGM7vKk9FnCgGbran1t5h8=
BOq5f1Ek/LAxxm/l+XJQ4tQmNBLAbaSuJmAM+bPGYOcMnksMQQm2HfRyzOQCI9Xr =V7BJ
ZPb1OsVhhbQcL6saTnxw5OTKLMnpHQpOqr4Gr1JhgdYZS8UhDAqEkSZCbeQ86Hae
PKRx7OE/WuvWuguSnliI7E9Gi5TLfgxV3kpBOXbq9tnOeLaTktOzC8i+KGT0oIul
XuulcQxU0UT8EcHhF+/+GyIKfWs9T2keTnFkw1rZOOaTsqGqmjYyKxw+akeKjsZO
x5q2H3OgEZH1otvL85Ng0l4BnOWYHPsbCvEcP0jUdX+Sni3Dvy6x5jAzCH9xJwx0
3Hg9zZR81o2T1wJQDQVA6DnY3lRGJlB3gZPH6XWPxB5Wdm0Ophjbo/SiTDPNWULA
BiMoMvZYRw33f7arpmx6
=4oXO
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 3511D1A5B7B2AC97BAE8AF3EE758168C000375CE fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DAQRCY74qADkSAQdA8jeFNe9adqFhTEZ/jQUrS05jrjIjNA8JIR9af7f3glMw wcDMAxSu/PO9GEkJAQv+N1ZJ9h8PkWI9MuX5Ba3oAFxRzq6ghc6J+8nz1J64FjzY
bUTI0kW9S2/oXS4TcDq+Gx20XuNru+OBbxqFkxqNy66Sy9xppEoRo0K5Wc3b/3sW HI174WHdjIrD3l5xC2//9HybWJETV6ibzJ8bNtSiK5mBrfrRj6rKKePv+sp1lr6B
1GgBCQIQF0+VEd4kt27jo/QOsNMNhbBgO8MsdK1fps3tUcFR1N3xLB0gzr3diI39 YVZtyWyjMaKSVtX5fmSFxrBxM1Y/8fEuBp3O++SzJvud8P49M+FYB6/nviB/yDy0
U5AlQZzy0FB+A8RSNK3weRnFDXuysOC5znFrXvwpltqgtW6qzwG+0FzA7ClhTgFf vC99Bts7txkjGURKAXQmycGRVYfLeGDHWDP7IHR3LVOPaZ7aas1waYLk/ZVIL6PB
nYDREKmKCj3nig== LCOWVwEaemFBfYlfdu9Ll9V4j5aHvzDh3ZKbGB95k0ievGn/KA+jOnW2EUNa3Rsq
=hFH2 xURs6gnzX0fo7tSIxY6AXUl/B9vQwxD1DDeLt/qEvc4kPmGdPlHME7exndTDEocZ
CyHk12F77BK62zTqyPTdQHy+4EOxKpIgrCUhG/QbCm5F1FytD6yfor9GzacSCoMb
Ot6Ute+sjLQZFO7vaXka/V4eGNJbc5DOFbtDqPVcuUKbdtVVYccKELpCaE0AxBGj
Blc/eyeZo4Wluh7tHbfw0lEB2DcyrFcBRDPBSeAybsTLR6UC93P+1cA3lRotn7HI
h7mhHNGeohFBXFQzd5yV2g0FAzMwBTC+FVIOxNLONVP1hmBorI/R7PwOPDXDkcis
Dm0=
=NVU7
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A fp: 13E169CF5C35EF164628764AAA2EECBDE0B38CF7
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA6N7K3Tfl3HGAQwAgl3vSd0O8NGsPosOI8XINunpcvG14pdPZvSN6iTf4gDY wcDMA8b/EJ6Mi55zAQv/VYLKEqNrBQo9iohdC2KcEng98V4Ez3VfEKQjydB9T4w7
+Vdx4ECXRuW47i7hEstPybzL+fTAQLmStWY3Bg+mFfhTTFARYfDChCGJxO+/YTZg nF4JLq+OF/sW7CkAhOUssuJct3zEawNu/W7HMcbtD5XWsb2GRevWFv6w1VG2ANWu
2IFnO1sC5ioahxQqhrH1dPVimwERFF1LNmp50fbCoK8tYU7qeaeej1xiQeN1zw27 5UT7rKmSBw20gFtxw8VLFX//CgZCs+cN0PZcMzXiXdwr7HwEgzZbZc3TtFtNUr1q
YcspHJMCTG1XxY7HTg1TM8a6LAqDxkQOBdJgdLKUMPpfifhsxNv7qSZuoWk4Y1z+ WORua8Lswhj2Uu52euK5k0JUJdzsxop/p8s2OSYOItKl2CcqbzxLngbMcDIUN3vt
iNa/5hTRao7GVZP8x8ctUKgo5sODjKVwL5o6dZ8SA3me6qFsZFu0bY8v1cix45mB /8Yw9mnKGsvaKT0B7x0bDSMXknfuq4No3HUH7+FrsIDhs90XD8HOqUS8eaNKwezS
/23amvyvctLUoltdz9Hv/1aE6K1oHEKBBje5K/vaqb5GnL5yUsivf0cj9xAWdxvi hhsPlhhSMDczqKCnu4NfWTmDgfiRjR6sNlYngtVGnseG2JKTxC68j/5LMrNOiL0v
yMlJXd89ev71wrZzW0AU2uRLb8+ofaE6eJghv13vgt/NDDjv18JXUbl+LjjLYOTr EgH2EUGphg0yupTeuUsVu/JLDvPq6DRzw/egwCwfeInS7TPFHwBK+5wAxCX+3oUg
LBGcBmlgi/a21XODeOfEDWStKCvbI6zn1gJhOEZ2YejcraZqIfGS4kSoOqN1LoPH H5XuFiM6xAmJWzYsuZQ7i82WS79BkLMfxKlu+1FGWO0fEQMlTxYCFNSdUfGBHnqT
pRu0hJNzUvgsWFMu+wCg1GgBCQIQ7VZkRhyPjn9HPKxzEfU1t2k2qFEIbo30j0CH QElvhUiWj/03CA2iUx/V0lEBU5JACYpml2V3uwd1dlQQE/OFlBrwlHzf9oIY3Pq1
faZEMLLC/+h0KiKo9bkPYb5cQFNkGk8ypOEMVWrq45KHDBnBz+3/fqjPS1VQ531j s4Rf+gD5wdX1PI3K/68mcQNedfXvmwv+HGhTSfzAXwom65jPYkaTOBj5TtNfdjxU
p4e13LzNoBRBABE2PCbnRQ7AgZENhbSbYA== dzY=
=gvDl =rMVG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5 fp: 13D7771BDE5241293F3EDA442AB3335ECC93DDDC
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA5KoiSc3R+FfARAAtRnqnrjOC8C4l2lcHOzKXijm+hFEdiy3aLRdYaRaayJA wV4DAQRCY74qADkSAQdAM15Z64heWtFlCMworwtlRTCziwpS/JyQp+4VOQlDpz0w
9EJ40JAsDls0c16MOkSoqPy6wzYyxCGLMwMPFd8E5Obwsewo+VwL5x1OytYNkEtq 9dO6QL0rHr6/RYj0nQ/fb00Y9X90Kq9XEG6GWFYjkiQGeJ7DYooNPk4HWV4HTkOG
e9eLQJJ8Q78K7/S/jyOy9hrUKtOzzFYm54RDDTzC7jR9yVYhuD6fO5+OW4Ds/z3P 0lEBinuysaQ+Lonn+9y2JsnV83L4tf2awTuSpsqRVLYBNAKHfsgcYc0Z37FfURxf
QCJFWPetjxpFdYPD7mmy7/lyS6glU2fPIxmrxBRRVx8kB6bkJ4mpUqCcbwHCq4UF jns5ZFOch04oWRKT4Ufw2sMHgtaqV6+8Ri6tFWtHS8aUMgE=
LKIIrPB59CcK1nlOX+heRT4CHjd20ajmNB9ZgT40GswgUE17vosXwa2xQVb/HKtp =CWEz
E9/nFWn8V/buaSWbnjvySMemR+f+NIACq6Bu/xJcpMvEINKB2S81D+cx914X2kwK
SycLc72yLPUy9Sa8rxVIZ8TbMUJxgCcVzUUog8legfb/zpVMOA/0/170f6eoCOkM
24GnZ4ih3tW+BPS1g60PnbuoSDLU5J1oM5WQ78cMgVSFItMZXHll0HvG8syMXbR/
f8zfArUj1EVGVTBoIb3EPCHeoV4tLF2gVgHnr9Y0bCgQV6vEOg0eGq44BRhEgJE8
TnQy0ET86A8IL+/aytq2zCmE06oIbxzMA++VQLUJYCnvA/rEH2Sqg1jRbLhwqYOq
KdZhu3aRPUQQVgAZnxj7TGaRqLMFOppgoYiSAE1+CEKrOafmpIrEp4OMAKe/37HS
XgGvDkCu6Hio8Ioc7Qe39vhRwYnYWY2pJ+RIoBuyIUE585FaYmi3pZSeupOCuJxe
RFbCC6clt/8xj4Wta88hJvqeUeBScgmsHAJDY2RTAyEk/Q5GomNeoWS9TVwH6W0=
=AnWt
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMAwTtVaE3mgdcAQwAwaZ+LZhADRQD6vORPKogRb5LHRGblK5NXO8TQbKJMmh3 wcFMA5KoiSc3R+FfAQ/7BFHn9U5mrARB3hFmzMp2mhEer1nnUgEh5InbbgErPkZw
qaGRZGdrhehlybgDI4uRg6OwIAGf/mEFMLJwBCraj+VEvxOAah/U2SHx6XwgjyQs FydX4ikmK9xLyIxF+wUXNQTtSW90y+s3NS+ZhAQXbGwToyNEYhO35ngp0Ju7tjyp
znRZyKIsvA3cpK+6D264d/d5FsiCo/PLMN0qqk3fbQQgizFDnsIK2zLWYsujTNAX zp8Q82fUVI6r1UrWkddwd1QLigd3BE4i9I/xrSyv3sjgufOXwcHGpzOeLt0QFy0T
x3kUpaaVFG2R0RPpy4xOYhUphTIVHLGMml8Xr6YLH+3Hx4rfUkIzJ0fJ+yPjBwkV KG1m7F/Hx5KFtpCmhpkVF9zcrImgMXeNvS1B6iVe3Y0elvzOqZGviFvXqXuCVd9G
wh90GiVVHBxrRYnscQgS5j+ZtATMjVdrMHDww9PfjFx/MhUd35MdAVABbACVAdEu +MNqEiKsHZ8ongHqPW9UA0N51RPtWqZ5ANul2+kcFav0UsVIMGDvt6VHxm1ysQsT
UGdOZllx6P669hHoUOp4u4SqQwrNbLOdPFvPDOvze68kzFxwWnlgn5o2wrdlcUWR FPw4M6jXN+bCgYKguRQPxIhZG2Qv2MpkGR2nvkFN1+PTF0tZ9I8X/wfUZSH0QnZL
L0mL4cqdlHahlxwbrRoiP1Pwiob0LCx5+Jf4DaWZqtuhdW2R5pZVyH8WgYM6xkhC Z2HNobmJEefY4hilQ/QvBzQpVPVz3fGiSlwXGzX3FHURpibWfKzk8Lw29HR7kVUt
1IQ5Rb+22hmMtgfj7RtyvpnDaJhsa6TnUbX1IoBcO4uvUIwCs+EVjJwgRrC88E96 cJjJKeuHwnMg5HkyoRWTlFEe8gVrDJkBIe/MYkjoF7+ROcEn0yz9egGcawnIAOjH
0PnVEiziSruqw859GJww1GgBCQIQ4GeGPwPH3IDoEK+rBbq1pNBMQKXEOAHqyfkg rcB1HoJvl7Vy+6ybteLncvtxEgREMZ2AuihIhVzxOHCr6cUzFu+dp/u+zAQ6LtWk
v8o8WKeijcy9NIj7FmIdkmVp9LYmwmg9qfYxfoXm+4QTl5032dROimv/KzH+3nE5 ws3/KOiTT+YCWxNWuvWE6QDyM/UCC1YFJ6MoPe14xiAqafU/g43DEi+4P/Cg7njr
E4nSznllWtjCbwFG+kLXRQuovX9eRdzOig== kQC2C3t4n57UVuzunBGZj3fKrTlB2dVYA/zkJgoUZP5H0pXPnr6iMZpfKcWER2vS
=8dwk UQG3nfKuiQ87axXf9YebCNzC8QXUVqaUdEgXBo2bLX63CA1OxtrAmEZQeUqxXIJ3
uVtGMVQ4QoTknW1+XS0MUqrzvAblSzf8N353hS0L6pTwow==
=bHwT
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: D667348F310C57655FCE5D4EA689FF232FD681F0 fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.12.2 version: 3.9.3

@ -25,7 +25,7 @@ mv .sops.yaml.tmp .sops.yaml
# define "fixture" # define "fixture"
repo_root="$(git rev-parse --show-toplevel)" repo_root="$(git rev-parse --show-toplevel)"
# --- # ---
function fn_test_create_sops_cfg_default(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: create sops cfg in default dir: ${repo_root}" >&2 echo -e "# ---\n# TEST: create sops cfg in default dir: ${repo_root}"
set -x set -x
rm "${PWD}/.sops.yaml" || : rm "${PWD}/.sops.yaml" || :
@ -39,10 +39,12 @@ function fn_test_create_sops_cfg_default(){
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
rm "${repo_root}/.sops.yaml" rm "${repo_root}/.sops.yaml"
} else
>&2 echo "# INFO: skipping ...."
fi
# --- # ---
function fn_test_create_sops_cfg_dir_cwd(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: create sops cfg in curdir: ${PWD}" >&2 echo -e "# ---\n# TEST: create sops cfg in curdir: ${PWD}"
set -x set -x
# note: fail if for any reason sops config defined at top level; this repo should not have this! # note: fail if for any reason sops config defined at top level; this repo should not have this!
@ -57,10 +59,12 @@ function fn_test_create_sops_cfg_dir_cwd(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
} else
>&2 echo "# INFO: skipping ...."
fi
# --- # ---
function fn_test_create_sops_cfg_opts_complex_1(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: Full Args: specify path to each, also for secrets, mix specified and positional params" >&2 echo -e "# ---\n# TEST: Full Args: specify path to each, also for secrets, mix specified and positional params"
set -x set -x
../bin/update_sops.sh -k "${keys_dir}" -c "${sops_cfg_dir}" -s "${secrets_file}" "${secrets_file}" > /dev/null 2>&1 ../bin/update_sops.sh -k "${keys_dir}" -c "${sops_cfg_dir}" -s "${secrets_file}" "${secrets_file}" > /dev/null 2>&1
@ -69,43 +73,12 @@ function fn_test_create_sops_cfg_opts_complex_1(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
} else
>&2 echo "# INFO: skipping ...."
# --- fi
function fn_test_auto_find_secrets_files(){
>&2 echo -e "# ---\n# TEST: auto-find secrets files"
# SETUP
_tmp_mock_secrets_dir='mock_hierarchy'
_tmp_mock_secrets_filepath_1="${_tmp_mock_secrets_dir}/one/secrets.yaml"
mkdir -p "$(dirname "${_tmp_mock_secrets_filepath_1}")"
touch "${_tmp_mock_secrets_filepath_1}"
_tmp_mock_secrets_filepath_2='mock_hierarchy/Tw o/secrets.yaml'
mkdir -p "$(dirname "${_tmp_mock_secrets_filepath_2}")"
touch "${_tmp_mock_secrets_filepath_2}"
# RUN
# set -x
# suspend strict: check output for errors
set +e
# move 'set -x' within the sub-shell, otherwise all output dumped to tty
# ... bug: stderr still gets printed, not sure why. E.g. '# RUN: sops updatekeys mock_secrets.yaml'
_out="$(set -x; ../bin/update_sops.sh --find_secrets -s "${secrets_file}" 2>&1 )"
echo "$_out}"
# re-enable strict
set -e
set +x
grep "${_tmp_mock_secrets_filepath_1}" <<< "${_out}"
grep "${_tmp_mock_secrets_filepath_2}" <<< "${_out}"
grep "${secrets_file}" <<< "${_out}"
set -e
# TEARDOWN
set -x
rm -rf "${_tmp_mock_secrets_dir}"
# enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
}
# --- # ---
function fn_test_expect_error_invalid_file(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: induce error: invalid file" >&2 echo -e "# ---\n# TEST: induce error: invalid file"
# dev note: ':' is a noop operator; could also just temporarily disable strict errors # dev note: ':' is a noop operator; could also just temporarily disable strict errors
set -x set -x
@ -115,33 +88,11 @@ function fn_test_expect_error_invalid_file(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
}
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_default
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_dir_cwd
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_opts_complex_1
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_auto_find_secrets_files
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_expect_error_invalid_file
else else
>&2 echo "# INFO: skipping ...." >&2 echo "# INFO: skipping ...."
fi fi
# --- # ---
echo "TESTCASES PASSED" echo "TESTCASES PASSED"
exit 0 exit 0

Loading…
Cancel
Save