Author SHA1 Message Date
klaatu f82a93535a chore: update flake.lock 2026-08-02 2026-08-02 00:01:17 +00:00
Greg Hellings 21cb84ac7a Major update for linode and Nebula
* Consolidate Linode into a single file
* Convert gitea and matrix to using Nebula connections
* Have Linode proxy to Nebula connections instead of Tailscale
* Update Acme to use DNS-01
* Update Flake to pull from branch that supports ACME 5.x client
2026-08-01 14:38:01 -05:00
Greg Hellings 1c52f8a6b9 chore: baseline nixos for proxmox configuration 2026-07-28 22:42:21 -05:00
Greg Hellings d9334a237d chore: first bit of local IP querying 2026-07-28 22:41:01 -05:00
Greg Hellings 93a847c658 chore: get kuma up and running 2026-07-28 22:40:17 -05:00
Greg Hellings b9051d017e chore: add java web start to exodus 2026-07-28 19:50:24 -05:00
Greg Hellings b9dcd227e8 chore: fix wait-forever bug in updater
buildbot/nix-eval Build done. (2 warnings)
buildbot/nix-build Build done.
buildbot/nix-effects Build done.
2026-07-27 07:27:34 -05:00
Greg Hellings 2d816d50e0 chore: update zim pins 2026-07-27 07:19:37 -05:00
Greg Hellings 5f951c6c12 chore: fix zims updater
Zims update script has been slightly mangled since nix-prefetch stopped
working.

Now it is updated to use nix-prefetch-url and no longer pulls from the
Torrent sources. That script exports a regular SHA256 hash and not an
SRI signature, so we now convert that to SRI as a second step in the
pre-fetch pipline

Also adding a cron to run the tool every month on the first, in order to
keep it up to date.
2026-07-26 21:36:46 -05:00
Greg Hellings 42efe476db chore: update framework firmware settings 2026-07-26 21:36:46 -05:00
64 changed files with 1256 additions and 1111 deletions
+51
View File
@@ -0,0 +1,51 @@
name: Update zims pin
"on":
schedule:
- cron: "0 2 1 * *" # 0200 on the first of every month
workflow_dispatch:
jobs:
update-flake-lock:
runs-on: nix-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update flake.lock
run: nix run .#zim-updater -- --output pkgs/zim/blobs.json
- name: Create PR if changed
env:
GITEA_TOKEN: ${{ secrets.KLAATU_TOKEN }}
GITEA_URL: https://src.thehellings.com
REPO: greg/nixos
run: |
if git diff --quiet pkgs/zim/blobs.json; then
echo "blobs.json unchanged, nothing to do"
exit 0
fi
BRANCH="auto/update-zims-$(date +%Y%m%d)"
git config user.email "klaatu@thehellings.com"
git config user.name "klaatu"
git checkout -b "$BRANCH"
git add pkgs/zim/blobs.json
git commit -m "chore: update zim blobs.json $(date +%Y-%m-%d)"
# Push branch using token auth
git remote set-url origin "https://klaatu:${GITEA_TOKEN}@${GITEA_URL#https://}/${REPO}.git"
git push origin "$BRANCH"
# Create PR via Gitea API
curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${GITEA_URL}/api/v1/repos/${REPO}/pulls" \
-d "{
\"title\": \"chore: update zims $(date +%Y-%m-%d)\",
\"head\": \"$BRANCH\",
\"base\": \"main\",
\"body\": \"Automated monthly zims update.\\n\\nGenerated by Gitea Actions.\",
\"assignees\": [\"greg\"]
}"
Generated
+42 -42
View File
@@ -53,11 +53,11 @@
"stable": "stable"
},
"locked": {
"lastModified": 1784448989,
"narHash": "sha256-XC0OkWCiTM91msCp0o7zfM+iBv06mLlCzFxkP8vf+ac=",
"lastModified": 1785582945,
"narHash": "sha256-PI+qji1xkJm3PV7l7/PKJDumFz0fbA4etXE614jRnls=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "e5eda626e459f7043868fd2e3b3bf8ce0d1992e6",
"rev": "84d419ad080477ed2f31fbf3866551393df647a7",
"type": "github"
},
"original": {
@@ -95,11 +95,11 @@
]
},
"locked": {
"lastModified": 1784500460,
"narHash": "sha256-UvORnAxTRHax7RG74W8Z2t4GvIkX6AjJ5kk0QlwZomo=",
"lastModified": 1785389976,
"narHash": "sha256-0tLW8Ff5yt8AH97jw4ZpFJ0OCJ122zIlgWGDmOfU/VU=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "57a3171f94705599a2499248ca5758d5eb47c0e0",
"rev": "15abb8c98f336cd8bd840d71059adebabe60bf04",
"type": "github"
},
"original": {
@@ -162,11 +162,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"type": "github"
},
"original": {
@@ -242,11 +242,11 @@
]
},
"locked": {
"lastModified": 1784913159,
"narHash": "sha256-JWq0BfjO4ktpH5USfQNQzdvHpIDT8fSKD5K7LvdMRFs=",
"lastModified": 1785531816,
"narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "079a3b5d1aa6a719920a51316253b7d6dd22738d",
"rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github"
},
"original": {
@@ -284,11 +284,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1784949919,
"narHash": "sha256-itGqjPYHqEUqabXbQb+eHguk1c6rBTRGZS4KImp45kM=",
"lastModified": 1785555369,
"narHash": "sha256-KUHFKv51VoV1wpyIreeusIkFsgycjeuRA9vDsBmCUu0=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "a58c1fa23ec0273eb085be1e7874e964aa3cd34f",
"rev": "76a82a08c36423e5ff627c62f55797de52c3061b",
"type": "github"
},
"original": {
@@ -303,11 +303,11 @@
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1784621916,
"narHash": "sha256-JGjvWpNNrbhiYhx+z9l/iDw1J48TrirfZC6R3yWjmU4=",
"lastModified": 1785226690,
"narHash": "sha256-H7lhfp4ja6vysomufDgVoRgiBUyEcQDnN6rGB9yDIDM=",
"owner": "Mic92",
"repo": "niks3",
"rev": "abbc291d372d2d821327516b5f5224de03113204",
"rev": "ce7cd4b0462c634802a9faf0cb19f4718d115ec8",
"type": "github"
},
"original": {
@@ -342,11 +342,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1784723954,
"narHash": "sha256-1CfD8ZUjCkTgjsneLZ/lxCHhgDfqxxE7/GX0MmsgiqA=",
"lastModified": 1785232496,
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "a017f5b72210026af5b3ac5949f08d94380a6fbd",
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
"type": "github"
},
"original": {
@@ -373,11 +373,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1782614948,
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github"
},
"original": {
@@ -464,11 +464,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1784796856,
"narHash": "sha256-wWFrV5/Qbm+lyt5x20E/bSbfJiGKMo4RCxZV8cl/WZI=",
"lastModified": 1785571196,
"narHash": "sha256-KoTsyMQqnXQZq8deCEnu4QkyldkwH/bpMMhUcfMdGIw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e2587caef70cea85dd97d7daab492899902dbf5d",
"rev": "148bab9c1c3c53136ecb44a6ea356a0ed5b39b06",
"type": "github"
},
"original": {
@@ -496,16 +496,16 @@
},
"nixunstable": {
"locked": {
"lastModified": 1784796856,
"narHash": "sha256-wWFrV5/Qbm+lyt5x20E/bSbfJiGKMo4RCxZV8cl/WZI=",
"owner": "nixos",
"lastModified": 1785349197,
"narHash": "sha256-LcCdjhqwjFVrFTNW6tHm3KNYRrD1TA6bYRea30yIIjw=",
"owner": "geri1701",
"repo": "nixpkgs",
"rev": "e2587caef70cea85dd97d7daab492899902dbf5d",
"rev": "af4902d1e79cbeade8e0d9e10e7a9ada4dce01b5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"owner": "geri1701",
"ref": "lego-v5-acme-spike",
"repo": "nixpkgs",
"type": "github"
}
@@ -517,11 +517,11 @@
"systems": "systems_4"
},
"locked": {
"lastModified": 1785001306,
"narHash": "sha256-xWqmquUtqKXLeDZ1oQUO+rV4sjA9TShIJhLL8M5Bozo=",
"lastModified": 1785527278,
"narHash": "sha256-rYFSM491MFFA1V6oax5PngXbevGt6n0o8sKhwFoItE0=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "48409beb41e8e28b64e8160ca82d8a93fb628963",
"rev": "a19efae6c1afe426e8243d79f6dfbab186be6df8",
"type": "github"
},
"original": {
@@ -537,11 +537,11 @@
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1785034246,
"narHash": "sha256-/Wul0/XyCTasQ4WYUMHksMffgOOhwJudIzwWT9HpCY4=",
"lastModified": 1785627680,
"narHash": "sha256-uWtMa2bwZdK3GPIaSRikEezgHK/dvpawxzjqm4BIHfk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8020cdf42a4c803d7e48bf1375177145deb6cfac",
"rev": "b4d9d89f110d52db3cf336cb9f8b4448e6648e87",
"type": "github"
},
"original": {
@@ -693,11 +693,11 @@
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1784949765,
"narHash": "sha256-MB+0noLfsYMoMsBkyG5CKYZmSk7dSXendvvjfQFUiPw=",
"lastModified": 1785555171,
"narHash": "sha256-MLBtKBAbLXB81qm5UZq7w0IFnP/fh6QWhfU55dA8uFo=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "242a696abba55b45d577b5292e90b597284f5f85",
"rev": "730fe1d38d63878df9cf6b46b36308d197a9334e",
"type": "github"
},
"original": {
+2 -1
View File
@@ -28,7 +28,8 @@
nix-hardware.url = "github:nixos/nixos-hardware";
nixpkgs-lib.url = "github:nix-community/nixpkgs.lib";
nixvimunstable.url = "github:nix-community/nixvim/main";
nixunstable.url = "github:nixos/nixpkgs/nixos-unstable";
#nixunstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixunstable.url = "github:geri1701/nixpkgs/lego-v5-acme-spike";
nurpkgs.url = "github:nix-community/NUR";
vsext.url = "github:nix-community/nix-vscode-extensions";
wsl = {
+4
View File
@@ -16,6 +16,10 @@ def nebulaIps [] {
open /etc/nixos/network.json | get hosts | items { |h, e| $e.nebulaIp? } | where $it != null | sort
}
def localIps [] {
open /etc/nixos/network.json | get hosts | items { |h, e| $e.ip? } | where $it != null | sort
}
def genNebulaCert [ --ips: string, --name: string ] {
let public = $'~/SynologyDrive/nebula/($name).key.pub' | path expand
let private = $'~/SynologyDrive/nebula/($name).key' | path expand
+1
View File
@@ -25,6 +25,7 @@
mumble
nebula
nix-index
adoptopenjdk-icedtea-web
pre-commit
prismlauncher
rclone
+52 -11
View File
@@ -1,19 +1,60 @@
{ config, modulesPath, pkgs, lib, ... }:
{
imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
nix.settings = { sandbox = false; };
proxmoxLXC = {
manageNetwork = false;
privileged = true;
config,
metadata,
modulesPath,
...
}:
{
# Then build nixosConfiguration.<host>.config.system.build.images.proxmox
# SCP that to /var/lib/vz/dumps on the Proxmox host
imports = [ "${modulesPath}/virtualisation/proxmox-image.nix" ];
greg = {
home = true;
nebula.enable = true;
};
services.fstrim.enable = false; # Let Proxmox host handle fstrim
services.openssh = {
enable = true;
openFirewall = true;
settings = {
networking = {
defaultGateway = metadata.infra.gw;
nameservers = [ metadata.infra.dns ];
interfaces.ens18 = {
useDHCP = false;
ipv4.addresses = [
{
address = metadata.hosts."${config.networking.hostName}".ip;
prefixLength = 16;
}
];
};
};
virtualisation.diskSize = 20480; # Size in mebbibytes for the base disk image
# Use these instead of the above to run an LXC image
# The main reason I wouldn't use these is because Proxmox LXC does
# not seem to be well supported by either Nebula VPN or Tailscale,
# both of which I use for my mesh networking. If there isn't a need
# for the service to run on those networks, then by all means go ahead
# and use LXC!
# imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
# proxmoxLXC = {
# manageNetwork = false;
# privileged = true;
# };
# systemd.suppressedSystemUnits = [
# "dev-mqueue.mount"
# "sys-kernel-debug.mount"
# "sys-fs-fuse-connections.mount"
# ];
nix.settings = {
sandbox = false;
};
services = {
fstrim.enable = false; # Let Proxmox host handle fstrim
openssh = {
enable = true;
openFirewall = true;
settings = {
PermitRootLogin = "yes";
PasswordAuthentication = true;
PermitEmptyPasswords = "yes";
};
};
};
}
+1 -1
View File
@@ -9,7 +9,7 @@
{
imports = [
./hardware-configuration.nix
top.nix-hardware.nixosModules.framework-11th-gen-intel
top.nix-hardware.nixosModules.framework-intel-core-ultra-series1
];
boot = {
+76
View File
@@ -0,0 +1,76 @@
{
config,
metadata,
modulesPath,
pkgs,
...
}:
{
imports = [ "${modulesPath}/virtualisation/proxmox-image.nix" ];
greg = {
home = true;
nebula.enable = true;
proxies =
let
tgt = {
target = "http://localhost:${config.services.uptime-kuma.settings.PORT}";
genAliases = false;
};
in
{
"kuma.nebula.thehellings.com" = tgt;
"kuma.thehellings.lan" = tgt;
"kuma.shire-zebra.ts.net" = tgt;
};
};
nix.settings = {
sandbox = false;
};
networking = {
defaultGateway = metadata.infra.gw;
nameservers = [ metadata.infra.dns ];
interfaces.ens18 = {
useDHCP = false;
ipv4.addresses = [
{
address = metadata.hosts."${config.networking.hostName}".ip;
prefixLength = 16;
}
];
};
};
proxmox.cloudInit.enable = false;
services = {
fstrim.enable = true;
mysql = {
enable = true;
ensureDatabases = [
config.services.uptime-kuma.settings.UPTIME_KUMA_DB_NAME
];
ensureUsers = [
{
name = config.services.uptime-kuma.settings.UPTIME_KUMA_DB_USERNAME;
ensurePermissions = {
"uptimekuma.*" = "ALL PRIVILEGES";
};
}
];
package = pkgs.mariadb;
};
openssh = {
enable = true;
openFirewall = true;
};
uptime-kuma = {
enable = true;
settings = {
PORT = "3001"; # Default, but this allows us to explicitly use it elsewhere
UPTIME_KUMA_DB_TYPE = "mariadb";
UPTIME_KUMA_DB_SOCKET = "/run/mysqld/mysqld.sock";
UPTIME_KUMA_DB_NAME = "uptimekuma";
UPTIME_KUMA_DB_USERNAME = "uptimekuma";
UPTIME_KUMA_DB_PASSWORD = "uptimekuma";
};
};
};
}
+284 -15
View File
@@ -1,31 +1,65 @@
{
pkgs,
pkgs',
lib,
config,
...
}:
let
homepage = "127.0.0.1:30080";
nextcloudPort = 8080;
sshPort = 2222;
in
{
imports = [
./git.nix
./hardware-configuration.nix
./podman.nix
./matrix.nix
./nextcloud.nix
./nginx.nix
./postgres.nix
];
age.secrets = {
acme.file = ../../../secrets/acme.age;
nextcloudadmin = {
file = ../../../secrets/nextcloudadmin.age;
owner = "nextcloud";
};
};
environment.systemPackages = with pkgs; [
bind
graphviz
nix-du
pgloader
podman-compose
pkgs'.upgrade-pg-cluster
];
greg = {
backup.jobs = {
nextcloud-bkup = {
src = "/var/lib/nextcloud";
dest = "nextcloud-backup";
pre = lib.getExe (
pkgs.writeShellApplication {
name = "nextcloud-backup-pre";
runtimeInputs = [ config.services.nextcloud.occ ];
text = "nextcloud-occ maintenance:mode --on";
}
);
post = lib.getExe (
pkgs.writeShellApplication {
name = "nextcloud-backup-post";
runtimeInputs = [ config.services.nextcloud.occ ];
text = "nextcloud-occ maintenance:mode --off";
}
);
};
greg-postgresql-backup = {
src = config.services.postgresqlBackup.location;
dest = "linode-postgres";
};
};
gitea-runner = {
enable = true;
enable = false;
extraLabels = [
"vps:host"
"blog:host"
@@ -37,19 +71,22 @@
enable = true;
isLighthouse = true;
};
proxies."immich.thehellings.com" = {
genAliases = false;
target = "http://localhost:${builtins.toString config.services.immich-public-proxy.port}";
ssl = true;
};
tailscale.enable = true;
};
networking = {
networkmanager.enable = lib.mkForce false;
hostName = "linode";
domain = "thehellings.com";
nameservers = [ "100.88.91.27" ];
firewall.allowedTCPPorts = [
sshPort
80
443
];
hostName = "linode";
nameservers = [
"10.157.0.2"
"100.96.198.104"
];
networkmanager.enable = lib.mkForce false;
};
programs.ssh.extraConfig = lib.strings.concatStringsSep "\n" [
@@ -60,10 +97,242 @@
" UserKnownHostsFile /dev/null"
];
security.acme = {
acceptTerms = true;
defaults = {
dnsPropagationCheck = false;
dnsResolver = "92.123.95.3:53,92.123.94.3:53,92.123.94.2:53,92.123.95.4:53,92.123.95.2:53";
email = "greg.hellings@gmail.com";
extraLegoRunFlags = [ "--ipv4only" ]; # Force IPv4 only
#server = "https://acme-staging-v02.api.letsencrypt.org/directory";
};
certs."thehellings.com" = {
dnsProvider = "linode";
environmentFile = config.age.secrets.acme.path;
extraDomainNames = [
"*.thehellings.com"
];
};
};
services = {
anubis = {
instances = {
git = {
enable = true;
settings = {
BIND = "/run/anubis/anubis-git/anubis.sock";
COOKIE_DOMAIN = "thehellings.com";
SERVE_ROBOTS_TXT = true;
SLOG_LEVEL = "DEBUG";
TARGET = "http://git.k3s.nebula.thehellings.com";
};
};
};
};
haproxy = {
enable = true;
config = ''
global
nbthread 4
maxconn 80
log /dev/log local0
defaults
timeout connect 500s
timeout client 500s
timeout server 1h
listen gitsshd
bind *:${toString sshPort}
timeout client 1h
mode tcp
server git-isaiah isaiah.nebula.thehellings.com:32222
server git-jeremiah jeremiah.nebula.thehellings.com:32222
server git-zeke zeke.nebula.thehellings.com:32222
frontend https
bind *:80
bind *:443 ssl crt ${config.security.acme.certs."thehellings.com".directory}/full.pem
http-request redirect scheme https unless { ssl_fc }
http-request add-header X-Forwarded-Proto https
http-response replace-header ^Set-Cookie:\ (.*) Set-Cookie \1;\ Secure
option http-server-close
option http-keep-alive
#option httplog
#declare capture response len 80
#http-response capture res.hdr(Location) id 0
use_backend git if { hdr(host) -i src.thehellings.com }
use_backend git if { req_ssl_sni -i src.thehellings.com }
use_backend next if { hdr(host) -i next.thehellings.com }
use_backend next if { req_ssl_sni -i next.thehellings.com }
use_backend matrix if { hdr(host) -i matrix.thehellings.com }
use_backend matrix if { req_ssl_sni -i matrix.thehellings.com }
use_backend web if { hdr(host) -i thehellings.com }
use_backend web if { req_ssl_sni -i thehellings.com }
backend git
mode http
balance roundrobin
option accept-unsafe-violations-in-http-response
retries 3
option forwardfor
http-request set-header Host git.k3s.nebula.thehellings.com
server git-isaiah isaiah.nebula.thehellings.com:80
server git-jeremiah jeremiah.nebula.thehellings.com:80
server git-zeke zeke.nebula.thehellings.com:80
backend matrix
mode http
balance roundrobin
option accept-unsafe-violations-in-http-response
retries 3
option forwardfor
http-request set-header Host matrix.k3s.nebula.thehellings.com
server git-isaiah isaiah.nebula.thehellings.com:80
server git-jeremiah jeremiah.nebula.thehellings.com:80
server git-zeke zeke.nebula.thehellings.com:80
backend web
mode http
balance roundrobin
option accept-unsafe-violations-in-http-response
retries 3
option forwardfor
server web-container ${homepage}
backend next
log global
mode http
balance roundrobin
option accept-unsafe-violations-in-http-response
retries 3
option forwardfor
#http-response replace-value Location http://localhost:${builtins.toString nextcloudPort}/(.*) https://next.thehellings.com/\2
server nextcloud 127.0.0.1:${builtins.toString nextcloudPort}
'';
};
immich-public-proxy = {
enable = true;
immichUrl = "https://immich.shire-zebra.ts.net";
};
logrotate = {
enable = true;
settings = {
postgresBackup = {
enable = true;
files = "${config.services.postgresqlBackup.location}/*.gz";
};
postgresLog = {
enable = true;
files = "/var/lib/postgresql/*/log/*.log";
compress = true;
compresscmd = "${pkgs.xz}/bin/xz";
};
};
};
nextcloud = {
enable = true;
package = pkgs.nextcloud33;
appstoreEnable = true;
hostName = "localhost";
https = false;
config = {
adminpassFile = config.age.secrets.nextcloudadmin.path;
adminuser = "greg";
dbhost = "/run/postgresql";
dbtype = "pgsql";
};
settings = {
default_phone_region = "US";
overwriteprotocol = "http";
trusted_domains = [ "next.thehellings.com" ];
trusted_proxies = [
"localhost"
"127.0.0.1"
];
};
};
# Move to :8080 so that we can run haproxy as the primary HTTP service
nginx.virtualHosts."${config.services.nextcloud.hostName}".listen = [
{
addr = "127.0.0.1";
port = nextcloudPort;
}
];
openssh.settings.PasswordAuthentication = false;
postgresql = {
enable = true;
package = pkgs.postgresql_15;
checkConfig = true;
ensureDatabases = [ "nextcloud" ];
#initialScript = pkgs.writeText "create-matrix-db.sql" ''
# CREATE ROLE "matrix-synapse" WITH LOGIN;
# CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C";
# GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse";
#''; # These are done manually in order to set the LC_COLLATE values properly
ensureUsers = [
{
name = "nextcloud";
ensureDBOwnership = true;
}
];
settings = {
log_connections = true;
log_statement = "all";
logging_collector = true;
log_filename = "postgresql.log";
};
identMap = ''
root root postgres
'';
};
postgresqlBackup = {
enable = true;
databases = [ "nextcloud" ];
};
};
systemd.services = {
haproxy = {
after = [
"nextcloud.service"
"network-online.target"
];
wants = [
"nextcloud.service"
"network-online.target"
];
};
};
users.users.haproxy.extraGroups = [ config.security.acme.certs."thehellings.com".group ];
# Actually serve the content from here
virtualisation.oci-containers = {
backend = "podman";
containers."homepage" = {
image = "registry.thehellings.com:443/greg/homepage/gregs-homepage:latest";
ports = [ "${homepage}:80" ];
};
};
virtualisation.podman = {
enable = true;
dockerCompat = true;
dockerSocket.enable = true;
};
}
-148
View File
@@ -1,148 +0,0 @@
{ config, ... }:
let
srcDomain = "src.thehellings.com";
sshPort = 2222;
in
{
greg.proxies."${srcDomain}" = {
target = "http://unix:${config.services.anubis.instances.git.settings.BIND}";
ssl = true;
genAliases = false;
extraConfig = ''
#proxy_ssl_verify off;
#proxy_ssl_server_name on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Http-Version $server_protocol;
proxy_set_header User-Agent $http_user_agent;
client_max_body_size 100000m;
#proxy_set_header Host $host;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
#proxy_set_header X-Forwarded-Ssl on;
# Ultimate AI Block List v1.7 20250924
# https://perishablepress.com/ultimate-ai-block-list/
if ($http_user_agent ~* "(openai\.com|\.ai|-ai|_ai|ai\.|ai-|ai_|ai=|AddSearchBot|Agentic|AgentQL|Agent\ 3|Agent\ API|AI\ Agent|AI\ Article\ Writer|AI\ Chat|AI\ Content\ Detector|AI\ Detection|AI\ Dungeon|AI\ Journalist|AI\ Legion)") {
return 444;
}
if ($http_user_agent ~* "(AI\ RAG|AI\ Search|AI\ SEO\ Crawler|AI\ Training|AI\ Web|AI\ Writer|AI2|AIBot|aiHitBot|AIMatrix|AISearch|AITraining|Alexa|Alice\ Yandex|AliGenie|AliyunSec|Alpha\ AI|AlphaAI|Amazon|Amelia)") {
return 444;
}
if ($http_user_agent ~* "(AndersPinkBot|AndiBot|Anonymous\ AI|Anthropic|AnyPicker|Anyword|Applebot|Aria\ AI|Aria\ Browse|Articoolo|Ask\ AI|AutoGen|AutoGLM|Automated\ Writer|AutoML|Autonomous\ RAG|AwarioRssBot|AwarioSmartBot|AWS\ Trainium|Azure)") {
return 444;
}
if ($http_user_agent ~* "(BabyAGI|BabyCatAGI|BardBot|Basic\ RAG|Bedrock|Big\ Sur|Bigsur|Botsonic|Brightbot|Browser\ MCP\ Agent|Browser\ Use|Bytebot|ByteDance|Bytespider|CarynAI|CatBoost|CC-Crawler|CCBot|Chai|Character)") {
return 444;
}
if ($http_user_agent ~* "(Charstar\ AI|Chatbot|ChatGLM|Chatsonic|ChatUser|Chinchilla|Claude|ClearScope|Clearview|Cognitive\ AI|Cohere|Common\ Crawl|CommonCrawl|Content\ Harmony|Content\ King|Content\ Optimizer|Content\ Samurai|ContentAtScale|ContentBot|Contentedge)") {
return 444;
}
if ($http_user_agent ~* "(ContentShake|Conversion\ AI|Copilot|CopyAI|Copymatic|Copyscape|CoreWeave|Corrective\ RAG|Cotoyogi|CRAB|Crawl4AI|CrawlQ\ AI|Crawlspace|Crew\ AI|CrewAI|Crushon\ AI|DALL-E|DarkBard|DataFor|DataProvider)") {
return 444;
}
if ($http_user_agent ~* "(Datenbank\ Crawler|DeepAI|Deep\ AI|DeepL|DeepMind|Deep\ Research|DeepResearch|DeepSeek|Devin|Diffbot|Doubao\ AI|DuckAssistBot|DuckDuckGo\ Chat|DuckDuckGo-Enhanced|Echobot|Echobox|Elixir|FacebookBot|FacebookExternalHit|Factset)") {
return 444;
}
if ($http_user_agent ~* "(Falcon|FIRE-1|Firebase|Firecrawl|Flux|Flyriver|Frase\ AI|FriendlyCrawler|Gato|Gemini|Gemma|Gen\ AI|GenAI|Generative|Genspark|Gentoo-chat|Ghostwriter|GigaChat|GLM|GodMode)") {
return 444;
}
if ($http_user_agent ~* "(Goose|GPT|Grammarly|Grendizer|Grok|GT\ Bot|GTBot|GTP|Hemingway\ Editor|Hetzner|Hugging|Hunyuan|Hybrid\ Search\ RAG|Hypotenuse\ AI|iAsk|ICC-Crawler|ImageGen|ImagesiftBot|img2dataset|imgproxy)") {
return 444;
}
if ($http_user_agent ~* "(INK\ Editor|INKforall|Instructor|IntelliSeek|Inferkit|ISSCyberRiskCrawler|Janitor\ AI|Jasper|Jenni\ AI|Julius\ AI|Kafkai|Kaggle|Kangaroo|Keyword\ Density\ AI|Kimi|Knowledge|KomoBot|Kruti|LangChain|Le\ Chat)") {
return 444;
}
if ($http_user_agent ~* "(Lensa|Lightpanda|LinerBot|LLaMA|LLM|Local\ RAG\ Agent|Lovable|Magistral|magpie-crawler|Manus|MarketMuse|Meltwater|Meta-AI|Meta-External|Meta-Webindexer|Meta\ AI|MetaAI|MetaTagBot|Middleware|Midjourney)") {
return 444;
}
if ($http_user_agent ~* "(Mini\ AGI|MiniMax|Mintlify|Mistral|Mixtral|model-training|Monica|Narrative|NeevaBot|netEstate|Neural\ Text|NeuralSEO|NinjaAI|NodeZero|Nova\ Act|NovaAct|OAI-SearchBot|OAI\ SearchBot|OASIS|Olivia)") {
return 444;
}
if ($http_user_agent ~* "(Omgili|Open\ AI|Open\ Interpreter|OpenAGI|OpenAI|OpenBot|OpenPi|OpenRouter|OpenText\ AI|Operator|Outwrite|Page\ Analyzer\ AI|PanguBot|Panscient|Paperlibot|Paraphraser\.io|peer39_crawler|Perflexity|Perplexity|Petal)") {
return 444;
}
if ($http_user_agent ~* "(Phind|PiplBot|PoeBot|PoeSearchBot|ProWritingAid|Proximic|Puppeteer|Python\ AI|Qualified|Quark|QuillBot|Qopywriter|Qwen|RAG\ Agent|RAG\ Azure\ AI|RAG\ Chatbot|RAG\ Database|RAG\ IS|RAG\ Pipeline|RAG\ Search)") {
return 444;
}
if ($http_user_agent ~* "(RAG\ with|RAG-|RAG_|Raptor|React\ Agent|Redis\ AI\ RAG|RobotSpider|Rytr|SaplingAI|SBIntuitionsBot|Scala|Scalenut|Scrap|ScriptBook|Seekr|SEObot|SEO\ Content\ Machine|SEO\ Robot|SemrushBot|Sentibot)") {
return 444;
}
if ($http_user_agent ~* "(Serper|ShapBot|Sidetrade|Simplified\ AI|Sitefinity|Skydancer|SlickWrite|SmartBot|Sonic|Sora|Spider/2|SpiderCreator|Spin\ Rewrite|Spinbot|Stability|StableDiffusionBot|Sudowrite|SummalyBot|Super\ Agent|Superagent)") {
return 444;
}
if ($http_user_agent ~* "(SuperAGI|Surfer\ AI|TerraCotta|Text\ Blaze|TextCortex|Thinkbot|Thordata|TikTokSpider|Timpibot|Tinybird|Together\ AI|Traefik|TurnitinBot|uAgents|VelenPublicWebCrawler|Venus\ Chub\ AI|Vidnami\ AI|Vision\ RAG|WebSurfer|WebText)") {
return 444;
}
if ($http_user_agent ~* "(Webzio|WeChat|Whisper|WordAI|Wordtune|WPBot|Writecream|WriterZen|Writescope|Writesonic|xAI|xBot|YaML|YandexAdditional|YouBot|Zendesk|Zero|Zhipu|Zhuque\ AI|Zimm)") {
return 444;
}
'';
};
#greg.proxies."registry.thehellings.com" = {
#target = "https://gitea.shire-zebra.ts.net:5000";
#ssl = true;
#genAliases = false;
#extraConfig = ''
#proxy_set_header X-Forwarded-Proto https;
#proxy_set_header X-Forwarded-Ssl on;
#client_max_body_size 25000m;
#'';
#};
networking.firewall.allowedTCPPorts = [ sshPort ];
services = {
anubis = {
instances = {
git = {
enable = true;
settings = {
BIND = "/run/anubis/anubis-git/anubis.sock";
COOKIE_DOMAIN = "thehellings.com";
SERVE_ROBOTS_TXT = true;
TARGET = "https://gitea.shire-zebra.ts.net/";
};
};
};
};
haproxy = {
enable = true;
config = ''
global
daemon
maxconn 20
defaults
timeout connect 500s
timeout client 500s
timeout server 1h
listen gitsshd
bind *:${toString sshPort}
timeout client 1h
mode tcp
server git-isaiah isaiah.shire-zebra.ts.net:32222
server git-jeremiah jeremiah.shire-zebra.ts.net:32222
server git-zeke zeke.shire-zebra.ts.net:32222
'';
};
};
systemd.services = {
haproxy = {
after = [
"network-online.target"
];
wants = [
"network-online.target"
];
};
};
users.users.nginx.extraGroups = [ config.users.groups.anubis.name ];
}
-70
View File
@@ -1,70 +0,0 @@
# Registration of new users is disabled for the public, but I can create
# them by the following commands:
# nix run nixpkgs.matrix-synapse
# register_new_matrix_user -k "B9EoPr2WV9hzwc7uL2Sx1JmvCeKDEOGCpB0uginQcQtEH4wzRtkSIdo7lltrjSQa" http://localhost:8448
{ config, ... }:
let
domain = "${config.networking.domain}";
fqdn = "matrix.${domain}";
in
{
greg.proxies."${fqdn}" = {
extraConfig = ''
error_log /var/log/nginx/debug.log debug;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
'';
genAliases = false;
ssl = true;
target = "https://matrix.shire-zebra.ts.net";
};
services.nginx = {
virtualHosts = {
# Server the '.well-known' files to find the Matrix API server
"${domain}" = {
enableACME = true;
forceSSL = true;
# This is needed so that servers contacting hellings.com can find
# the actual application server at matrix.thehellings.com
locations."= /.well-known/matrix/server".extraConfig =
let
server = {
"m.server" = "${fqdn}:443";
};
in
''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = {
"base_url" = "https://${fqdn}";
};
"m.identity_server" = {
"base_url" = "https://vector.im";
};
};
in
''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};
};
};
# Open networking ports for the server
networking.firewall = {
enable = true;
allowedTCPPorts = [
80
443
];
};
}
-58
View File
@@ -1,58 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
age.secrets.nextcloudadmin = {
file = ../../../secrets/nextcloudadmin.age;
owner = "nextcloud";
};
services.nextcloud = {
enable = true;
package = pkgs.nextcloud33;
appstoreEnable = true;
hostName = "next.${config.networking.domain}";
https = true;
config = {
adminpassFile = config.age.secrets.nextcloudadmin.path;
adminuser = "greg";
dbhost = "/run/postgresql";
dbtype = "pgsql";
};
settings = {
default_phone_region = "US";
overwriteprotocol = "https";
};
};
services.nginx.virtualHosts."next.thehellings.com" = {
forceSSL = true;
enableACME = true;
};
# Otherwise nginx errors looking for the nextcloud sock file
systemd.services.nginx.after = [ "nextcloud.service" ];
greg.backup.jobs.nextcloud-bkup = {
src = "/var/lib/nextcloud";
dest = "nextcloud-backup";
pre = lib.getExe (
pkgs.writeShellApplication {
name = "nextcloud-backup-pre";
runtimeInputs = [ config.services.nextcloud.occ ];
text = "nextcloud-occ maintenance:mode --on";
}
);
post = lib.getExe (
pkgs.writeShellApplication {
name = "nextcloud-backup-post";
runtimeInputs = [ config.services.nextcloud.occ ];
text = "nextcloud-occ maintenance:mode --off";
}
);
};
}
-38
View File
@@ -1,38 +0,0 @@
{ ... }:
let
homepage = "127.0.0.1:30080";
in
{
security.acme = {
acceptTerms = true;
defaults.email = "greg.hellings@gmail.com";
};
services.nginx = {
enable = true;
clientMaxBodySize = "25000m"; # To help with uploading container images
# If there are recommended settings, let's use them!
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
};
# Actually serve the content from here
virtualisation.podman.enable = true;
virtualisation.oci-containers = {
backend = "podman";
containers."homepage" = {
image = "registry.thehellings.com:443/greg/homepage/gregs-homepage:latest";
ports = [ "${homepage}:80" ];
};
};
greg.proxies = {
"thehellings.com" = {
target = "http://${homepage}/";
ssl = true;
genAliases = false;
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
podman-compose
];
virtualisation.podman = {
enable = true;
dockerCompat = true;
dockerSocket.enable = true;
};
}
-63
View File
@@ -1,63 +0,0 @@
{
config,
pkgs,
pkgs',
...
}:
{
environment.systemPackages = [ pkgs'.upgrade-pg-cluster ];
services.postgresql = {
enable = true;
package = pkgs.postgresql_15;
checkConfig = true;
ensureDatabases = [ "nextcloud" ];
#initialScript = pkgs.writeText "create-matrix-db.sql" ''
# CREATE ROLE "matrix-synapse" WITH LOGIN;
# CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C";
# GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse";
#''; # These are done manually in order to set the LC_COLLATE values properly
ensureUsers = [
{
name = "nextcloud";
ensureDBOwnership = true;
}
];
settings = {
log_connections = true;
log_statement = "all";
logging_collector = true;
log_filename = "postgresql.log";
};
identMap = ''
root root postgres
'';
};
services.postgresqlBackup = {
enable = true;
databases = [ "nextcloud" ];
};
services.logrotate = {
enable = true;
settings = {
postgresBackup = {
enable = true;
files = "${config.services.postgresqlBackup.location}/*.gz";
};
postgresLog = {
enable = true;
files = "/var/lib/postgresql/*/log/*.log";
compress = true;
compresscmd = "${pkgs.xz}/bin/xz";
};
};
};
greg.backup.jobs.greg-postgresql-backup = {
src = config.services.postgresqlBackup.location;
dest = "linode-postgres";
};
}
+17
View File
@@ -12,3 +12,20 @@ spec:
tls:
- hosts:
- gitea
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: gitea-direct
spec:
rules:
- host: git.k3s.nebula.thehellings.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: gitea-release-http
port:
name: http
+17
View File
@@ -13,3 +13,20 @@ spec:
tls:
- hosts:
- matrix
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: matrix-direct
spec:
rules:
- host: matrix.k3s.nebula.thehellings.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: dendrite
port:
number: 8008
+22 -14
View File
@@ -28,6 +28,15 @@
"tags": ["router", "server"],
"nebulaIp": "10.157.0.2"
},
"gregory.hellings-mbp": {
"external": true,
"system": "aarch64-darwin",
"user": "gregory.hellings"
},
"gregs-MacBook-Pro-16-inch-Nov-2024": {
"external": true,
"system": "aarch64-darwin"
},
"hosea": {
"ip": "10.42.1.7",
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz",
@@ -50,13 +59,12 @@
"external": true,
"system": "x86_64-linux"
},
"gregory.hellings-mbp": {
"ivr": {
"external": true,
"system": "aarch64-darwin",
"user": "gregory.hellings"
"system": "aarch64-darwin"
},
"jeremiah": {
"aliases": [ "buildbot" ],
"aliases": ["buildbot"],
"builder": true,
"ip": "10.42.1.8",
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0",
@@ -66,9 +74,12 @@
"tags": ["builder", "kube", "server"],
"nebulaIp": "10.157.0.5"
},
"gregs-MacBook-Pro-16-inch-Nov-2024": {
"external": true,
"system": "aarch64-darwin"
"kuma": {
"ip": "10.42.1.19",
"nebulaIp": "10.157.0.8",
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIhr+LmYMOk4Hixxew2FiAvL8sycgQvnhK8PBGjfnkJb",
"system": "x86_64-linux",
"tags": ["server"]
},
"lithic": {
"external": true,
@@ -82,10 +93,6 @@
"tags": ["public", "server"],
"nebulaIp": "10.157.0.1"
},
"ivr": {
"external": true,
"system": "aarch64-darwin"
},
"MacBook-Pro.local": {
"external": true,
"system": "aarch64-darwin"
@@ -131,12 +138,12 @@
"ip": "10.42.0.4"
},
"k3s": {
"aliases": [ "*.k3s" ],
"aliases": ["*.k3s"],
"ip": "10.42.5.1",
"nebulaIp": "10.157.100.1"
},
"nas1": {
"aliases": [ "*.nas1" ],
"aliases": ["*.nas1"],
"ip": "10.42.1.14",
"ts": "100.114.187.61"
},
@@ -161,7 +168,8 @@
"ip": "10.42.1.17"
},
"pve4bmc": {
"ip": "10.42.6.4"
"ip": "10.42.6.4",
"mac": "00:25:90:4a:d8:2e"
}
}
}
+10 -6
View File
@@ -16,12 +16,15 @@ let
adblock_update = c ./adblock_update.nix { };
brew = c ./homebrew.nix { };
create_ssl = c ./create_ssl.nix { };
dockerCompat = pkgs.runCommand "docker-compat" {
nativeBuildInputs = [];
} ''
mkdir -p $out/bin
ln -s ${pkgs.podman}/bin/podman $out/bin/docker
'';
dockerCompat =
pkgs.runCommand "docker-compat"
{
nativeBuildInputs = [ ];
}
''
mkdir -p $out/bin
ln -s ${pkgs.podman}/bin/podman $out/bin/docker
'';
gcc-tune = c ./gcc-tune.nix { };
#gen-build = c ./gen-build { };
hms = c ./hms { };
@@ -29,6 +32,7 @@ let
inject = c ./inject.nix { };
setup-ssh = c ./setup-ssh { };
upgrade-pg-cluster = c ./upgrade-pg-cluster.nix { };
zim-updater = c ./zim/updater.nix { };
};
x86Linux = {
qemu-hook = c ./qemu-hook.nix { };
+28 -28
View File
@@ -2,18 +2,18 @@
"en": {
"gutenberg": {
"name": "gutenberg_en_all",
"version": "2023-08",
"hash": "sha256-OXmdHdsLZcW4nCUQsy7sMpUssS8NV7ztkCgS/nsISuw="
"version": "2025-11",
"hash": "sha256-AWd8jVVKHKssv9AgrJnryn3Wx0084NE/JmorpgPfryg="
},
"phet": {
"name": "phet_en_all",
"version": "2025-03",
"hash": "sha256-ARuUzU2o17J2/ZedHc2acXl33dtHCbQJEb72UQUEm1Y="
"version": "2026-05",
"hash": "sha256-zAAq/X5rjQUiYmjMpBtWP5z3J2ZHJMmIxFKnxLAhOlA="
},
"wikibooks": {
"name": "wikibooks_en_all_maxi",
"version": "2025-10",
"hash": "sha256-ONBh/ze1Fv2Ffm5b9vDzYS/i2cWSa4pM4MLZnozr2n8="
"version": "2026-04",
"hash": "sha256-wt7Zr+RkfCsFrOudMCYBADacu6IvPQDkZ6Y0VG2j9hA="
},
"wikipedia": {
"name": "wikipedia_en_all_maxi",
@@ -22,40 +22,40 @@
},
"wikisource": {
"name": "wikisource_en_all_maxi",
"version": "2025-11",
"hash": "sha256-p1Jio+PMTZVSLIDIOBeMG3acXJg83CwQM7zIWDUyozM="
"version": "2026-05",
"hash": "sha256-OA4b+U8mxpcX3fst6hrMyctucYTQOlG/b4qZDiVlcf4="
},
"wikiversity": {
"name": "wikiversity_en_all_maxi",
"version": "2025-11",
"hash": "sha256-IG/gAUdc/vHRrIWGHhw8vMJdLWwqrNbfh+SiclQRIAI="
"version": "2026-05",
"hash": "sha256-8mZ1CSUcF4QnDIyN0M2KedQ4pcSUCmzHBlOm93MYpCE="
},
"wiktionary": {
"name": "wiktionary_en_all_nopic",
"version": "2025-09",
"hash": "sha256-Ghcb60qeGaSJtTKQkJoMx/XucX7Lt1XY145lD3gHlMg="
"version": "2026-05",
"hash": "sha256-Dwiz+viVQt0zb077R9KQRgtUtxG9ixA/DeXAkCdD4rM="
}
},
"fr": {
"gutenberg": {
"name": "gutenberg_fr_all",
"version": "2025-10",
"hash": "sha256-gLHxLXJNwwcxM/mZHtoJ8ojbGQ1fugxgni/+RXccwhU="
"version": "2026-01",
"hash": "sha256-sGn1TeKwBK0+Er5YOJWq6g0itEm4gIGvKxv/PW0DIao="
},
"phet": {
"name": "phet_fr_all",
"version": "2025-03",
"hash": "sha256-CSboZNTIowLLhp1u9wkxH8xmu3LvQNx5q493AOYJRIc="
"version": "2026-05",
"hash": "sha256-bJmchFnaPcofE/hy3ZcRggMT9osHqXwLbwMLJ+cpF28="
},
"wikibooks": {
"name": "wikibooks_fr_all_maxi",
"version": "2025-09",
"hash": "sha256-KHCc/73L5Bd9iZ47SRV6vpI8fVM1v9hk1TpEvTro2uo="
"version": "2026-07",
"hash": "sha256-csI+E5UFGi42BLGWWHxQhVr5KSihCFc53KGKwo557Ck="
},
"wikipedia": {
"name": "wikipedia_fr_all_maxi",
"version": "2025-06",
"hash": "sha256-ve7Mbh96/ObNbV/KVNYZpfLN+HdWlJ7C5LItEdVkRH0="
"version": "2026-05",
"hash": "sha256-YUAbGzYYr+c2RQqGjHIF9XL1kNsxDgRKnHK1H7/PtDE="
},
"wikisource": {
"name": "wikisource_fr_all_maxi",
@@ -64,25 +64,25 @@
},
"wikiversity": {
"name": "wikiversity_fr_all_maxi",
"version": "2025-09",
"hash": "sha256-55fdtw/cRezq6nkRp6wuwkukBiqsQKdwh9QWVAgFcBI="
"version": "2026-05",
"hash": "sha256-nVDHtkWIOJkoiGixnA1zVR1QS58thjc12FJyagK3Ec0="
},
"wiktionary": {
"name": "wiktionary_fr_all_nopic",
"version": "2025-11",
"hash": "sha256-P0CJptee5rDzccxyRDBzyRLuuFOcaLsJYi6DkBFUfIc="
"version": "2026-05",
"hash": "sha256-7UXByW2IIL0hec8RPT39jpg5IEGvRMD47hc4Y4vFkJs="
}
},
"ht": {
"phet": {
"name": "phet_ht_all",
"version": "2025-03",
"hash": "sha256-bHrPzE8H7ptrP6r5wPlXSsXNlTiKxJ9KatABC4kwx+s="
"version": "2026-05",
"hash": "sha256-GiJ1jllhioyMYidQ7+Lcbdd9JN2yf04ZQgnO8XaGAqY="
},
"wikipedia": {
"name": "wikipedia_ht_all_maxi",
"version": "2026-04",
"hash": "sha256-qUX0pKxIyNsWX4V6kNIsP4Z9nc6TDhwdDR0MmpDOQFs="
"version": "2026-07",
"hash": "sha256-InS9cMRaIv9ArlKVwKUypz56m4DgSR7Tl6XpSTMzH+o="
}
}
}
+167 -112
View File
@@ -9,7 +9,7 @@ import (
"net/http"
"os"
"os/exec"
"path/filepath"
"reflect"
"regexp"
"sort"
"strings"
@@ -17,27 +17,144 @@ import (
const BASE = "https://download.kiwix.org/zim"
func getTypes() []string {
return []string{
"phet",
"wikipedia",
"wiktionary",
"wikiversity",
"wikisource",
"wikibooks",
"gutenberg",
"ted",
// ///////////////////////////////////////////////////////////////////////////
// //////////////// THE BLOB ITSELF /////////////////////////////////////////
// ///////////////////////////////////////////////////////////////////////////
type Blobs struct {
En Language `json:"en"`
Fr Language `json:"fr"`
Ht Language `json:"ht"`
dirty bool
}
func (b *Blobs) Populate() {
done := make(chan bool)
waitFor := 0
// Launch self-populating efforts
blobType := reflect.Indirect(reflect.ValueOf(b)).Type()
for f := range blobType.Fields() {
if f.IsExported() {
//fmt.Printf("%s:\tBeginning population efforts\n", f.Name)
waitFor += 1
go reflect.Indirect(reflect.ValueOf(b)).
FieldByName(f.Name).
Addr().
Interface().
(*Language).
Populate(strings.ToLower(f.Name), done)
}
}
// Wait until all languages are completed
for d := range done {
waitFor -= 1
if waitFor == 0 {
fmt.Println("Completed waiting for all languages")
close(done)
break
}
b.dirty = b.dirty || d
}
}
func getLanguages() []string {
return []string{
"ht",
"en",
"fr",
/////////////////////////////////////////////////////////////////////////////
//////////////////////// The Language ///////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
type Language struct {
Gutenberg *Zim `json:"gutenberg,omitempty"`
Phet *Zim `json:"phet,omitempty"`
Ted *Zim `json:"ted,omitempty"`
Wikibooks *Zim `json:"wikibooks,omitempty"`
Wikipedia *Zim `json:"wikipedia,omitempty"`
Wikisource *Zim `json:"wikisource,omitempty"`
Wikiversity *Zim `json:"wikiversity,omitempty"`
Wiktionary *Zim `json:"wiktionary,omitempty"`
dirty bool
}
func (l *Language) Populate(code string, done chan bool) {
childDone := make(chan bool)
waitFor := 0
languageType := reflect.Indirect(reflect.ValueOf(l)).Type()
l.dirty = false
for f := range languageType.Fields() {
if f.IsExported() {
ptrPtrZim := reflect.Indirect(reflect.ValueOf(l)).
FieldByName(f.Name)
if ptrPtrZim.IsValid() && !ptrPtrZim.IsNil() {
waitFor += 1
go reflect.Indirect(ptrPtrZim).
Addr().
Interface().
(*Zim).
Populate(strings.ToLower(f.Name), code, childDone)
} else {
// TODO: Figure out how to set a value over the nil pointer
// of the field, so we can auto-detect when these are available
// in the future
// waitFor += 1
//z := &Zim{Name: f.Name, Version: "1999-01-01", Hash: ""}
//ptrPtrZim.Set(reflect.ValueOf(z))
//go z.Populate(strings.ToLower(f.Name), code, childDone)
}
}
}
// Wait until children are all done
for d := range childDone {
waitFor -= 1
if waitFor == 0 {
close(childDone)
break
}
l.dirty = l.dirty || d
}
//fmt.Printf("%s\tFinished populate\n", code)
done <- l.dirty
}
// ///////////////////////////////////////////////////////////////////////////
// ////////////////////// A Single Zim ///////////////////////////////////////
// ///////////////////////////////////////////////////////////////////////////
type Zim struct {
Name string `json:"name"`
Version string `json:"version"`
Hash string `json:"hash"`
dirty bool
}
func (z *Zim) Populate(category string, language string, done chan bool) {
//fmt.Printf("%s:%s\tBeginning populate for\n", language, category)
// Look for a possible Zim file
links := getLinks(getPage(category))
link, err := getName(links, category, language)
if err != nil {
fmt.Printf("%s:%s\tNo zim found\n", language, category)
done <- false
return
}
//fmt.Printf("%s:%s\tFound link: %s\n", category, language, link)
// Extract name and version
re := regexp.MustCompilePOSIX("^([a-zA-Z_]+)_([0-9-]+)\\.zim$")
match := re.FindStringSubmatch(link)
if len(match) != 3 {
fmt.Printf("%s:%s Matches: %s", language, category, match)
os.Exit(1)
}
// Check if the name and version mismatch
if match[1] == z.Name && match[2] == z.Version {
fmt.Printf("Skipping existing hash: %s\n", link)
done <- false
} else {
z.Name = match[1]
z.Version = match[2]
// Fetch the Zim file, if it differs from what we currently have
z.UpdateHash(category)
done <- true
}
}
// Helper function to fetch the HTML of a given type page
func getPage(t string) string {
page, err := http.Get(fmt.Sprintf("%s/%s/", BASE, t))
if err != nil {
@@ -48,6 +165,7 @@ func getPage(t string) string {
return string(pageBytes)
}
// Helper function to parse out all the links from the page
func getLinks(page string) []string {
ret := []string{}
@@ -60,6 +178,7 @@ func getLinks(page string) []string {
return ret
}
// Helper function to get the most likely link for this particular entry
func getName(links []string, t, lang string) (string, error) {
candidates := []string{}
prefix := fmt.Sprintf("%s_%s_all", t, lang)
@@ -79,44 +198,39 @@ func getName(links []string, t, lang string) (string, error) {
}
}
func getHash(ch chan result, file, category, language string) {
// TODO: Only call this if the file doesn't already have a hash
// in the existing file
fmt.Printf("Fetching hash for %s\n", file)
cmd := exec.Command( "nix-prefetch-url", fmt.Sprintf("%s/%s/%s", BASE, category, file))
// Helper function to get the hash value from the resulting link
func (z *Zim) UpdateHash(category string) error {
file := fmt.Sprintf("%s_%s.zim", z.Name, z.Version)
// First fetch the file into our local Nix store
fmt.Printf("Fetching hash: %s\n", file)
cmd := exec.Command("nix-prefetch-url", fmt.Sprintf("%s/%s/%s", BASE, category, file))
out, err := cmd.Output()
if err != nil {
fmt.Printf("Error fetching hash for %s (category: %s, language: %s): %v\n", file, category, language, err)
fmt.Printf("%s: ERROR fetching hash: %v\n", file, err)
if exitErr, ok := err.(*exec.ExitError); ok {
fmt.Printf("Command stderr: %s\n", string(exitErr.Stderr))
}
ch <- result{category, language, ""}
return
return errors.New("Error fetching file")
}
hash := strings.TrimSpace(string(out))
fmt.Printf("Successfully fetched hash for %s (category: %s, language: %s)\n", file, category, language)
ch <- result{category, language, hash}
}
fmt.Printf("%s: Successfully fetched raw hash\n", file)
fmt.Printf("%s: Hash is: %s\n", file, hash)
func outputIsValid(o map[string]map[string]Zim) bool {
for a := range o {
for b := range o[a] {
if o[a][b].Hash == "" {
return false
}
// Then, convert the hash to SRI
cmd2 := exec.Command("nix", "hash", "convert", "--to", "sri", hash, "--hash-algo", "sha256")
out2, err2 := cmd2.Output()
if err2 != nil {
fmt.Printf("%s: Error converting hash to SRI: %v\n", file, err)
if exitErr, ok := err.(*exec.ExitError); ok {
fmt.Printf("%s: Command stderr: %s\n", file, string(exitErr.Stderr))
}
return errors.New("Error fetching file")
}
return true
}
type result struct {
category, language, hash string
}
type Zim struct {
Name string `json:"name"`
Version string `json:"version"`
Hash string `json:"hash"`
z.Hash = strings.TrimSpace(string(out2))
z.dirty = true
fmt.Printf("%s: Successfully convert hash to SRI: %s", file, out2)
return nil
}
func main() {
@@ -125,90 +239,31 @@ func main() {
// Determine the output file path
var outputPath string
if *outputFile != "" {
outputPath = *outputFile
} else {
// Get the directory where updater.go is located
execPath, err := os.Executable()
if err != nil {
// Fallback to current directory if we can't determine executable path
outputPath = "blobs.json"
} else {
dir := filepath.Dir(execPath)
outputPath = filepath.Join(dir, "blobs.json")
}
}
outputPath = *outputFile
fmt.Println("Writing file to ", outputPath)
// Read existing cache if it exists
cached := make(map[string]map[string]Zim)
var blobs Blobs
if data, err := os.ReadFile(outputPath); err == nil {
if err := json.Unmarshal(data, &cached); err != nil {
if err := json.Unmarshal(data, &blobs); err != nil {
fmt.Printf("Warning: could not parse existing cache file: %v\n", err)
} else {
fmt.Printf("Loaded existing cache from %s\n", outputPath)
}
} else {
fmt.Printf("Error reading file: %s", err)
os.Exit(1)
}
blobs.Populate()
output := make(map[string]map[string]Zim)
comms := make(chan result)
pendingHashes := 0
for _, t := range getTypes() {
page := getPage(t)
links := getLinks(page)
for _, lang := range getLanguages() {
if file, err := getName(links, t, lang); err == nil {
if _, ok := output[lang]; !ok {
output[lang] = make(map[string]Zim)
}
// Check if this file already exists in cache with same name
if cachedLang, ok := cached[lang]; ok {
if cachedEntry, ok := cachedLang[t]; ok && cachedEntry.Name == file {
// Reuse cached hash
fmt.Printf("Using cached hash for %s (category: %s, language: %s)\n", file, t, lang)
output[lang][t] = cachedEntry
continue
}
}
// File is new or name has changed, fetch hash
output[lang][t] = Zim{file, ""}
pendingHashes++
go getHash(comms, file, t, lang)
}
}
}
// Only wait for results if we actually spawned goroutines
if pendingHashes > 0 {
hashesReceived := 0
for r := range comms {
if entry, ok := output[r.language][r.category]; ok {
entry.Hash = r.hash
output[r.language][r.category] = entry
}
hashesReceived++
if hashesReceived >= pendingHashes {
close(comms)
break
}
}
}
// Verify all hashes are present
if !outputIsValid(output) {
fmt.Println("Warning: Some hashes are missing from the output")
}
ret, err := json.MarshalIndent(output, "", " ")
ret, err := json.MarshalIndent(&blobs, "", " ")
if err != nil {
fmt.Printf("Error marshaling JSON: %v\n", err)
os.Exit(1)
}
err = os.WriteFile(outputPath, ret, 0644)
err = os.WriteFile(outputPath, []byte(fmt.Sprintf("%s\n", ret)), 0644)
if err != nil {
fmt.Printf("Error writing to file %s: %v\n", outputPath, err)
os.Exit(1)
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg tRkWo/tXovX5ukc6DRiC55s28fMJvry4lgSWeGnQXHY
G266810Co/QUFWle5j9W8P2+cfoUmZ5gEKcCNg5jw1A
-> ssh-ed25519 8UnW5Q OqyBBxWRBBpAlS93lZ+TGl2O2NwhS5/ZsMbN/sUiUVI
N6csZzFJUU17JEsLUVRzBhM1at00bu9rUzXE5JAML9Q
-> ssh-ed25519 UFfTmg iuxAyKikNUPm9QJU9O8UYspvWjWe7Te26uzPN6s8yww
VCpWZVtTwHlOC7PXk6xIezNbIMgFObavv1AFinouU40
-> ssh-ed25519 KbVVUw pVU1pSoYn5SiePORWE9bJk+w8pn76xyhFrXi3PQJ0GE
d8Y2dt840M954ZrqRoSeUPDjPLoM4EJwKwu4+5ehddw
-> ssh-ed25519 xNtnoA L8MxfT93s2I42dirqXnf+VRWq26NPuZ6Ta+0vcbwYRs
0RyuZdK1sqCpuMDVpUpJkOs8OGhjz4vojNpmInX4a9o
-> ssh-ed25519 aY2AXA prgbsTVqCxDqX9fB1SwH0Pz3wHNNut2Kd/g2CT3pE1I
12LcMPa0xpx3vtrmNQ0JrJa5PUCcV+jj5s4c4ttRn18
-> ssh-ed25519 AQhf1g Tdph+xLV/TIYMxExaUo+xgqd2Cl5o+BCSEKHWhYpTio
ecuPMlwtgIbBoZ5mucYglIamW8FqeJT4ZXs84CcSaAM
-> ssh-ed25519 mOmPfg pmE+ZERem6G19KtQ339alV0mlSZxOdU0s/NSY9oykzQ
i57l9Oxl4mLYquHwFIsbPtmhyjyH62MereQzNf/vvhg
-> ssh-ed25519 YJiRbw 7Q2ue0YEapF+lK7204mDbRTOxU4BrWC/01umQw0DCCM
+Ulv7yL+02WvDmrtlujCD7zR6V2Npm3WMqvvSyIpOH0
-> ssh-ed25519 Nl/5yA 0FmOQ2WA+qXbhHy6WimadXJKVmgUsRBbOPsgFJ6Qtiw
xhJkG+SSdnYgMWeJk7ciLI9bS+c403p2PqVRObk9ezA
-> ssh-ed25519 GdLgCQ Ovn3zHYbFImNyPz07xjMDYnUCnHpejotNfVyD6olgGc
AfF78TueIj5jnz+q7vrXyu1BZ6VN0hkTpg1LItmnCYw
-> ssh-ed25519 tOH/HQ x9alUL3V2mHyQHt5vPIDBq+TNE0tYkJuP8KYE80VinI
se1kqe3o8bKr1AkgH55NTPMD6ZRkdcLIIZ0YhEVkTq8
-> ssh-ed25519 FpzvfQ W6oRWhWgbZjLrJTkFj9LJWcq3gapz6vRtdSjV4g/yzE
GYh8HSC0mPRGRu7jT7DGx3py0Gvu/zu3BzVdXL8gU1A
-> ssh-ed25519 2UotMw +XsUycMbAALayfAxF/SvkoWv5ubzWp/RvJcD9sWeSAY
j3lHaEJzFk7R48RNbGNzcMs97p12n88L9WjockK1N+g
-> ssh-ed25519 kdPvzQ X06P2aEDkUoSk0KVLZWC9DGyNnVlleeBft1xQPecDnA
6p3jxcHePWO+cf4hnALXxaa5bN8B9AZo+qodDyK/Evc
-> ssh-ed25519 onmXpg +9uXItde+0h/bBcSEwZ57y36bxwwoCWY2SvN1jG7rVM
2VyLiThmzYQeDOk7TaUUslec0qvr7UMSiBTHsEpR6ss
-> ssh-ed25519 CnhD0g feqQLfUYnakAiHJo+gWHrbd5o9WyQ/qluJ7/d/n7PGU
g5l7RvpeBRwnFRKhAED75QC0d6DiGlFho3D5tPumiIY
-> ssh-ed25519 4ep2UA nkc+pDUli0BTe7XoDAJEOLnBDeiekZSv7XVL3POXCTc
iWQSdc2hWP2UvyyISoUBKOhRotPCv2ySsfmoAAOLgFM
--- YRWXRvqVNx+YrIEW8vp0RcJLM/leQUhHD1WKnaEqprA
$f4jAjlÚaôp@™ e¢!(°^˜rˆèJ÷¾%h¼h@37üß1š+'žª´pŸ­œ†ÿbÿó1,¦jÂôA´n£€X¹ð‰¤3jýÈÇ[ìÑW#E\NÑÓÖ}¤
-> ssh-ed25519 8UnW5Q MDrURGpcaqY6DVIURK6dJs7xKCGLtFS8+hH0UCRT7G4
qsqMoWCrssVlJ2kP1cvP9+Fj+c07iFvbFs3Cs+RYVLM
-> ssh-ed25519 UFfTmg lTHOOV5/G7IPaYWqrAwM9Nb75//N9O1wMDFSUtyo1gI
kEWctDmQRHNzxMIwONsZo9EEIc/wkPxqX851BO6ohYo
-> ssh-ed25519 xNtnoA lm6OHoKNa8wB1ML5lA/xl13Xp8WUSF2UY89bP8BZP0E
iPDWUaoViQ7faVkUf2V1MQxrklAw8lJ2KXfJZTYN2X4
-> ssh-ed25519 aY2AXA 4E8FsRsfsEKsLNVvBRTAoxghfex8omAQcy8NKzJ17kw
uzZQp9nVfyVH3dz0UinqZjsZ0Kft7tPVSk1EkE6NvA8
-> ssh-ed25519 AQhf1g rgcA2UeG0s75kSpok9+VR4ixNyZUqD+8ye1TJsMMA3Q
rfM5/54WWHrnG1qfex57tGH97lbvKM+J6TGztYOrU+c
-> ssh-ed25519 r/3ipA 7pNJRvOFO5v2nlMPbXP9oad6jp1pPAsByfiEhdCTAWI
Vh+iyg2P6fvNWyCS+V4087zRf+pCIBj0jsPX0DtPp0c
-> ssh-ed25519 mOmPfg 9WuzH4QasTe0NNcIf+XSremq5GuBZoKP+7t4MJNAFA0
5E1Rbupw8IUnTuicTubXWmwkJ2xVg5K4BpkZCsUj5UU
-> ssh-ed25519 YJiRbw msPFM69Tuy/luxASGVA8ey77vqtvXNy7ytf2VxQWNi8
oD5vRs439A/YT5FxkSltl1Qf56NNhiKt17++vlFvwPA
-> ssh-ed25519 Nl/5yA C3zn641k6eFQePbp2q7dwlIu7Iiw2aU5dmSrH2HCai4
v1/XJRKIrIgHWfFtSDaFCvOKtcIR84abUZHPjaxP5bw
-> ssh-ed25519 GdLgCQ ZztOWiw1ao1pvJ9REB/wBuxq00uyO+JAkIWjLUMueSc
zXSv3MauG2E2el+Yv5oocTgDQjQ1fKXLpm6y2OTyIvw
-> ssh-ed25519 tOH/HQ /eEgAf2KH1Zgd4yQf+kzyESkvPI8GKJC0MAJl+8+WD4
H35T+ulGSCrWAuIsZs8ISRJRj2wqpRrOGlaoq9fnN5o
-> ssh-ed25519 FpzvfQ dRq/NtT/TxJ/k9WlaMl/PrLTvPzkhV8LpF/LxjqjGmM
LJN8xxnNF3EcMmXKdLhc70b2Y6n9qS3A5wdFXY6hUjw
-> ssh-ed25519 2UotMw I+kJsu4GAflSfMjzE/8+vp6AZb88OpiCREuxfAnQPis
hRu7IbLMdc3U+NQo1PDhc+O9uyd/wJZyPtfTv9z9TvI
-> ssh-ed25519 kdPvzQ uOLSQFzsGSNg1HsiJLCYi2Lp8pasc7H/jhUBlf6b0zg
KbUOl2WOsc6VuAC33SjEJS3tM3o82A3QO0bA9wd0rbA
-> ssh-ed25519 onmXpg NKdAvcN3TStWYtQeLW1oEn7+shQuuNBndHaQRAU4f1o
vCuDnPc3tayIwDbHJneLQNoENyfA6GRpQi6+OZ34Jjc
-> ssh-ed25519 CnhD0g Co6fy3fm8BUi2qn+xBY1X33N2m40jEM7CJhSQcLokR0
kwrOzTRiVe1aQH/P+ua3xZNgNRZh2pfQrQl2k2Y727Q
-> ssh-ed25519 4ep2UA /f1HxU62FqhDJyJ9fPMKiqJdw1m/UjASKuYhY5Aq8D8
tckIOvPq3Qid9Z5ud2v9syaed/h+3GrackXKZonDYEg
--- FHj/yA6RDV1VYPsi84z5Y3NrbfVUthwdtuRWqiKC57Q
Õ=Â7T÷Ü`6¦K./ ¾¿àO Ö¼‰R•Pá€K…2NYqWÖ¹£®ê0v{±µi'¢žÖVûÆ!+‘|ÎÕ0¿ŽšÆ¼ú´Ìi ½†Ä?QŽq¢2Ô5ÖÀéŽ gÜ/c_
+37 -39
View File
@@ -1,40 +1,38 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg 42tvGwJ82PwlXbr+TqSz08omHABPqv1TH5plKNLLvkY
4Xwl0lc+zSL4k1PuIO9qF1Ci8mOOWciq5yGbbqW6nLE
-> ssh-ed25519 8UnW5Q gGcbBcV2tF2UaaYBvM/jiNH8Lc9Fl62NZIWSbNVZeX8
1TLxRM4e4/T/q/8Bdx/W3Sg5eeq3g6aUcka2kizF1O0
-> ssh-ed25519 UFfTmg oNyxvAIg2hYEJ6Z3r9MzuR5YgPW432T03/mcjLeLOgs
NZOFUzuaaxwGbQDkDinSzjbFPrFETbQOEJwrgyYtKpY
-> ssh-ed25519 KbVVUw annu9kT2zbKvaE3WwGtDGhvku/Pj8a4P5GEQLhahZiE
RKg/owcXYN5pqsDxjlaNPg6um/7/eoXxZ5oJxxouxjE
-> ssh-ed25519 xNtnoA tN13P6fRYHjVTmXo7w6y/ljzr/8nEqrlgZXpG5jA218
wg4SUSCWqE3iskGPE9qJ5Ot68pcvwCi9fmE5NXZqYCI
-> ssh-ed25519 aY2AXA VdvvL8lgjZBhflonEI96VSFgYaUX3Tfvjo148BA+Uks
ZljFDZ61GKr24lWG8z8sKke1TpTCiSeqyd05yxNFTVo
-> ssh-ed25519 AQhf1g jKvD41VnPGoCBEva5llD2NQo42TDnpp9M28BTBewuR8
TSBZqNLhG/PyToBnX2kwevA35QKmKcjwcPe8/JUcywM
-> ssh-ed25519 mOmPfg /yX7XUVozu8ZTCW9gJyoGd7EzBISb0c+i08HEsN7ODw
e1rAICTZajIF0AaWXBATDNuqQK4GAqxEjgxvaRzDark
-> ssh-ed25519 YJiRbw cy9m8KQln8ryxLEqx1tIoZRq4SiABQFT5IzmMlgkQjA
P4OLv+oTFhgnLzb4YrhFdV6jreAGhXBkMCe7pb31KTw
-> ssh-ed25519 Nl/5yA Nx8mErRdN8sIaj8ueWnDkSw5vBhfkOW5Rk2ND3gwZmY
6elVFcWQnwmh7NvRm17+WahOkvLmQbqBBKnruHT3yp0
-> ssh-ed25519 GdLgCQ WwKSzJsPG8vJjRjc+nkyvGKtqLvpKe3V158fRezWtzk
mKdk9Z2wOipmc6brgNWeIbxADdkkXAFcs8E956RdHTs
-> ssh-ed25519 tOH/HQ /CL2OxE6C8ZCfHgHTQQJmuACG5lZ8AdVpDe1YfG9mHw
7uaalUdP5vCjsLEYdp+LREaxU3Vo0VUCVXn/H0WAa4I
-> ssh-ed25519 FpzvfQ hE8FGN82H81RWUm+LgCuvQMWra0ulwMHuGSYTdQvc10
Eq/btSgef+2nkQGreBhqRKAt/6CFo5ahdRbBfCO5Bv8
-> ssh-ed25519 2UotMw mqdgTsPI9vockRACf/NdD466WkIyQvSLuEJSrT5mDwo
hyZQCiUCu8gfVTCZ8wMxo+i+CqjhE9t+hdJrJcm1dNs
-> ssh-ed25519 kdPvzQ fO2iL5QnWBxRFe88W488dkezFsMxJtMBc5GKACOZYjk
NPa4r9t7lPt3mMgHjT6soAK/RWLUe70Lh5i7LwRYlgE
-> ssh-ed25519 onmXpg 9N98xltPTCAb42chNAOb4hYr7equq0lk9nTqol3EKXU
tdQ7FSABTifm9sHKzOVFyoEbOjS9TYS7DPsFrBqmnLo
-> ssh-ed25519 CnhD0g 1oi9mdmL6ODCgi3pWGKEqU/QN/v41XQg7nUZiu5frWw
zXOUj1z6Z6DKyWr2ZqyFFZGNwKkz3NdyEUqWpnl1xI0
-> ssh-ed25519 4ep2UA RKc7+piJY2Fh4NnZGvEuAzJIMxr9NBQQBSMj3xQqrSc
yqLK6nR4b46QPwnH9DuZ5spzIu8fQMAxmLYNtj5jAu4
--- R87vMnH5oLHLJgD7rCGZwz6dpc/a0kpm/fi28jqVcT8
\_UvF9‘ˆ±gøË2Ä®Ôbá/0=íOÙµò´``lú©žµ^2&…àâWëñº‰W§¼
Pc,™häZO'kÒ2f'hB©ºp>¯l\M§¤;‰òouFü ë…œ¥X)P!hÂRo]¬Ø† Ù/{—¶6Ä•÷ƒt»¢¶Á<Þ$6tá[6ÑüAéaó7œÙ–òúhiç«d´Y-jëº »_ý)£“Ò‘b˜˜ƒpÉ ªÙ9Hå»\HBÂ6dß(}ˆ…~¨¦íåèq¡x5P{x…@ü°GE0x&0ðYÐÆgó¤¿4•—±z‡•n•! Ù¿ªðòˆÍÐ{ú9
-> ssh-ed25519 8UnW5Q 5p80c2oBsZh9KTXU+ZT2AKbbEMOKxlAouHew8KU8kns
ZvUnyZjn/HYmxHBth7ognoHB9zsUe43Y6c084D4xdHc
-> ssh-ed25519 UFfTmg 9ol6Gp3stU0jwPzkr9CcLLYftYTr614jBfba226E7xU
i7CZagRKOmUn2uVmzyuCJQdbtAJoDbJZxpMNDtrH7/M
-> ssh-ed25519 xNtnoA QZ/CQO4j7T5qC4ohLMEt0i1B8cuMGYgWOAwj6HSPDVs
Nh30qP0yZcAw2azpFA+Pi6746+kmM5D0fZUYL1uTzmU
-> ssh-ed25519 aY2AXA C+1SvOQKdrTk3UNOLdiHrK8e88BBztlMqE3Cofm6ZUI
F26HpuL7HY2nsC72KDgZMbfQ9Hbmvcr/nms/d8cCjro
-> ssh-ed25519 AQhf1g ZWLSoDJiiQswh4GyhL4P82X03SNSRnDPmZk3w5nyakU
r6k53tUfB/J6WJuGSmU23frSkcw3jpe76d6vlIfPXcw
-> ssh-ed25519 r/3ipA cH7gfgcgS8oRx/GKlolPIQ5WzbP+i+xGHfzjqCQ7NwI
Tv8lSRcUitEx3oWa8hT330K8DYt+PWR2mHetY1rzCPE
-> ssh-ed25519 mOmPfg sfr1m6QIkqpHLeunlYCc9LjVPC0XqXnH9z75IoSRgCs
heS/IaQwkt2IQRNcKeNfsAzKGGLEdiUzQxdPll4CRt8
-> ssh-ed25519 YJiRbw 9oF0E5s2LCHrjFozDq6GbYH8UkzSaPH/4ore75bwe24
8PHPtU/fDDFkcEPXHAyrp7LBDHwRtTX/u29+jJCzsXQ
-> ssh-ed25519 Nl/5yA 3xAZWLQ27UtB3kZiEbIBPlkO99ZsAD6k0oOTmXODLT4
ia6BrKBYSe3BM728ysyBfSjwtQoev/NrTq+Bnp+z7hM
-> ssh-ed25519 GdLgCQ otupOJf1nJV+w4BlivVEer7x4C1aEU8zIMLmLSlPiyM
BHv9OTNsxkYBlA2sI3x3cEXjr7GSyVlaQZIGBSua4+s
-> ssh-ed25519 tOH/HQ UnszNH3sEPqlpEuhJTzYG/gwBE7e4/P2VVRkroceZD0
L9HBZkhn3zbOIhrkBo3ezvp/Qv8Lc/BzS57npaH+nwQ
-> ssh-ed25519 FpzvfQ S8QZlLoN2FVpAajpsOqaEPHZGfXAr/k4ZXY8PKEiA28
hJsIvLf77JG87Gqe0dDq16dsSKSlJZZPGbYrWv1oBlU
-> ssh-ed25519 2UotMw kRIdExrBlEQToh6itvMGel7UIVDTEIVqb159d1CWmAI
Bkse9A2smfngBC5WmDmes3ALMvoxeZw3ypvVBxWjWcY
-> ssh-ed25519 kdPvzQ 4O3g6LMdWv6OiBP5mjZtWa6ERd4s3d1mawlW3ZjajjI
HqzRVYB5Vko0x2rK1d6DHcAQdla3gsTSyTXcZNeP2c4
-> ssh-ed25519 onmXpg grxgbmSfJvZ4lNpBOEsVUVnRXNmXe8GybiTg4BhzWBc
po3Ka11xxQobByCWHvzj4z2MT7AYtoUEvHPkdlVcyPw
-> ssh-ed25519 CnhD0g hwhHSq2AFrZelQtkfegSSLXbUVAERTH6yoiehI+xbHE
sGBl0wu73Refzt/k2iM5BFw5rhFiXV+PKO6L4PrDsJE
-> ssh-ed25519 4ep2UA aNkohdDISDwG6Tuqq9IStUqwIgC0gueGAiCh+gyDsl4
Kl0AQrVRSfvR8X1zT4ws2paVuZdb+xI4BYFJFMbYmDg
--- jS9nG8Wyoh+2f66Ew/ebH5LYRt73NIi+WnEJLHAoyTA
¥¯fŸ
ä(r¶OîŠërv,¸w\Rx¶ €§ÂÞ¶Ü¢ÚÇrq9Γ’uŒK•j1ÂàSÚa@“¾|pÔ‰Ãy»ª«³Ga¦ƒúfJÆEDޝ•]å, ÉjÎL¿äì¼v3Œ<y(õÛûiH›™x=‡ ú:“‰/Õ`üëÏ™h{¦ñÑN Á\·Í8ЇiJóêvaT…‹÷ÊÏ'¤4xÁÖ*áÏ+¹À=6{ˆŽùOÝKEØ' ýøÈ=Q¦!ÿÊI#.˜{yÚIrà´èêf/ÝwWª—âꎿè%ÊT£ÿ9x…#n ²:MhÏèÅ–µ~3G=¼øF=;9o,ó
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+37 -38
View File
@@ -1,39 +1,38 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg dA1cGGZS6hZzglVHlyxZA6HAGBtZfXYHedZLebiJuxk
9jOUxFha5O0lOo/p09thxSrGBeABTiAtc9caKRCXvSs
-> ssh-ed25519 8UnW5Q sT/26ON89MZLDFoMec531z4jvN4zcwtocwKpsy1agm8
5lm9F/vDdN0do3Q02VYofWbXVv3v+POcVKe6hQBg4oM
-> ssh-ed25519 UFfTmg mBEIRRxLahorqsYdWRfLKG3Atb0+ks3UPTLZbN/p9Qs
DMGHYSpSQG+rhg0wB0MUJBVARCcu3fIPodQxEO/glXY
-> ssh-ed25519 KbVVUw Pbn4kkRR1xiVeGlHqNR3oHCpqVpftztRyyTRI7jbQDs
4Ep3S6WUDXipUdmxuWdZJGy20HWR8MeJ0qG92dkVqRo
-> ssh-ed25519 xNtnoA tqndUQdkCW7dc/tCVRNwC1953WC8/25J+CuNz7iFXy0
jkiSMT9RSIkhyypkhMtKMDAaZcEOfuOs8PN+Fm5RJho
-> ssh-ed25519 aY2AXA 8c4P/cE9ISbxW1h8j9eMSJ1+Y8mId5AMj6KVW90bHTc
Mn7nW8NRF+a/6d+Lv4RlxEkyH4GZnQjo+IrZQpjPscw
-> ssh-ed25519 AQhf1g yGuKYOPodxketnWOUwwsec93545XHR77DdBcSt0nQh4
78/c4+H8hGJFBkG+jHfL20W2rUSO6QeWR1s1YG9rEUE
-> ssh-ed25519 mOmPfg U+17chXPF1QtSBBS7KIZS2ye63ZnKd55CLspwRmVSig
nje/FT7zkwDr9/gEzyd5oFBpZ4XmmPbJq0u24eUhHeY
-> ssh-ed25519 YJiRbw z1WWdaDEbV46mo1s7c5COi8nsse9G7kZP82+ON8WznM
1sj1t9sM//HcTdaDJDG+sIz55jJ995qVtuE5v83q37M
-> ssh-ed25519 Nl/5yA kZzDe+hZVtexOK2cWp+xC+avuzOTVhw++MkfdQ/1wjY
XMfktagqBs1UE4iVPPx2rM3SnPns27m4KtqldWVFj+A
-> ssh-ed25519 GdLgCQ CDa6LXTJhViLliv5wOTxlh1bKVVdhW08cSFggxQAdA4
YzaJCQw5Bnh2buHVTFLCmgQ2+xta5BHvR08gwOxE4Lc
-> ssh-ed25519 tOH/HQ 4YF1ffsWDtKw/7A17kmFOVukG9K5jGL3gzVye0FzZ3c
BODYure5YmXASU5XhlfeksA4VqsKaKNp6Q0laeJ3z8s
-> ssh-ed25519 FpzvfQ H+dvG6G/fEDsLqHoHW4G8c0RSPooRhRgWUzL+5igAkM
BFe1mOGLLURn0I0LHjw4Zue+3s6Ta+GA9vCj+ZNSGpM
-> ssh-ed25519 2UotMw lSaXW+ve24TZnJf0RXdLEJ4FfGiYNZ67LqfkrUWo8Cw
45ZTeg1Y1P/DOa/yAbtrTLwNA897X9iuN3ZP/q0/rM0
-> ssh-ed25519 kdPvzQ XVaKM5korb9tfFDIYs4ueREKcw8U3VGRonwp/QmLK2E
RacYxiFK1vhTbJyfm0ffHxAq+JGFa9A5WtHWQ4iOEKg
-> ssh-ed25519 onmXpg apxJc3hLsgsudKiXwvXE59FDMW9H8qXtlRcdhqVvzxo
5RYr4G2YSLLSQKpgaB3g1HkcD7Xv+1Q2XKRp4SGKv5c
-> ssh-ed25519 CnhD0g iiUwUS6wpQTXCL0qR2nUzkuG9bytZoQGI+0Xhq5O/VE
OLhhRnnAJATapn2WGr9UepY62D6DjCaoprZqMAiisBs
-> ssh-ed25519 4ep2UA WOSiDKxTlL97otLBmox6lvMabltrvUy8IqNsNQOCDAA
4CY2Gq4E7iLbeqMup8mQEdOiOEbE9mWHNtwsaOOFWj0
--- ULVOLUkx4Hzk0DLOpFgD3ypoU+vv90TnWTIaPNWxyUk
˜iTSBý¥#õÛO×·Q¨Ödzia¸ÏjƒX ‡[dù†z¤å¢>AáúŽ*Ocîß…P°AErÐs“ø³YeföÛãœÌïÉÑù
-> ssh-ed25519 8UnW5Q FRrvjiuNlnu4/DkwfY2K5p3MdQ5bDF3+u+JKrYiHzGw
9dGLw4PT4OapoTW2GnoJ85GEWgO3Aepj7hl0LpPZylk
-> ssh-ed25519 UFfTmg uMTPiCPPoVqt/3SOr+y5oKGTxpFq2UNGrwaRVmnZT1Q
Rn7dRYCGZwYN7sCmAsne6kAuKmD6CFlGXR130ELiJCA
-> ssh-ed25519 xNtnoA FW0dLFehc2yVvpxIDEcVWD1zHspZuvwrn2qgYltdp1Y
1zYm+LF/8lvfEhQVr4cbyDF5CfhPu/fNBYZMQLtTrqw
-> ssh-ed25519 aY2AXA aNRD8OIqKluKhHQZCGkW+kS71vlU2N8K6k590eLO7HM
PZHX6fqbX0U+55MtJ2iSur7TSHFEgQBiAgpXiGlHbuU
-> ssh-ed25519 AQhf1g cIhfdle1UsPx86LETXhB46evMenWtypO4GmL2/oLbXs
ezwVMUSz5KbBymwnZlKuLD7RbNBJigfkb4sOpHAAnBk
-> ssh-ed25519 r/3ipA Gt94r1I1CUMKrGQKBVgq/FLlOa7V3weD6N1rv/dVIV0
UsBIZfHiU17IjzhcKc1kvSEIMIk7I/DizSdBGhXNwqA
-> ssh-ed25519 mOmPfg b3/Gwqh1kik/AuBzcpqsuSuFcK0Pko3hRu32wFB/yks
X9AXKVJ3d0IV7wkV2ZibScIV9En9uJNyUIPIk7WFKb0
-> ssh-ed25519 YJiRbw yDkwCFtGXgS18DwqMCBied8+Jt8u2GBWuFQSrajij1s
eSeFTNbeOT/tDb9iQo/YzThtQeMgNYmEK61o8hjG43k
-> ssh-ed25519 Nl/5yA ee68eLzrRi35az65YmfA/WF9VliRmnlPEbGQAet91nw
2KdTnyBTyJu8q03eH5s4oRyvhTQ6f/qvwrLabvk3C3o
-> ssh-ed25519 GdLgCQ DAlJqI0uIBSrFpPMfl4FkrpjCO5qkzvJU/PBOWFh+XQ
S5tkvMrTrYbOK3U3wWxLn3MuJTfrP8vUIYe6nBpixQo
-> ssh-ed25519 tOH/HQ zQMhFkG/vkqosDn3VvzuKt4xagkUWoqE/DW6AsYtBGE
MGQA/Jxv/YTny5CyqfQBorfwIUVPZFf/hAcUTFrX9vk
-> ssh-ed25519 FpzvfQ d4cgnsFfo5xGDUFyT65HJ6S6vtzLmvB0eugwq6t0nGg
0hEFjipS1Jbp6xycUsZYHzcjQVJ22JlGMUsjPCkDfbI
-> ssh-ed25519 2UotMw C8ukSysPTKrwKCVnqjBzspXLLyJyhn2YCHcr1n0ulRg
NErsgu49C3ElHmpsz4q+zR/0Oj+9jBPnC0BErB/48Fc
-> ssh-ed25519 kdPvzQ oreOkf0nFgkgm5KuEjP28nbbqRZTA/b+bj7SSBmAslc
OrQ99MlWePEk5IVeoC/X4UYLhK10oTLFrS4KqzoVOE0
-> ssh-ed25519 onmXpg v8MQUHZj5sSu2XqiUH+8wcvEJmrGWQqs0e9evQKkzHw
ffZTIoH8stR+ZLhoz8GjvGG61xVbv4+VkHbd25Jyc/w
-> ssh-ed25519 CnhD0g Ja9KftQBH93zJAl8nOMQZXHbXIFIs9W4UqXwYr9gdDI
StRE03gMP6QQ+fCuhE1Q5ptCpBrUxrWINgCrWzwSqxo
-> ssh-ed25519 4ep2UA fbcuNM4FWkTOVSNSJGAwncdkjLN1K2Uv3dxFsnC60VU
uVbHhoO/IXfakiYFJ4yrtReK9uvYLsj4BTILRBqbRgk
--- dYPR49CT7omcJ7jDRNUAoc4t7az/pEg00aqPF00OlA4
„Ï¿Ÿ ðç(C›Ø
I'ð^¿mc¶bßH…¹«CûK␍0ýĉwé¯;lú¿P<üH㛬õI¿{àÈ|øª·ý Páy(Oì«81åÐß
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg wEnsPg/GBsOZp/g5+Wt5U86tA3LCSuuvqK3YKU22wgg
8H1eScTy08OWQ3Wm70UwpXkxQEJV//DDnKXO1Tsy3x8
-> ssh-ed25519 8UnW5Q 9McAlT3KjxwW4uA8JLW/IZ95NtyU8MB5XSzwJi00D08
jsJkSSVLMAhBrTSyjKg7q+ez6PnKdYP0GIOTG+BX6q8
-> ssh-ed25519 UFfTmg HxnyFdoHZMYBD+RZqTCGnzVv0y6KlHdvV5obWrzzzkc
l9LCV/K18AwxfNIaMDc3ES7TZgHzBpMwPaHY6Mpwxtc
-> ssh-ed25519 KbVVUw cZ7aPpgdgNGg7tAmV8efvkMgVDUIyqZjc/WQMkv52Bg
td9LF8Pp4dhz8coW/DWBdBgRkM6+FGbHzCqvrdbm9nE
-> ssh-ed25519 xNtnoA 2Gvn1fR8ufGGBkl8u8WdIb1Lo/UxkKkUXwEzmKK/VSU
s/4U7eALr0f8Yqk5SN5O2z0eZz8PslFZ7ikbmngvSX8
-> ssh-ed25519 aY2AXA e6nGnQE0/UTqUX12blfWq4CpNe/QkEMnztWQHyHuxjc
OdUQMd5+x/x6NAs0nbtr9pM7q+nF8ZybZBJD7mNNcg0
-> ssh-ed25519 AQhf1g qvmETHVucAF76fq+UkRyoK0Kw+nYVu18jn12ragg1T0
XEhKDlikdstmSSZOKs1Zhkm2XhtW19F4k+H+cKIvjzM
-> ssh-ed25519 mOmPfg Qb/Yfy6jl10V0wTr/61/GbbYhkBciOx1ryYvzyTBpRo
kHMnWdDA02C7rAyJ11JMbmJaCjKkj1fBXZqJdGES+IY
-> ssh-ed25519 YJiRbw m58K4+oJ8ike/v8bhpGveQF6UxEBTuqjiM5UpRZUpV8
Cq1BpdnViOmd0JwdZf2gBB2vpcafm54FIaZWOhviP6s
-> ssh-ed25519 Nl/5yA tNzmgsTG7d5xRhX6j5iwEnxtLYz8gJQmMWzBSOqaxwQ
WuYPgCAxhsHvXKty0dncAl9ejqF1b9ZHSFqtmOEDQAU
-> ssh-ed25519 GdLgCQ gyuGdMzsShKl1TPOt6IrJYJ383CCK33+BXo3sELKvkc
m02EYJ47DcH5wK+eDcvs5yyTwsH6cT8rWbf1BoGemQ8
-> ssh-ed25519 tOH/HQ EpuIe55eq9FvBnygY1gn9o+MSU0AjxDHeIPwqGWAkDQ
pypq4SL/0311MvwkilKPAI9Ho1gvOjsohnDwe4pDKPQ
-> ssh-ed25519 FpzvfQ EY3I/fZxRn9qxZz5KmXjf5MDfXt9lhMmsj9ZW3nTdBE
ktSKonkZwKcC7zvkddr8B0bg4M4pkeuukKOuZz9YauU
-> ssh-ed25519 2UotMw P+I74r2Z6TKpTehCrstz8bvG2sWPDmcKLYOwS20Smgo
zOGqtVouwCOiMi/D+XjitWtQGdRrfrJw3cYU5v30Kb4
-> ssh-ed25519 kdPvzQ JdHJ0HiJUO7h+fx86QJQvlwoLWjr1SWLll+sBHfmmic
tQQ+MEKgwYl/Ms76B1cPl8AA2HlrXqbF4cLmBdHBbck
-> ssh-ed25519 onmXpg KXbZQecpbZQLB/4slZl3hqOXldgyqHADIy6OkdnHbTA
GltoWSI3qht8w6Bb90K27qJdW/fB5GflCLQlnu9ffkc
-> ssh-ed25519 CnhD0g wpoGeyLxBfk8tJkJSwWnFXhFLXrU4ezFaxWGVrnPIgI
RVAJ8njeIBbQtHNM0hslbD8ft9VuRlqcSyyKRN9cxjA
-> ssh-ed25519 4ep2UA Ydu1eNy1WiHw8bRwMQc29UsN6l0Kvs0MknyeNnDx4z0
RjvAAe5nOkCHrZXn0u94NA7jWcNC9xAu9aly9tQC0q4
--- ZVJux6CJ52ghYaSl16+PH5uUQqk0T+VkMVDOHO7HKMI
¸ÐŽÕ%T–7]õ3¢¼D¼î·V!#NUžî~¸2·Ãc1duÁ6,¾Ÿ¿QDDDŸ{ß'êÉÕlý¯ïñx÷%JÏ +kõyiÝa
-> ssh-ed25519 8UnW5Q mCwgPdwCWzi8QXME7vc1nncnCjUdhXJfHgz5CI2ppWI
rnBpIQ9WYgFs65Rh4eMICoesrg76o46AjmtY9fTbCl4
-> ssh-ed25519 UFfTmg EW1P9WRcH6esoNH098Vj4E+udGzKWYw+HkxaHcRpF3M
t3AsT1kOCeDbpYotmYAFQA5/k0NA9KJ+R1DRnbLX63c
-> ssh-ed25519 xNtnoA shOVkNxHyvKcLRYAAIW1C6UPAGiwxZl0Y7i73DkA3j0
MgFo9Gy+24rWvIkqQKDogakf4q1nE+MTdmXg2nYMNR0
-> ssh-ed25519 aY2AXA dXi7BYpOVSGbbxI5KOQkElq0GQj3vmbU8AA9rzqGIE0
GlpXrUk11XX6zirXrTK3uIhLBwlTKwn4/cyCWjPBVTE
-> ssh-ed25519 AQhf1g qV41Qx3onxW0Z91xCiUwse51OoEU7tBAi9t6MrwF8Fw
rFXGO8JG1HE916LMS8xMLACVqHuQzP/SAgM5Ngi9tLQ
-> ssh-ed25519 r/3ipA u1cHvRRt6JrScsmCY6PtybjU80VuU7NuRwtBW+Omc28
ztXCVbWHTMBY/x6dDdSSPQmTWfLCGNG7xkYBtupKRQ0
-> ssh-ed25519 mOmPfg jCT547k33Dxx8nTS/WVe+Peo1eViKVSjLumucXempBc
X2SCtafedtleUTQoYtKN/85uUnWS3kuY9Bb90xHXXBM
-> ssh-ed25519 YJiRbw j16MQ20JnMktKiREpNRx5qed8jXXKCAq+8b5AvkW0gM
KovMsW55OvGyjSJuAN5M0Ga7ln0TOQoQEQKvCkODJJs
-> ssh-ed25519 Nl/5yA oYGAT0greb0CHjptVKt1vPBhBX1KXsJAVlU4WoV0vjo
SI4ZXY4pHqYEn2AKEX7MpcYT71LsVUGiZQd0LmwGywY
-> ssh-ed25519 GdLgCQ rEB3gHJ+MovVDQsQd3X4pGI03itwoUGeHg7aCQ9oUms
mAVXvwQqslqP4sm7uG9LXfNvD0XtnaB5W37esGyRsgU
-> ssh-ed25519 tOH/HQ XPExYlY9j8DKCZwviAAgSvJ2+xpx3lUBsktfMPwo8U4
v2PV6wtTTQINJ2XfCcA/0OpNkOHr4AER3lG73CJL7J8
-> ssh-ed25519 FpzvfQ RRpPZ5GIdzvRimAXe1ybhxs+lV+SSigyyvEn3qmkOUg
z7QV/M3zO3tnOO3XiabL62w7Uphs9OxARpGbND1tm1I
-> ssh-ed25519 2UotMw JfTnR9wed+1B9Hung4FdV3Zvx8eQ+lrweFiFrhX8B2g
k2KYxpsSoTBaHuXCCl5fBgn/jyi4KDKvg2QShU0Awpc
-> ssh-ed25519 kdPvzQ GrUGPXTVNTMafGGfn2xA5pTIBEnEfSKmDtQ+W/QYpUU
eDNGzwGWhnZ2kLXzDLVWJNvl6F6vZBTFZ16zrh87bxY
-> ssh-ed25519 onmXpg LiArSCT2VCCbEE02Q9n6fsWP1VtYL7OcahnM7CJyywU
LUKTMk2IAFpg7mPpHjBBw8NbpbgpDGnH9FCvjuF9qBw
-> ssh-ed25519 CnhD0g H2M/9h954AS4ROeJFDfOpwU2DsACwQ/20OdGVaeGxxE
tSMsZUT079DdPhW1yvFbk4DBlNd6Lvhk4SAarFjYfpY
-> ssh-ed25519 4ep2UA /FZ8+q7M90Iug7/qUkpmyL3uhUz2WTBSoc2O719JhBs
y0dpaERxrnygXbDhp6v/rIZsoKx7kv/aQI667jt+/t8
--- K04yLmYsJIXBing2v+tijM5K1vOLQy0hWu7TItk3xCM
‡t Hëw’÷ìgn$c\ÑØG >T¤b Ã,z¿ì|~u§Dhs±KP©íÜ0c‹ªŒ–÷ÙþÔ{™­w`ZªPODmüxOägƒ+FäCH
Binary file not shown.
Binary file not shown.
+38 -38
View File
@@ -1,39 +1,39 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg Mee69P2bZ8khxGigG1Vl7emFQo/VzNHWtFIhDWGseCA
VLqtbTpir8TdVMxPeEx087c3joM84Mt8A+UTJxsRzp8
-> ssh-ed25519 8UnW5Q eAb4LVWqqgoIyQKoC78/ZnZx8aj5HH0ti9rO5B+UA1s
HVjKBLYj66fyfeq7wMNEZl61Lx2l3/d3/2+1sv9yLCc
-> ssh-ed25519 UFfTmg +xgy7TGSaxi5djSwYavqocqGdYpkmivs3JmE6MqsQSA
6Mn3jdSQPap//l6mAS9NBmvNQPmLPb+SbQtlWvwN3mI
-> ssh-ed25519 KbVVUw FfuBVEGAjQUdvkUKzktLOt3uQjsMyoVFTTrQprtpVSs
aolel9YqAYvFuQqe21l0Argp3KUPrlhxBjIn8KjGHq8
-> ssh-ed25519 xNtnoA kn7ZO/8ODnFJU6QazOVvOiwYWJYU+t1t9JQa9Nsifw0
0DBsts1m+FeyVtO4ygSZnphMj0o758wDFiX3DKnHVH0
-> ssh-ed25519 aY2AXA vuMeVWDvHPc13tNyDJq1IQnVXEgmWkGpj5JMMQcyljU
6ZWisLYylYryvYq062ve3YgboX5Zpb4VbJw1kiHXbi0
-> ssh-ed25519 AQhf1g kYsUrTF8sTTcTCz1Z3f2zWdp3FmFgaF71rY/uDxxDWw
4GQKIVIS/Qdi8PhH+RjHDQAQIJs68a8o/txGaSA1EEI
-> ssh-ed25519 mOmPfg qyNnz4x8l0RyVYZ1I+Xby6H4qpghX2rIC+OC2+q0AWY
he0iGH843fs+93tsMF/mU/oDMjxe8os6NxI7jdBrvGc
-> ssh-ed25519 YJiRbw TvHApjsVbTUUD+Xxdbb2OZXkpN8T1S7SFgR66GLr3lc
73dXSGSh4Tonajg/Ux+TQo/CSdWm8NfoWpmuCT1nQ4A
-> ssh-ed25519 Nl/5yA K3Qwv+HpwSzrt3L0wGOm8UnLST22gYtkNcmva1i1sAY
HFTnVYDdyFaCeuxadpRhRhvVzlJf0QJkzTSH6OBx3V4
-> ssh-ed25519 GdLgCQ K+6xSzErhvyDiEIWSH0LwCMRymyRp8qxxL6KZg1mtyk
daIC/jUY8etaJzKTk3ZyGaGFzmc1alo7avDtHkdAQ78
-> ssh-ed25519 tOH/HQ 8ovAhEqzIreGrBlOmwxH1s2W/ZJNk5alJWbP5XagF0A
j39E5SWyMGOtT/K2IKUJ1UNkcUhghdhtUXtoYiEssho
-> ssh-ed25519 FpzvfQ uxdXTR4oXg/IzujvLmRceFzGHmTp6OjF0zjLboqA5iw
JH3aYGksptbasR5695/5unh4k2NFNMPwUTEAwKlTnSs
-> ssh-ed25519 2UotMw 7ZaLT8Uh18XMPUKBk6KXqYpndQR0/YiwGjuw9YcyaXY
fVRD9iLC9Cof5Tw2luQLMPiCiqqhs7w9lsQqL9puxVs
-> ssh-ed25519 kdPvzQ q1O+1RqZmV1W/28K/JlkUzs+G5brmi59gwS6CRPkN10
KKiNVbg0FDiKdsV1HQ7BHdgNU52y/Qhnu87O9D0lntM
-> ssh-ed25519 onmXpg BUKYeyaXQjpVw6L/wiY7OuJMfyhFnW4S98nNofqVsXo
dMWTebeJi5azBo/RInB/XSF8BNElBlK0gH7qLBNmI6s
-> ssh-ed25519 CnhD0g 7cWyBDXml7SMfBaDb4MKMgrdgrzl38EGZi6ZGX8msS4
CI1eUlcgo60xIc5e2CIlTsWDWG4GINmvXcDCd4MoMnE
-> ssh-ed25519 4ep2UA i7ev8lkp+O9nNHb8f06QWNjM71UUWQMZVbKHXZLt4mo
BwZ9ouzTIm45LR+O7KySmsCbUIxwcDkRawBMyjlT0do
--- v8KgdgIDf+1iLNG08ZPZx9A0dz7JGbZrdpBW+lQaS6w
Œ#O5°ÚË\¼KÏ´m~•˜§>[ŒÂsp±×ÊT™ßÏd»EOOԦюMR¶CöÖ×yá¹6¢G€ÀÏ~¾^^yoyD«+µÓ[•Ë+ô␍E“™p†Ý!¶‹WnÆyœV»7™
-> ssh-ed25519 8UnW5Q AvtCfDMZZ51gAeWxQlfxp+AEZDM/54vKlH96kU+sgn8
IE9cWU99bJ8RJd/q1NCLwvjBozHsKNVLLxj4vX+f1nI
-> ssh-ed25519 UFfTmg jN40d8++rmq4aJ2MY7Mb2zrj4gWV67GqHjv29QRNxjs
jJJx3pTDSQ/0QescNSbnWmI4aJx/mvqXg7YJeYY384o
-> ssh-ed25519 xNtnoA MJrW1Ti4mAhq3b490wLp61PTe4IhEPokfeMxSek/7QY
AdgEkxhMRWcswzmLFzbbIKPW4a40Vlrct+ivvNGYhW0
-> ssh-ed25519 aY2AXA 5is/WyAjC4/oqlDIxAwq/Eaw6ZV9NLtQGFnBqWBm+mo
gadDw+GbSmtYxI7DZUIWOLaH2i67eaM1m1uJakDTg8o
-> ssh-ed25519 AQhf1g SSk081gv31ND5QM1V0KzlFQw05Hfx0UJ2EosCAzeS0k
wpefMRyZgwWcaP5mZBPVnL3MZ2k+L5a+ChLqRGCa/4g
-> ssh-ed25519 r/3ipA 5FoRCnYDLxjERHPTR+vY+2Y9ewOBZoXrvy+N6wnAS3Y
7Z+5IwEeM1iRlr/cUWt+sfv1QEOJmkvEG91xq1LmajA
-> ssh-ed25519 mOmPfg YMuWe/N8ZOrUdSnu2blap3HP+q1XJtVaK5pSUG44RBE
bvvZrMAGJ4hj83Kl6MYA5IXRgJidJGpYHVfqN1w3zBk
-> ssh-ed25519 YJiRbw fOo8kP29gbO6OI6Zq2YBvcX07Wjrm0qlZv+AS7KLcVI
7CCA1UgDtjmQi4L58TG2qVxxiDuxFm70LgOFpG18d/4
-> ssh-ed25519 Nl/5yA MZl/ydcywiEBzU2P396An7TVnTdtclNwsoItiSiUNRQ
upyVL3DUnmIE61NWVu0+gqaHNfmWIToOwJzLZOCsyo4
-> ssh-ed25519 GdLgCQ dva4KwyCz99k3Ah8WibFI2ez+hUdK6wFzMLS/bQJdAI
k5rNjS1IszxzKy3t8FFNoclyYRpkaWRgyzP5D/RAdc8
-> ssh-ed25519 tOH/HQ AL1zBCwXkMLNQWiD8eoGbTJKI6+ja22p5NH/dHitgFU
qJPaXsp4k5g/D0/wmcHtAAqqCeiFDpRhftXWAhxzr5o
-> ssh-ed25519 FpzvfQ 4IOwoeQE5od8jFEqWziCF2mzqCLoxOEdUM6sFOp8Zjw
Ea5bSCfza6i4cd8nL5p7tcoYyHC0B0V9lyuBM/PR3LI
-> ssh-ed25519 2UotMw 942H9PoyZwAfevk1yVlTLSUTQh17U/UjGfBcbHO0EEw
UMLFxLUf1Xv31JCyri1YcYKezAy9p/C5gc3EJMlSIvM
-> ssh-ed25519 kdPvzQ rYlwUzY8uJIe87A/x50Al3WMnPxnvxCOEZiYOvhPwF0
WmP5r+aWqNkmO2PQwLPdxIKIUr2BYzsU0I8U+kwhF+g
-> ssh-ed25519 onmXpg mIhPpC8xYbbf6DK0Upag73K7k+YfCE1S+ZgCfvu1fik
XgJ655mD/y8bWwrhjdMNH/v0J9DWJQiXVBgGTsSRr+8
-> ssh-ed25519 CnhD0g UvRupvnJ0zqie6y891Au6EBw+1YZ1Mc3rYWOOBZH5Ho
WMBj6BdYtIxgzSCVbqRXBIbFQhmXCPJMyLxG8OgZXAQ
-> ssh-ed25519 4ep2UA hyu7qF9mof2QhPfgMm2Xe/xsfJVQV03UK67b05ODeRw
tb54Ihc54Yeew4pRp0Y3aKAy9W7bpw++VeT9trHq4oQ
--- XXv9DYSwOiHB+rSASovGULreR0ZUVPr4MYYFrH9SnSw
7µ¾ø—Ó½{O¼™y —Ì?Ma§ß³2é‰yà£à‰§8¸E5¶jdµÀ ‚ŸBûn ôgþÞgb,NئH|
cA,<»XFãò(Ke7þ␍Ný
½ÁP‹Ò{&HK$
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg FT8+PzbWYp1G2XqxQh/wIV9cAUxZrLIdBZ2sMC+9szk
6TnThj3i7+q+JaJGgX9gtSOyLIqXwfqJhV7FXnffMFA
-> ssh-ed25519 8UnW5Q PgKl4RxTUiazuCkN8RcRKCO1+XyIQzfKz4SygoFojwU
O21D2VTrhKcz3H9yQ6v3HMg3yu6Oml6elssq4EZLOJY
-> ssh-ed25519 UFfTmg 64GTWzZguBnlbrkI37vPO4VHGq38ewzGJbf41fmFs20
SgbbJCitU6YS7xhyF5jvTRKgpd8JjQCn5goCDqGmP2o
-> ssh-ed25519 KbVVUw DWHG10kp4J0uQaU2UZLORMBrOkXXWL8hl9LmOQFHvVI
+5aIgcoPshO0m0Kkt15TmKOrw9fmYjA/CQBW78j5Rmo
-> ssh-ed25519 xNtnoA zNpZX9ymrcO0W6FfXgmQz9VcEa97s54DYdsb3ThhWwc
7F+/fHUNOAyFjBBEGfep9bSBQsPWehglpFoSniEYRJA
-> ssh-ed25519 aY2AXA qZFD9Sn7wSgZCEJ/bqdh8Pr1Bcalf0NU99Tq8aFGXB4
z9Q08OxS0sgPYMYBwJa1H8KMj3EU2nbyp3fB6+j6icM
-> ssh-ed25519 AQhf1g B4W2oj6J9B9ktt/QchkT7kQgRWOxHfEqFDyIka7ttDo
zAEaVCYNT+Ldk+2OMElMqN0WXCTnSgeV45f5QTocIps
-> ssh-ed25519 mOmPfg rGWRrIHZ7Hzys2X8hlSHis6eoH6bJWZYq2BR94gYexo
0kXY8xNmqshw4swmsIigJ3hUihlkoj8SSsLGdNB6Nbc
-> ssh-ed25519 YJiRbw RB2Ocz6kqAY7daf/cpHazgwuqK4WL7obmN1p24X/h1k
xV9OqnHeDJnLgmOYjbPDchp4uVlV05BwT/1eTBmXyMw
-> ssh-ed25519 Nl/5yA QqqZ3YRVdWt0bPCCTdtYipR8/c+YEx/J1Bdy2EdfMWg
leURB55yT6GyWO965kmBWeVwzGnHaPyGv88pcO7Yuq0
-> ssh-ed25519 GdLgCQ r1G2p2VwiSanA5qjASjCTfunoZ+y0UhNIAxm6Z8N/E4
tIku23bpxx0SG9iIh2h6UCWDQAq85Gj7YlMlk0Jdb2Y
-> ssh-ed25519 tOH/HQ IJee8JIPvGwIT9c7deikAyxAd8rvq4s67B3an9htvh0
VvGG/yilaEe8+bOqc72+rY87wv6F3Ss2b+RF5aOCOD8
-> ssh-ed25519 FpzvfQ S6qhDcpBEdrk7ydvID0iwmoY8CBtjP6tUhax/O8ORl4
wqkt0wEv3lXw8bpF/oMmCD7O1S2OXJJo3Y2xKhLgeD4
-> ssh-ed25519 2UotMw AVmF4uIN2reJA2pPg1KZT84pbnG3Y5laZalJ7sdD6GY
36Pdc0awqnlzZ13p19yqDnnikRV4NUaJ5LEMTzYzB6g
-> ssh-ed25519 kdPvzQ UvJj47WTQTM9VEzIdX+O7s7nMfO8TLAn3fTCYQl80mE
njyOgBl8LsaRKRRNeumQbYRHnUtT8SWtCT/RLoQ0ioo
-> ssh-ed25519 onmXpg jeup0qoEJhTYKJBNQkNf6frrP14xf4NeSWk2b3L0wUg
9HvGi1r/Wm2YRCpl+Bvp2t2L9q3ci/Mbg0N+5LgIz98
-> ssh-ed25519 CnhD0g Q+Q9n6e70v2Q+4UWPznvh0dot/hjHGnIPDOLIDsNDws
KnqhFsNIArU4JeK0Vqou4zewrO+ul0uJE6oVvTapaZg
-> ssh-ed25519 4ep2UA 4wTgnS1jJZzww5ktip5vzsDEA9ERi8v9l1RqjrPB7x4
t70NW6zcVLV2UXdacJ/tqxvEMS9MrumEKoy+F+UvnHE
--- 4WejiRlNCP3hQqi2+8WD53mX/lptc0N4AbhBkw7mt5o
—"åUÑMÄ„2Ç£%°ö×)»v oŸCo|>­šÐa†À†¡‹6¥äE˜ùnOV¬©HÖäßD6i .†C¦Ýs0sÂj]Ü ªÛ¿
-> ssh-ed25519 8UnW5Q zKwZaiVwcb3twBRyisICah2+RLb5NUStt0h3Ch7t/Tw
9O3yKkWIOiJy6ese/ytnDRvyNbytQKDXR7HSZLNWNjY
-> ssh-ed25519 UFfTmg erGwb0GnZV12BoEa1JYiYevuf3Uq0Tv73ObbDRvv+Tw
a0YD87ft8y3ZTYWw38GSwbmIUHe3HW6FuaGksF5pi3I
-> ssh-ed25519 xNtnoA KajAZC29v2JqZY+OPkeHpKv0biPJLDgnT2CN//WnjhM
GJdu44xGefwsI0g99wuwTmWGVQD8uwIcyINRCHMb6I4
-> ssh-ed25519 aY2AXA aQk0/BCQyyPCZCuaI8NiyjuDZBIRB+nAWZBKs+3Z8Wk
KSZxNCGThfNjoSZh9hIRjP9o5cQ1FjZP4G7GuLbBZn8
-> ssh-ed25519 AQhf1g 6usKpTxVUNIT92ugQl7Z8LFPFPStTgoPhEGdyXjmhwQ
QqGWtkb4Bom4sKMrV347/jf6YptbQIm78zzNwxZN1UU
-> ssh-ed25519 r/3ipA M77+oa8Kbvt6eGbAaq6/0oG9ggXSbYZeBOkced0F5zg
hkEFOfMRY4iIZ31X8ty11lGkouOxHm2r/tLwPRfQ050
-> ssh-ed25519 mOmPfg RohXdUXobV/fC3JYQ9IuVvDqdfnS2xodARJYmT1Ch3A
VdDNZFmvud6FGSX/I1c4iKg+6uhWgslPKAk0Uf5Vhds
-> ssh-ed25519 YJiRbw /xSl3swqNc5q0hsY+hO4nSk6PzPk9lRV7Hni/yNX4WE
GXD3wBcBf6k1mjr14vIP58bjRWOnnVBxm1zunv7SVo0
-> ssh-ed25519 Nl/5yA BAgdJDYBnUE0/8dR32V5D/ONiwLufRL9/9CY0YgpW1U
aUgdT4MPYEAVjSuWm2lqr+r3xwlX35UyrbYGh5v5C6s
-> ssh-ed25519 GdLgCQ fOAibyd4PSLdTsOM/ntG3/Jcz6TZFTlGk1oO9MLQWXc
HNyui1pe4ZcrjHafzZtCad6Nc3MbzFu8YSMS6qae+mo
-> ssh-ed25519 tOH/HQ oE4PbISWQe/kW2DxIkwqJKhKp/SNNa2OVje5iX21RA0
lx0r//kRfV5df3+5cApTmpE9zxFjKoNBSguhoeHqgjQ
-> ssh-ed25519 FpzvfQ L5a5UzaBYkaDLRKKu3z/9tou8SFmzL7615l8Ejyb23w
Z9G1pnjjBk7H+XoNGNiBUtsZVQYiXe6/crYjUb4LIFM
-> ssh-ed25519 2UotMw sw24R6i1jaa2t2NcPsXxeJz1FSNGY8dpTJQBPM4Y60M
t+fZa71iWWxAqfusahrNV/Gx4RvlklnmZHgz4VsxGRk
-> ssh-ed25519 kdPvzQ BevwDGBlvPar9elbiiFK5gnbF1qjXG4lsTSaOHdZwA4
DBYjAo0HLsF7GzGPAw5wGate8QIpFQ2F/FNEITQqOrk
-> ssh-ed25519 onmXpg XFXmGNe6X+JbLS6f26x8OEooWGCsSKdPXfNwFoSDknE
zEKhchCyQN+rMBGXpnwMeOoRLDPiQSRQbHeG3V9ifLE
-> ssh-ed25519 CnhD0g Cua/knFngt15egS+o7s848bfy9YM0/fFijrdkrreWi4
tSj9HuyLRTiLPFlkNUHQrmY2scEBQvzYIXUuuUuYyjc
-> ssh-ed25519 4ep2UA lZYn4isPidCnEz33aBI0Q+oONJqFy+a63slmhw2rBlo
i0zEbwLS3kXVoqfMpdnti0UIn5pDEd7OJjX1cA2idWs
--- H8Qm4uuJHlwWSBopEIN+ZUr0hZ5RndYYO2jQWAIDW4Q
‘g¡CèæPÖ•ê²¢dW\@Mïs¨×þ‡[‚Á_‹ü±®¶ÁNÇžBÜïo§Í,0ƒt…d8Þ"Ÿ“Ã#¥ŽET¯‡h=GTOh+Mú
Binary file not shown.
Binary file not shown.
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg whvk8HVYi639QPcR+0keIqsiiKQOTZYx7chqIA6itVA
ofWFgGafX/qrEbIWhq+Nj3QmXSggoHM4jjoKw0qQ9wc
-> ssh-ed25519 8UnW5Q u0ku0vlGo3PnDRG+WH1jim+X4WAcvHupx0LmtYiOWW8
v2y8uAYt15OQRYJcNwabugVInSPluuECKVLuzT/Ulbk
-> ssh-ed25519 UFfTmg jRxo/hK+Pf6TXktwkWyhKvTRhJL8yu/aUtQE2tTtkSs
smZO57lraFgHrzITmMrX2YN+zUPmPBzMR7DTokz7vF0
-> ssh-ed25519 KbVVUw CWyZ23afjLH+gYTd65bbFn8WsANQ9aTP+yzLTB+kfXQ
3DwNcjOK1RN+3h11F5EW+vuQ5XWFi3YWCRH/cCk07ME
-> ssh-ed25519 xNtnoA fVijhVsClnRApihRPJIXy8opdauQqn+U91BpOzFXs0c
p43mj62qt3UwZIJ3sEca7KOyVLm6Cf9pESPypynDisc
-> ssh-ed25519 aY2AXA 54bAi78JemUIoQc/Pb/8LAsJxbFpFHHIN1UcntdyXCg
cq0NBRonzLdQdFLPLUcjvx4Il1UWVLnFsICBCqevlMQ
-> ssh-ed25519 AQhf1g c9N1Qdzcy69F/YIELCkLL7N+bhlrrayTaVnYUCfg9Ug
geeeJijhKWMWnFw9SM1KzXobiIRSa9KlUHALZZ96U7U
-> ssh-ed25519 mOmPfg LZx58dG8J26Wuo170v9wAwRU4CwDeE1zFdTriT9vakg
DHuw7aQRfZMlSB9A0i+Ky1Edk7PXBBcPaAg8y6AbmG0
-> ssh-ed25519 YJiRbw mM+A4CrVmyP16e+LlVIBxXEs9c34ulR3sGN2uzVL5Q4
j0csX74W7AG2icm+3tIA4jedXOFEt/OlBhFYpuY8a4o
-> ssh-ed25519 Nl/5yA erYJzDKqw+UTMMnBJGPw8jyz4yXUBV3y9JiQbgmDUkM
EaTzI4aqX2X9uEfn2RPIQb+m9aTr+gW2rkPuEgmDEA0
-> ssh-ed25519 GdLgCQ +wsQawmcu8rGdV8UDDCKKDIWY3L9EZ5Fwfmbtedz1BU
dDesLgik+S47jKjEe+UDYiMQfTgTQpcdSwnudMvyaJ0
-> ssh-ed25519 tOH/HQ UY3eAd44x9k5wNCPjX9YIp6aat8FT/UJRExONGvPnEg
0eZw751dXjs+BCmkQijmusvRy1ustwuX6MfIutFtu+4
-> ssh-ed25519 FpzvfQ kLixy4M/wruC/wZh67BhRnomKyV8ui8VoYtTzwjFr0c
+onxi4oeyZSfw7vj2LARTy9Se+BEg0PyK0Ts7cx294k
-> ssh-ed25519 2UotMw DgMN2c+WcPSpjbJ/NOTtkBJUywVGqBOfHr7lM9AKtEs
+7+P2Odquk8CwBrpcjtJGGHCIWMGd3JO/coRDwn4ZNc
-> ssh-ed25519 kdPvzQ ZckKwL+D3JGoXz/XG4LVSFs5+esEQ4sBQn9cvGR1gCI
l1psNLjdEeCKhBI6TBEqHbroyQuT52szY8leXYIdxqo
-> ssh-ed25519 onmXpg uJ7DNclFa7PrStOsVOPS0tDLRyGHz6VQIms1eUMGVR0
NLKFC+Q4YAongfCoVCFsdm8J+Tg1iFtG7q07VJZVX48
-> ssh-ed25519 CnhD0g waKnwNZsusul3ApZwQAWe7G2Nnn18xnlCo4gzDh85ig
qSwoGa5SEQ6hEDDusUTiXDbbrW7MYWLNH1LF2bCo9TQ
-> ssh-ed25519 4ep2UA XJL0990Wn/KVL9gtbvklvPrC6WfjXpzcS+5HLdUe0F0
o8Om0BXgLFRqFGGZxKYiYiVWndb/FB2W4HmMtkCXLqo
--- e1pf5cHwhg79dMr7isV1uaWHdciGO4Tf4Jc3fsxgmqs
®␍ƶ òobeZ/ˆÈ˜¥¶9␍Ëý†…—}¦t,Ô%îÄlìœÅrÅ(ÚŸHé°[ÄB³µ1C;[ɦ‰žDËL‚$V¥l|…Ø
-> ssh-ed25519 8UnW5Q Z1Zt3ObMDbq7suhJb1k/O9dgrQN95vTIDu2STbO71g4
UiyIVoagk70mtct1YxFQtUCHcGbfYhtA1QDUtfFz+eQ
-> ssh-ed25519 UFfTmg IsYLw4pCTs1Xkels8aGAGSc6Lqx5Y8mWBpervFWsKUA
eBFYqndg81YgePY0yEuKWDCD9LTnOxLevT7iy6m6Nfo
-> ssh-ed25519 xNtnoA H5M7J8lYq8r5GuNNjx+1QHCtiTNw9SSWdWcpmRlTUyQ
4N/qiG/TZoWIn2KuZwlrqxt27wB7HGtxJPxHRzeRXo4
-> ssh-ed25519 aY2AXA wN6zKGGRfj9Uyib2+94wRnqzkltJbjn6LyOjnJGMXEk
Rx5FQte2kyo1m05YMupG2LA6Ddzp0kAVFkoB2tpgV0w
-> ssh-ed25519 AQhf1g ocOb67dklB9G6Pi0icJ6OuB0nvMsb3gyvSdkTulqbUI
PEjigA1SVW19c/yyWxCNrRbxWNAowcQYbw2z9busLIY
-> ssh-ed25519 r/3ipA vFM4wk+L8Wv04+Rry0brtnSLz/ChaNYup4VI1Fm/kmc
Du849WnNg6E/CQ+ui4+9vFAZJ47jJ0L2o/T2Sv0j/UY
-> ssh-ed25519 mOmPfg NrTgNtkHKFT+ZPmW4ga8DGrJk7tiDF8Lel3By8uRRic
y39BsMv6CAjVU0EYdfMA9Z+Sc0dFG89Toz/EBvFLMYE
-> ssh-ed25519 YJiRbw k4IxoHzHTll31zEQldtYFJLAZcoACKulR1L/ch9lRRw
/EPni0kgRovc2cESxbAV9c8hCLXzxBqr5S8Lt4WXrqU
-> ssh-ed25519 Nl/5yA uC1gIjNtYyoJ1bsemEJRFnBV7MAAVrV5beyDpIJj5nE
K+n4T8IGULklGYuoCr0x3Q4sN1NZ3YwAyEORG1Y0YiI
-> ssh-ed25519 GdLgCQ dljs/yoxh5IV8S1wjksMF3f3+xw3Tsqv3ZPj459KWjo
SZclrcYwhgwyrG6Sg4iHjN+PbKvet3B0AcaWFlMvdpA
-> ssh-ed25519 tOH/HQ 9zHh+cM1vXMRx3zZwfOCkyQ2eBobH50JcWIO5UmoDB0
lEA2DAb0UuiRknrKfmKjEpHnuWpSYEWw5Qk0s1JB3bY
-> ssh-ed25519 FpzvfQ WxXIAYo3SVayrHVhiIS0enua5l+1LHuEYLI2ZJcrVkE
5siODJVz1gQxoZgeUfl25Koqt4ilTYIYqxOGGwyh3Gk
-> ssh-ed25519 2UotMw 7v7u40Gn57E1M/VNNTpgFhg7nsa0JmcZvOBjJ+/Y1mc
yT1hqZue6sN65PnKgRr/upxXQlloD5s1WS/sosBKH6k
-> ssh-ed25519 kdPvzQ Ey8yhg4MocBop8aKb9Y5Vulz26NleTREH0O9ga8kgmw
eGr2QQasypgk26uQVwUkgjHGjgYVtJfjb80y9fht3qo
-> ssh-ed25519 onmXpg Gk8NZVb+7qaAdps/C5u1CG+2DIFtHFDhAu+m/43Gd2Y
A3WMc+zyVq2ra80T8SeXWxe+eeN/SmdicoOGQJaohDQ
-> ssh-ed25519 CnhD0g MR+oV7rqxoBN3Xkoo4FJeMpMamkbU8kAbIivnzQDDlY
djQB7mKq8raqp2Yy/N8s1fcoQ4Xi7KoWgn0axihsPm8
-> ssh-ed25519 4ep2UA Cxu6m1Fu9gmC6Y14Yo6nebc2tUyo6zc2RRrskhoavE8
g56/R04ow0jremNusFjtkWahskNc4pfynVKG+C4WYIY
--- yn/4D5+C+8iqvDcMNFOrozE6KeEjPq35cMW468nMjzk
ôvœíJëiÀ~ö³Ä*, i¹þ®‡¸Qzyµ,Ncæ­BÔºœ•ìk—~$ᤈž2¼¤/[¹®Tª‰¥¢,þCchÁ
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg 4rubYX2N8plEhgEVszXOutIHPKZR+eQPHAkr5nXEWFo
G4neow1D6lLIkTrx+ccq4Z1nyZgSIgUtlb1wZ3SbVYw
-> ssh-ed25519 8UnW5Q jIXXbl3YNXdsJbSTUvM4p4qlNnQ8Asp7tZ3klcZV4lw
00k1oQ4AWGQ0arsGcuZYbQ3F8yRXJN1Ay6RwVN1eihk
-> ssh-ed25519 UFfTmg cs2FP8tR0wK9AdFI1mnMc0B7qrCYE5JEVi1VEj+ufEA
U3zPZxBCPiNksQ+q0MWWANTgzmLmscj5tmGj0IF3TVY
-> ssh-ed25519 KbVVUw H8UZ3gkVdSsLN87NwqrOpIG6sVujrPswkDsjaLjJamw
JxS2otXY7zeYoGjqCGleE9V9mfgsKQCqnCTRBxoAWvM
-> ssh-ed25519 xNtnoA ExNmgY2PpIUAu+Z5CmRJ05vs12cLMGG6hUggbBefz1A
+/j9p+eF829pCHDMzPG8RjjpACe5WZMFaXfX1kr5m64
-> ssh-ed25519 aY2AXA RR67pXhqkXPdd/lmeNAkbaabYY14CDn/owXqFGI2ATo
/gi50YHg8l8GUsaXzBXlws1pMrj+DFOwbODyFeHKY2A
-> ssh-ed25519 AQhf1g lvmxLx+q9dgMJWtUqZGiZYEVV+KP6X3N8RdvljSkO38
ds+oivil+c1kGPXYFLJrHRpAxjrYEVlo7DFQa8IUjd8
-> ssh-ed25519 mOmPfg b7t0jYHFvt7T+eV9hS9aoO7Wua7XMjkFbaTz+5I1HyQ
eaaaMX/bDszieKcHemk+2tW8pQEgo1VtmwloFz+DrZk
-> ssh-ed25519 YJiRbw t6qPGZI+7g/qW21haqBhCqsiC2mLtMPs+9A93fdiZT8
j3pZO9rP+wasPlfMz0Og/ApYbdNrQbwD5LDhcPYUrdo
-> ssh-ed25519 Nl/5yA b15TTp3eFsOkuCETjO8+V0sJyQogK0sqZSQY6nLhaTM
aiOAoUayhcQ+EPsMYZyTUTNd0BOywwYxWeqre7Uvg2A
-> ssh-ed25519 GdLgCQ XN+zojRCG5AganOFNy05CGU17NcnHq94XqryxiGeGkY
4jzkOuEzhZEup8hcgIEOvZCwF8uybs5rJMiasqvUk7A
-> ssh-ed25519 tOH/HQ x8y0qF7cNiLwvtXGhzvzD/vgkiHOQJvAhrWiFFRB/Wc
let76nZdw/5IwnrM2Nz2qQvvCxu8O6bly/hdG4e2b4U
-> ssh-ed25519 FpzvfQ p20npi5vdMpzqQBN6zYrzAjioDuKaqlQYuUsxIQgcS4
3QudwIIhnZ5Qe3gc3kM+/Ojgy5+vm893I9clkKKNqlQ
-> ssh-ed25519 2UotMw jY5jp7L87aRhJKx5jvywgQPp6TtQdFU3JqPt73htcTk
7SNliVrYcS6j2Ye1qR7lVbiEMU0DiW6j3f1h1Vhd9io
-> ssh-ed25519 kdPvzQ /jY68QmEs0hKQcZ1x4ugi+StD1tCtUZVlCUp0CWIgQY
0ZbUzSb4ib4fgNlzqJL7sbRlhAvH4rLi+IVkPDAlSQw
-> ssh-ed25519 onmXpg br6n1R28ydO0ymoHXCCdPNFomf1Rh7qkZ6RlrW75aEo
OtNpq0AHIDxB+w3dpNHSQ6vZf/wToJR04yC8TzT4XAs
-> ssh-ed25519 CnhD0g pU0gkvHuyk+x3CPWzXoHyzWqop1GlrjvszdDmWIMVhM
tOnn4v7WY7as0mVsTprNE72vdtPcmgvOBg0817mXF6A
-> ssh-ed25519 4ep2UA 69JFTOIPD+4ehAxFshy4FzQpoRwegsHB6WQNRx0mSmU
rAjP+jOaEbedfbyFiRSuE2b8e6czzvqfWQGeUBWchgY
--- PWUznJ/BapYDil87UPCNH/FtAjYTWA4+EMFcFTZSTMU
ぞ孱2卜s?f)ノサ=C_Aウ衍稿Uハッォトpヲ
-> ssh-ed25519 8UnW5Q y9PK+VDf73/nElH7/STk9n0ru0NIGJ0qp4eQTokEKWs
8HF0hEGCfbmYfEj0gn2EWUOBo8KC9/znCo7nxW3rkeQ
-> ssh-ed25519 UFfTmg piv4fjTj3Ua1VdM82I5B8BI0jk3Qh4S29PnKs9GmokE
inY59fSHk4xAZn8xkBQQIoI7xnQW6rsRKCCnszngq34
-> ssh-ed25519 xNtnoA vNufVdYaFm+k78r+ioCcm9EWuwCF+zoH1bffrOEmJTQ
Y/NDZ01jQEJYAu9U7d5nRI9S67wj6SNz1FXNBoVzho8
-> ssh-ed25519 aY2AXA pHfVblA8IhBLMiTWmq9KT+EBv5/AP3XSQ01bT2VY+lk
kTiFQBOh2sYHx+CAHyduwVauYDOXtfPc4FrKeNZHcE8
-> ssh-ed25519 AQhf1g uWlt9FLfTmlFmVlPx3o57lVQInTRuT80YZbbwFSAVjM
3PscKZhny+pMuy+Q4C994e9o9sxsONdZCgewkuo4l3g
-> ssh-ed25519 r/3ipA ksZgnGbPwj14xBftMDA4R2o7ui1KNOVVunBrA3xwjy8
IZZX800pMneP/0SAMDiFlt2wlRqIyMW9bNm19E0uqtQ
-> ssh-ed25519 mOmPfg 6iuNsMJ5qbGog2wMnjLJ3AnQpeTK/oiKmJFU4NmpbXo
rWPbp574Zb6sU8RFXD4Sw1d6yatcW45LTMkT10FL2ZI
-> ssh-ed25519 YJiRbw MutfBuiITaQ4zs+ELUihuB1Rl7LeAICL2+c5xbr5Rj8
o0mGn86fAERZ8DQ4rSWZh1MOaPLCZ5Su27U+5XExxV0
-> ssh-ed25519 Nl/5yA NKo72CIorQwlJ3vcfjWZ7IcEWgkrxSpp81P3k2nTk3c
4/0XpBgS3C44qqU5zcWBqAzFbMl6DV8V5+xYxBiXCCk
-> ssh-ed25519 GdLgCQ jJ99c7pKMPL9jGM45fbcYRv9k2aeXKFcBidMxinmYQQ
6pA6kX5sxxQLY+IFpVnIp7ximqAsA2Ifo/d2gYTy9uk
-> ssh-ed25519 tOH/HQ o1g4ibiZdld2EzoPUYsEJKUwMciJlqvzpv4hL42WfRk
ZYi5u8ep38jxeHDKq4uCAB13wSb/oJC2+Lpyjyk4UHQ
-> ssh-ed25519 FpzvfQ YN3SyUVugq1S/4GkWtnfs6qeQ1ukpX64k1dZNFV+UBk
Yaq2dI1oBEQ228g9f3i9mFGklUbOk9s7DFDHTXZN/J0
-> ssh-ed25519 2UotMw /93PQpOj4bxRoi7Z38nioyN0IHi8Fi9ERBqnZIZ7rh0
M45TdKIss0NkVObm5T95npKzyBM7A1QcT5DORLORnFI
-> ssh-ed25519 kdPvzQ v5oxUVW0nFpWJt8NFuVubwXhQrx+SHpJ38BU2kJKqnQ
dYeaVnni5QQUg4CaNxbuNYzQsL/KPuQNgFtXk96adXc
-> ssh-ed25519 onmXpg K+8SnidvOmL3kzDCRnJdHg/RFCLcUaWJ2HrA4Awe7lA
iyYRzYexYHNYhI0mlEZyNth7LBYVW9pL67E+gxLf4Is
-> ssh-ed25519 CnhD0g inYTXGWEAMNKTpK+uj1xN6jg2xfVzO6s9j5R/bUx6D4
Sas1bzhaBLXDRkG0dvfEtXn689aLGih+NJ5IVoEAvC8
-> ssh-ed25519 4ep2UA UokZFgeEqY3/7DABaODXVpxxhjhUrBx1ZWMv4xJdYDQ
ral1UaG6TlRUVZRTYhpHknIeTrhRvS2LfZ9ET/LM6bY
--- 5KW+UYA/aip08dG72P0VeJteMlK5lW3vfrCxoMV4+yE
¯ë›« ž¦ðýÿ:¡˜Ü,ú.Nn,3îà.W3b‡%˜ê$ê
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
-----BEGIN NEBULA CERTIFICATE V2-----
MIGjoD2ABGt1bWGhBwQFCp0ACBCFBGppSlqGBGuuvKWHIIOJTGBgdlWpERTumyvb
x0i842abqoQVUOzEXjsFB0CsgiDh5M2hyejw6E2FJKlukNDuEBUWhctocJ3Zovyc
x+HwE4NAGX+FSOpGbnZ9QFYBfq1FvRqXdyFtAyXWqOkq59j3hR5QSG7E7/KAHFFS
1NJ60rKABZhTepqhACZRCeyoGfMFAA==
-----END NEBULA CERTIFICATE V2-----
Binary file not shown.
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg NYVu9aSf47nYXXNeU1rhDwstbkzm0pQJRKk9R5ZLMm0
xVciFeDQ6gfad3K1bSr3oEXPh6v6dzOxEWCfrXbBvyY
-> ssh-ed25519 8UnW5Q 85+eCqAGGA1tWzHa998eQOfocPZxwyhg40pAmAmnNxo
eIJwpBAdWz9FoD+wYc+DGUSYJKEnjsRrjyLXVFF1t8Q
-> ssh-ed25519 UFfTmg yLw2DrMr91PeLFr6J5Okq8pPk8OW9PDQ8q+dbG69QFo
CRsUSDF4v3z6Wvko2yrSxLkCqcRt4+V/9OaDLwEZCGs
-> ssh-ed25519 KbVVUw gCQNDBHD4ZvYThSMM4Vc/YQuWFZdI/InmxEOJ6UmGVs
D3CDin3g3Td2wQPjXAVWW8JJ9Ta82cl+kgU6hoPSw/k
-> ssh-ed25519 xNtnoA tThWOoELNEpFvYhqSeFD6Bd6UQfNj6QQZLlSVCvlbEs
P/17T3ZbwguJr5FNP2JRn8YFoDhDW/uB6EaKZVVIMp8
-> ssh-ed25519 aY2AXA 9QSb5rIp/89PVuTKBE0oLnDaRvoke/7tlwG1NL7I0Xs
aWLJ3htST398fd7A5y2Pow6IUVxiNZrBS+0lEQIPGLk
-> ssh-ed25519 AQhf1g LIha2OADbGBA25jV4GdOSST2kFFNWx/nXhQDyBwSrR8
zpEhxUC3EkWq2hQHnmh0t04JlbEn5cB8dFjKYtF3Tro
-> ssh-ed25519 mOmPfg i97muvfIspxC43LzSDXoVQk6cAjI10MsqC210B2f61U
gEHIUZ8Gh1iRMFgyORZVMoCGHVBBM4tgy9a3ZhGLPVY
-> ssh-ed25519 YJiRbw 08/8XgHVe6HPb6nQJna86m4PfanX0G5DZGAzpKl2rkg
v/Mp1GS3hlR4gLoejh+EZKbbK8jT2zw+V67OYalM6Nc
-> ssh-ed25519 Nl/5yA FypdqFMg8qQkfz0oc6AS6/HRPUyFYSaFSvj/lnhnT0A
VjRospt1aMg7KHjegD5z3DDv3+1Ybb37xDI21ujhSgA
-> ssh-ed25519 GdLgCQ mBN97cY0tIoqeMeyFrzUdIM+vNIwXsD5+Cb1HYmz1n8
6Ot2LzuSF0JMwlamrGzvBMj/vpbWnqz1YuUAi025Ysw
-> ssh-ed25519 tOH/HQ 4FRGUx9UfjL25KmJiyvRg6/ZHqt1egyuTdTY5lZGJWY
CVCC9sT0yXp8xBT2klU0ZsL+BzMF9ZoDLYdmjX1r/Qs
-> ssh-ed25519 FpzvfQ +5E/wW7sBd1dxFhdyV0GGUQP1fQTYLvUmqyAfYvwEGY
DFeNc8xFBZntBE5i7aYx9G5Bo0yO4TwoGcTRU+b5NGk
-> ssh-ed25519 2UotMw +kPcnMUigPBK32qHQ2moQ6Be+RBSiDLkIH8uqWLkLhA
ax0FOwxReFDHaFHugnpMYWMm8N/L+wq2xmpZlI5jzzg
-> ssh-ed25519 kdPvzQ MmGp1AHkHBOFssvykM0kXaZVOdnCMXn3tVtmBtosxxA
rQM+5VE/ZGOyg/YPeE/9wixVP8nhFVnDSYEH8+uqQ8Y
-> ssh-ed25519 onmXpg IbrF77RJ5aJ3Qb+rax7VDD/CTarHd0LBUxdtaI84zjk
SiVII5TaDeUX0wcaI7grFSGICasbVc880PQFET4Cxi0
-> ssh-ed25519 CnhD0g /p2jgsOabLoJ9PSo39aKbXR72ri0mY8dgUxkAn9Kon4
aQVSFx75uDIgEtbxupGh4qiZ46EsIDZBArN9Q4jx2qw
-> ssh-ed25519 4ep2UA aA1EvSgI0c5i0XSMtdieIU4z9ugyi1Tenkx8mqZKVgY
t7vuvcBlaRRkihHE9YsSzJEUWq4dv7RwALrAmgC0DOI
--- xQHTWIvQbA7XkRitcNRsdAod4d2AuFsfrQPbVXcp9yI
JE–wJnܥإrIæú l´D¢_#ÑÅbgëý‹tžWöMuÍ"Á0ÍJÈèŸÂw¥oe^Æs,œíëDæ…À¾ÚývÓG¼#îuP„î7ÙX|€Ú÷Ý[ð¢8 ³$èm¯Å8u%¼Z&=BZôãó{ïæ3mtyç£ÊRhÿöÀô¡ÓHvˆ À 9‘¯¤T@ óHŽîÞ
-> ssh-ed25519 8UnW5Q n9GImTATabmorvZdYfmlwogI19kDC2q0Pn36oIaHjV0
LIbb+QWyJTMKeSb7brkPtRrp1Hzh1wAEoQaWjLd3faA
-> ssh-ed25519 UFfTmg wsBWO0eruy1hTfDW+hRogrdBmCKwCBApdfWbl446tyI
S4Di+tWvsWChYEcnIAvDJHBCKODEbwZfkhV7UOsLXs0
-> ssh-ed25519 xNtnoA G/7vE3GJBDY9JrwnlHsR3WlaysDUpib8a3cqSNINE0g
ckMLqrwEyf4/k9DN+sjhBsHiyABBlCAEpzjA3M3wzvo
-> ssh-ed25519 aY2AXA PmlfZmS6gON8BtCCnklSE7iYyXtCwc+hYKZ8BeS9ohU
A4bBzr+64i5VQo0TR2+FwUucODgCRWQGaOBQKh+DRzI
-> ssh-ed25519 AQhf1g qvdgQJVD6LUcQ4SBp3QQv995bGS06StlMtgLkkwGVBY
wEUduXnr2lEl1QSAdIi+U5lCzs2vXAxTTtFL116NxSA
-> ssh-ed25519 r/3ipA idNoKxD2x/oipXYfx5BzFKMbj//odBWcodAKEhQ72Qg
Z5Agpyxc6e5hhXfkW38m24apmdL0YQkA/Sv44NNBnoU
-> ssh-ed25519 mOmPfg Z1dCxZcYXJtsGYQQ6T6Ua0B8oNiWM+KtdxhwpP7C/gY
ZXlHq7tFJdrZBjpoaR5kWrwTHi0m0FaiMG5RHPs75vY
-> ssh-ed25519 YJiRbw jb8zqdGeli0yTTabdv+C72UHd3F3Kf1VCeOGjqi6oxk
y0OBqyi5Rgdxdfdcdrt9SC+rqUfwB/Db9YGx1jBIn1g
-> ssh-ed25519 Nl/5yA XABrTPgqVEU+H3vVciDTE5cUOiLogPNtnKgc0hFfjjY
PGcnW9bss2ST4sbM5c1OemW8sjZb4JmgjokAwICPR3o
-> ssh-ed25519 GdLgCQ IxqW2RoEzka8OLv1t84UJ4QIZgdMC7uv1VC/1aOCKTU
681zK7CVFrn692BsZ0nKnIdgv5lZteuzgX57VuTPds4
-> ssh-ed25519 tOH/HQ ffHb95tfhzMnUOR3JzsN3SynReV7hzaS5CG8ETwS61M
1WkVjlKTu3qHci8yfgsr1zifjvbZqAZW+KHWQv1z+g0
-> ssh-ed25519 FpzvfQ 1I1miMxckl6r4MJlsaHUGQeRlF/MArYOvVpxWoR1WCA
G686WbFoGcUrlSTqJ8ZhXxg57hgt2OwOLGPUUxVepVU
-> ssh-ed25519 2UotMw 13+e9PAn6rScb8SlQyrpuVJGgQxhRF6PnFIAhmuMKhY
0OBeqN1Lok4iVN3ybcKvn5N8PkysO2KOhLVxVm0Hp4M
-> ssh-ed25519 kdPvzQ 05Mecby4PtXbMG6PrRkRCehFoX5+E+iElj0OhC28uFQ
Dz1SW3MYl9po/wOJrvZP547PYxNy6g/nfdFI7+AizhQ
-> ssh-ed25519 onmXpg dO+Z197lqZNCYj8QMjuI+JegkECteQUNO0N2WgcW/30
SfhhHvb5j/BPHKksMzQwMF02K7RhlQ2T4dIQc+h96sU
-> ssh-ed25519 CnhD0g qMU+iswZGN3HrgRTRLvpmZBspUhzOhxaB4IEgZGeO10
kLLPnVwr7BNz3m0ZsXOkrWijQimiaNh85uhGFpvGZQQ
-> ssh-ed25519 4ep2UA CEndKjv+s2dcIHFJaI60dB79S/HRiEVZmWaga3AvmH8
oDfdLqU29FEORoqHzerZe6PRXomtfYLE1FrwLiaa2Jw
--- U7vY+jp7wVpzuA640iJfNm1OsRfjQwbmvfF0z7VleTM
O!PÁSÛ¹åQãו"O×2«µL•—A¯rèÿ\6ç»ï9|qÑà:Àб­qü½ÜdˆõF×§†Ø\JH¢1;ñ…l.OŸj­cHeÚ-¢Ë.ší:¶çê6žñÖ_òº&8Ý3‰‰5p,ݤ¶Ä€&4Ÿk„Ó¤y¿Í–3Á½VNè”S齜¼§)ÔøuD
+36 -34
View File
@@ -1,35 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 8UnW5Q E8Ki3oFCl3dLp9gxZ7/Ene8NMM26OVJ4PMJQQYQnBm0
3rC3LMfdPCvSsiwaVnAb7VHwyw7KjZKcASdWm0lDg5E
-> ssh-ed25519 UFfTmg 6q8nJbCIQe2IV/W/31OpuI6sZI833IbU+weSTU05Mng
EgiGZwIN0oRjw9pAaHjypWtswBA1c5PCkNeN9K4YlT8
-> ssh-ed25519 xNtnoA cyxa8uxevJ9VEaYLg2g9rewcAMhsZRAPEkzqd9k6ngE
SedkkmBd4foxqB1MlCAkfIqO6ft5xnmLBa2cShzw/GI
-> ssh-ed25519 aY2AXA biY7lFtfvr6vBv/XBhZ6Uh7Hpj+Du0NuEjo2RMp6USI
5DgzmbEw5f6h4lHm7FlRZHXn4C9vCJ6IguXk7jZXxqM
-> ssh-ed25519 AQhf1g e3g+IdnzmuJZj3H4LWdbZ8yaj5GM21zz3HCgkzFG5Cg
oyzAIsqnL9ypSOCHINMu/+VM9TJeqgY9jLumhmAFIu8
-> ssh-ed25519 mOmPfg o4pCs9ferfC6+OawWXsM5Wa/5q+4EN+lEg/diMrjVhQ
H1gSB90UuJaivo2MhinPQGCV+rmSX1ZWazfhOxIDcaM
-> ssh-ed25519 YJiRbw o33TjJkI7rc1DxXRMdgwoHfCqzU3sGd7BZo7Uw0I8iA
/PiNDHyAl54HYszKkRzsjuoAZ53Ly1Oizf6NUIDB+I4
-> ssh-ed25519 Nl/5yA FUycbaA303kvgINg9eNM53lN6aUXQPBxWz9liuhZ6Vo
nNMPiq0w06WWfe73fpj/9ixunwgzZUCEi6pIKWuNWvQ
-> ssh-ed25519 GdLgCQ sD2xKKzEyD7GsnFJCrDi40sJX0yBIXLr3pLx1R6RT1g
ThDfA6T5/9cgAFKZPQtxGhKHdYOZx4sSQnoxzJMsLwc
-> ssh-ed25519 tOH/HQ YeQfSV5UxsYAMEIOq1FNpkNcM4LEA8zvcbOceZ/26ws
KMeeyObeOBmqxS6hqhVbDgvoB5jUJr8k21igT3rqoww
-> ssh-ed25519 FpzvfQ GbT7exaVbqJNP7LdV/wyye89yXuN6FI20j7ckx5r5nI
bNMqf7oY6NWVTPvVLOy+UpJKT0C9m6WunfdvMXCUZzk
-> ssh-ed25519 2UotMw Zpco9IYJXyl9wIZo22g/kp/OjfClOtUP2in+N0hYX3o
e68dEYPiNdlrSFaMTzvrhCz9/5V5zFAvrTnPtNSyI4c
-> ssh-ed25519 kdPvzQ 2j64L6rV5b5+sbKbNAGf9+7uKLgdBpKNv9umHtSW4wY
3y74VGUzKb9uhh3DvlkvZ5Jxtgfku7s1kDKrGDWUUvk
-> ssh-ed25519 onmXpg 8GDMsteOopCnaaVkXAoRMbGuXeKoSqpyZhLvbnEWBQU
X0HsZbpT4Wc/KO0TBwVSyjK6Zcbz1A34VCozNrMH4Lw
-> ssh-ed25519 CnhD0g uHIeQtUwcDRXdJpFglJ12ptOPP64yMP6WKPz00sAQ0c
yIKZNODIQSkNr4UilEHZzOBxeRA4G/sAbkppyOdUjkQ
-> ssh-ed25519 4ep2UA k+cteVM7cMWQk7xDcCZgWlZxgA4ZBmUlbZHQFmMoi0Q
YC2fptyb258arEdeOcPhCc3+z/vIgEElbqn2Ik3r2Lo
--- NJ2uO0A/UbPrw+IgObiiXTwV75xgsWTjYvLpTwznDXM
³B Ð-ø`8nß=m5/s”zǼmÚÝØˆ‚Sþ”ÖÍÆ œ¿Âõ&_¤WÛRpõß²“=iGFyÃEíІ¹¥èIñq:ö|-~$ò>ûÄbv~l­eè/ñd•Ùˆq”ªÐ¾±¶˜Â€ƒ•‰5¯ÝýŠÏ‚é|¸‘JÅí␍´£_£°l¯¬ñZ2°rìPÞ—p½‚.
-> ssh-ed25519 8UnW5Q RZaa6sKEE57cPNGq0i71GIwnGaaVTOrbVRi6Jn51Ag0
pesn34IPUu5KqvBXNV4pJRc+VbhWOV0AJtc+avWUm7k
-> ssh-ed25519 UFfTmg JVean8h3mnv0U/mkvO7aiAnSFNNWsUn9JRLbezVaRjo
quaD/FbGLxmZi3b1h295ENlEWjpCbw8Pp5alwxR4cFk
-> ssh-ed25519 xNtnoA +HqFSjrcgSTG3xPa/P65zxn9Cz3Yxe4eYzN5PldzoQE
zuohvjM/h1Fx84EH0fMMTR+49kNT2fM2FXmLNr38mR8
-> ssh-ed25519 aY2AXA q/QKxTAgQGRmzADx89SZCN9695ALg5/N6APnGH9IxBY
JmATp8b6YOAXCLh8JhFqgwadW0Ny+yHVnuDgLVQ189M
-> ssh-ed25519 AQhf1g omF+JqRyN70CT/8IdECVcPmAVVzboo9UVq1AF6dPSGo
pobUt/MZUn+prhtJK8glDICD1JIBC6K06yYLGnVRTys
-> ssh-ed25519 r/3ipA xCMqzT590mCVsAbPl1OWRdP74MBX0pfb0qobFnO8gxI
y/lcNLh5Rir//JthjrpBjhgIBrYMBE888077RHSh1sg
-> ssh-ed25519 mOmPfg xGf6g2NKz66txprOPW+5+NWkY3zVk742CHJo7VOwF1w
sL4yh0PBIvdDBtBV3WNdTulD6GQQnQz5eVl2jmEqP2c
-> ssh-ed25519 YJiRbw gEp7n1Ne3dCc6dw9PwFr+CNbs4LDuqZdba/jwhLVuD8
0d3IQFCUVG3cTn+tkfoTIHh0oZ69NZnCNyjCVgPtg9c
-> ssh-ed25519 Nl/5yA JaUM4j7ujiaXVzLWbGH9wdkpLSVFgaZZILuQGz0zU0Y
IeenYloIBqSUADSaqscvXBfgStVbVzsR1R9iy0WsG6M
-> ssh-ed25519 GdLgCQ cgRT+L39RcSNAlysZ4QoTzQS05E3IS+ovIndMC4CYzU
MkpqlNRgAXD+A5IhM9OxsPNOzmGvTtxopyRLVNZ1yVQ
-> ssh-ed25519 tOH/HQ mxphlwK/5sx1gjYIn2QXsleK0kf8kKXm8GURh3HUTBA
QsZqmYrl8js0tryfuF7LLSdEJ6jCnFNoufq/S1HWjlI
-> ssh-ed25519 FpzvfQ 2SBBbx61IWhbo7Ok19QKQFJY+8V55fqtemqpsIiGUlQ
KpV7xQVcbl7pF51OlvBIclBAMpmtQz88msAkZyusf40
-> ssh-ed25519 2UotMw CD9qB3JQsE+Lq79hoGXNgUAJ4g1OdQmBXrR6PtT78iU
o6nOndGlmlb36iB/MIUKKPkkr1Tq8MkVmy/kVCN1eik
-> ssh-ed25519 kdPvzQ 4SXmcs4lZo7ykrBaEelSALMwcpWkH1daxU9j0MM6biA
+H2h9h8Fp57wf1cxxy2pobK/VJ7c5L2qyVGgOE2pmYU
-> ssh-ed25519 onmXpg 98Ji8sqEbmUxRHWKr4Wyv9JfFToywXtnR4jMAz+1xA4
gMzNojDh24mr6gd4QiumwmBG3yE4XkEeBj3mF1Kpaf8
-> ssh-ed25519 CnhD0g DvGhJNOvn9hoQC4SInkqMehVmyHjaZGwVL2qxdDHPyE
TTWdemLOD5gq6PbStBcubTjSpUVosZgtTXT8IK7edow
-> ssh-ed25519 4ep2UA uYgbtUOrHY8tffrfDiUg8pg86X2WUXnGTBd0fhoCRiM
zk/qnapTdAXTYrrGuvbmYEaEf4+OhmcBaouH6Ec28p0
--- BJAX2O7CUM+MAUaXtRpLkt1S7Hq6X7Vo8pOnFagnCeU
Uj…ε8‰ß«‰†Fžš¯0œ{SP¤q„Z˜蓤üCB¾ÞhvÝŽ€ÐëÀ§‡­Ò<½ ²Ê0? «•ö ßɲY=ªò^'¬96ÉZûÆôMˆú$y­t^83Ôô%ÿÒ8;?<|¹ä¤o©úûΪõ`ºÍãNb©HánÑ3hwê%Q½º/§¤M?3£šU6Z¥Üä¿ÝÍý¨ËŽ\ 0
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg 3GQFjURPxvmYZHxYY5rlHBn7FOYFhj4DQk0ehW0rSHM
anGlFUAIe7reh8wjs+9bjv7LuOD4j2SMS/sg5b8M6+U
-> ssh-ed25519 8UnW5Q jfzOveDXi9BruyfwrnzbbIqJMDF7rFhHUg/NIWYRoRo
/O5e7gIVK6D1Dp3P87c51ff+tOGzp3SGTmGjel8ixhI
-> ssh-ed25519 UFfTmg qkUtoDm/UdhxPErvqGsoKmeMPzyiN0CeCnyloIiM8zQ
taivAoakVzDP7dIM56FVBBTRTK7jUI9yE5nBDZlZ3ok
-> ssh-ed25519 KbVVUw tgUU2+jcmv2IiXCGAOd9u9klxq4a+msiaiVrgZxUg3Y
G4eNn3Ib93eDtyiDvqI8R8aqVDa/RrSNCx3qpfPeg3k
-> ssh-ed25519 xNtnoA hAQ0MQqLpgxI+WDEcMHPc/rj9Iajkt5jGDHuwQIOlFU
gsrtBJG39f/SxtaHSQlhrB2j2YNqpd2LOM3oMegHj2M
-> ssh-ed25519 aY2AXA gAhU38iv5KabRNmC0Nv5Zb6NzgfC4DND/fXBhMPP4i4
dyH20irV5/UlAU8YpDJ2EGNDzomp+s70J/jryDZzJIw
-> ssh-ed25519 AQhf1g 4y+5KVC/Tej7f1M6E7yzrOyMC6K3bFPbru88+ti2WwY
Tkq6RK50Zqots2ZfDTtKOHT9c3Cjkp1imjBkaOlm7Uc
-> ssh-ed25519 mOmPfg si3XZXemqRwJcTvfGOdqOel7Nz880oAZa2MNqSukG0A
hhh/N9cEakzOLbu9Aqku7TLWQjNx5lm389MDF6ftlHY
-> ssh-ed25519 YJiRbw TYd7FcMfSxlEoyjPhfy/Mtde7vrzP057v9Rrbit/RG0
/r1Y3IXUF1Ye2CuTXCd9+mS44n+JbtYpGIFSW1LkcmU
-> ssh-ed25519 Nl/5yA L5BIY2unn0RbeX8hdL1+jLS82yqIuBmqo2B4DuQjzQ0
7U6JGC/mZU4gpDUNBS7iiIYp9tqUM4S+EZaeOciJMcQ
-> ssh-ed25519 GdLgCQ dCr8qBTxs0kltrhtL7m812KD+OTuFXHAE7tikhzSyTo
ahTyjll6x+g22Hu9jBR3eLM6C0hicz8n8GfojM+Em0E
-> ssh-ed25519 tOH/HQ WbODKZXUVGpNH8+Q0/R3Gfo4/AtZxc8XV4gaZHEy0D4
RGsiXjuAr70v7rbScGozDnL9PGzETib7cCQ7VINt2QI
-> ssh-ed25519 FpzvfQ YFysfaHAuxpg3HhOwLsMnZHkXRfB30cQ2ZyI73+bTRA
mZQUKw/0odOl1ZkAiQEnCt/eINEPW5rXeA3Y4p1N46E
-> ssh-ed25519 2UotMw ZKsl+/EjxFspSZ6Zs+ZfNmklbAm1luw3RK6BiIKo3i8
sVwUAgZ7/JZVHRyhCZFCLFaYopfj+nk4EyctGCHcggo
-> ssh-ed25519 kdPvzQ CYrPhiUbDNOKfQX36HnG5fC96bBLOWX6wkQ3usw9hE8
vjF3sAI6cN987OGNVtIiwAQtkQKlzpuOGOtSqTlE58s
-> ssh-ed25519 onmXpg N4bbv2cKbh7KdiRZ+7pbtxyG0QQj2tVcp/LVxNtuenc
UOMvWOY7jabEdUWOfK1Ao0n0d3GJeiP36U2REYHFLnI
-> ssh-ed25519 CnhD0g WCUVLCGQAr2kxkE+wzp/pMHqYhD2sROb5H5+jUCjkHk
QLlX5xxrj4s/t09IZkJsnQstnraSBycIp5IRN66SCQw
-> ssh-ed25519 4ep2UA Q7rwzd0fpqve0do8NFjikaVJ7JYMlc4Gl9Id8nlVSmk
5EU6xOdw2aGUsdaGTdksevrwwtufsKNQsPlTUpivgZE
--- EeaIf7OWV3H79Nf3Jvfynt32XSZJwU7Wcby9ndc9aBY
ì^†ñ5ðØ<ÇòÈaƒ^!¡ieZ¥›ÿ¡¸žµ¸nÄ R»Bž
-> ssh-ed25519 8UnW5Q LRvQ8+42bvJAT2MOgqWSS8J+fmbRNCEM6YHKa3jjFxg
Yyl9rQO5jXfU6kP9AaPFD9U86qJYJ3KoRKWcnfbJVRY
-> ssh-ed25519 UFfTmg vtRUvGhG2wcgmH0OUUGt5FySPfpb3RlBcNPL0soDMks
7U7vuIyXvVptLSUzBcLGVvdBIieucypfl7j/zQE4cKE
-> ssh-ed25519 xNtnoA AE8W822QM3xRZcBupY+PX5n62eyHKhtKYfHVmMf5pl8
1a5C8vdYt+jjM8Ynzja4cIkitn8CIBfpp49leDooCCg
-> ssh-ed25519 aY2AXA VwO5CmrX4w+7C6FN3da632C4ODT8PWVsdFDmDPa36Cc
tm0Ns5TvK2TT8k0pWdUFVazXOqAdkQhUtqnsH/Nr7T4
-> ssh-ed25519 AQhf1g elDKAgwosKD5fplGb2imeKOz2xAubcKM2UF9brhSZ1A
lBWix7EZiL3NUNJBfvmSX8rSzkjnJjlz78g3CowUFr0
-> ssh-ed25519 r/3ipA Q36VYC3Ckdzo1tJvIHSFoXtDX771ajE13D3JDdy7jgM
VxhKh5JMXfkIy/r9osMYIBZmyzwMg8Xv5S5ZOXhQY3Q
-> ssh-ed25519 mOmPfg 78q+bNPxfpfa+Zu3t8JB/H8WCU4o9bKNzC3v2hpAGwk
FXkTocxcJHBLkWtbZjK8C1GQCWJ9yGEeItxifDCXZy8
-> ssh-ed25519 YJiRbw SKyKYiMkqumdiZaMHNIBtmjR6YxFN5w8zOtJUN2y9ko
I3IIGNBfLYK+PGPak8iolGmJAdKScoUkYMWl75nBQeY
-> ssh-ed25519 Nl/5yA RBxxSP4VcIYvOTB77GeqxQjJ/xlP0pwwXQteqK4OqAU
nw8eBzXxsTx811GlrIlYBUAVcAK5mvRcq/aQYggc6vo
-> ssh-ed25519 GdLgCQ +/McIrzLSB2b6UYj4Z5rLvbFki0VlLw1zXEyjw4xiSE
yOwqVibA6P0gMDucd035F3FgJdVGsTShzRB2eN7WGEo
-> ssh-ed25519 tOH/HQ cqI4xCjgQOtkackr6ePk34O3V5aFjsPaBo5oCb7OcQk
jbPrD0oPOPwEMU2ULIu7fBykyKlCPZMuMylJ1GgP0W4
-> ssh-ed25519 FpzvfQ K32LF8T/BFTU6FemV7WSNWYTJIN6nipDga6WDyO/2GI
BTFm8nsGPI0jOJUng4s2BF8PnLL9gT+0pyNzpBmVkXo
-> ssh-ed25519 2UotMw VJWGl59Jvze5lPcmylykXMH+Xmv1rP1zA+6ZEtsZxyU
kvgE3l2WsoJS7HyiLO6WONfGa0odaixqRDkhGi0gLms
-> ssh-ed25519 kdPvzQ UnD1nnR2KC9lPicQPuGKe1j9vbAnyPz8+X+H1QqlyG8
sBaVB0r2E05V38znyhehorQB6IZe/B17sDO58JhHKyg
-> ssh-ed25519 onmXpg ww4Plkb0njPIQoPXH5V3Pmz0ko/1hzR64T1S3P3EW0Y
wkrx5164EA+gOP5mPX3QY0467CGl0E61xltHZT4j+xk
-> ssh-ed25519 CnhD0g FbaDeR0/3k0565LIzeO8KuwQ0KJInmJm1eyLj8U8W0M
ync9BVgY6Z0eeTrJ1rTBjHwRjBu8ocL2RvtYKo7fZXQ
-> ssh-ed25519 4ep2UA my+YNWCA8Y6glJcGMroChKMP2CYXCMPKJCPe7F4G/3g
u9gsSRBIwf+KO44A6BBP1rx3SOJIZ1mYKH8JhuP2kws
--- aTzCD5KDcWPRhV8hAh4fdeDKHScvtHS7yuE9Th2xE7I
ÌÁôq(s–½i÷þµ ¬WûdŠ®¶ÐÚ‰ˆûÕ‡-½B¯v a¥
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg uqMgqwOR7IJm+N5uscbx4ovLWJCquF6Gjrxulgm8dkg
6HndQ6cW9IQRkSLpZFEOAefGFlhp3uLggb1opcGC+aQ
-> ssh-ed25519 8UnW5Q ypxChEYvyybsHwPzIO2WwUDzRfcJyutIb91UQ0yBRmU
MoQgg3DDQN3Dc5fIKHpbsB2Mcst6xEojMm95Z1vLFzY
-> ssh-ed25519 UFfTmg keUoHrc9VBCTUENQR1wocEyq1mNzbxALp2jkLXIiK2w
lxhB9wi+a0yCVY6rOIiFLw151qyxcXMemY8oGC5gEus
-> ssh-ed25519 KbVVUw INW5jwvYw77sJAVSiFDNQ5NYcwdgWij1c+6WUtRgd3s
MOtNiI27YsAnQ1BeQLJvXf6eMCDgAN/fND/y6850Hxs
-> ssh-ed25519 xNtnoA 19pWK/631rpQ4JS4daD0tENne05fcLGHdD6YQOl8wVg
pGLxO9vucXZnPLKCCeu4/KZDM4hMVqu3Gh8oh5VwHs4
-> ssh-ed25519 aY2AXA NdKAa/VKtjMKETzZMt0YawGTqzshOBpkQNgt5f8771o
LMKP2zEV2cydvbQ/E8MiXsU3xrXeXXw6P/Ndcl+vENU
-> ssh-ed25519 AQhf1g 08Daf6qu0BmdU/NS9QxUcgb+pnzwLxVkHJ7nrdxs23E
b03hemLH66hKIJPkbs89DCvp7DZvZr9Q30Ta/cOWZrQ
-> ssh-ed25519 mOmPfg 4p2vXuNGm8mCPF3SeCIU36vVbW3i/MUhVctJ4o8vf3w
Q1oMzDnD4VONY2ScQgiKwV30aLYgcc73qYIYGXbjswU
-> ssh-ed25519 YJiRbw pmp8bCwDkv3kviK30FmJcW9VTRxYxGuSN2Pbaxmef18
9IheH79U5EEXG+0TFDac4j+WoVWEEW+Vohdmdsrcago
-> ssh-ed25519 Nl/5yA gHtH34WMd0251AFHOW55TMudYIZIvXH1aiJ8ZiMfiT8
t4z0Pd4URkdgaJGe1Kl0XF2ZUaicWaGcvO1LMMAqfM0
-> ssh-ed25519 GdLgCQ EQ0+gouLga2Yh3fRQ4qCeY+s7qqfeJZWVBDgwzoG/XU
tdCF3s3Vv4MNo9TbOz02SynFwsrfjDO8lFtLUBTNEyw
-> ssh-ed25519 tOH/HQ 6wVzhUjLO2YfVnQKkg+hI31WSRA3xk87O+kOAoOqKRs
/39obhf0sfe8AqlTpadNyENmcYAyDEYZd3wcaVs1hHI
-> ssh-ed25519 FpzvfQ 4uQWb9Oz0Bn7u1B5PMVzU+wuQhkEKXPdK0zjNn9NMGU
d/0DE000EGI0Ila02tdYD7mel4L5U4reUsilQ4srTj0
-> ssh-ed25519 2UotMw yrvNBpMJ+dnyM+w1spLtseqowk7lFQVKN/3yt4Np8hY
CxRbxYDnuCbNPA5GbbjsBMxDgnXsM2iAvAbwJcCiJ54
-> ssh-ed25519 kdPvzQ 7hpe/4mR41xHp/IWYJjDXKPJVGzPxCn0B8wiad1o5AY
yaNuNBwA41qum2/i4IbfZsCYL82nbU0ErHfqo3ps1cM
-> ssh-ed25519 onmXpg JOKiwaMqLxFf/9NkPLCi60u/9xPwMTlANATtwGUVkTk
9/aXatlLCH3YkCGhOqZXlxzpz11nr/uPyt7ehuFjwIw
-> ssh-ed25519 CnhD0g Ftuqrqr+3Xmym48ivbNknQnbFaqV+VqAqwz2/Hp6sDU
v/sA4a3po9uXb6hf5ml0DTanDZ9Bq0DZL/9KwwimdUs
-> ssh-ed25519 4ep2UA GFzncnrzcVUTyxPH0wdC9e7BZCGK6WYf4HckgB43NzI
fvF9XM8sUGt2Z+eTmV9NnUe2AC4KN8kKSQBZn372AqU
--- XWIaBNq6i9kn9Glg42rxmI96r2Gl2ABW8ofv3qwGs7c
œ¡{ôõç,Œ~:hÉ“¸€Ók0ƒ¿ÂêÏG’ûĈä[È̘!&JÊ´{U½š¡V+
-> ssh-ed25519 8UnW5Q hWnvYf6T9vRDD2XG+coCogkbDCrNbSG0R04+gXbvcGk
b3kOTTUw6nTjIUUtwBEWdeZimGJH2ZuZN5XeietSxak
-> ssh-ed25519 UFfTmg Znvp9rdXiVQ5bWC8EOyzXAMd1eRk4uSUvRVaUNWib3w
rOR3qQEp8xJS27bwnNfBZRPmhtWDQj89EdqNYZDiHs8
-> ssh-ed25519 xNtnoA KXUc5/jRBHX0XDAoLEJlW78FMDmUSKOtqM/0TNwM/gY
kFObtWnQ7TPJT+7YZtpcc8Rt1e2x1aYfcM2G3WiN4Go
-> ssh-ed25519 aY2AXA 9QVcxSBm2R/9pZ1sXJ4Zj2YEDTXdyRfHIW3+vyFCVhs
Ux/JCrEg3lKbbGKfN/ty6U+XFFtG1kYeDdsJyjjQmlc
-> ssh-ed25519 AQhf1g bcL4xDrGIiyBxr0+IwPZ/OGqQgvf2EHwy3Byq7LyRj0
O3xszobO00rucq7iOPEJh2iJFgrzyzmXSeNrleir8uI
-> ssh-ed25519 r/3ipA V4oFmOd8KAMYNhekAsTZWybYeKNiHopO4TM8RhUZNyY
52cHcJQmG4p7TS+YGSzXn9Pj7RHdCkHCpN+vP/HGGEw
-> ssh-ed25519 mOmPfg Lx0xeor4Jo5bAJfJx5kWjFysmEP2HHURRp+R+ujZ8TA
uMyFlFQ2KneN0i6lsKavnmAJzvvQh9wq/Gm5GQXz1rk
-> ssh-ed25519 YJiRbw kDQyaAEWoO+XvVdp3HMNF/edm6ACwDJZiyMmf8TbyBY
qjVn/ath5owghFpy+bBpoMdUyy1ea8mSwiDOkyi/scc
-> ssh-ed25519 Nl/5yA +Z0kYtzVmWrTm8dtS3xOxtAwX3UBqPudd8P50zigZlA
vKqCuh8XTFAFdFp1eQ+GuAFLZ+cWraNQ1RtjXfsEbuQ
-> ssh-ed25519 GdLgCQ 6ro+wIkL61pRQ4BwD7npGJPKUBxNruRZraKrHEJbDGs
V4YxtQfRkar3mwnfREQGcktoBGw8LVXMR1Q1aJuhgG8
-> ssh-ed25519 tOH/HQ 77XQ6z+VNIXgHEE55jqR+VkGYWXex7J9h3K0LxJ+/Vo
QO5lJcgEbn2qvf1hwcnuzvZzEndwk11/lM85Nw9E1W4
-> ssh-ed25519 FpzvfQ TXju4tBTWoxt9dhlIeq99Vtx623kraBf4eJadhRCmi4
mJNKb7iPKSaHElXOreZ7AE6yNaw9mieNuasGnyG243M
-> ssh-ed25519 2UotMw l+qYlDlKwklw7ztyfA+RwSDn19gCX7DWGdbywKcfUmg
TZAJCchrk13MBPKliPDEAnA574aSGp93hR8SZwsrxII
-> ssh-ed25519 kdPvzQ 1wuCkbvP6iOJioPrRJpIVYuEzJNnQyFs+NtGLVH3znU
WZEBDs8t5eNmruan9qO56RvRabFUBzLgCehUuFCP7Io
-> ssh-ed25519 onmXpg subzLC1R50zrT1J7SLrcb83ojuxnFMnlNcY/ZO/nl1k
AuBJOZs5zg5GmL+3+Hfd62nK6uJhjNznNlwdCaiRhMc
-> ssh-ed25519 CnhD0g idEcQ4d+1DDdY7s9mkcvSxdGWnFUy1RFLwE9SMGMPTw
TbEjJrudTxhEBISTF8CuBeFcRD4Sg5K/JHt/7quHE9E
-> ssh-ed25519 4ep2UA yE7evj0r/8fXSioyBwp2+9iKBUzSeWZgVYDV1xVrfH8
xkWr9Q6l7GeTsK/+Z9L1t1qQBeMUORW38h7lhE2iF8M
--- o+QD9aLHHPpPL9B1vg3suKNiGDSg2/mLZ0nsS/N8IXY
昼Axャ跼bハスキエヲィホ盜ィチセf衙イ彖イー{E.I,;シ((bIwトモ%ャr/メ
Binary file not shown.
Binary file not shown.
Binary file not shown.
+36 -38
View File
@@ -1,39 +1,37 @@
age-encryption.org/v1
-> ssh-ed25519 87huqg XbWTWT5G2yP4UMwuOyYhawvGpWazBSjqODyCKtcprUM
O8foWbvlaO/J2Dc/j4YN26+Tws2AYVFt7eFskfYhIv0
-> ssh-ed25519 8UnW5Q Hf7xZpkQj20XkBcABAE5Sn+HnVL2CcTK7jWEBtLSqVI
gca0yZ+C9m6iTwuJ/3j2nlmWggiNAHRCTFnLehgKoIM
-> ssh-ed25519 UFfTmg jvKy90fUIbXEs+mEvKKSkxWmgmQys3Ic933Rmr6zxkc
pAkLijQidxQj/3jINhXELuBbJedYcunMvLbS7rFqRus
-> ssh-ed25519 KbVVUw BCoXzEUM7ABAV5SoYmJoCldbmMHAu8rpML5A06DKNDc
t3cJSu28ssl1Tn1z05EFf3F1HARVAKFxwRgMpSwD61c
-> ssh-ed25519 xNtnoA Kcogl0OMYaqtfTr0d6X/KOxr86097IG44/CrULWuZ0U
KKY/AfRVOkx/KmcLojtI/+yUi0m92Ydi8hcvjWEyHvE
-> ssh-ed25519 aY2AXA q6PcSHRZWG9B40wFw2dWO1FavgfNBUuAmimJbhwiDjU
sbXVlFtNqYL8KbgtiiqdnqIbMpwolfVUwaxOzfAtkaw
-> ssh-ed25519 AQhf1g vQ1T5lzpfxB5FJwDxCpOW+A9+lf1qbQNVwwBkkXeIn8
WoDWjuLcVrLQ0oXpUIYTkLQSlANq3KnWJARL/7klBNs
-> ssh-ed25519 mOmPfg 6Su7/BlhyBv2WaYZ5tUZgroY/C8YX6S3mPXz1K9w7wU
vWHNZtyCwJBGpv7oAIPjpOE6Yg/SpOaujXqPwDwwwIw
-> ssh-ed25519 YJiRbw y3IlKie/hqRAjWRE65p92WSJ9DCpyqjUUi8rTOyGmTY
WNHY6P9cdAw7lUoAB/ERr3M4oIjsTBCHf3sCDaEgyqE
-> ssh-ed25519 Nl/5yA D2MnixOd11k9fbsqMlLW84wjF2H5/998BVmr+5YwNwU
ofUsTDy9t44x0l/zZTk0Y3Zjrt9b3CX/kHrx6fmnw2w
-> ssh-ed25519 GdLgCQ Ow4u2HNvP8HRa+bOwPNUHqPbSBen+u0sgvOx0PjGMXI
K1ZmiNjVLu+jLJuKvaup5v2Zili5nn3sNdFhMpqtar0
-> ssh-ed25519 tOH/HQ RJR1z4mMzLGM4wYmyhoobpWFzkDRiy0cf1A7hHi9bHo
3cDLnwza7kWJfRomk3FeVZ1u1e7FfL9EEDuu6bYUohM
-> ssh-ed25519 FpzvfQ JYPZ5lx/2edfeM6W+Bjh3nw15jb7rj+D7PMzm6ML+gA
17xGSG3HSLILVFeng1ZOXEJoC6jpwi8Tmpsm5l7ZlR0
-> ssh-ed25519 2UotMw b8uKV38Y3/VM6y/ntVqDPWw7seHcPSetGzA6/kFrNkM
6HIynB4SKzFZ0grEfw0LJK8my1VFsEoGDjn1Hk7im8I
-> ssh-ed25519 kdPvzQ Yl41IM/ntoovfYXfM0p/0MGLQuS5KCYBs0EORw52OG4
UdvkB0ic2VLjLY7gOw1mQD3mj0lXnGuXAxZSxHreuc4
-> ssh-ed25519 onmXpg mgRxJksfRdMb5CrVSU1AIGBvypZOuUjfcrDD0oRkgXM
hSgE8ATb9RYfr3qPDbI1a8oD9InnJMvy+R9GMjEiUiE
-> ssh-ed25519 CnhD0g 54GUYYRwyl5eNIYIa/wbmXtE3pGyWm2fAkqr/N0ICT0
f26TvBEVpU+YF3YXszR/SJhi448QplPlyfz7JYuypXU
-> ssh-ed25519 4ep2UA /Fe36ni4lmZKJgE8oQbAKLy5dobXOiD6NpoclLpof18
cPCO/Wd5VW3KrXEcLLdh2yZOvjcnY2bcFn5CFlpyH6s
--- AZ2Sq8hB9q9IUkvCAEr0oY5/N+YOJrsq47+SiuXVjkQ
oÍÍH¡=Uqü¨6@l«eUl¶AýÞËvó*~°¿‘D(´vÉüÃc'åÉ`¾Q׊Ñ ñµÀV•$¢•LÀò
-> ssh-ed25519 8UnW5Q AcdMKyEzWSlLGOg1/cx17oIhl12aoAo505l9KETVKCg
ORsf9759ZFDh4hig3H5fFpGho+PcJHR1tsBJWy3/4rQ
-> ssh-ed25519 UFfTmg 8ZeuDDux/wRwpWj0VO3/V+ZsE14TeyqGg7I5jsDfSys
D7MvCcadL5mPikJuMErOrZvqGBE/2yNZ9AUR+7nreGY
-> ssh-ed25519 xNtnoA yDAsY8q+5Kh4nlpJIQDZM/cwc59pjAWSLxRqud/fbAs
IocKx8A6Ju51xeg4fwfiorCFu5yfb0Yv/KcpC5U4a1g
-> ssh-ed25519 aY2AXA qubkHd3H7Hk4NPuKNkcQtEph3FLvaNe7vaVlj4iY7wk
bTqmVr6xjri5zlbK+HHmknmNAKWKN70ddUBD8f4lxoQ
-> ssh-ed25519 AQhf1g exNQzhjDsm/j8JX3FrqSNtrB7tBJ7rKdETmFpan5h3U
2HicSUZXocSL0YvjkdjEeAxp5m8MZB1pia9gaV8q6Jc
-> ssh-ed25519 r/3ipA yXfURnmAsmd9Z+T1uuytKtYXkwiOLxWnHiEz+dkHpHE
E27OVCZVyB/uOu1Wf4PPu4mmvgbP03rwOj6UJc46NRM
-> ssh-ed25519 mOmPfg bT/wxUVo4vXcEXYo0CReKPTtbtc+hJpY88jtg5EHwxc
oAQNJsnOb4Diuqn2jKeQkkmh1Cc/LMdq/P31FSyE2k4
-> ssh-ed25519 YJiRbw Y4zprvZRw/+qV+1I8ag7vJHnodvGMAqPFy7w/+fAaDQ
l2PXTGdKLv0lmnU/HppifU7aICm1nPQeMLDRRTzKH4w
-> ssh-ed25519 Nl/5yA KE/02BGEMCuK2qneJ9OO5zmZbexXkGAk+uPP/IZHbwg
by2Qjs24hSP6MB6rMdRbJcRWI5up5GkKWkRY6bjkRfc
-> ssh-ed25519 GdLgCQ 1ct8q7FlSiN5en/KLCwGhOclvWe1Q5hmbPPc/wSDzCM
eb08Kvv03cZ1i88EwUKCNFjCKSo31TgxFsg2GTBR2jc
-> ssh-ed25519 tOH/HQ S9TPi1BlPvDB6q185tzr6QPZ07870x8NYsVT+oRB9jE
PQ+RdOzO9tI+B/27iV54InjKFZU4kc120KFU51fzcqc
-> ssh-ed25519 FpzvfQ 1OSqqzuvX8QqKuwk+1HEpmuKAh9bkD23oVN89Z1cjmY
jcmxOdbt7cr3snpYJmbHinNyBbF+t9UAPIRWYbtUK7w
-> ssh-ed25519 2UotMw CwI7Qx7GF08A6rjbRznIMjgJ0vWzCauu9D9s0tKs1Qk
EZJiFsAvLgVgHUpa9vt/2ZriPUMxB7AjuU+caBfbcQI
-> ssh-ed25519 kdPvzQ 8gCdeTn0TfvJX3+n4v5A964Vyi/QDSDyG8tkEDjTBic
41xHK6h4H0be69rb7DiyHXNK4gh6rMHVYXAflf0H3GE
-> ssh-ed25519 onmXpg cdJzRzoc6G+qm7NeuHjnx+rgr7SfCf4CN7O6Wj+kow0
UoZij3gCX3IKLz267aZ2k6wh1RfopF+bI86Jn+A0ee8
-> ssh-ed25519 CnhD0g ttdVRooKnuYED5QBFF1vkZ95QQwxsZa+gzpGOB2j3x8
7FLkYwhbxUNHe5xstzFZNHHpskePCtdlInaL4hntS+8
-> ssh-ed25519 4ep2UA /6qYTTXSvU9SJqQhBkZ2FFwVwUz/T3MM3Msy1/AxqCU
589WRZ8GNUIYSe7RczY8FyQI6yFiUn/32UmpUUEIFx4
--- hcN4RD61m5pXylHSf9zu0Z5s663YR2Lu8S5FTwtj8hs
5Q"vßcˆíoS÷A~ÝÞ$lM«‹yUšÑ¦YžùÛ1Õ`EJç1!ÌøÀžÏêv\ûÛ+Ð;áá¥7ÐüŽÄI
+4
View File
@@ -62,6 +62,9 @@ in
# Demo of how to create it
"matrix.age".publicKeys = everyone;
"tailscale.age".publicKeys = everyone;
"acme.age".publicKeys = everyone;
# At the point where you want to use it, put
# age.secrets.matrix.file = ../../secrets/matrix.age;
# Then you can reference the file at /run/agenix/matrix
@@ -118,6 +121,7 @@ in
"nebula/zeke.key.age".publicKeys = everyone;
"nebula/exodus.key.age".publicKeys = everyone;
"nebula/hermes.key.age".publicKeys = everyone;
"nebula/kuma.key.age".publicKeys = everyone;
# Custom files
"lithic/cargo-config.toml.age".publicKeys = everyone;
Binary file not shown.