From 2d4efa5d238bacaf6e5ad4ca61cc79017f26deca Mon Sep 17 00:00:00 2001 From: "sascha.koenig" Date: Sun, 29 Mar 2026 13:33:22 +0200 Subject: [PATCH] chore: flake update + optimizations --- flake.lock | 96 +++++++++++++++----------- flake.nix | 14 +++- home/common/default.nix | 2 +- home/features/cli/secrets.nix | 3 + home/features/coding/opencode.nix | 44 +++++++----- home/features/desktop/theme.nix | 4 +- home/users/sascha.koenig/AZLT124-L.nix | 1 + home/users/sascha.koenig/home.nix | 2 + hosts/AZLT124-L/default.nix | 2 +- overlays/default.nix | 6 +- secrets/kestra-secrets.age | 60 ++++++++-------- 11 files changed, 138 insertions(+), 96 deletions(-) diff --git a/flake.lock b/flake.lock index a16df0f..f1ad9c2 100644 --- a/flake.lock +++ b/flake.lock @@ -22,19 +22,20 @@ } }, "agents": { - "flake": false, + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1773654477, - "narHash": "sha256-de+B85eBY2SyT0uPLlVxKCy6lsKYXhtA2mo2zO6MXlg=", - "ref": "refs/heads/master", - "rev": "a4ae041e1d2343000da7b7098195f166b58c0d11", - "revCount": 65, - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/AGENTS" + "lastModified": 1774702288, + "narHash": "sha256-NaomBLXD3+qmbV22IcD4fr14recSm/8nAX9Q2KQ/Fw4=", + "path": "/home/sascha.koenig/p/AI/AGENTS", + "type": "path" }, "original": { - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/AGENTS" + "path": "/home/sascha.koenig/p/AI/AGENTS", + "type": "path" } }, "agents_2": { @@ -438,11 +439,11 @@ ] }, "locked": { - "lastModified": 1774210133, - "narHash": "sha256-yeiWCY9aAUUJ3ebMVjs0UZXRnT5x90MCtpbpOWiXrvM=", + "lastModified": 1774647770, + "narHash": "sha256-UNNi14XiqRWWjO8ykbFwA5wRwx7EscsC+GItOVpuGjc=", "owner": "nix-community", "repo": "home-manager", - "rev": "c6fe2944ad9f2444b2d767c4a5edee7c166e8a95", + "rev": "02371c05a04a2876cf92e2d67a259e8f87399068", "type": "github" }, "original": { @@ -459,11 +460,11 @@ ] }, "locked": { - "lastModified": 1773963144, - "narHash": "sha256-WzBOBfSay3GYilUfKaUa1Mbf8/jtuAiJIedx7fWuIX4=", + "lastModified": 1774559029, + "narHash": "sha256-deix7yg3j6AhjMPnFDCmWB3f83LsajaaULP5HH2j34k=", "owner": "nix-community", "repo": "home-manager", - "rev": "a91b3ea73a765614d90360580b689c48102d1d33", + "rev": "a0bb0d11514f92b639514220114ac8063c72d0a3", "type": "github" }, "original": { @@ -513,11 +514,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1774495900, - "narHash": "sha256-3nR7HKulLSib37PWcWrfELuSrikFLiTqAqX2HQ9dV7g=", + "lastModified": 1774684080, + "narHash": "sha256-eJIUxivNSrQG8XSdr5L1Wd22D4rk7tBFe9cu232Ko24=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "3e06fd5f99381f8101c8e7b5a1473154dd0095cd", + "rev": "7176adaf9eff4f30fc4ec1c635da530c083cd52e", "type": "github" }, "original": { @@ -535,8 +536,8 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1774608504, - "narHash": "sha256-mTuVxpGUG0eKl2+O5yWRjBEHLXccaEeUs5jKFFDObHA=", + "lastModified": 1774608969, + "narHash": "sha256-kGMvoC5nrzqch9Xe8Jug7cw+waUjzmAYiL5NYda1hxQ=", "path": "/home/sascha.koenig/p/NIX/nixpkgs", "type": "path" }, @@ -575,11 +576,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1774237443, - "narHash": "sha256-4h/vWMOCvd0s5WK7DONqlljImbbKG55gmnVfBcxcFoY=", + "lastModified": 1774684080, + "narHash": "sha256-eJIUxivNSrQG8XSdr5L1Wd22D4rk7tBFe9cu232Ko24=", "owner": "numtide", "repo": "nix-ai-tools", - "rev": "d17f058f96e7993b50879e871a742b3ed9a5f429", + "rev": "7176adaf9eff4f30fc4ec1c635da530c083cd52e", "type": "github" }, "original": { @@ -761,11 +762,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1773821835, - "narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", + "lastModified": 1774386573, + "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", + "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", "type": "github" }, "original": { @@ -793,11 +794,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1773840656, - "narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=", + "lastModified": 1774273680, + "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512", + "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", "type": "github" }, "original": { @@ -825,11 +826,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1773840656, - "narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=", + "lastModified": 1774273680, + "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512", + "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", "type": "github" }, "original": { @@ -841,11 +842,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1773964973, - "narHash": "sha256-NV/J+tTER0P5iJhUDL/8HO5MDjDceLQPRUYgdmy5wXw=", + "lastModified": 1774388614, + "narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "812b3986fd1568f7a858f97fcf425ad996ba7d25", + "rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e", "type": "github" }, "original": { @@ -895,11 +896,11 @@ ] }, "locked": { - "lastModified": 1774243438, - "narHash": "sha256-mllIhgQyvjSWm9rMiX4gTGNGjkUbdcGcHeZeI8hO3cE=", + "lastModified": 1774700410, + "narHash": "sha256-2vvPMI78Wye6HttV+mQgX0QeaSQkNgkkbXaOXlt5uhM=", "owner": "nix-community", "repo": "NUR", - "rev": "fcb9e000f223397217a86394a9284132ea873c1d", + "rev": "560b181abe2bba9d130123a5dfa56f03c1d5be88", "type": "github" }, "original": { @@ -990,9 +991,26 @@ "nixpkgs": "nixpkgs_6", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur", + "skills-anthropic": "skills-anthropic", "zugferd-service": "zugferd-service" } }, + "skills-anthropic": { + "flake": false, + "locked": { + "lastModified": 1774451446, + "narHash": "sha256-w//9LB1OVG9jlllY+VDse7Js0dn5x6Ys2vPuQACKsTM=", + "owner": "anthropics", + "repo": "skills", + "rev": "98669c11ca63e9c81c11501e1437e5c47b556621", + "type": "github" + }, + "original": { + "owner": "anthropics", + "repo": "skills", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index f04c084..47d4d6d 100644 --- a/flake.nix +++ b/flake.nix @@ -49,11 +49,21 @@ nix-colors.url = "github:misterio77/nix-colors"; nix-ai-tools.url = "github:numtide/nix-ai-tools"; + # agents = { + # # url = "path:/home/sascha.koenig/p/AI/AGENTS"; + # url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; + # flake = false; + # }; + agents = { - # url = "path:/home/sascha.koenig/p/AI/AGENTS"; - url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; + url = "path:/home/sascha.koenig/p/AI/AGENTS"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + skills-anthropic = { + url = "github:anthropics/skills"; flake = false; }; + zugferd-service = { url = "git+https://git.az-gruppe.com/AZ-Intec-GmbH/zugferd-service"; }; diff --git a/home/common/default.nix b/home/common/default.nix index eaafa62..e615050 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -23,7 +23,7 @@ # Add stable as an overlay for home-manager (final: _prev: { stable = import inputs.nixpkgs { - system = final.system; + system = final.stdenv.hostPlatform.system; config.allowUnfree = true; }; }) diff --git a/home/features/cli/secrets.nix b/home/features/cli/secrets.nix index 57a55d3..a4a7578 100644 --- a/home/features/cli/secrets.nix +++ b/home/features/cli/secrets.nix @@ -12,6 +12,9 @@ in { config = mkIf cfg.enable { programs.password-store = { enable = true; + settings = { + PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store"; + }; package = pkgs.pass-wayland.withExtensions (exts: [exts.pass-otp exts.pass-import]); diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 050f2b8..143b5b4 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -1,29 +1,35 @@ -{inputs, ...}: { - xdg.configFile = { - "opencode/commands" = { - source = "${inputs.agents}/commands"; - recursive = true; - }; - "opencode/context" = { - source = "${inputs.agents}/context"; - recursive = true; - }; - "opencode/prompts" = { - source = "${inputs.agents}/prompts"; - recursive = true; - }; - "opencode/skills" = { - source = "${inputs.agents}/skills"; - recursive = true; - }; +{ + inputs, + system, + ... +}: let + pkgs = inputs.nixpkgs.legacyPackages.${system}; +in { + xdg.configFile."opencode/skills".source = inputs.agents.lib.mkOpencodeSkills { + inherit pkgs; + customSkills = "${inputs.agents}/skills"; + externalSkills = [ + # Include all skills from anthropics/skills + { + src = inputs.skills-anthropic; + selectSkills = ["claude-api"]; + } + # Or cherry-pick specific skills: + # { src = inputs.skills-anthropic; selectSkills = [ "mcp-builder" ]; } + ]; }; + # Other config — symlinked directly + xdg.configFile."opencode/context".source = "${inputs.agents}/context"; + xdg.configFile."opencode/commands".source = "${inputs.agents}/commands"; + xdg.configFile."opencode/prompts".source = "${inputs.agents}/prompts"; + programs.opencode = { enable = true; enableMcpIntegration = true; settings = { theme = "opencode"; - plugin = ["oh-my-opencode" "opencode-beads"]; + plugin = ["oh-my-opencode"]; agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agents/agents.json"); formatter = { alejandra = { diff --git a/home/features/desktop/theme.nix b/home/features/desktop/theme.nix index fc8915d..961df9a 100644 --- a/home/features/desktop/theme.nix +++ b/home/features/desktop/theme.nix @@ -1,4 +1,5 @@ { + config, inputs, pkgs, ... @@ -10,7 +11,7 @@ }; gtk = { enable = true; - gtk4.theme = { + theme = { name = "Dracula"; package = pkgs.dracula-theme; }; @@ -18,5 +19,6 @@ name = "Dracula"; package = pkgs.dracula-icon-theme; }; + gtk4.theme = config.gtk.theme; }; } diff --git a/home/users/sascha.koenig/AZLT124-L.nix b/home/users/sascha.koenig/AZLT124-L.nix index 2e3d993..828e658 100644 --- a/home/users/sascha.koenig/AZLT124-L.nix +++ b/home/users/sascha.koenig/AZLT124-L.nix @@ -20,6 +20,7 @@ in { { xdg = { enable = true; + userDirs.setSessionVariables = true; configFile."mimeapps.list".force = true; mimeApps = { enable = true; diff --git a/home/users/sascha.koenig/home.nix b/home/users/sascha.koenig/home.nix index 2e6857a..1b3cc7f 100644 --- a/home/users/sascha.koenig/home.nix +++ b/home/users/sascha.koenig/home.nix @@ -45,6 +45,7 @@ programs.git = { enable = true; + signing.format = null; settings = { user = { name = "sascha.koenig"; @@ -104,6 +105,7 @@ home.sessionVariables = { # EDITOR = "emacs"; }; + programs.ssh = { enable = true; enableDefaultConfig = false; diff --git a/hosts/AZLT124-L/default.nix b/hosts/AZLT124-L/default.nix index 8b5c9d5..68bbc5b 100644 --- a/hosts/AZLT124-L/default.nix +++ b/hosts/AZLT124-L/default.nix @@ -59,7 +59,7 @@ # Add stable as an overlay since base is unstable (final: _prev: { stable = import inputs.nixpkgs { - system = final.system; + system = final.stdenv.hostPlatform.system; config.allowUnfree = true; }; }) diff --git a/overlays/default.nix b/overlays/default.nix index 5ea6071..e997b27 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -3,7 +3,7 @@ additions = final: prev: (import ../pkgs {pkgs = final;}) // { - zugferd-service = inputs.zugferd-service.packages.${prev.system}.default; + zugferd-service = inputs.zugferd-service.packages.${prev.stdenv.hostPlatform.system}.default; }; # This one contains whatever you want to overlay @@ -21,13 +21,13 @@ stable-packages = final: _prev: { stable = import inputs.nixpkgs { - system = final.system; + system = final.stdenv.hostPlatform.system; config.allowUnfree = true; }; }; unstable-packages = final: _prev: { unstable = import inputs.nixpkgs-unstable { - system = final.system; + system = final.stdenv.hostPlatform.system; config.allowUnfree = true; }; }; diff --git a/secrets/kestra-secrets.age b/secrets/kestra-secrets.age index 49c0ebf..e66cf53 100644 --- a/secrets/kestra-secrets.age +++ b/secrets/kestra-secrets.age @@ -1,32 +1,32 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyA4ZTQ0 -UmZkazc5ZFVuVmNaKzVvR2ZTN3Z4cnhhNXp4MThJcTNjbjI4bHpVCkxaTm0yYTU4 -VVVKcVpkVTFrNmJITUhCVlRzeXU4bVVkYU83MEQ0MFFMMVEKLT4gc3NoLWVkMjU1 -MTkgU3JIYXFBIC9NTXlnc0hQSkU5QW56MzkvUTI2REZmejJaTGhUQmJrWjNTR2pl -SG9OaDAKdXJ1aTB1cDFTRHNxNG1aME1TcGFwVGJCWHN2bUdHYmY0aEZ2ZEcwbk8x -MAotPiBzc2gtZWQyNTUxOSBsR3FWWmcgQnBsdG9RbnhFYnJuaFF4NFY0bXlZb0xm -bnVOV0JUclFnTjhKUldEVFhnVQpHSEVzb04wRlYvU0tsQ3d6eTk4SGRBWlI4SUo2 -aEkzRTE2TUNMTzJyOXpNCi0+IHNzaC1lZDI1NTE5IENTTXloZyBtVGE5UndnM3ly -UWkzTzNIdlJqYkRIcUxPaUJ6aGE5NWV2U2RBbmlLU21RCmg4NzhwK0ozcDNYUit1 -cjhOVzhFd3oyT1YrNHZHZVlDRytsZEg1d1Y4ZU0KLT4gfVktZ3JlYXNlIHUKVUF2 -Vmd3d0JpSFF5bEltcWJRdW5LakRZR08ydEQrR1FpWVR5a1Z4TlpiemtCd3VOS3R5 -MnJYWkVDYW15OWVGNgphVjRPS2RBM1dwbFlCcm5iQ1VJMgotLS0gQXRlSE5zZlhM -VjdhKy9McTlCV01Tb0ZkV0ZXUC91bzNJaTZjODI2SkpBWQqQrrMJdObhL7I15AoB -rse0GEIcaggYn44VhEQXH5z5lWdb7LJ73uOSc097cy0Pdg9XULIXmpNIuV+HLCxG -maiIFymrbi43T8hVsYBMOWsYTYYyhIjJnakmrONnaATf29lv58CW8bXl9YNc0xKB -QHtkqwfRMVbY6v02/v2eqR39OdV79iuYzV2wZiaJhSn1st+mKW0fOfgB9rxsvTUF -MqXv5S8Z54Ub62I7GscD0Vfp4DPTgCMgeEMsWCB+C4qHvrpe27MlHsqs9wDpiiBU -Llfnzg+DPO+9pNnR8BvdYgupkHGjufDVB1c94J3RSxZPhShxNGCj8ovWzfwEziMz -L7tLHlcN6DZEUYAMD9Ce5l7LNAsT+epbPLsW76ZKuzE4kOGkr76itpSKZSGotfFk -82ULIUHgzAJZu5NtmOL2up1C9GRKWXbZpKi6ghqUBBMDkiPTfQpgMDlbuFKwuuC6 -0eDcCc3HbhiteYUSqJ3nvorNer/mzx9lsg4EIBrf3vBK9LmO44SPCzqqaO/L9f0i -rZm0UebSi5O3JT5lHbrH71drcNuNMS31H1APO4qUtBzoUsjMJMq89Fd3wISLIZ3/ -XjMmAcgKf8P6z3y504QQKTiJhZzKazuwvdEo+DV9eC7PO/kZh1l7ympLZ+RBavB1 -JALE3feoZsPbBm+CcxRNMqzL5yF6yOV93uxgsLPJ4QTwaMa9dhT5BJHaYBRNcFE/ -8Dgy8OJ5yeHJ3J/xmjSh66qezamQQYEototbe91ZJXOAyxhvYlbfTKJTYNgdEi0z -qzqfVD0OHp47rhlvhfrImXsbdetTOtFGwN7ZFso6MSaRUc4V1xZbF1tUXKzaGpxk -1Opldj/EdxZZXwuMHSuivejN3WZKAuxclIFqZbCInis6D2YLhkU+n0qU1nuc5Vjr -gUkIjUCG2iXY5CykJPscVhGiRIlhuXwKV+thIaxFKdeZnuTDFfamVtn3u6Gmd7+4 -nWL9fLWC8a3KwSkJT6TAelbdJjTmsdpixB7sed/BHgsXRsO6qjJoUGbiVTF/g+s+ -D5Lo3/ZxVXiflWjiTCrTmi2c +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBOMjhu +Qis2Zm9sMnJBSG5WRmUrbHlibkNJU29FSnBoVDg0QWZYU2dCbW5BCng2Ukc5amJp +T0V2TEFDSnJWK21kdDQ3WWJNSmhVT000ZUdRNmY1MUNnTUUKLT4gc3NoLWVkMjU1 +MTkgU3JIYXFBIGNxU1BMVUEvTStTUE91THBPTzAzMEtMWFJGUnU5VVNhUU5neFhs +dC9vVTQKZkJaYWJubEh4M0FZK09WelRJUGdLNEcrK2hrYjRabi9zTzgwU1N2dm1y +ZwotPiBzc2gtZWQyNTUxOSBsR3FWWmcgQXlkbDdZMU96VFRNc1cwOUZUNWFEY0ln +cW5TRkxEYjFnZTlqcTdpaFFIVQpMTUhNLzhKdUREdGxQQmJKanE2UHR2RElES294 +UkNoWG0xYk9XSHVhdFh3Ci0+IHNzaC1lZDI1NTE5IENTTXloZyBnaklaS0FtVTNS +WlRNMllEVHhVbHJVdDVmb0xhUG9kbjZFeDF4NE5mWkdvCi9pSkIrQ29SWUdMUEkz +RGxzSnJzNU9XaXNlR1kvaC9GZjZxdjhpbUNheFUKLT4gJW5aVS1ncmVhc2UgKi4g +Jn1hYjYscVsgfmMuKWx4V3AgRCZ1VkE/dVwKNE85RW5MdThyN29hY3pGUFFPdzVo +T2w5N0ZVSktodDhYeUlNY3U1cVZ2NWEzN3FacFc0Z2pxekUwMVNPZlRubgp3RXlv +U2xYeFUydwotLS0gMFpFVDhuWGJUc1lGcFRTeGw3QU1Dbk5JcHkyWGhJU2R5bTFt +ZkJnQnlaOAr/tWaezrRSqKKofd2Si/8xBW8PfwGOcR7UDG3JBAXt3Fg0tQmGGJKv +32ZN2uoV2Vdc6KegRzCPdE2Qu/DB2eyfdg4vQTON7RleiZNahqZU8jVijgJpchWD +Pmi/sUBCIAjv3X0xAQyC/FBkTuX+18QiA/Si08NcFZ7OEqxBGn/zqvN4h7o9JM0U +81GLh2rIsbOLmy5bXzEIFLjiK6foXlYCjcaHcT0pXTQ5r3TEMdSxq78sFs6RF9Eu +x3/cMw50tD8HbJE0CD7ybWR8z099zweGkjDxYvaNFHu00JdY6Hb1FCrBuSyvwqzH +0ANoyiNCZdMhy1riggpjy0BdYZKKWRxmbz22kL4ZpP6ztZlFdgjStqYGRMdc+3Mo +10P4ebgs9RU1G0R30lHgoyA3oQtYl+t8Gf8R6QihoCuhHZpmohIG85Rsl+kxjwz0 +pttBjD4CCRKv3iOXAkX3tC2z1FDipR597Zn24IM9/DpEFrvnloFRhZESJofFgIe7 +7+EpjRlZTEo31DbT2VJhPCgJr+poby+wy/VfAAHdaWucGBPtfUvIVYteyqA7BPSo +dVUckv3LEBiFO/YPviz95ktdH0ztPfn9/hfRfD2mZw+RD/oDIV5ABGtqPJ/icBlj +AcE7nSRRUEk4jjPWMxNcX/sGzVaFeBZR2jppmUfPOoQl6k5QfoS198uT0vzCCj9A +9xjmeot//7iuV7Va9Tzg8mgoAa3kdZbrmbibQUo0wtc6fbH2wDGm9pgFHCoKpGqv +B8+8FiZ8G3lA5AFzKRrpN/z8he5abp34hz98DlHCvFF0jfq7JF7bYeCcdMzpTiDl +HJWSK9YkD/1i2TtJw1rO4eN6AqtnaZ7eWFxTIG8v3Oia5RLpJLRFur8dy/sG9ayc +Oj+JFPc8LkD2ium6SvpEhXjPLuOdEZ4WFf1Q73zyd/VCfuligDbBhJCtpgliakga +HXkZqG2QeUQOPC0OaFNxc5Ras31+V9XP2xB/BhfRTwd0pmqw6k4skHeNbGubBFEB +hirD25EGY1ZSLtSaLkX0 -----END AGE ENCRYPTED FILE-----