Compare commits
104 Commits
master
...
extend-git
Author | SHA1 | Date | |
---|---|---|---|
![]() |
05231c84e8 | ||
74c188012a | |||
e0c741427e | |||
999a173001 | |||
330a64d820 | |||
2e2f5dd373 | |||
5561dde31d | |||
c3ae60d71b | |||
1c79209e23 | |||
6d1db1ee67 | |||
88d462764f | |||
8f634d9bb0 | |||
3e35210e4b | |||
04f4d330a8 | |||
ce60e53b9a | |||
3ff9f974a6 | |||
11e9ad5eca | |||
bf99a64b89 | |||
3b43562841 | |||
131e43e975 | |||
e34a9957e3 | |||
ea1a0b72b5 | |||
aab9ed0d35 | |||
f477370e4c | |||
b5fc8cfd4e | |||
4fdaacf8ad | |||
f1705686b8 | |||
0d0fa8b37f | |||
b5b39d1500 | |||
86482e922c | |||
111c69b368 | |||
60c13d34a7 | |||
823d064ab0 | |||
3f88d750c6 | |||
05f29ba01e | |||
2b11bac1eb | |||
86adc38537 | |||
b787289b39 | |||
63f3b8e89b | |||
448b8007ca | |||
9fc4119275 | |||
8f1332797d | |||
368184e24f | |||
c8e73d3f76 | |||
43da4955b7 | |||
46e9d5f758 | |||
66a012b555 | |||
fff965ab9b | |||
406adde549 | |||
c9b2699c9f | |||
f91d3e35f3 | |||
4712ba9f2d | |||
03b2f2a433 | |||
51b1a6e679 | |||
f148e5a580 | |||
079f945f38 | |||
29cc7e4676 | |||
11c97fd4c0 | |||
a5cb989c59 | |||
3d77a7cbc9 | |||
8e7401955f | |||
fa605768e7 | |||
3c279edd31 | |||
a736d6d77b | |||
8ad118162e | |||
5c13bb20d7 | |||
170d36fc05 | |||
b828edf3c7 | |||
e10dfaefe9 | |||
49e1a85afb | |||
56dfe8baa8 | |||
95685fe91f | |||
8f6b4cc551 | |||
89c9733ed2 | |||
ec29ec76f0 | |||
0f97e3d7ed | |||
6fb5cedd69 | |||
0382af1fae | |||
b24b68a6bd | |||
952da0f314 | |||
cb32dc99cd | |||
5e7a05c183 | |||
656b478cc0 | |||
fbbc0eb294 | |||
502c9d1db3 | |||
36934eedfd | |||
56f982e214 | |||
54c4cd53b3 | |||
1c4fc335b3 | |||
21d3f41b38 | |||
031ce236f3 | |||
a4eb073918 | |||
75ae868bde | |||
b6d9d58a14 | |||
14a5b8d9f2 | |||
ede68b563e | |||
33f4db254d | |||
6e8cb1bbb2 | |||
b00fb22137 | |||
4d74c2ede6 | |||
c4c5a640ce | |||
514fbca3f1 | |||
71a19e247f | |||
![]() |
bcab89dbfb |
@@ -3,6 +3,7 @@ keys:
|
||||
- &user_lappy_colin age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g
|
||||
- &user_servo_colin age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu
|
||||
- &user_moby_colin age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9
|
||||
- &host_crappy age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj
|
||||
- &host_desko age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v
|
||||
- &host_lappy age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn
|
||||
- &host_servo age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf
|
||||
@@ -15,6 +16,7 @@ creation_rules:
|
||||
- *user_lappy_colin
|
||||
- *user_servo_colin
|
||||
- *user_moby_colin
|
||||
- *host_crappy
|
||||
- *host_desko
|
||||
- *host_lappy
|
||||
- *host_servo
|
||||
|
25
README.md
25
README.md
@@ -2,6 +2,8 @@
|
||||
|
||||
# .❄️≡We|_c0m3 7o m`/ f14k≡❄️.
|
||||
|
||||
(er, it's not a flake anymore. welcome to my nix files.)
|
||||
|
||||
## What's Here
|
||||
|
||||
this is the top-level repo from which i configure/deploy all my NixOS machines:
|
||||
@@ -29,11 +31,7 @@ you might specifically be interested in these files (elaborated further in #key-
|
||||
|
||||
## Using This Repo In Your Own Config
|
||||
|
||||
this should be a pretty "standard" flake. just reference it, and import either
|
||||
- `nixosModules.sane` (for the modules)
|
||||
- `overlays.pkgs` (for the packages)
|
||||
|
||||
or follow the instructions [here][NUR] to use it via the Nix User Repositories.
|
||||
follow the instructions [here][NUR] to access my packages through the Nix User Repositories.
|
||||
|
||||
[NUR]: https://nur.nix-community.org/
|
||||
|
||||
@@ -41,19 +39,15 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
|
||||
- `doc/`
|
||||
- instructions for tasks i find myself doing semi-occasionally in this repo.
|
||||
- `hosts/`
|
||||
- the bulk of config which isn't factored with external use in mind.
|
||||
- configs which aren't factored with external use in mind.
|
||||
- that is, if you were to add this repo to a flake.nix for your own use,
|
||||
you won't likely be depending on anything in this directory.
|
||||
- `integrations/`
|
||||
- code intended for consumption by external tools (e.g. the Nix User Repos)
|
||||
- code intended for consumption by external tools (e.g. the Nix User Repos).
|
||||
- `modules/`
|
||||
- config which is gated behind `enable` flags, in similar style to nixpkgs'
|
||||
`nixos/` directory.
|
||||
- if you depend on this repo, it's most likely for something in this directory.
|
||||
- `nixpatches/`
|
||||
- literally, diffs i apply atop upstream nixpkgs before performing further eval.
|
||||
- config which is gated behind `enable` flags, in similar style to nixpkgs' `nixos/` directory.
|
||||
- if you depend on this repo for anything besides packages, it's most likely for something in this directory.
|
||||
- `overlays/`
|
||||
- exposed via the `overlays` output in `flake.nix`.
|
||||
- predominantly a list of `callPackage` directives.
|
||||
- `pkgs/`
|
||||
- derivations for things not yet packaged in nixpkgs.
|
||||
@@ -61,13 +55,12 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
|
||||
- inline code for wholly custom packages (e.g. `pkgs/additional/sane-scripts/` for CLI tools
|
||||
that are highly specific to my setup).
|
||||
- `scripts/`
|
||||
- scripts which aren't reachable on a deployed system, but may aid manual deployments
|
||||
- scripts which aren't reachable on a deployed system, but may aid manual deployments.
|
||||
- `secrets/`
|
||||
- encrypted keys, API tokens, anything which one or more of my machines needs
|
||||
read access to but shouldn't be world-readable.
|
||||
- not much to see here
|
||||
- not much to see here.
|
||||
- `templates/`
|
||||
- exposed via the `templates` output in `flake.nix`.
|
||||
- used to instantiate short-lived environments.
|
||||
- used to auto-fill the boiler-plate portions of new packages.
|
||||
|
||||
|
8
TODO.md
8
TODO.md
@@ -2,7 +2,6 @@
|
||||
- `rmDbusServices` may break sandboxing
|
||||
- e.g. if the package ships a systemd unit which references $out, then make-sandboxed won't properly update that unit.
|
||||
- `rmDbusServicesInPlace` is not affected
|
||||
- moby: touchscreen input is still enabled when screen is off
|
||||
- when moby wlan is explicitly set down (via ip link set wlan0 down), /var/lib/trust-dns/dhcp-configs doesn't get reset
|
||||
- `ip monitor` can detect those manual link state changes (NM-dispatcher it seems cannot)
|
||||
- or try dnsmasq?
|
||||
@@ -78,15 +77,11 @@
|
||||
- it adds like 50-70ms launch time _on my laptop_. i'd hate to know how much that is on the pinephone.
|
||||
- make dconf stuff less monolithic
|
||||
- i.e. per-app dconf profiles for those which need it. possible static config.
|
||||
- flatpak/spectrum has some stuff to proxy dconf per-app
|
||||
- canaries for important services
|
||||
- e.g. daily email checks; daily backup checks
|
||||
- integrate `nix check` into Gitea actions?
|
||||
|
||||
#### sudo-free world
|
||||
- `systemctl restart FOO`: needs `sudo`
|
||||
- `systemctl daemon-reload`: needs sudo
|
||||
- `watch ifconfig`: needs `SANEBOX_DISABLE=1`
|
||||
|
||||
### user experience
|
||||
- rofi: sort items case-insensitively
|
||||
- xdg-desktop-portal shouldn't kill children on exit
|
||||
@@ -103,6 +98,7 @@
|
||||
- Gnome Highscore (retro games)?: <https://gitlab.gnome.org/World/highscore>
|
||||
- better maps for mobile (Osmin (QtQuick)? Pure Maps (Qt/Kirigami)?
|
||||
- note-taking app: <https://linuxphoneapps.org/categories/note-taking/>
|
||||
- Folio is nice, uses standard markdown, though it only supports flat repos
|
||||
- OSK overlay specifically for mobile gaming
|
||||
- i.e. mock joysticks, for use with SuperTux and SuperTuxKart
|
||||
- install mobile-friendly games:
|
||||
|
61
default.nix
61
default.nix
@@ -3,7 +3,60 @@
|
||||
#
|
||||
# the primary purpose of this file is so i can run `updateScript`s which expect
|
||||
# the root to be `default.nix`
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
pkgs.appendOverlays [
|
||||
(import ./overlays/all.nix)
|
||||
]
|
||||
{ }:
|
||||
let
|
||||
mkPkgs = args: (import ./pkgs/additional/nixpkgs args).extend
|
||||
(import ./overlays/all.nix);
|
||||
inherit (mkPkgs {}) lib;
|
||||
|
||||
evalHost = { name, system, branch ? "master", variant ? null }:
|
||||
let
|
||||
pkgs = mkPkgs { inherit system; variant = branch; };
|
||||
in pkgs.nixos (
|
||||
[
|
||||
(lib.optionalAttrs (variant == "light") {
|
||||
sane.maxBuildCost = 2;
|
||||
})
|
||||
(lib.optionalAttrs (variant == "min") {
|
||||
sane.maxBuildCost = 0;
|
||||
})
|
||||
(import ./hosts/instantiate.nix { hostName = name; })
|
||||
(import ./modules)
|
||||
pkgs.sops-nix.nixosModules.sops
|
||||
]
|
||||
);
|
||||
mkFlavoredHost = args: let
|
||||
host = evalHost args;
|
||||
# expose the toplevel nixos system as the toplevel attribute itself,
|
||||
# with nested aliases for other common build targets
|
||||
in host.config.system.build.toplevel.overrideAttrs (base: {
|
||||
passthru = (base.passthru or {}) // {
|
||||
img = host.config.system.build.img;
|
||||
pkgs = host.config.system.build.pkgs;
|
||||
programs = lib.mapAttrs (_: p: p.package) host.config.sane.programs;
|
||||
toplevel = host.config.system.build.toplevel; #< self
|
||||
};
|
||||
});
|
||||
mkHost = args: {
|
||||
"${args.name}" = mkFlavoredHost args;
|
||||
"${args.name}-next" = mkFlavoredHost args // { branch = "staging-next"; };
|
||||
"${args.name}-staging" = mkFlavoredHost args // { branch = "staging"; };
|
||||
"${args.name}-light" = mkFlavoredHost args // { variant = "light"; };
|
||||
"${args.name}-light-next" = mkFlavoredHost args // { variant = "light"; branch = "staging-next"; };
|
||||
"${args.name}-light-staging" = mkFlavoredHost args // { variant = "light"; branch = "staging"; };
|
||||
"${args.name}-min" = mkFlavoredHost args // { variant = "min"; };
|
||||
"${args.name}-min-next" = mkFlavoredHost args // { variant = "min"; branch = "staging-next"; };
|
||||
"${args.name}-min-staging" = mkFlavoredHost args // { variant = "min"; branch = "staging-staging"; };
|
||||
};
|
||||
|
||||
hosts = lib.foldl' (acc: host: acc // (mkHost host)) {} [
|
||||
{ name = "crappy"; system = "armv7l-linux"; }
|
||||
{ name = "desko"; system = "x86_64-linux"; }
|
||||
{ name = "lappy"; system = "x86_64-linux"; }
|
||||
{ name = "moby"; system = "aarch64-linux"; }
|
||||
{ name = "rescue"; system = "x86_64-linux"; }
|
||||
{ name = "servo"; system = "x86_64-linux"; }
|
||||
];
|
||||
in (mkPkgs {}) // {
|
||||
inherit hosts;
|
||||
}
|
||||
|
25
doc/adding-a-host.md
Normal file
25
doc/adding-a-host.md
Normal file
@@ -0,0 +1,25 @@
|
||||
to add a host:
|
||||
- create the new nix targets
|
||||
- hosts/by-name/HOST
|
||||
- let the toplevel (flake.nix) know about HOST
|
||||
- build and flash an image
|
||||
- optionally expand the rootfs
|
||||
- `cfdisk /dev/sda2` -> resize partition
|
||||
- `mount /dev/sda2 boot`
|
||||
- `btrfs filesystem resize max root`
|
||||
- setup required persistent directories
|
||||
- `mkdir -p root/persist/private`
|
||||
- `gocryptfs -init root/persist/private`
|
||||
- then boot the device, and for every dangling symlink in ~/.local/share, ~/.cache, do `mkdir -p` on it
|
||||
- setup host ssh
|
||||
- `mkdir -p root/persist/plaintext/etc/ssh/host_keys`
|
||||
- boot the machine and let it create its own ssh keys
|
||||
- add the pubkey to `hosts/common/hosts.nix`
|
||||
- setup user ssh
|
||||
- `ssh-keygen`. don't enter any password; it's stored in a password-encrypted fs.
|
||||
- add the pubkey to `hosts/common/hosts.nix`
|
||||
- allow the new host to view secrets
|
||||
- instructions in hosts/common/secrets.nix
|
||||
- run `ssh-to-age` on user/host pubkeys
|
||||
- add age key to .sops.yaml
|
||||
- update encrypted secrets: `sops updatekeys path/to/secret.yaml`
|
12
doc/recovery.md
Normal file
12
doc/recovery.md
Normal file
@@ -0,0 +1,12 @@
|
||||
## deploying to SD card
|
||||
- build a toplevel config: `nix build '.#hostSystems.moby'`
|
||||
- mount a system:
|
||||
- `mkdir -p root/{nix,boot}`
|
||||
- `mount /dev/sdX1 root/boot`
|
||||
- `mount /dev/sdX2 root/nix`
|
||||
- copy the config:
|
||||
- `sudo nix copy --no-check-sigs --to root/ $(readlink result)`
|
||||
- nix will copy stuff to `root/nix/store`
|
||||
- install the boot files:
|
||||
- `sudo /nix/store/sbwpwngjlgw4f736ay9hgi69pj3fdwk5-extlinux-conf-builder.sh -d ./root/boot -t 5 -c $(readlink ./result)`
|
||||
- extlinux-conf-builder can be found in `/run/current-system/bin/switch-to-configuration`
|
586
flake.nix
586
flake.nix
@@ -1,586 +0,0 @@
|
||||
# FLAKE FEEDBACK:
|
||||
# - if flake inputs are meant to be human-readable, a human should be able to easily track them down given the URL.
|
||||
# - this is not the case with registry URLs, like `nixpkgs/nixos-22.11`.
|
||||
# - this is marginally the case with schemes like `github:nixos/nixpkgs`.
|
||||
# - given the *existing* `git+https://` scheme, i propose expressing github URLs similarly:
|
||||
# - `github+https://github.com/nixos/nixpkgs/tree/nixos-22.11`
|
||||
# - this would allow for the same optimizations as today's `github:nixos/nixpkgs`, but without obscuring the source.
|
||||
# a code reader could view the source being referenced simply by clicking the https:// portion of that URI.
|
||||
# - need some way to apply local patches to inputs.
|
||||
#
|
||||
#
|
||||
# DEVELOPMENT DOCS:
|
||||
# - Flake docs: <https://nixos.wiki/wiki/Flakes>
|
||||
# - Flake RFC: <https://github.com/tweag/rfcs/blob/flakes/rfcs/0049-flakes.md>
|
||||
# - Discussion: <https://github.com/NixOS/rfcs/pull/49>
|
||||
# - <https://serokell.io/blog/practical-nix-flakes>
|
||||
#
|
||||
#
|
||||
# COMMON OPERATIONS:
|
||||
# - update a specific flake input:
|
||||
# - `nix flake lock --update-input nixpkgs`
|
||||
|
||||
{
|
||||
outputs = {
|
||||
self,
|
||||
}@inputs:
|
||||
let
|
||||
inherit (builtins) attrNames elem listToAttrs map mapAttrs;
|
||||
# redefine some nixpkgs `lib` functions to avoid the infinite recursion
|
||||
# of if we tried to use patched `nixpkgs.lib` as part of the patching process.
|
||||
mapAttrs' = f: set:
|
||||
listToAttrs (map (attr: f attr set.${attr}) (attrNames set));
|
||||
optionalAttrs = cond: attrs: if cond then attrs else {};
|
||||
# mapAttrs but without the `name` argument
|
||||
mapAttrValues = f: mapAttrs (_: f);
|
||||
|
||||
nixpkgs' = import ./pkgs/additional/nixpkgs;
|
||||
nixpkgsUnpatched = nixpkgs' { doPatch = false; localSystem = "x86_64-linux"; };
|
||||
nixpkgsCompiledBy = { system, variant ? "master" }:
|
||||
(nixpkgs' { inherit variant system; }).legacyPackages."${system}";
|
||||
|
||||
evalHost = { name, local, target, variant ? null, nixpkgs ? nixpkgs' { localSystem = local; system = target;} }: nixpkgs.nixos (
|
||||
[
|
||||
(optionalAttrs (variant == "light") {
|
||||
sane.maxBuildCost = 2;
|
||||
})
|
||||
(optionalAttrs (variant == "min") {
|
||||
sane.maxBuildCost = 0;
|
||||
})
|
||||
(import ./hosts/instantiate.nix { hostName = name; })
|
||||
(import ./modules)
|
||||
(nixpkgs.appendOverlays [ self.overlays.pkgs ]).sops-nix.nixosModules.sops
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
self.overlays.sane-all
|
||||
];
|
||||
}
|
||||
]
|
||||
);
|
||||
in {
|
||||
nixosConfigurations = let
|
||||
hosts = {
|
||||
servo = { name = "servo"; local = "x86_64-linux"; target = "x86_64-linux"; };
|
||||
desko = { name = "desko"; local = "x86_64-linux"; target = "x86_64-linux"; };
|
||||
desko-light = { name = "desko"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "light"; };
|
||||
lappy = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; };
|
||||
lappy-light = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "light"; };
|
||||
lappy-min = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "min"; };
|
||||
moby = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; };
|
||||
moby-light = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; variant = "light"; };
|
||||
moby-min = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; variant = "min"; };
|
||||
# crappy is technically armv7a, and armv7l uses only a _subset_ of the available ISA.
|
||||
# but it's not as widely cached.
|
||||
crappy = { name = "crappy"; local = "x86_64-linux"; target = "armv7l-linux"; };
|
||||
crappy-min = { name = "crappy"; local = "x86_64-linux"; target = "armv7l-linux"; variant = "min"; };
|
||||
crappy-7a = { name = "crappy"; local = "x86_64-linux"; target = "armv7a-linux"; variant = "min"; };
|
||||
rescue = { name = "rescue"; local = "x86_64-linux"; target = "x86_64-linux"; };
|
||||
};
|
||||
hostsNext = mapAttrs' (h: v: {
|
||||
name = "${h}-next";
|
||||
value = v // {
|
||||
nixpkgs = nixpkgs' {
|
||||
localSystem = v.local;
|
||||
system = v.target;
|
||||
variant = "staging-next";
|
||||
};
|
||||
};
|
||||
}) hosts;
|
||||
hostsStaging = mapAttrs' (h: v: {
|
||||
name = "${h}-staging";
|
||||
value = v // {
|
||||
nixpkgs = nixpkgs' {
|
||||
localSystem = v.local;
|
||||
system = v.target;
|
||||
variant = "staging";
|
||||
};
|
||||
};
|
||||
}) hosts;
|
||||
in mapAttrValues evalHost (
|
||||
hosts // hostsNext // hostsStaging
|
||||
);
|
||||
|
||||
# unofficial output
|
||||
# this produces a EFI-bootable .img file (GPT with a /boot partition and a system (/ or /nix) partition).
|
||||
# after building this:
|
||||
# - flash it to a bootable medium (SD card, flash drive, HDD)
|
||||
# - resize the root partition (use cfdisk)
|
||||
# - mount the part
|
||||
# - chown root:nixbld <part>/nix/store
|
||||
# - chown root:root -R <part>/nix/store/*
|
||||
# - chown root:root -R <part>/persist # if using impermanence
|
||||
# - populate any important things (persist/, home/colin/.ssh, etc)
|
||||
# - boot
|
||||
# - if fs wasn't resized automatically, then `sudo btrfs filesystem resize max /`
|
||||
# - checkout this flake into /etc/nixos AND UPDATE THE FS UUIDS.
|
||||
# - `nixos-rebuild --flake './#<host>' switch`
|
||||
imgs = mapAttrValues (host: host.config.system.build.img) self.nixosConfigurations;
|
||||
|
||||
# unofficial output
|
||||
hostConfigs = mapAttrValues (host: host.config) self.nixosConfigurations;
|
||||
hostSystems = mapAttrValues (host: host.config.system.build.toplevel) self.nixosConfigurations;
|
||||
hostPkgs = mapAttrValues (host: host.config.system.build.pkgs) self.nixosConfigurations;
|
||||
hostPrograms = mapAttrValues (host: mapAttrValues (p: p.package) host.config.sane.programs) self.nixosConfigurations;
|
||||
|
||||
overlays = {
|
||||
# N.B.: `nix flake check` requires every overlay to take `final: prev:` at defn site,
|
||||
# hence the weird redundancy.
|
||||
default = final: prev: self.overlays.pkgs final prev;
|
||||
sane-all = final: prev: import ./overlays/all.nix final prev;
|
||||
pkgs = final: prev: import ./overlays/pkgs.nix final prev;
|
||||
preferences = final: prev: import ./overlays/preferences.nix final prev;
|
||||
};
|
||||
|
||||
# this includes both our native packages and all the nixpkgs packages.
|
||||
legacyPackages =
|
||||
let
|
||||
allPkgsFor = variant: additionalOverlays: system:
|
||||
(nixpkgs' { inherit system variant; localSystem = "x86_64-linux"; })
|
||||
.appendOverlays (
|
||||
[
|
||||
self.overlays.pkgs
|
||||
] ++ additionalOverlays
|
||||
);
|
||||
allPkgsFor' = system: allPkgsFor
|
||||
"master"
|
||||
[(self: super: {
|
||||
# build `pkgsNext.FOO` to build the package FOO from nixpkgs staging-next branch
|
||||
pkgsNext = allPkgsFor "staging-next" [] system;
|
||||
pkgsStaging = allPkgsFor "staging" [] system;
|
||||
})]
|
||||
system
|
||||
;
|
||||
in {
|
||||
x86_64-linux = allPkgsFor' "x86_64-linux";
|
||||
aarch64-linux = allPkgsFor' "aarch64-linux";
|
||||
};
|
||||
|
||||
# extract only our own packages from the full set.
|
||||
# because of `nix flake check`, we flatten the package set and only surface x86_64-linux packages.
|
||||
packages = mapAttrs
|
||||
(system: passthruPkgs: passthruPkgs.lib.filterAttrs
|
||||
(name: pkg:
|
||||
# keep only packages which will pass `nix flake check`, i.e. keep only:
|
||||
# - derivations (not package sets)
|
||||
# - packages that build for the given platform
|
||||
(! elem name [ "feeds" "pythonPackagesExtensions" ])
|
||||
&& (passthruPkgs.lib.meta.availableOn passthruPkgs.stdenv.hostPlatform pkg)
|
||||
)
|
||||
(
|
||||
import ./pkgs { pkgs = passthruPkgs; }
|
||||
)
|
||||
)
|
||||
# self.legacyPackages;
|
||||
{
|
||||
x86_64-linux = nixpkgs' { localSystem = "x86_64-linux"; };
|
||||
}
|
||||
;
|
||||
|
||||
apps."x86_64-linux" =
|
||||
let
|
||||
pkgs = self.legacyPackages."x86_64-linux";
|
||||
sanePkgs = import ./pkgs { inherit pkgs; };
|
||||
deployScript = host: addr: action: pkgs.writeShellScript "deploy-${host}" ''
|
||||
set -e
|
||||
|
||||
host="${host}"
|
||||
addr="${addr}"
|
||||
action="${if action != null then action else ""}"
|
||||
runOnTarget() {
|
||||
# run the command ($@) on the machine we're deploying to.
|
||||
# if that's a remote machine, then do it via ssh, else local shell.
|
||||
if [ -n "$addr" ]; then
|
||||
ssh "$addr" "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --out-link "./build/result-$host" "$@"
|
||||
storePath="$(readlink ./build/result-$host)"
|
||||
|
||||
# mimic `nixos-rebuild --target-host`, in effect:
|
||||
# - nix-copy-closure ...
|
||||
# - nix-env --set ...
|
||||
# - switch-to-configuration <boot|dry-activate|switch|test|>
|
||||
# avoid the actual `nixos-rebuild` for a few reasons:
|
||||
# - fewer nix evals
|
||||
# - more introspectability and debuggability
|
||||
# - sandbox friendliness (especially: `git` doesn't have to be run as root)
|
||||
|
||||
if [ -n "$addr" ]; then
|
||||
sudo nix store sign -r -k /run/secrets/nix_signing_key "$storePath"
|
||||
# add more `-v` for more verbosity (up to 5).
|
||||
# builders-use-substitutes false: optimizes so that the remote machine doesn't try to get paths from its substituters.
|
||||
# we already have all paths here, and the remote substitution is slow to check and SERIOUSLY flaky on moby in particular.
|
||||
nix copy -vv --option builders-use-substitutes false --to "ssh-ng://$addr" "$storePath"
|
||||
fi
|
||||
|
||||
if [ -n "$action" ]; then
|
||||
runOnTarget sudo nix-env -p /nix/var/nix/profiles/system --set "$storePath"
|
||||
runOnTarget sudo "$storePath/bin/switch-to-configuration" "$action"
|
||||
fi
|
||||
'';
|
||||
deployApp = host: addr: action: {
|
||||
type = "app";
|
||||
program = ''${deployScript host addr action}'';
|
||||
};
|
||||
|
||||
# pkg updating.
|
||||
# a cleaner alternative lives here: <https://discourse.nixos.org/t/how-can-i-run-the-updatescript-of-personal-packages/25274/2>
|
||||
# mkUpdater :: [ String ] -> { type = "app"; program = path; }
|
||||
mkUpdater = attrPath: {
|
||||
type = "app";
|
||||
program = let
|
||||
pkg = pkgs.lib.getAttrFromPath attrPath sanePkgs;
|
||||
strAttrPath = pkgs.lib.concatStringsSep "." attrPath;
|
||||
commandArgv = pkg.updateScript.command or pkg.updateScript;
|
||||
command = pkgs.lib.escapeShellArgs commandArgv;
|
||||
in builtins.toString (pkgs.writeShellScript "update-${strAttrPath}" ''
|
||||
set -x
|
||||
env UPDATE_NIX_NAME=${pkg.name} UPDATE_NIX_PNAME=${pkg.pname} UPDATE_NIX_OLD_VERSION=${pkg.version} UPDATE_NIX_ATTR_PATH=${strAttrPath} ${command}
|
||||
'');
|
||||
};
|
||||
mkUpdatersNoAliases = opts: basePath: pkgs.lib.concatMapAttrs
|
||||
(name: pkg:
|
||||
if pkg.recurseForDerivations or false then {
|
||||
"${name}" = mkUpdaters opts (basePath ++ [ name ]);
|
||||
} else if pkg.updateScript or null != null then {
|
||||
"${name}" = mkUpdater (basePath ++ [ name ]);
|
||||
} else {}
|
||||
)
|
||||
(pkgs.lib.getAttrFromPath basePath sanePkgs);
|
||||
mkUpdaters = { ignore ? [], flakePrefix ? [] }@opts: basePath:
|
||||
let
|
||||
updaters = mkUpdatersNoAliases opts basePath;
|
||||
invokeUpdater = name: pkg:
|
||||
let
|
||||
fullPath = basePath ++ [ name ];
|
||||
doUpdateByDefault = !builtins.elem fullPath ignore;
|
||||
|
||||
# in case `name` has a `.` in it, we have to quote it
|
||||
escapedPath = builtins.map (p: ''"${p}"'') fullPath;
|
||||
updatePath = builtins.concatStringsSep "." (flakePrefix ++ escapedPath);
|
||||
in pkgs.lib.optionalString doUpdateByDefault (
|
||||
pkgs.lib.escapeShellArgs [
|
||||
"nix" "run" ".#${updatePath}"
|
||||
]
|
||||
);
|
||||
in {
|
||||
type = "app";
|
||||
# top-level app just invokes the updater of everything one layer below it
|
||||
program = builtins.toString (pkgs.writeShellScript
|
||||
(builtins.concatStringsSep "-" (flakePrefix ++ basePath))
|
||||
(builtins.concatStringsSep
|
||||
"\n"
|
||||
(pkgs.lib.mapAttrsToList invokeUpdater updaters)
|
||||
)
|
||||
);
|
||||
} // updaters;
|
||||
in {
|
||||
help = {
|
||||
type = "app";
|
||||
program = let
|
||||
helpMsg = builtins.toFile "nixos-config-help-message" ''
|
||||
commands:
|
||||
- `nix run '.#help'`
|
||||
- show this message
|
||||
- `nix run '.#update.pkgs'`
|
||||
- updates every package
|
||||
- `nix run '.#update.feeds'`
|
||||
- updates metadata for all feeds
|
||||
- `nix run '.#init-feed' <url>`
|
||||
- `nix run '.#deploy.{desko,lappy,moby,servo}[-light|-test]' [nix args ...]`
|
||||
- build and deploy the host
|
||||
- `nix run '.#preDeploy.{desko,lappy,moby,servo}[-light]' [nix args ...]`
|
||||
- copy closures to a host, but don't activate it
|
||||
- or `nix run '.#preDeploy'` to target all hosts
|
||||
- `nix run '.#check'`
|
||||
- make sure all systems build; NUR evaluates
|
||||
- `nix run '.#bench'`
|
||||
- benchmark the eval time of common targets this flake provides
|
||||
|
||||
specific build targets of interest:
|
||||
- `nix build '.#imgs.rescue'`
|
||||
'';
|
||||
in builtins.toString (pkgs.writeShellScript "nixos-config-help" ''
|
||||
cat ${helpMsg}
|
||||
echo ""
|
||||
echo "complete flake structure:"
|
||||
nix flake show --option allow-import-from-derivation true
|
||||
'');
|
||||
};
|
||||
# wrangle some names to get package updaters which refer back into the flake, but also conditionally ignore certain paths (e.g. sane.feeds).
|
||||
# TODO: better design
|
||||
update = rec {
|
||||
_impl.pkgs.sane = mkUpdaters { flakePrefix = [ "update" "_impl" "pkgs" ]; ignore = [ [ "sane" "feeds" ] ]; } [ "sane" ];
|
||||
pkgs = _impl.pkgs.sane;
|
||||
_impl.feeds.sane.feeds = mkUpdaters { flakePrefix = [ "update" "_impl" "feeds" ]; } [ "sane" "feeds" ];
|
||||
feeds = _impl.feeds.sane.feeds;
|
||||
};
|
||||
|
||||
init-feed = {
|
||||
type = "app";
|
||||
program = "${pkgs.feeds.init-feed}";
|
||||
};
|
||||
|
||||
deploy = {
|
||||
desko = deployApp "desko" "desko" "switch";
|
||||
desko-light = deployApp "desko-light" "desko" "switch";
|
||||
lappy = deployApp "lappy" "lappy" "switch";
|
||||
lappy-light = deployApp "lappy-light" "lappy" "switch";
|
||||
lappy-min = deployApp "lappy-min" "lappy" "switch";
|
||||
moby = deployApp "moby" "moby" "switch";
|
||||
moby-light = deployApp "moby-light" "moby" "switch";
|
||||
moby-min = deployApp "moby-min" "moby" "switch";
|
||||
moby-test = deployApp "moby" "moby" "test";
|
||||
servo = deployApp "servo" "servo" "switch";
|
||||
|
||||
# like `nixos-rebuild --flake . switch`
|
||||
self = deployApp "$(hostname)" "" "switch";
|
||||
self-light = deployApp "$(hostname)-light" "" "switch";
|
||||
self-min = deployApp "$(hostname)-min" "" "switch";
|
||||
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "deploy-all" ''
|
||||
nix run '.#deploy.lappy'
|
||||
nix run '.#deploy.moby'
|
||||
nix run '.#deploy.desko'
|
||||
nix run '.#deploy.servo'
|
||||
'');
|
||||
};
|
||||
preDeploy = {
|
||||
# build the host and copy the runtime closure to that host, but don't activate it.
|
||||
desko = deployApp "desko" "desko" null;
|
||||
desko-light = deployApp "desko-light" "desko" null;
|
||||
lappy = deployApp "lappy" "lappy" null;
|
||||
lappy-light = deployApp "lappy-light" "lappy" null;
|
||||
lappy-min = deployApp "lappy-min" "lappy" null;
|
||||
moby = deployApp "moby" "moby" null;
|
||||
moby-light = deployApp "moby-light" "moby" null;
|
||||
moby-min = deployApp "moby-min" "moby" null;
|
||||
servo = deployApp "servo" "servo" null;
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "predeploy-all" ''
|
||||
# copy the -min/-light variants first; this might be run while waiting on a full build. or the full build failed.
|
||||
nix run '.#preDeploy.moby-min' -- "$@"
|
||||
nix run '.#preDeploy.lappy-min' -- "$@"
|
||||
nix run '.#preDeploy.moby-light' -- "$@"
|
||||
nix run '.#preDeploy.lappy-light' -- "$@"
|
||||
nix run '.#preDeploy.desko-light' -- "$@"
|
||||
nix run '.#preDeploy.lappy' -- "$@"
|
||||
nix run '.#preDeploy.servo' -- "$@"
|
||||
nix run '.#preDeploy.moby' -- "$@"
|
||||
nix run '.#preDeploy.desko' -- "$@"
|
||||
'');
|
||||
};
|
||||
|
||||
sync = {
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "sync-all" ''
|
||||
RC_lappy=$(nix run '.#sync.lappy' -- "$@")
|
||||
RC_moby=$(nix run '.#sync.moby' -- "$@")
|
||||
RC_desko=$(nix run '.#sync.desko' -- "$@")
|
||||
|
||||
echo "lappy: $RC_lappy"
|
||||
echo "moby: $RC_moby"
|
||||
echo "desko: $RC_desko"
|
||||
'');
|
||||
};
|
||||
|
||||
sync.desko = {
|
||||
# copy music from servo to desko
|
||||
# can run this from any device that has ssh access to desko and servo
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "sync-to-desko" ''
|
||||
sudo mount /mnt/desko/home
|
||||
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compat /mnt/servo/media/Music /mnt/desko/home/Music "$@"
|
||||
'');
|
||||
};
|
||||
|
||||
sync.lappy = {
|
||||
# copy music from servo to lappy
|
||||
# can run this from any device that has ssh access to lappy and servo
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "sync-to-lappy" ''
|
||||
sudo mount /mnt/lappy/home
|
||||
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compress --compat /mnt/servo/media/Music /mnt/lappy/home/Music "$@"
|
||||
'');
|
||||
};
|
||||
|
||||
sync.moby = {
|
||||
# copy music from servo to moby
|
||||
# can run this from any device that has ssh access to moby and servo
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "sync-to-moby" ''
|
||||
sudo mount /mnt/moby/home
|
||||
sudo mount /mnt/desko/home
|
||||
sudo mount /mnt/servo/media/Books
|
||||
# copy photos/screenshots from moby to desko:
|
||||
${pkgs.rsync}/bin/rsync -arv --exclude servo-macros /mnt/moby/home/Pictures/ /mnt/desko/home/Pictures/moby/
|
||||
# copy books from servo to moby; delete old/untracked ones, but keep KOreader state files (sdr)
|
||||
${pkgs.rsync}/bin/rsync -arv --delete --exclude unprocessed --exclude '*.sdr' /mnt/servo/media/Books/ /mnt/moby/home/Books/local/servo/
|
||||
# N.B.: limited by network/disk -> reduce job count to improve pause/resume behavior
|
||||
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compress --compat --jobs 4 /mnt/servo/media/Music /mnt/moby/home/Music "$@"
|
||||
'');
|
||||
};
|
||||
|
||||
check = {
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "check-all" ''
|
||||
nix run '.#check.nur'
|
||||
RC0=$?
|
||||
nix run '.#check.hostConfigs'
|
||||
RC1=$?
|
||||
nix run '.#check.rescue'
|
||||
RC2=$?
|
||||
echo "nur: $RC0"
|
||||
echo "hostConfigs: $RC1"
|
||||
echo "rescue: $RC2"
|
||||
exit $(($RC0 | $RC1 | $RC2))
|
||||
'');
|
||||
};
|
||||
|
||||
check.nur = {
|
||||
# `nix run '.#check-nur'`
|
||||
# validates that my repo can be included in the Nix User Repository
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "check-nur" ''
|
||||
cd ${./.}/integrations/nur
|
||||
NIX_PATH= NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-env -f . -qa \* --meta --xml \
|
||||
--allowed-uris https://static.rust-lang.org \
|
||||
--option restrict-eval true \
|
||||
--option allow-import-from-derivation true \
|
||||
--drv-path --show-trace \
|
||||
-I nixpkgs=${nixpkgsUnpatched} \
|
||||
-I nixpkgs-overlays=${./.}/hosts/common/nix/overlay \
|
||||
-I ../../ \
|
||||
| tee # tee to prevent interactive mode
|
||||
'');
|
||||
};
|
||||
|
||||
check.hostConfigs = {
|
||||
type = "app";
|
||||
program = let
|
||||
checkHost = host: let
|
||||
shellHost = pkgs.lib.replaceStrings [ "-" ] [ "_" ] host;
|
||||
in ''
|
||||
nix build -v '.#nixosConfigurations.${host}.config.system.build.toplevel' --out-link ./build/result-${host} -j2 "$@"
|
||||
RC_${shellHost}=$?
|
||||
'';
|
||||
in builtins.toString (pkgs.writeShellScript
|
||||
"check-host-configs"
|
||||
''
|
||||
# build minimally-usable hosts first, then their full image.
|
||||
# this gives me a minimal image i can deploy or copy over, early.
|
||||
${checkHost "lappy-min"}
|
||||
${checkHost "moby-min"}
|
||||
|
||||
${checkHost "desko-light"}
|
||||
${checkHost "moby-light"}
|
||||
${checkHost "lappy-light"}
|
||||
|
||||
${checkHost "desko"}
|
||||
${checkHost "lappy"}
|
||||
${checkHost "servo"}
|
||||
${checkHost "moby"}
|
||||
${checkHost "rescue"}
|
||||
|
||||
# still want to build the -light variants first so as to avoid multiple simultaneous webkitgtk builds
|
||||
${checkHost "desko-light-next"}
|
||||
${checkHost "moby-light-next"}
|
||||
|
||||
${checkHost "desko-next"}
|
||||
${checkHost "lappy-next"}
|
||||
${checkHost "servo-next"}
|
||||
${checkHost "moby-next"}
|
||||
${checkHost "rescue-next"}
|
||||
|
||||
echo "desko: $RC_desko"
|
||||
echo "lappy: $RC_lappy"
|
||||
echo "servo: $RC_servo"
|
||||
echo "moby: $RC_moby"
|
||||
echo "rescue: $RC_rescue"
|
||||
|
||||
echo "desko-next: $RC_desko_next"
|
||||
echo "lappy-next: $RC_lappy_next"
|
||||
echo "servo-next: $RC_servo_next"
|
||||
echo "moby-next: $RC_moby_next"
|
||||
echo "rescue-next: $RC_rescue_next"
|
||||
|
||||
# i don't really care if the -next hosts fail. i build them mostly to keep the cache fresh/ready
|
||||
exit $(($RC_desko | $RC_lappy | $RC_servo | $RC_moby | $RC_rescue))
|
||||
''
|
||||
);
|
||||
};
|
||||
|
||||
check.rescue = {
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "check-rescue" ''
|
||||
nix build -v '.#imgs.rescue' --out-link ./build/result-rescue-img -j2
|
||||
'');
|
||||
};
|
||||
|
||||
bench = {
|
||||
type = "app";
|
||||
program = builtins.toString (pkgs.writeShellScript "bench" ''
|
||||
doBench() {
|
||||
attrPath="$1"
|
||||
shift
|
||||
echo -n "benchmarking eval of '$attrPath'... "
|
||||
/run/current-system/sw/bin/time -f "%e sec" -o /dev/stdout \
|
||||
nix eval --no-eval-cache --quiet --raw ".#$attrPath" --apply 'result: if result != null then "" else "unexpected null"' $@ 2> /dev/null
|
||||
}
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
doBench "$@"
|
||||
else
|
||||
doBench hostConfigs
|
||||
doBench hostConfigs.lappy
|
||||
doBench hostConfigs.lappy.sane.programs
|
||||
doBench hostConfigs.lappy.sane.users.colin
|
||||
doBench hostConfigs.lappy.sane.fs
|
||||
doBench hostConfigs.lappy.environment.systemPackages
|
||||
fi
|
||||
'');
|
||||
};
|
||||
};
|
||||
|
||||
templates = {
|
||||
env.python-data = {
|
||||
# initialize with:
|
||||
# - `nix flake init -t '/home/colin/dev/nixos/#env.python-data'`
|
||||
# then enter with:
|
||||
# - `nix develop`
|
||||
path = ./templates/env/python-data;
|
||||
description = "python environment for data processing";
|
||||
};
|
||||
|
||||
pkgs.make = {
|
||||
# initialize with:
|
||||
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.make'`
|
||||
path = ./templates/pkgs/make;
|
||||
description = "default Makefile-based derivation";
|
||||
};
|
||||
pkgs.python = {
|
||||
# initialize with:
|
||||
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.python'`
|
||||
path = ./templates/pkgs/python;
|
||||
description = "python package";
|
||||
};
|
||||
pkgs.rust-inline = {
|
||||
# initialize with:
|
||||
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.rust-inline'`
|
||||
path = ./templates/pkgs/rust-inline;
|
||||
description = "rust package and development environment (inline rust sources)";
|
||||
};
|
||||
pkgs.rust = {
|
||||
# initialize with:
|
||||
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.rust'`
|
||||
path = ./templates/pkgs/rust;
|
||||
description = "rust package fit to ship in nixpkgs";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -12,6 +12,7 @@
|
||||
|
||||
users.users.colin.initialPassword = "147147";
|
||||
sane.programs.sway.enableFor.user.colin = true;
|
||||
|
||||
sane.programs.calls.enableFor.user.colin = false;
|
||||
sane.programs.consoleMediaUtils.enableFor.user.colin = true;
|
||||
sane.programs.epiphany.enableFor.user.colin = true;
|
||||
@@ -21,6 +22,12 @@
|
||||
sane.programs.signal-desktop.enableFor.user.colin = false;
|
||||
sane.programs.wike.enableFor.user.colin = true;
|
||||
|
||||
sane.programs.dino.config.autostart = false;
|
||||
sane.programs.dissent.config.autostart = false;
|
||||
sane.programs.fractal.config.autostart = false;
|
||||
|
||||
# sane.programs.guiApps.enableFor.user.colin = false;
|
||||
|
||||
# sane.programs.pcGuiApps.enableFor.user.colin = false; #< errors!
|
||||
|
||||
sane.programs.blueberry.enableFor.user.colin = false; # bluetooth manager: doesn't cross compile!
|
||||
|
@@ -50,9 +50,15 @@
|
||||
ENABLE_CAPTCHA = true;
|
||||
NOREPLY_ADDRESS = "noreply.anonymous.git@uninsane.org";
|
||||
};
|
||||
session.COOKIE_SECURE = true;
|
||||
session = {
|
||||
COOKIE_SECURE = true;
|
||||
# keep me logged in for 30 days
|
||||
SESSION_LIFE_TIME = 60 * 60 * 24 * 30;
|
||||
};
|
||||
repository = {
|
||||
DEFAULT_BRANCH = "master";
|
||||
ENABLE_PUSH_CREATE_USER = true;
|
||||
ENABLE_PUSH_CREATE_ORG = true;
|
||||
};
|
||||
other = {
|
||||
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;
|
||||
|
@@ -39,8 +39,8 @@
|
||||
boot.loader.grub.enable = lib.mkDefault false;
|
||||
boot.loader.generic-extlinux-compatible.enable = lib.mkDefault true;
|
||||
|
||||
# non-free firmware
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.enableAllFirmware = true; # firmware with licenses that don't allow for redistribution. fuck lawyers, fuck IP, give me the goddamn firmware.
|
||||
# hardware.enableRedistributableFirmware = true; # proprietary but free-to-distribute firmware (extraneous to `enableAllFirmware` option)
|
||||
|
||||
# default is 252274, which is too low particularly for servo.
|
||||
# manifests as spurious "No space left on device" when trying to install watches,
|
||||
|
@@ -9,7 +9,7 @@
|
||||
./ids.nix
|
||||
./machine-id.nix
|
||||
./net
|
||||
./nix
|
||||
./nix.nix
|
||||
./persist.nix
|
||||
./polyunfill.nix
|
||||
./programs
|
||||
|
@@ -195,6 +195,7 @@ let
|
||||
(fromDb "weekinethereumnews.com" // tech)
|
||||
(fromDb "willow.phantoma.online") # wizard@xyzzy.link
|
||||
(fromDb "xn--gckvb8fzb.com" // tech)
|
||||
(fromDb "xorvoid.com" // tech)
|
||||
(mkSubstack "astralcodexten" // rat // daily) # Scott Alexander
|
||||
(mkSubstack "eliqian" // rat // weekly)
|
||||
(mkSubstack "oversharing" // pol // daily)
|
||||
@@ -238,7 +239,7 @@ let
|
||||
(fromDb "youtube.com/@TomScottGo")
|
||||
(fromDb "youtube.com/@Vihart")
|
||||
(fromDb "youtube.com/@Vox")
|
||||
(fromDb "youtube.com/@Vsauce")
|
||||
# (fromDb "youtube.com/@Vsauce") # they're all like 1-minute long videos now? what happened @Vsauce?
|
||||
|
||||
# (fromDb "youtube.com/@rossmanngroup" // pol // tech) # Louis Rossmann
|
||||
];
|
||||
|
@@ -216,6 +216,7 @@ lib.mkMerge [
|
||||
programs.fuse.userAllowOther = true; #< necessary for `allow_other` or `allow_root` options.
|
||||
}
|
||||
|
||||
(remoteHome "crappy")
|
||||
(remoteHome "desko")
|
||||
(remoteHome "lappy")
|
||||
(remoteHome "moby")
|
||||
|
@@ -2,6 +2,14 @@
|
||||
|
||||
{
|
||||
# TODO: this should be populated per-host
|
||||
sane.hosts.by-name."crappy" = {
|
||||
ssh.user_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMIvSQAGKqmymXIL4La9B00LPxBIqWAr5AsJxk3UQeY5";
|
||||
ssh.host_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMN0cpRAloCBOE5/2wuzgik35iNDv5KLceWMCVaa7DIQ";
|
||||
# wg-home.pubkey = "TODO";
|
||||
# wg-home.ip = "10.0.10.55";
|
||||
lan-ip = "10.78.79.55";
|
||||
};
|
||||
|
||||
sane.hosts.by-name."desko" = {
|
||||
ssh.user_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU5GlsSfbaarMvDA20bxpSZGWviEzXGD8gtrIowc1pX";
|
||||
ssh.host_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFw9NoRaYrM6LbDd3aFBc4yyBlxGQn8HjeHd/dZ3CfHk";
|
||||
|
@@ -59,14 +59,18 @@
|
||||
# note the import starts at repo root: this allows `./overlay/default.nix` to access the stuff at the root
|
||||
# "nixpkgs-overlays=${../../..}/hosts/common/nix-path/overlay"
|
||||
# as long as my system itself doesn't rely on NIXPKGS at runtime, we can point the overlays to git
|
||||
# to avoid switching so much during development
|
||||
"nixpkgs-overlays=/home/colin/dev/nixos/hosts/common/nix/overlay"
|
||||
# to avoid `switch`ing so much during development.
|
||||
# TODO: it would be nice to remove this someday!
|
||||
# it's an impurity that touches way more than i need and tends to cause hard-to-debug eval issues
|
||||
# when it goes wrong. should i port my `nix-shell` scripts to something more tailored to my uses
|
||||
# and then delete `nixpkgs-overlays`?
|
||||
"nixpkgs-overlays=/home/colin/dev/nixos/integrations/nixpkgs/nixpkgs-overlays.nix"
|
||||
];
|
||||
|
||||
# ensure new deployments have a source of this repo with which they can bootstrap.
|
||||
# this however changes on every commit and can be slow to copy for e.g. `moby`.
|
||||
environment.etc."nixos" = lib.mkIf (config.sane.maxBuildCost >= 3) {
|
||||
source = ../../..;
|
||||
source = ../..;
|
||||
};
|
||||
environment.etc."nix/registry.json" = lib.mkIf (config.sane.maxBuildCost < 3) {
|
||||
enable = false;
|
@@ -1,4 +0,0 @@
|
||||
# XXX: NIX_PATH=...:nixpkgs-overlays=... will import every overlay in the directory
|
||||
# so we prefer to give it a directory with just this *one* overlay, otherwise it imports conflicting overlays
|
||||
# and gets stuck in a loop until it OOMs
|
||||
import ../../../../overlays/all.nix
|
@@ -50,6 +50,7 @@ in
|
||||
"fd"
|
||||
"file"
|
||||
"forkstat" # monitor every spawned/forked process
|
||||
"free"
|
||||
# "fwupd"
|
||||
"gawk"
|
||||
"gdb" # to debug segfaults
|
||||
@@ -84,6 +85,7 @@ in
|
||||
"parted"
|
||||
"pciutils"
|
||||
"powertop"
|
||||
"ps"
|
||||
"pstree"
|
||||
"ripgrep"
|
||||
"s6-rc" # service manager
|
||||
@@ -97,6 +99,7 @@ in
|
||||
"usbutils" # lsusb
|
||||
"util-linux" # lsblk, lscpu, etc
|
||||
"valgrind"
|
||||
"watch"
|
||||
"wget"
|
||||
"wirelesstools" # iwlist
|
||||
# "xq" # jq for XML
|
||||
@@ -294,6 +297,7 @@ in
|
||||
"loupe" # image viewer
|
||||
"mate.engrampa" # archive manager
|
||||
"mepo" # maps viewer
|
||||
"mesa-demos" # for eglinfo, glxinfo & other testing tools
|
||||
"mpv"
|
||||
"networkmanagerapplet" # for nm-connection-editor: it's better than not having any gui!
|
||||
"ntfy-sh" # notification service
|
||||
@@ -355,7 +359,7 @@ in
|
||||
"gnome.gnome-disk-utility"
|
||||
"gnome.nautilus" # file browser
|
||||
# "gnome.totem" # video player, supposedly supports UPnP
|
||||
"handbrake"
|
||||
# "handbrake" #< TODO: fix build
|
||||
"inkscape"
|
||||
# "jellyfin-media-player"
|
||||
"kdenlive"
|
||||
@@ -815,6 +819,8 @@ in
|
||||
mercurial.sandbox.net = "clearnet";
|
||||
mercurial.sandbox.whitelistPwd = true;
|
||||
|
||||
mesa-demos = {};
|
||||
|
||||
# actual monero blockchain (not wallet/etc; safe to delete, just slow to regenerate)
|
||||
monero-gui.buildCost = 1;
|
||||
# XXX: is it really safe to persist this? it doesn't have info that could de-anonymize if captured?
|
||||
@@ -1117,6 +1123,8 @@ in
|
||||
"tmp"
|
||||
];
|
||||
|
||||
watch.sandbox.enable = false; #< it executes the command it's given
|
||||
|
||||
wdisplays.sandbox.method = "bwrap";
|
||||
wdisplays.sandbox.whitelistWayland = true;
|
||||
|
||||
|
@@ -45,6 +45,7 @@
|
||||
./flare-signal.nix
|
||||
./fontconfig.nix
|
||||
./fractal.nix
|
||||
./free.nix
|
||||
./frozen-bubble.nix
|
||||
./fwupd.nix
|
||||
./g4music.nix
|
||||
@@ -101,6 +102,7 @@
|
||||
./planify.nix
|
||||
./portfolio-filemanager.nix
|
||||
./playerctl.nix
|
||||
./ps.nix
|
||||
./rhythmbox.nix
|
||||
./ripgrep.nix
|
||||
./rofi
|
||||
@@ -130,6 +132,7 @@
|
||||
./swayidle.nix
|
||||
./swaylock.nix
|
||||
./swaynotificationcenter
|
||||
./switchboard.nix
|
||||
./sysvol.nix
|
||||
./tangram.nix
|
||||
./tor-browser.nix
|
||||
|
9
hosts/common/programs/free.nix
Normal file
9
hosts/common/programs/free.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
sane.programs.free = {
|
||||
packageUnwrapped = pkgs.linkIntoOwnPackage pkgs.procps "bin/free";
|
||||
sandbox.method = "bwrap";
|
||||
sandbox.isolatePids = false;
|
||||
};
|
||||
}
|
||||
|
@@ -135,65 +135,54 @@ let
|
||||
'cycle_key = "c"' 'cycle_key = "v"'
|
||||
'';
|
||||
});
|
||||
mpv-unwrapped = pkgs.mpv-unwrapped.overrideAttrs (upstream: {
|
||||
version = "0.37.0-unstable-2024-03-31";
|
||||
src = lib.warnIf (lib.versionOlder "0.37.0" upstream.version) "mpv outdated; remove patch?" pkgs.fetchFromGitHub {
|
||||
owner = "mpv-player";
|
||||
repo = "mpv";
|
||||
rev = "4ce4bf1795e6dfd6f1ddf07fb348ce5d191ab1dc";
|
||||
hash = "sha256-nOGuHq7SWDAygROV7qHtezDv1AsMpseImI8TVd3F+Oc=";
|
||||
};
|
||||
patches = [];
|
||||
});
|
||||
in
|
||||
{
|
||||
sane.programs.mpv = {
|
||||
packageUnwrapped = pkgs.wrapMpv
|
||||
(mpv-unwrapped.override rec {
|
||||
packageUnwrapped = pkgs.mpv-unwrapped.wrapper {
|
||||
mpv = pkgs.mpv-unwrapped.override rec {
|
||||
# N.B.: populating `self` to `luajit` is necessary for the resulting `lua.withPackages` function to preserve my override.
|
||||
# i use enable52Compat in order to get `table.unpack`.
|
||||
# i think using `luajit` here instead of `lua` is optional, just i get better perf with it :)
|
||||
lua = pkgs.luajit.override { enable52Compat = true; self = lua; };
|
||||
})
|
||||
{
|
||||
scripts = [
|
||||
pkgs.mpvScripts.mpris
|
||||
pkgs.mpvScripts.mpv-playlistmanager
|
||||
pkgs.mpvScripts.mpv-webm
|
||||
uosc
|
||||
visualizer
|
||||
# pkgs.mpv-uosc-latest
|
||||
];
|
||||
# extraMakeWrapperArgs = lib.optionals (cfg.config.vo != null) [
|
||||
# # 2023/08/29: fixes an error where mpv on moby launches with the message
|
||||
# # "DRM_IOCTL_MODE_CREATE_DUMB failed: Cannot allocate memory"
|
||||
# # audio still works, and controls, screenshotting, etc -- just not the actual rendering
|
||||
# #
|
||||
# # this is likely a regression for mpv 0.36.0.
|
||||
# # the actual error message *appears* to come from the mesa library, but it's tough to trace.
|
||||
# #
|
||||
# # 2024/03/02: no longer necessary, with mesa 23.3.1: <https://github.com/NixOS/nixpkgs/pull/265740>
|
||||
# #
|
||||
# # backend compatibility (2023/10/22):
|
||||
# # run with `--vo=help` to see a list of all output options.
|
||||
# # non-exhaustive (W=works, F=fails, A=audio-only, U=audio+ui only (no video))
|
||||
# # ? null Null video output
|
||||
# # A (default)
|
||||
# # A dmabuf-wayland Wayland dmabuf video output
|
||||
# # A libmpv render API for libmpv (mpv plays the audio, but doesn't even render a window)
|
||||
# # A vdpau VDPAU with X11
|
||||
# # F drm Direct Rendering Manager (software scaling)
|
||||
# # F gpu-next Video output based on libplacebo
|
||||
# # F vaapi VA API with X11
|
||||
# # F x11 X11 (software scaling)
|
||||
# # F xv X11/Xv
|
||||
# # U gpu Shader-based GPU Renderer
|
||||
# # W caca libcaca (terminal rendering)
|
||||
# # W sdl SDL 2.0 Renderer
|
||||
# # W wlshm Wayland SHM video output (software scaling)
|
||||
# "--add-flags" "--vo=${cfg.config.vo}"
|
||||
# ];
|
||||
};
|
||||
scripts = [
|
||||
pkgs.mpvScripts.mpris
|
||||
pkgs.mpvScripts.mpv-playlistmanager
|
||||
pkgs.mpvScripts.mpv-webm
|
||||
uosc
|
||||
visualizer
|
||||
# pkgs.mpv-uosc-latest
|
||||
];
|
||||
# extraMakeWrapperArgs = lib.optionals (cfg.config.vo != null) [
|
||||
# # 2023/08/29: fixes an error where mpv on moby launches with the message
|
||||
# # "DRM_IOCTL_MODE_CREATE_DUMB failed: Cannot allocate memory"
|
||||
# # audio still works, and controls, screenshotting, etc -- just not the actual rendering
|
||||
# #
|
||||
# # this is likely a regression for mpv 0.36.0.
|
||||
# # the actual error message *appears* to come from the mesa library, but it's tough to trace.
|
||||
# #
|
||||
# # 2024/03/02: no longer necessary, with mesa 23.3.1: <https://github.com/NixOS/nixpkgs/pull/265740>
|
||||
# #
|
||||
# # backend compatibility (2023/10/22):
|
||||
# # run with `--vo=help` to see a list of all output options.
|
||||
# # non-exhaustive (W=works, F=fails, A=audio-only, U=audio+ui only (no video))
|
||||
# # ? null Null video output
|
||||
# # A (default)
|
||||
# # A dmabuf-wayland Wayland dmabuf video output
|
||||
# # A libmpv render API for libmpv (mpv plays the audio, but doesn't even render a window)
|
||||
# # A vdpau VDPAU with X11
|
||||
# # F drm Direct Rendering Manager (software scaling)
|
||||
# # F gpu-next Video output based on libplacebo
|
||||
# # F vaapi VA API with X11
|
||||
# # F x11 X11 (software scaling)
|
||||
# # F xv X11/Xv
|
||||
# # U gpu Shader-based GPU Renderer
|
||||
# # W caca libcaca (terminal rendering)
|
||||
# # W sdl SDL 2.0 Renderer
|
||||
# # W wlshm Wayland SHM video output (software scaling)
|
||||
# "--add-flags" "--vo=${cfg.config.vo}"
|
||||
# ];
|
||||
};
|
||||
|
||||
suggestedPrograms = [
|
||||
"blast-to-default"
|
||||
|
8
hosts/common/programs/ps.nix
Normal file
8
hosts/common/programs/ps.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
sane.programs.ps = {
|
||||
packageUnwrapped = pkgs.linkIntoOwnPackage pkgs.procps "bin/ps";
|
||||
sandbox.method = "bwrap";
|
||||
sandbox.isolatePids = false;
|
||||
};
|
||||
}
|
@@ -85,21 +85,38 @@ log() {
|
||||
|
||||
## HELPERS
|
||||
|
||||
isTouchOn() {
|
||||
# success if all touch inputs have their events enabled
|
||||
# swaySetOutput true|false
|
||||
# turns the display on or off
|
||||
swaySetOutput() {
|
||||
swaymsg -- output '*' power "$1"
|
||||
}
|
||||
# swaySetTouch enabled|disabled
|
||||
# turns touch input on or off
|
||||
swaySetTouch() {
|
||||
# XXX(2024/06/09): `type:touch` method is documented, but now silently fails
|
||||
# swaymsg -- input type:touch events "$1"
|
||||
|
||||
local inputs=$(swaymsg -t get_inputs --raw | jq '. | map(select(.type == "touch")) | map(.identifier) | join(" ")' --raw-output)
|
||||
for id in "${inputs[@]}"; do
|
||||
swaymsg -- input "$id" events "$1"
|
||||
done
|
||||
}
|
||||
|
||||
# success if all touch inputs have their events enabled
|
||||
swayGetTouch() {
|
||||
swaymsg -t get_inputs --raw \
|
||||
| jq --exit-status '. | map(select(.type == "touch")) | all(.libinput.send_events == "enabled")' \
|
||||
> /dev/null
|
||||
}
|
||||
isScreenOn() {
|
||||
# success if all outputs have power
|
||||
# success if all outputs have power
|
||||
swayGetOutput() {
|
||||
swaymsg -t get_outputs --raw \
|
||||
| jq --exit-status '. | all(.power)' \
|
||||
> /dev/null
|
||||
}
|
||||
|
||||
isAllOn() {
|
||||
isTouchOn && isScreenOn
|
||||
swayGetOutput && swayGetTouch
|
||||
}
|
||||
|
||||
isInhibited() {
|
||||
@@ -134,12 +151,12 @@ unmapped() {
|
||||
}
|
||||
|
||||
allOn() {
|
||||
swaymsg -- output '*' power true
|
||||
swaymsg -- input type:touch events enabled
|
||||
swaySetOutput true
|
||||
swaySetTouch enabled
|
||||
}
|
||||
allOff() {
|
||||
swaymsg -- output '*' power false
|
||||
swaymsg -- input type:touch events disabled
|
||||
swaySetOutput false
|
||||
swaySetTouch disabled
|
||||
}
|
||||
|
||||
toggleKeyboard() {
|
||||
|
@@ -161,6 +161,7 @@ in
|
||||
"sway-contrib.grimshot" # used by sway config
|
||||
"swayidle" # enable if you need it
|
||||
"swaynotificationcenter" # notification daemon
|
||||
"switchboard" # network/bluetooth/sound control panel
|
||||
"sysvol" # volume notifier
|
||||
"unl0kr" # greeter
|
||||
"waybar" # used by sway config
|
||||
|
@@ -44,7 +44,13 @@ let
|
||||
});
|
||||
screenOff = pkgs.writeShellScriptBin "screen-off" ''
|
||||
swaymsg -- output '*' power false
|
||||
swaymsg -- input type:touch events disabled
|
||||
# XXX(2024/06/09): `type:touch` method is documented, but now silently fails
|
||||
# swaymsg -- input type:touch events disabled
|
||||
|
||||
local inputs=$(swaymsg -t get_inputs --raw | jq '. | map(select(.type == "touch")) | map(.identifier) | join(" ")' --raw-output)
|
||||
for id in "''${inputs[@]}"; do
|
||||
swaymsg -- input "$id" events disabled
|
||||
done
|
||||
'';
|
||||
in
|
||||
{
|
||||
@@ -74,6 +80,11 @@ in
|
||||
command = lib.mkDefault "";
|
||||
};
|
||||
|
||||
suggestedPrograms = [
|
||||
"jq"
|
||||
# "sway" #< required, but circular dep
|
||||
];
|
||||
|
||||
sandbox.method = "bwrap";
|
||||
sandbox.whitelistDbus = [ "user" ]; #< might need system too, for inhibitors
|
||||
sandbox.whitelistS6 = true;
|
||||
|
27
hosts/common/programs/switchboard.nix
Normal file
27
hosts/common/programs/switchboard.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
sane.programs.switchboard = {
|
||||
packageUnwrapped = with pkgs.pantheon; switchboard-with-plugs.override {
|
||||
switchboardPlugs = [
|
||||
# switchboard-plug-a11y
|
||||
# switchboard-plug-about
|
||||
# switchboard-plug-applications
|
||||
switchboard-plug-bluetooth
|
||||
# switchboard-plug-datetime
|
||||
# switchboard-plug-display # could be handy, but crashes
|
||||
# switchboard-plug-keyboard
|
||||
# switchboard-plug-mouse-touchpad # changing settings here doesn't actually impact anything real
|
||||
switchboard-plug-network
|
||||
# switchboard-plug-notifications
|
||||
# switchboard-plug-onlineaccounts
|
||||
# switchboard-plug-pantheon-shell
|
||||
# switchboard-plug-power # needs to be "unlocked" before it can do anything (like change display brightness)
|
||||
# switchboard-plug-printers # requires cups
|
||||
# switchboard-plug-security-privacy
|
||||
# switchboard-plug-sharing
|
||||
switchboard-plug-sound
|
||||
# switchboard-plug-wacom
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@@ -7,6 +7,9 @@
|
||||
|
||||
fs.".config/sys64/volume.css".symlink.text = ''
|
||||
window {
|
||||
background: transparent;
|
||||
}
|
||||
window > box {
|
||||
background: #000000B4;
|
||||
border-radius: 19px;
|
||||
}
|
||||
@@ -58,12 +61,13 @@
|
||||
# options:
|
||||
# -p {0,1,2,3} to attach to top/right/bottom/left screen edge
|
||||
# -t N for the notifier to be dismissed after N seconds (integer only)
|
||||
# -T N reveal/hide transition time in milliseconds
|
||||
# -m N to set the indicator this many pixels in from the edge.
|
||||
# it considers sway bars, but not window titles
|
||||
# -{H,W} N to set the height/width of the notifier, in px.
|
||||
# -i N to set the size of the volume icon
|
||||
# -P to hide percentage text
|
||||
command = "sysvol -p 0 -t 1 -m 22 -H 39 -W 256 -i 32 -P";
|
||||
command = "sysvol -p 0 -t 1 -T 0 -m 22 -H 39 -W 256 -i 32 -P";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -15,6 +15,15 @@ let
|
||||
PATH=$PATH:$extraPath command -v "$1"
|
||||
}
|
||||
|
||||
# give some time for the framebuffer device to appear;
|
||||
# unl0kr depends on it but doesn't know to wait for it.
|
||||
for _ in $(seq 25); do
|
||||
if [ -e /dev/fb0 ]; then
|
||||
break
|
||||
fi
|
||||
sleep 0.2
|
||||
done
|
||||
|
||||
# TODO: make this more robust to failure.
|
||||
# - if `unl0kr` fails, then the second `redirect-tty` sends a newline to `login`, causing it to exit and the service fails.
|
||||
# - if `redirect-tty` fails, then... the service is left hanging.
|
||||
@@ -134,8 +143,6 @@ in
|
||||
# necessary for `sanebox` to be found. TODO: add this to every systemd service.
|
||||
"/run/current-system/sw" # `/bin` is appended
|
||||
];
|
||||
# needed to find sanebox profiles (TODO: add this to every service)
|
||||
environment.XDG_DATA_DIRS = "/run/current-system/sw/share";
|
||||
|
||||
serviceConfig.Type = "simple";
|
||||
serviceConfig.Restart = "always";
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[general]
|
||||
animations=false
|
||||
#backend=fbdev|drm
|
||||
#timeout=300
|
||||
# backend=fbdev|drm
|
||||
# timeout=300
|
||||
|
||||
[keyboard]
|
||||
autohide=false
|
||||
@@ -16,12 +16,14 @@ obscured=true
|
||||
default=breezy-light
|
||||
alternate=breezy-dark
|
||||
|
||||
#[input]
|
||||
#keyboard=false
|
||||
#pointer=false
|
||||
#touchscreen=false
|
||||
# [input]
|
||||
# keyboard=false
|
||||
# pointer=false
|
||||
# touchscreen=false
|
||||
|
||||
#[quirks]
|
||||
#fbdev_force_refresh=true
|
||||
#terminal_prevent_graphics_mode=true
|
||||
#terminal_allow_keyboard_input=true
|
||||
# [quirks]
|
||||
# fbdev_force_refresh=true
|
||||
# terminal_prevent_graphics_mode=true
|
||||
# TODO: terminal_allow_keyboard_input=true could be used to pipe my password
|
||||
# straight into `login`, instead of the more convoluted redirect approach??
|
||||
# terminal_allow_keyboard_input=true
|
||||
|
@@ -186,7 +186,7 @@ in
|
||||
};
|
||||
|
||||
function switch() {
|
||||
nix run '.#deploy.self'
|
||||
~/nixos/scripts/deploy "$@"
|
||||
}
|
||||
'';
|
||||
|
||||
|
@@ -7,9 +7,12 @@ let
|
||||
haltTimeout = 10;
|
||||
in
|
||||
{
|
||||
# allow ordinary users to `reboot` or `shutdown`.
|
||||
# source: <https://nixos.wiki/wiki/Polkit>
|
||||
security.polkit.extraConfig = ''
|
||||
/* allow ordinary users to:
|
||||
* - reboot
|
||||
* - shutdown
|
||||
* source: <https://nixos.wiki/wiki/Polkit>
|
||||
*/
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (
|
||||
subject.isInGroup("users")
|
||||
@@ -24,6 +27,19 @@ in
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
})
|
||||
|
||||
/* allow members of wheel to:
|
||||
* - systemctl daemon-reload
|
||||
* - systemctl stop|start|restart SERVICE
|
||||
*/
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (subject.isInGroup("wheel") && (
|
||||
action.id == "org.freedesktop.systemd1.reload-daemon" ||
|
||||
action.id == "org.freedesktop.systemd1.manage-units"
|
||||
)) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
})
|
||||
'';
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
|
@@ -22,6 +22,7 @@
|
||||
"media" # servo
|
||||
"networkmanager"
|
||||
"nixbuild"
|
||||
"render" # for crappy, /dev/dri/render*
|
||||
"seat" # for sway, if using seatd
|
||||
"systemd-journal" # allows to view other user's journals (esp system users)
|
||||
"transmission" # servo
|
||||
|
@@ -11,12 +11,12 @@ in
|
||||
# kernel compatibility (2024/05/22: 03dab630)
|
||||
# - linux-megous: boots to ssh, desktop
|
||||
# - camera apps: megapixels (no cameras found), snapshot (no cameras found)
|
||||
# - linux-postmarketos: boots to ssh. desktop ONLY if "anx7688" is in the initrd.availableKernelModules.
|
||||
# - linux-postmarketos-allwinner: boots to ssh. desktop ONLY if "anx7688" is in the initrd.availableKernelModules.
|
||||
# - camera apps: megapixels (both rear and front cameras work), `cam -l` (finds only the rear camera), snapshot (no cameras found)
|
||||
# - linux-megous.override { withMegiPinephoneConfig = true; }: NO SSH, NO SIGNS OF LIFE
|
||||
# - linux-megous.override { withFullConfig = false; }: boots to ssh, no desktop
|
||||
#
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-postmarketos.override {
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-postmarketos-allwinner.override {
|
||||
withModemPower = true;
|
||||
});
|
||||
# boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-megous;
|
||||
|
@@ -54,6 +54,29 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.sane.hal.samsung;
|
||||
# sus commits:
|
||||
# - ad3e33fe071dffea07279f96dab4f3773c430fe2 (drm/panel: Move AUX B116XW03 out of panel-edp back to panel-simple)
|
||||
# says i should switch to `edp-panel`; chrome is lying about the panel.
|
||||
# - discussion: <https://patchwork.freedesktop.org/patch/559389/>
|
||||
# - was tested for exynos5-peach -- which worked with the patch and uses panel_simple
|
||||
# - snow was *not* tested, but previously used panel_edp
|
||||
linuxSourceHashes = {
|
||||
"6.2.16" = "sha256-dC5lp45tU4JgHS8VWezLM/z8C8UMxaIdj5I2DleMv8c="; #< boots
|
||||
"6.3.13" = "sha256-bGNcuEYBHaY34OeGkqb58dXV+JF2XY3bpBtLhg634xA="; #< boots
|
||||
"6.4.16" = "sha256-hDhelVL20AMzQeT7IDVDI35uoGEyroVPjiszO2JZzO8="; #< boots
|
||||
"6.5.13" = "sha256-lCTwq+2RyZTIX1YQa/riHf1KCnS8dTrLlljjKAXudz4="; #< boots
|
||||
"6.6.0-rc1" = "sha256-DRai7HhWVtRB0GiRCvCv2JM2TFKRsZ60ohD6GW0b8As="; #< boots. upstream/torvalds' tag is `v6.6-rc1`
|
||||
"6.6.0-rc3" = "sha256-/YcuQ5UsSObqOZ0YIbcNex5HJAL8eneDDzIiTEuMDsQ=";
|
||||
"6.6.0-rc4" = "sha256-Kbv+jU2IoC4soT3ma1ZV8Un4rTQakNjut5nlA1907GQ="; #< boots. upstream/torvalds' tag is `v6.6-rc4`
|
||||
"6.6.0-rc5" = "sha256-ia0F/W3BR+gD8qE5LEwUcJCqwBs3c5kj80DbeDzFFqY=";
|
||||
"6.6.0-rc6" = "sha256-HIrn3fkoCqVSSJ0gxY6NO8I3M8P7BD5XzQpjrhdw//s="; #< boots. upstream/torvalds' tag is `v6.6-rc6`
|
||||
"6.6.0-rc6-bi-5188" = "sha256-TmRrPy2IhnvTVlq5bNhzsvNPgRg0qk1u2Mh3q/lBask="; #< boots
|
||||
"6.6.0-rc6-bi-5264" = "sha256-BXt5O9hUC9lYITBO56Rzb9XJHThjt6DuiXizUi2G6/0="; # *does not boot*. this is commit ad3e33fe071dffea07279f96dab4f3773c430fe2; actually 6.6.0-rc1, because of merge order
|
||||
"6.6.0-rc7" = "sha256-u+seQp82USt63zgMlvDRIpDmmWD2Pha5d41CorwY7f8="; #< *does not boot*. upstream/torvalds' tag is `v6.6-rc7`
|
||||
"6.6.0" = "sha256-iUTHPMbELhtRogbrKr3n2FBwj8mbGYGacy2UgjPZZNg="; #< *does not boot*. upstream/torvalds' tag is `v6.6`
|
||||
"6.7.12" = "sha256-6Fm7lC2bwk+wYYGeasr+6tcSw+n3VE4d9JWbc9jN6fA="; #< *does not boot*
|
||||
"6.10.0-rc3" = "sha256-k9Mpff96xgfTyjRMn0wOQBOm7NKZ7IDtJBRYwrnccoY="; #< *does not boot*. upstream/torvalds' tag is `v6.10-rc3`
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
@@ -64,6 +87,13 @@ in
|
||||
boot.initrd.compressor = "gzip";
|
||||
# boot.initrd.compressorArgs = [ "--ultra" "-22" ];
|
||||
|
||||
hardware.firmware = [
|
||||
(pkgs.linux-firmware.overrideAttrs (_: {
|
||||
# mwifiex_sdio seems to require uncompressed firmware (even with a kernel configured for CONFIG_MODULE_COMPRESS_ZSTD=y)
|
||||
passthru.compressFirmware = false;
|
||||
}))
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
# boot.initrd.kernelModules = [
|
||||
# from postmarketOS
|
||||
@@ -81,13 +111,58 @@ in
|
||||
# "sbs-charger"
|
||||
# "sbs-manager"
|
||||
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-postmarketos-exynos5;
|
||||
# boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_latest.override {
|
||||
# boot.kernelPackages = with pkgs; linuxPackagesFor (linux_6_1.override {
|
||||
# preferBuiltin = false;
|
||||
# extraConfig = "";
|
||||
# structuredExtraConfig = with lib.kernel; {
|
||||
# CC_OPTIMIZE_FOR_SIZE = lib.mkForce yes;
|
||||
# SUN8I_DE2_CCU = lib.mkForce no; #< nixpkgs' option parser gets confused on this one, somehow
|
||||
# NET_VENDOR_MICREL = no; #< to overcome broken KS8851_MLL (broken by nixpkgs' `extraConfig`)
|
||||
# # KS8851_MLL = lib.mkForce module; #< nixpkgs' option parser gets confused on this one, somehow
|
||||
# #v XXX: required for e.g. SECURITY_LANDLOCK (specified by upstream nixpkgs) to take effect if `autoModules = false`
|
||||
# #v seems that upstream linux (the defconfigs?), it defaults to Yes for:
|
||||
# # - arch/x86/configs/x86_64_defconfig
|
||||
# # - arch/arm64/configs/defconfig
|
||||
# # but that it's left unset for e.g. arch/arm64/configs/pinephone_defconfig
|
||||
# # SECURITY = yes;
|
||||
# };
|
||||
# });
|
||||
# boot.kernelPackages = with pkgs; linuxPackagesFor linux_6_1;
|
||||
# boot.kernelPackages = with pkgs; linuxPackagesFor linux-exynos5-mainline;
|
||||
# boot.kernelPackages = with pkgs; linuxPackagesFor (linux-postmarketos-exynos5.override {
|
||||
# # linux = let version = "6.6.0-rc1"; rev = "6.6.0-rc6-bi-5264"; in {
|
||||
# # # src = pkgs.fetchzip {
|
||||
# # # url = "https://git.kernel.org/stable/t/linux-6.2.16.tar.gz";
|
||||
# # # };
|
||||
# # src = pkgs.fetchFromGitea {
|
||||
# # domain = "git.uninsane.org";
|
||||
# # owner = "colin";
|
||||
# # repo = "linux";
|
||||
# # rev = "v${rev}";
|
||||
# # hash = linuxSourceHashes."${rev}";
|
||||
# # };
|
||||
# # inherit version;
|
||||
# # modDirVersion = version;
|
||||
# # extraMakeFlags = [];
|
||||
# # };
|
||||
# # linux = linux_6_6;
|
||||
# # linux = linux_6_8;
|
||||
# # linux = linux_6_9;
|
||||
# linux = linux_latest;
|
||||
# # optimizeForSize = true;
|
||||
# # useEdpPanel = true;
|
||||
# revertPanelSimplePatch = true;
|
||||
# });
|
||||
# boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-postmarketos-exynos5;
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-exynos5-mainline.override {
|
||||
kernelPatches = [
|
||||
pkgs.linux-postmarketos-exynos5.sanePatches.revertPanelSimplePatch
|
||||
];
|
||||
structuredExtraConfig = with lib.kernel; {
|
||||
SECURITY = yes;
|
||||
SECURITY_LANDLOCK = yes;
|
||||
LSM = freeform "landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,bpf";
|
||||
};
|
||||
});
|
||||
|
||||
system.build.u-boot = pkgs.buildUBoot {
|
||||
defconfig = "snow_defconfig";
|
||||
@@ -101,6 +176,10 @@ in
|
||||
"u-boot-nodtb.bin"
|
||||
"u-boot.sym"
|
||||
];
|
||||
# CONFIG_BOOTCOMMAND: autoboot from usb, and fix the ordering so that it happens before the internal memory (mmc0)
|
||||
extraConfig = ''
|
||||
CONFIG_BOOTCOMMAND="env set bootcmd_usb0 \"devnum=0; run usb_boot\"; env set boot_targets \"usb0 mmc2 mmc1 mmc0\"; run distro_bootcmd"
|
||||
'';
|
||||
};
|
||||
|
||||
system.build.platformPartition = pkgs.runCommandLocal "kernel-partition" {
|
||||
|
5
integrations/nixpkgs/nixpkgs-overlays.nix
Normal file
5
integrations/nixpkgs/nixpkgs-overlays.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
# this file exists so i can use my custom packages inside `nix-shell`.
|
||||
# it works by using stock upstream `nixpkgs`
|
||||
# and putting NIX_PATH=nixpkgs-overlays=/path/to/here on the nixbld environment.
|
||||
#
|
||||
[(import ../../overlays/all.nix)]
|
@@ -4,6 +4,6 @@
|
||||
"site_name": " bunnie's blog",
|
||||
"site_url": "https://www.bunniestudios.com",
|
||||
"title": "bunnie's blog",
|
||||
"url": "https://www.bunniestudios.com/blog/?feed=rss2",
|
||||
"velocity": 0.108
|
||||
"url": "https://www.bunniestudios.com/blog/feed/",
|
||||
"velocity": 0.12
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "Radiolab",
|
||||
"description": "Radiolab is on a curiosity bender. We ask deep questions and use investigative journalism to get the answers. A given episode might whirl you through science, legal history, and into the home of someone halfway across the world. The show is known for innovative sound design, smashing information into music. It is hosted by Lulu Miller and Latif Nasser.",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"title": "Radiolab",
|
||||
"url": "https://feeds.feedburner.com/radiolab",
|
||||
"velocity": 0.136
|
||||
"url": "https://feeds.simplecast.com/EmVW7VGp",
|
||||
"velocity": 0.138
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "*** Named a best podcast of 2021 by Time, Vulture, Esquire and The Atlantic. ***\nEach Tuesday and Friday, Ezra Klein invites you into a conversation on something that matters. How do we address climate change if the political system fails to act? Has the logic of markets infiltrated too many aspects of our lives? What is the future of the Republican Party? What do psychedelics teach us about consciousness? What does sci-fi understand about our present that we miss? Can our food system be just to humans and animals alike?\n\nListen to this podcast in New York Times Audio, our new iOS app for news subscribers. Download now at nytimes.com/audioapp",
|
||||
"description": "Each Tuesday and Friday, Ezra Klein invites you into a conversation on something that matters. How do we address climate change if the political system fails to act? Has the logic of markets infiltrated too many aspects of our lives? What is the future of the Republican Party? What do psychedelics teach us about consciousness? What does sci-fi understand about our present that we miss? Can our food system be just to humans and animals alike?\n\nListen to this podcast in New York Times Audio, our iOS app for news subscribers. Download now at nytimes.com/audioapp",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"title": "The Ezra Klein Show",
|
||||
"url": "https://feeds.simplecast.com/82FI35Px",
|
||||
"velocity": 0.264
|
||||
"velocity": 0.257
|
||||
}
|
@@ -2,8 +2,8 @@
|
||||
"description": "Long conversations with clever Nixers.",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_url": "https://feeds.transistor.fm",
|
||||
"title": "Full Time Nix",
|
||||
"url": "https://feeds.transistor.fm/full-time-nix",
|
||||
"velocity": 0
|
||||
"velocity": 0.048
|
||||
}
|
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"description": "<p>Playful explorations of the rich past and exciting future that we're all building with our silly little computers. Hosted by Jimmy Miller and Ivan Reese.</p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_name": "Omny Studio",
|
||||
"site_url": "https://www.omnycontent.com",
|
||||
"title": "Future of Coding",
|
||||
"url": "https://www.omnycontent.com/d/playlist/c4157e60-c7f8-470d-b13f-a7b30040df73/564f493f-af32-4c48-862f-a7b300e4df49/ac317852-8807-44b8-8eff-a7b300e4df52/podcast.rss",
|
||||
"velocity": 0.028
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>The most unruly and least considered, most shameful among various Idiomdrottning components and libraries can be found here.</p>\n <p>To contact me, <a href=\"mailto:sandra.snan@idiomdrottning.org\">send mail to sandra.snan@idiomdrottning.org</a></p>",
|
||||
"is_podcast": false,
|
||||
"site_name": "Idiomdrottning",
|
||||
"site_name": "I live like them already",
|
||||
"site_url": "https://idiomdrottning.org",
|
||||
"title": "Idiomdrottning",
|
||||
"url": "https://idiomdrottning.org/blog",
|
||||
"velocity": 0.402
|
||||
"velocity": 0.867
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "Kill the Newsletter! Inbox:\n joh91bv7am2pnznv@kill-the-newsletter.com \u2192\n https://kill-the-newsletter.com/feeds/joh91bv7am2pnznv.xml",
|
||||
"description": null,
|
||||
"is_podcast": false,
|
||||
"site_name": "Kill the Newsletter!",
|
||||
"site_url": "https://kill-the-newsletter.com",
|
||||
"title": "Money Stuff",
|
||||
"url": "https://kill-the-newsletter.com/feeds/joh91bv7am2pnznv.xml",
|
||||
"velocity": 939.13
|
||||
"velocity": 0.667
|
||||
}
|
@@ -2,8 +2,8 @@
|
||||
"description": "The art, science, and history of processor design..",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_url": "https://feeds.transistor.fm",
|
||||
"title": "Microarch Club",
|
||||
"url": "https://feeds.transistor.fm/microarch-club",
|
||||
"velocity": 0.083
|
||||
"velocity": 0.08
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>As long as there’s been oppression, there’ve been people fighting it. This weekly podcast dives into history to drag up the wildest rebels, the most beautiful revolts, and all the people who long to be—and fight to be—free. It explores complex stories of resistance that offer lessons and inspiration for us today, focusing on the ensemble casts that make up each act of history. That is to say, this podcast focuses on Cool People Who Did Cool Stuff.</p>",
|
||||
"description": "<p>As long as there\u2019s been oppression, there\u2019ve been people fighting it. This weekly podcast dives into history to drag up the wildest rebels, the most beautiful revolts, and all the people who long to be\u2014and fight to be\u2014free. It explores complex stories of resistance that offer lessons and inspiration for us today, focusing on the ensemble casts that make up each act of history. That is to say, this podcast focuses on Cool People Who Did Cool Stuff.</p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "Omny Studio",
|
||||
"site_url": "https://www.omnycontent.com",
|
||||
"title": "Cool People Who Did Cool Stuff",
|
||||
"url": "https://www.omnycontent.com/d/playlist/e73c998e-6e60-432f-8610-ae210140c5b1/45bcda9a-4724-45c0-82ca-ae7f00e1dd18/f21245f2-a297-42f7-a016-ae7f00e390c4/podcast.rss",
|
||||
"velocity": 0.271
|
||||
"velocity": 0.299
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>The audio companion to Bloomberg Opinion\u2019s beloved Money Stuff column hosted by its author Matt Levine, \u201cwhose deadpan style mixes technical elucidation and wit\u201d (NY Times). Once a week, Matt and his friend, Bloomberg News reporter and TV host, Katie Greifeld talk about Wall Street, finance and\u2026other stuff. New episodes every Friday.</p>",
|
||||
"description": "<p>The audio companion to Bloomberg Opinion\u2019s beloved Money Stuff column hosted by its author Matt Levine, \u201cwhose deadpan style mixes technical elucidation and wit\u201d (NY Times). Once a week, Matt and his friend, Bloomberg News reporter and TV host Katie Greifeld, talk about Wall Street, finance and\u2026other stuff. New episodes every Friday.</p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_name": "Omny Studio",
|
||||
"site_url": "https://www.omnycontent.com",
|
||||
"title": "Money Stuff: The Podcast",
|
||||
"url": "https://www.omnycontent.com/d/playlist/e73c998e-6e60-432f-8610-ae210140c5b1/ee4336cb-155f-4488-90e0-b1400134e40e/77e6a3a7-290d-4a82-8164-b14001353ef2/podcast.rss",
|
||||
"velocity": 0.063
|
||||
"velocity": 0.125
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>Comedians Dave Anthony and Gareth Reynolds picks a subject from history and examine it.</p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_name": "Omny Studio",
|
||||
"site_url": "https://www.omnycontent.com",
|
||||
"title": "The Dollop with Dave Anthony and Gareth Reynolds",
|
||||
"url": "https://www.omnycontent.com/d/playlist/885ace83-027a-47ad-ad67-aca7002f1df8/22b063ac-654d-428f-bd69-ae2400349cde/65ff0206-b585-4e2a-9872-ae240034c9c9/podcast.rss",
|
||||
"velocity": 0.188
|
||||
"velocity": 0.192
|
||||
}
|
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"description": "Explore human evolution one story at a time. This award-winning show blends storytelling with science that will change your understanding of who we are.",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"site_name": "test220119a",
|
||||
"site_url": "https://feeds.libsyn.com",
|
||||
"title": "Origin Stories",
|
||||
"url": "https://feeds.libsyn.com/65014/rss",
|
||||
"velocity": 0.024
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>Weekly roundup of everything new in the Linux and Open Source world! May contain gaming and privacy related topics.</p>\n<p>This is a longer counterpart to the Linux and Open Source news videos available on The Linux Experiment Youtube Channel.</p>",
|
||||
"description": "<p>Weekly roundup of everything new in the Linux and Open Source world! May contain gaming and privacy related topics.</p>\n<p>This is a longer counterpart to the Linux and Open Source news videos available on The Linux Experiment Youtube Channel.</p>\n<p>I\u2019m Nick, I\u2019ve been making Linux and Open Source related videos on YouTube since 2018, with a sizeable following of more than 300 000 subscribers. I\u2019ve been using Linux since 2006, starting with Ubuntu (like most people), and I have 12 years of experience in project management and UX, and that\u2019s the lens I use to view the progress of our Linux desktops and open source applications!</p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "The Linux Experiment Podcasts",
|
||||
"site_url": "https://podcast.thelinuxexp.com",
|
||||
"title": "Linux + Open Source News, by TLE",
|
||||
"title": "Linux & Open Source News",
|
||||
"url": "https://podcast.thelinuxexp.com/@tlenewspodcast/feed.xml",
|
||||
"velocity": 0.145
|
||||
"velocity": 0.147
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "A Comic",
|
||||
"is_podcast": false,
|
||||
"site_name": "Poorly Drawn Lines",
|
||||
"site_name": "Poorly Drawn Lines | A Comic",
|
||||
"site_url": "https://poorlydrawnlines.com",
|
||||
"title": "Poorly Drawn Lines",
|
||||
"url": "https://poorlydrawnlines.com/feed/",
|
||||
"velocity": 0.237
|
||||
"velocity": 0.3
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "Announcing appearances, publications, and analysis of questions historical, philosophical, and political by author, philosopher, and historian Richard Carrier.",
|
||||
"is_podcast": false,
|
||||
"site_name": "Richard Carrier",
|
||||
"site_name": "Richard Carrier Blogs",
|
||||
"site_url": "https://www.richardcarrier.info",
|
||||
"title": "Richard Carrier",
|
||||
"title": "Richard Carrier Blogs",
|
||||
"url": "https://www.richardcarrier.info/feed",
|
||||
"velocity": 0.141
|
||||
"velocity": 0.131
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "It\u2019s getting harder and harder to talk about politics, especially if you disagree. Well, screw that. Seattle Nice aims to be the most opinionated and smartest analysis of what\u2019s really happening in Seattle politics available in any medium. Each episode dives into contentious and sometimes ridiculous topics, exploring perspectives from across Seattle's political spectrum, from city council brawls to the ways the national political conversation filters through our unique political process. Even if you\u2019re not from Seattle, you need to listen to Seattle Nice. Because it\u2019s coming for you. Unlike the sun, politics rises in the West and sets in the East.",
|
||||
"description": "<p>It\u2019s getting harder and harder to talk about politics, especially if you disagree. Well, screw that. Seattle Nice aims to be the most opinionated and smartest analysis of what\u2019s really happening in Seattle politics available in any medium. Each episode dives into contentious and sometimes ridiculous topics, exploring perspectives from across Seattle's political spectrum, from city council brawls to the ways the national political conversation filters through our unique political process. Even if you\u2019re not from Seattle, you need to listen to Seattle Nice. Because it\u2019s coming for you. Unlike the sun, politics rises in the West and sets in the East. </p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"title": "Seattle Nice",
|
||||
"url": "https://feeds.buzzsprout.com/1897925.rss",
|
||||
"velocity": 0.099
|
||||
"velocity": 0.101
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "On Target Technology News",
|
||||
"is_podcast": false,
|
||||
"site_name": "SemiAccurate - On Target Technology News",
|
||||
"site_name": "SemiAccurate",
|
||||
"site_url": "https://semiaccurate.com",
|
||||
"title": "SemiAccurate",
|
||||
"url": "https://www.semiaccurate.com/feed/",
|
||||
"velocity": 0.106
|
||||
"velocity": 0.098
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "Latest Saturday Morning Breakfast Cereal comics and news",
|
||||
"is_podcast": false,
|
||||
"site_name": "Saturday Morning Breakfast Cereal - Got You",
|
||||
"site_name": "Saturday Morning Breakfast Cereal - Dave",
|
||||
"site_url": "https://www.smbc-comics.com",
|
||||
"title": "Saturday Morning Breakfast Cereal",
|
||||
"url": "https://www.smbc-comics.com/comic/rss",
|
||||
"velocity": 1.172
|
||||
"velocity": 0.999
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "<p>Tales From the Bridge is a bi-weekly Science Fiction podcast. Join Tristan, Kevin, James, and Sam as they chat with your favourite science fiction authors and filmmakers. We also discuss the best in sci-fi, from books and graphic novels - to television and film. We cover cutting-edge concepts in our news segment, Science Fiction-Science Fact and throw in a bit of trivia for fun. <br /><br />Apple Podcasts; https://podcasts.apple.com/us/podcast/tales-from-the-bridge-all-things-sci-fi/id1570902818 Find out more on our website: https://talesfromthebridge.buzzsprout.com/</p>",
|
||||
"description": "<p>Tales From the Bridge is a podcast that discusses all things science fiction. Join Tristan, Kevin, James, Sam as they chat with your favourite science fiction authors and filmmakers. We talk about the best in sci-fi, from books and graphic novels - to television and film. We cover cutting-edge concepts in our news segment, Science Fiction-Science Fact, and often throw in a bit of trivia for fun. <br /><br />Subscribe, follow, like and leave a review. We'd love to hear from you! </p>",
|
||||
"is_podcast": true,
|
||||
"site_name": "",
|
||||
"site_url": "",
|
||||
"title": "Tales From The Bridge: All Things Sci-Fi",
|
||||
"title": "Tales From The Bridge",
|
||||
"url": "https://feeds.buzzsprout.com/1795352.rss",
|
||||
"velocity": 0.093
|
||||
"velocity": 0.091
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "turnoff.us is a geek comic site. Comics about Programming Languages, Web, Cloud, Linux, etc.",
|
||||
"description": "{turnoff.us} is a webcomic that explores the worlds of programming, operating systems, and tech professional life.",
|
||||
"is_podcast": false,
|
||||
"site_name": "turnoff.us",
|
||||
"site_url": "http://turnoff.us",
|
||||
"title": "turnoff.us - geek comic site",
|
||||
"title": "turnoff.us",
|
||||
"url": "https://turnoff.us/feed.xml",
|
||||
"velocity": 0.01
|
||||
"velocity": 0.377
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "systems | complexity | second-order effects",
|
||||
"is_podcast": false,
|
||||
"site_name": "Unintended Consequences - systems | complexity | second-order effects",
|
||||
"site_name": "Unintended Consequences",
|
||||
"site_url": "https://unintendedconsequenc.es",
|
||||
"title": "Unintended Consequences",
|
||||
"url": "https://unintendedconsequenc.es/feed/",
|
||||
"velocity": 0.01
|
||||
"velocity": 0.009
|
||||
}
|
9
modules/data/feeds/sources/xorvoid.com/default.json
Normal file
9
modules/data/feeds/sources/xorvoid.com/default.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"description": "If you stare into the void long enough, you'll find some xors staring back",
|
||||
"is_podcast": false,
|
||||
"site_name": "xorvoid",
|
||||
"site_url": "https://xorvoid.com",
|
||||
"title": "xorvoid",
|
||||
"url": "https://xorvoid.com/rss.xml",
|
||||
"velocity": 0.048
|
||||
}
|
@@ -231,7 +231,7 @@ let
|
||||
# only do this for the services which are *defined* by this program though (i.e. `scvCfg ? description`)
|
||||
# so as to avoid idioms like when sway adds `graphical-session.partOf = default`
|
||||
depends = svcCfg.depends
|
||||
++ lib.optionals (svcName != "dbus" && builtins.elem "user" config.sandbox.whitelistDbus) [
|
||||
++ lib.optionals (svcName != "dbus" && builtins.elem "user" config.sandbox.whitelistDbus && cfg.dbus.enabled) [
|
||||
"dbus"
|
||||
] ++ lib.optionals ((!builtins.elem "wayland" svcCfg.partOf) && config.sandbox.whitelistWayland) [
|
||||
"wayland"
|
||||
|
@@ -1142,17 +1142,6 @@ in with final; {
|
||||
# });
|
||||
# };
|
||||
|
||||
# 2024/05/31: upstreaming is unblocked
|
||||
# - problem is fixed in a newer version of the package anyway, just needs updating (repo migration)
|
||||
# fixes: "Run-time dependency scdoc found: NO (tried pkgconfig)"
|
||||
unl0kr = prev.unl0kr.overrideAttrs (upstream: {
|
||||
postPatch = (upstream.postPatch or "") + ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "scdoc = dependency('scdoc')" "" \
|
||||
--replace-fail "scdoc.get_pkgconfig_variable('scdoc')" "'scdoc'"
|
||||
'';
|
||||
});
|
||||
|
||||
# 2024/05/31: upstreaming is blocked on hdf5, thrift, others
|
||||
# visidata = prev.visidata.override {
|
||||
# # hdf5 / h5py don't cross-compile, but i don't use that file format anyway.
|
||||
|
@@ -1,84 +0,0 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, appstream
|
||||
, cargo
|
||||
, desktop-file-utils
|
||||
, fetchFromGitea
|
||||
, gitUpdater
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, libglvnd
|
||||
, libepoxy
|
||||
, meson
|
||||
, mpv-unwrapped
|
||||
, ninja
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rustc
|
||||
, rustPlatform
|
||||
, wrapGAppsHook4
|
||||
, devBuild ? false, git
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "delfin";
|
||||
version = "0.4.4";
|
||||
|
||||
src = if devBuild then fetchFromGitea {
|
||||
domain = "git.uninsane.org";
|
||||
owner = "colin";
|
||||
repo = "delfin";
|
||||
rev = "dev-sane";
|
||||
hash = "sha256-l/Lm9dUtYfWbf8BoqNodF/5s0FzxhI/dyPevcaeyPME=";
|
||||
} else fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "avery42";
|
||||
repo = "delfin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qbl0PvGKI3S845xLr0aXf/uk2uuOXMjvu9S3BOPzxa0=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-Js1mIotSOayYDjDVQMqXwaeSC2a1g1DeqD6QmeWwztk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
rustc
|
||||
wrapGAppsHook4
|
||||
] ++ lib.optionals devBuild [
|
||||
git
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
libglvnd
|
||||
libepoxy
|
||||
mpv-unwrapped
|
||||
openssl
|
||||
];
|
||||
|
||||
mesonFlags = lib.optionals (!devBuild) [
|
||||
"-Dprofile=release"
|
||||
];
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "stream movies and TV shows from Jellyfin";
|
||||
homepage = "https://www.delfin.avery.cafe/";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ colinsane ];
|
||||
};
|
||||
}
|
@@ -3,19 +3,41 @@
|
||||
, python3
|
||||
, sane-data
|
||||
, static-nix-shell
|
||||
, symlinkJoin
|
||||
, writeShellScript
|
||||
}:
|
||||
|
||||
lib.makeScope newScope (self: with self; {
|
||||
mkFeed = callPackage ./template.nix {};
|
||||
feed-pkgs = lib.recurseIntoAttrs (lib.mapAttrs
|
||||
(name: feed-details: mkFeed {
|
||||
feedName = name;
|
||||
jsonPath = "modules/data/feeds/sources/${name}/default.json";
|
||||
inherit (feed-details) url;
|
||||
})
|
||||
sane-data.feeds
|
||||
);
|
||||
feed-pkgs = let
|
||||
byName = lib.mapAttrs
|
||||
(name: feed-details: mkFeed {
|
||||
feedName = name;
|
||||
jsonPath = "modules/data/feeds/sources/${name}/default.json";
|
||||
inherit (feed-details) url;
|
||||
})
|
||||
sane-data.feeds
|
||||
;
|
||||
in
|
||||
symlinkJoin {
|
||||
# this meta package exists primarily to link all the feed updaters
|
||||
# into a single package which can *actually* be updated.
|
||||
# it's not critical whether the actual package itself builds.
|
||||
name = "feed-pkgs";
|
||||
pname = "feed-pkgs";
|
||||
version = "20230112";
|
||||
paths = builtins.attrValues byName;
|
||||
passthru = byName // {
|
||||
updateScript = let
|
||||
update-all-feeds = writeShellScript "update-all-feeds" (
|
||||
lib.concatStringsSep "\n" (
|
||||
builtins.map (p: lib.concatStringsSep " " p.updateScript) (lib.attrValues byName)
|
||||
)
|
||||
);
|
||||
in
|
||||
[ update-all-feeds ];
|
||||
};
|
||||
};
|
||||
update-feed = static-nix-shell.mkPython3Bin {
|
||||
pname = "update";
|
||||
srcRoot = ./.;
|
||||
|
@@ -13,10 +13,9 @@ stdenv.mkDerivation {
|
||||
src = fetchurl {
|
||||
inherit url;
|
||||
};
|
||||
passthru.updateScript = {
|
||||
name = "feed-update-script";
|
||||
command = [ "${update-feed}/bin/update.py" url jsonPath ];
|
||||
};
|
||||
passthru.updateScript = [
|
||||
"${update-feed}/bin/update.py" url jsonPath
|
||||
];
|
||||
meta = {
|
||||
description = "metadata about any feeds available at ${feedName}";
|
||||
homepage = feedName;
|
||||
|
@@ -38,9 +38,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
passthru = {
|
||||
extid = "magnolia@12.34";
|
||||
updateScript = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
};
|
||||
# XXX: disabled because the upstream repo has disappeared, and gitlab auth hangs the updater
|
||||
# updateScript = gitUpdater {
|
||||
# rev-prefix = "v";
|
||||
# };
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@@ -1,11 +1,13 @@
|
||||
{ stdenv
|
||||
, callPackage
|
||||
, concatTextFile
|
||||
, fetchpatch
|
||||
, fetchurl
|
||||
, gnused
|
||||
, jq
|
||||
, lib
|
||||
, newScope
|
||||
, nix-update
|
||||
, nix-update-script
|
||||
, runCommandLocal
|
||||
, strip-nondeterminism
|
||||
@@ -15,6 +17,18 @@
|
||||
, zip
|
||||
}:
|
||||
let
|
||||
nix-update' = nix-update.overrideAttrs (upstream: {
|
||||
patches = (upstream.patches or []) ++ [
|
||||
(fetchpatch {
|
||||
# u-block releases betas, and worse, deletes them later.
|
||||
# i don't know how to ignore them through the nix-update-script API,
|
||||
# but this patch handles that.
|
||||
name = "github: Use API to properly tag prereleases";
|
||||
url = "https://github.com/Mic92/nix-update/pull/246.patch";
|
||||
hash = "sha256-cwajliS1YMEcS2MtrKtpNn64rWHjwNDLI49LKhnlQYM=";
|
||||
})
|
||||
];
|
||||
});
|
||||
wrapAddon = addon: args:
|
||||
let
|
||||
extid = addon.passthru.extid;
|
||||
@@ -111,15 +125,7 @@ let
|
||||
cp $src $out
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
# uBlock mixes X.YY.ZbN and X.YY.ZrcN style.
|
||||
# default nix-update accepts the former but rejects the later as unstable.
|
||||
# that's problematic because beta releases later get pulled.
|
||||
# ideally i'd reject both, but i don't know how.
|
||||
"--version=unstable"
|
||||
];
|
||||
};
|
||||
passthru.updateScript = (nix-update-script.override { nix-update = nix-update'; }) { };
|
||||
passthru.extid = extid;
|
||||
};
|
||||
|
||||
@@ -139,8 +145,8 @@ in (lib.makeScope newScope (self: with self; {
|
||||
extid = "webextension@metamask.io";
|
||||
pname = "ether-metamask";
|
||||
url = "https://github.com/MetaMask/metamask-extension/releases/download/v${version}/metamask-firefox-${version}.zip";
|
||||
version = "11.16.0";
|
||||
hash = "sha256-GqogHIqPneZ/Ngpf5ICm/LSMB3PIC2OjdZYZ5FSKJrk=";
|
||||
version = "11.16.9";
|
||||
hash = "sha256-IYRCR0jX2agMHj/Pnnc+q6X92yrhdIJF+uRtw7C2T2k=";
|
||||
};
|
||||
fx_cast = fetchVersionedAddon rec {
|
||||
extid = "fx_cast@matt.tf";
|
||||
@@ -160,15 +166,15 @@ in (lib.makeScope newScope (self: with self; {
|
||||
extid = "sponsorBlocker@ajay.app";
|
||||
pname = "sponsorblock";
|
||||
url = "https://github.com/ajayyy/SponsorBlock/releases/download/${version}/FirefoxSignedInstaller.xpi";
|
||||
version = "5.6";
|
||||
hash = "sha256-7HnWgGxDtkr0LXIGec+V1ACV/hhKAa3zII+SgMC7GSo=";
|
||||
version = "5.6.1";
|
||||
hash = "sha256-b2FIVcOaRyJjWOTtXT9XrLWzcptcuxKJltDGFjpWPRQ=";
|
||||
};
|
||||
ublacklist = fetchVersionedAddon rec {
|
||||
extid = "@ublacklist";
|
||||
pname = "ublacklist";
|
||||
url = "https://github.com/iorate/ublacklist/releases/download/v${version}/ublacklist-v${version}-firefox.zip";
|
||||
version = "8.7.0";
|
||||
hash = "sha256-70hdLWU8kfu7VO//aXeBi6HO6LvY20vT61zDw/pdQIg=";
|
||||
version = "8.7.1";
|
||||
hash = "sha256-FvZ2IFlvoAYMmZFXTkGtCZ+44MmXioA271DXvNY96j8=";
|
||||
};
|
||||
ublock-origin = fetchVersionedAddon rec {
|
||||
extid = "uBlock0@raymondhill.net";
|
||||
|
27
pkgs/additional/linux-exynos5-mainline/default.nix
Normal file
27
pkgs/additional/linux-exynos5-mainline/default.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ buildLinux
|
||||
, fetchFromGitLab
|
||||
#v nixpkgs calls `.override` on the kernel to configure additional things
|
||||
, features ? {}
|
||||
, kernelPatches ? []
|
||||
, randstructSeed ? ""
|
||||
, structuredExtraConfig ? {}
|
||||
, ...
|
||||
}:
|
||||
buildLinux {
|
||||
src = fetchFromGitLab {
|
||||
owner = "exynos5-mainline";
|
||||
repo = "linux";
|
||||
rev = "20e7d0fbd9213858325dfeb9be0da1a3756744a1";
|
||||
hash = "sha256-tbNYuOk4XHRH12B3EdMCgO7EUKaAs6Q7G+/r3r35ZFY=";
|
||||
};
|
||||
version = "6.8.0-rc2";
|
||||
# modDirVersion = "6.8.0-rc2";
|
||||
modDirVersion = "6.8.0-rc2-next-20240201-postmarketos-exynos5";
|
||||
extraMeta.branch = "6.8";
|
||||
|
||||
defconfig = "exynos5_defconfig";
|
||||
autoModules = false;
|
||||
# preferBuiltin = false;
|
||||
|
||||
inherit features kernelPatches randstructSeed structuredExtraConfig;
|
||||
}
|
@@ -2,6 +2,7 @@
|
||||
, fetchurl
|
||||
, linux-megous
|
||||
, linuxManualConfig
|
||||
, sane-kernel-tools
|
||||
, writeTextFile
|
||||
#v nixpkgs calls `.override` on the kernel to configure additional things, but we don't care about those things
|
||||
, features ? null
|
||||
@@ -22,39 +23,7 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
# parseKconfigValue = str: let
|
||||
# inherit (lib) kernel;
|
||||
# in
|
||||
# if str == "y" then
|
||||
# kernel.yes
|
||||
# else if str == "m" then
|
||||
# kernel.module
|
||||
# else
|
||||
# # kernel.freeform (lib.removePrefix ''"'' (lib.removeSuffix ''"'' str))
|
||||
# kernel.freeform str
|
||||
# ;
|
||||
parseKconfigLine = line: let
|
||||
pieces = lib.splitString "=" line;
|
||||
in
|
||||
if lib.hasPrefix "#" (lib.head pieces) then [
|
||||
# this line is a comment.
|
||||
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
|
||||
] else if lib.length pieces == 1 then [
|
||||
# no equals sign: this is probably a blank line
|
||||
] else [{
|
||||
name = lib.head pieces;
|
||||
# value = parseKconfigValue (lib.concatStringsSep "=" (lib.tail pieces));
|
||||
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
|
||||
value = lib.concatStringsSep "=" (lib.tail pieces);
|
||||
}]
|
||||
;
|
||||
parseKconfig = wholeStr: let
|
||||
lines = lib.splitString "\n" wholeStr;
|
||||
parsedItems = lib.concatMap parseKconfigLine lines;
|
||||
in
|
||||
lib.listToAttrs parsedItems;
|
||||
|
||||
KconfigStr = (builtins.readFile ./config-postmarketos-allwinner.aarch64) + ''
|
||||
defconfigStr = (builtins.readFile ./config-postmarketos-allwinner.aarch64) + ''
|
||||
#
|
||||
# Extra nixpkgs-specific options
|
||||
# nixos/modules/system/boot/systemd.nix wants CONFIG_DMIID
|
||||
@@ -79,11 +48,11 @@ in linuxManualConfig {
|
||||
|
||||
configfile = writeTextFile {
|
||||
name = "config-postmarketos-allwinner.aarch64";
|
||||
text = KconfigStr;
|
||||
text = defconfigStr;
|
||||
};
|
||||
# nixpkgs requires to know the config as an attrset, to do various eval-time assertions.
|
||||
# this forces me to include the Kconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
|
||||
config = parseKconfig KconfigStr;
|
||||
# this forces me to include the defconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
|
||||
config = sane-kernel-tools.parseDefconfig defconfigStr;
|
||||
|
||||
# these likely aren't *all* required for pinephone: pmOS kernel is shared by many devices
|
||||
kernelPatches = [
|
@@ -1,6 +1,10 @@
|
||||
{ lib
|
||||
, linux_6_1
|
||||
, linux ? linux_6_1, linux_6_1
|
||||
, linuxManualConfig
|
||||
, optimizeForSize ? false
|
||||
, useEdpPanel ? false #< use `edp-panel` driver in snow device tree (fails to fix graphics)
|
||||
, revertPanelSimplePatch ? false #< revert the commit which removed B116XW03 panel from panel-edp driver (fixes display output)
|
||||
, sane-kernel-tools
|
||||
, writeTextFile
|
||||
#v nixpkgs calls `.override` on the kernel to configure additional things
|
||||
, features ? []
|
||||
@@ -9,69 +13,94 @@
|
||||
}@args:
|
||||
|
||||
let
|
||||
# TODO: lift to shared module
|
||||
parseKconfigLine = line: let
|
||||
pieces = lib.splitString "=" line;
|
||||
in
|
||||
if lib.hasPrefix "#" (lib.head pieces) then [
|
||||
# this line is a comment.
|
||||
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
|
||||
] else if lib.length pieces == 1 then [
|
||||
# no equals sign: this is probably a blank line
|
||||
] else [{
|
||||
name = lib.head pieces;
|
||||
# value = parseKconfigValue (lib.concatStringsSep "=" (lib.tail pieces));
|
||||
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
|
||||
value = lib.concatStringsSep "=" (lib.tail pieces);
|
||||
}]
|
||||
;
|
||||
parseKconfig = wholeStr: let
|
||||
lines = lib.splitString "\n" wholeStr;
|
||||
parsedItems = lib.concatMap parseKconfigLine lines;
|
||||
in
|
||||
lib.listToAttrs parsedItems;
|
||||
defconfigPmos = builtins.readFile ./config-postmarketos-exynos5.arm7;
|
||||
|
||||
patches = {
|
||||
useEdpPanel = {
|
||||
name = "snow: use edp-panel driver";
|
||||
patch = ./snow-panel-fix.patch;
|
||||
};
|
||||
revertPanelSimplePatch = {
|
||||
name = "revert ad3e33fe071dffea07279f96dab4f3773c430fe2, and get snow to use edp-panel again";
|
||||
patch = ./snow-panel-revert-b116xw03.patch;
|
||||
};
|
||||
};
|
||||
|
||||
# remove CONFIG_LOCALVERSION else nixpkgs complains about mismatched modDirVersion
|
||||
KconfigStr = lib.replaceStrings
|
||||
[
|
||||
''CONFIG_LOCALVERSION="-postmarketos-exynos5"''
|
||||
''CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y''
|
||||
''CONFIG_BATTERY_SBS=y''
|
||||
]
|
||||
[
|
||||
''CONFIG_LOCALVERSION=''
|
||||
withoutOsFlavor = defconfig: lib.replaceStrings
|
||||
[ ''CONFIG_LOCALVERSION="-postmarketos-exynos5"'' ]
|
||||
[ ''CONFIG_LOCALVERSION='' ]
|
||||
defconfig
|
||||
;
|
||||
|
||||
# XXX(2024/06/06): if this module is loaded before udev, then kernel panic.
|
||||
# see: <repo:NixOS/mobile-nixos:devices/families/mainline-chromeos/default.nix>
|
||||
withModuleFixes = defconfig: lib.replaceStrings
|
||||
[ ''CONFIG_BATTERY_SBS=y'' ]
|
||||
[ ''CONFIG_BATTERY_SBS=m'' ]
|
||||
defconfig
|
||||
;
|
||||
|
||||
withOptimizations = defconfig: if optimizeForSize then
|
||||
lib.replaceStrings
|
||||
[ ''CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y'' ]
|
||||
# XXX(2024/06/06): if the bzImage is too large, it fails to boot.
|
||||
# probably an issue with the uboot relocations; not sure exactly what the size limit is.
|
||||
''CONFIG_CC_OPTIMIZE_FOR_SIZE=y''
|
||||
# XXX(2024/06/06): if this module is loaded before udev, then kernel panic.
|
||||
# see: <repo:NixOS/mobile-nixos:devices/families/mainline-chromeos/default.nix>
|
||||
''CONFIG_BATTERY_SBS=m''
|
||||
]
|
||||
(builtins.readFile ./config-postmarketos-exynos5.arm7)
|
||||
+ ''
|
||||
# XXX(2024/06/08): it now boots fine with the stock optimizations, though the difference in size is only 500KiB (about 10%).
|
||||
# perhaps this was mis-diagnosed
|
||||
[ ''CONFIG_CC_OPTIMIZE_FOR_SIZE=y'' ]
|
||||
defconfig
|
||||
else
|
||||
defconfig
|
||||
;
|
||||
|
||||
withNixosRequirements = defconfig: defconfig + ''
|
||||
#
|
||||
# Extra nixpkgs-specific options
|
||||
# nixos/modules/system/boot/systemd.nix wants CONFIG_DMIID
|
||||
# nixos/modules/services/hardware/udev.nix wants CONFIG_MODULE_COMPRESS_ZSTD
|
||||
#
|
||||
CONFIG_DMIID=y
|
||||
CONFIG_MODULE_COMPRESS_ZSTD=y
|
||||
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_MALI_DISPLAY=m
|
||||
|
||||
#
|
||||
# Extra sane-specific options
|
||||
#
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_SECURITY_LANDLOCK=y
|
||||
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,bpf";
|
||||
|
||||
'';
|
||||
in linuxManualConfig {
|
||||
inherit (linux_6_1) extraMakeFlags modDirVersion src version;
|
||||
|
||||
defconfigStr = withNixosRequirements (
|
||||
withOptimizations (
|
||||
withModuleFixes (
|
||||
withoutOsFlavor (
|
||||
defconfigPmos
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
in (linuxManualConfig {
|
||||
inherit (linux) extraMakeFlags modDirVersion src version;
|
||||
inherit features randstructSeed;
|
||||
kernelPatches = args.kernelPatches or [];
|
||||
kernelPatches = (args.kernelPatches or []) ++ lib.optionals useEdpPanel [
|
||||
patches.useEdpPanel
|
||||
] ++ lib.optionals revertPanelSimplePatch [
|
||||
patches.revertPanelSimplePatch
|
||||
];
|
||||
|
||||
configfile = writeTextFile {
|
||||
name = "config-postmarketos-exynos5.arm7";
|
||||
text = KconfigStr;
|
||||
text = defconfigStr;
|
||||
};
|
||||
# nixpkgs requires to know the config as an attrset, to do various eval-time assertions.
|
||||
# this forces me to include the Kconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
|
||||
config = parseKconfig KconfigStr;
|
||||
}
|
||||
# this forces me to include the defconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
|
||||
config = sane-kernel-tools.parseDefconfig defconfigStr;
|
||||
}).overrideAttrs (base: {
|
||||
passthru = (base.passthru or {}) // {
|
||||
sanePatches = patches;
|
||||
};
|
||||
})
|
||||
|
@@ -0,0 +1,13 @@
|
||||
diff --git a/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
|
||||
index 65b000df176e..bc8060890137 100644
|
||||
--- a/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
|
||||
+++ b/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
|
||||
@@ -205,7 +205,7 @@ backlight: backlight {
|
||||
};
|
||||
|
||||
panel: panel {
|
||||
- compatible = "auo,b116xw03";
|
||||
+ compatible = "edp-panel";
|
||||
power-supply = <&fet6>;
|
||||
backlight = <&backlight>;
|
||||
|
@@ -0,0 +1,100 @@
|
||||
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
|
||||
index 95c8472d878a..feb665df35a1 100644
|
||||
--- a/drivers/gpu/drm/panel/panel-edp.c
|
||||
+++ b/drivers/gpu/drm/panel/panel-edp.c
|
||||
@@ -976,6 +976,32 @@ static const struct panel_desc auo_b116xak01 = {
|
||||
},
|
||||
};
|
||||
|
||||
+static const struct drm_display_mode auo_b116xw03_mode = {
|
||||
+ .clock = 70589,
|
||||
+ .hdisplay = 1366,
|
||||
+ .hsync_start = 1366 + 40,
|
||||
+ .hsync_end = 1366 + 40 + 40,
|
||||
+ .htotal = 1366 + 40 + 40 + 32,
|
||||
+ .vdisplay = 768,
|
||||
+ .vsync_start = 768 + 10,
|
||||
+ .vsync_end = 768 + 10 + 12,
|
||||
+ .vtotal = 768 + 10 + 12 + 6,
|
||||
+ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
|
||||
+};
|
||||
+
|
||||
+static const struct panel_desc auo_b116xw03 = {
|
||||
+ .modes = &auo_b116xw03_mode,
|
||||
+ .num_modes = 1,
|
||||
+ .bpc = 6,
|
||||
+ .size = {
|
||||
+ .width = 256,
|
||||
+ .height = 144,
|
||||
+ },
|
||||
+ .delay = {
|
||||
+ .enable = 400,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static const struct drm_display_mode auo_b133han05_mode = {
|
||||
.clock = 142600,
|
||||
.hdisplay = 1920,
|
||||
@@ -1699,6 +1725,9 @@ static const struct of_device_id platform_of_match[] = {
|
||||
}, {
|
||||
.compatible = "auo,b116xa01",
|
||||
.data = &auo_b116xak01,
|
||||
+ }, {
|
||||
+ .compatible = "auo,b116xw03",
|
||||
+ .data = &auo_b116xw03,
|
||||
}, {
|
||||
.compatible = "auo,b133han05",
|
||||
.data = &auo_b133han05,
|
||||
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
|
||||
index dd7928d9570f..95959dcc6e0e 100644
|
||||
--- a/drivers/gpu/drm/panel/panel-simple.c
|
||||
+++ b/drivers/gpu/drm/panel/panel-simple.c
|
||||
@@ -919,38 +919,6 @@ static const struct panel_desc auo_b101xtn01 = {
|
||||
},
|
||||
};
|
||||
|
||||
-static const struct drm_display_mode auo_b116xw03_mode = {
|
||||
- .clock = 70589,
|
||||
- .hdisplay = 1366,
|
||||
- .hsync_start = 1366 + 40,
|
||||
- .hsync_end = 1366 + 40 + 40,
|
||||
- .htotal = 1366 + 40 + 40 + 32,
|
||||
- .vdisplay = 768,
|
||||
- .vsync_start = 768 + 10,
|
||||
- .vsync_end = 768 + 10 + 12,
|
||||
- .vtotal = 768 + 10 + 12 + 6,
|
||||
- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
|
||||
-};
|
||||
-
|
||||
-static const struct panel_desc auo_b116xw03 = {
|
||||
- .modes = &auo_b116xw03_mode,
|
||||
- .num_modes = 1,
|
||||
- .bpc = 6,
|
||||
- .size = {
|
||||
- .width = 256,
|
||||
- .height = 144,
|
||||
- },
|
||||
- .delay = {
|
||||
- .prepare = 1,
|
||||
- .enable = 200,
|
||||
- .disable = 200,
|
||||
- .unprepare = 500,
|
||||
- },
|
||||
- .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
|
||||
- .connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
-};
|
||||
-
|
||||
static const struct display_timing auo_g070vvn01_timings = {
|
||||
.pixelclock = { 33300000, 34209000, 45000000 },
|
||||
.hactive = { 800, 800, 800 },
|
||||
@@ -4134,9 +4102,6 @@ static const struct of_device_id platform_of_match[] = {
|
||||
}, {
|
||||
.compatible = "auo,b101xtn01",
|
||||
.data = &auo_b101xtn01,
|
||||
- }, {
|
||||
- .compatible = "auo,b116xw03",
|
||||
- .data = &auo_b116xw03,
|
||||
}, {
|
||||
.compatible = "auo,g070vvn01",
|
||||
.data = &auo_g070vvn01,
|
@@ -12,7 +12,7 @@ let
|
||||
hash = "sha256-MiVokKlpcJmfoGuWAMeW1En7gZ5hk0rCQArYm6P9XCc=";
|
||||
};
|
||||
overlay = import "${src}/overlay/overlay.nix";
|
||||
final = pkgs.appendOverlays [ overlay ];
|
||||
final = pkgs.extend overlay;
|
||||
in src.overrideAttrs (base: {
|
||||
# passthru only mobile-nixos' own packages -- not the whole nixpkgs-with-mobile-nixos-as-overlay:
|
||||
passthru = base.passthru // (overlay final pkgs);
|
||||
|
@@ -1,16 +1,37 @@
|
||||
{ pkgs
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, nix-update-script
|
||||
}:
|
||||
let
|
||||
src = fetchFromGitHub {
|
||||
owner = "nix-community";
|
||||
repo = "nixpkgs-wayland";
|
||||
rev = "8e2d180329f4009ac06042b50ca0a356722aea19";
|
||||
hash = "sha256-8rKI+MKmWOpEy7XKRMURph4b6VkMkh+Nr20hkpyk5hM=";
|
||||
rev = "90cadf89f6edd41c7b9f9436cdc8a4c3206747e6";
|
||||
hash = "sha256-b6LF6PGzBHJZzhOeZbt4AX2E1wMbhHGurskwABFbiJg=";
|
||||
};
|
||||
overlay = import "${src}/overlay.nix";
|
||||
final = pkgs.appendOverlays [ overlay ];
|
||||
flake = import "${src}/flake.nix";
|
||||
evaluated = flake.outputs {
|
||||
self = evaluated;
|
||||
lib-aggregate.lib = lib // {
|
||||
# mock out flake-utils, which it uses to construct flavored package sets.
|
||||
# we only need the overlay (unflavored)
|
||||
flake-utils.eachSystem = sys: fn: {};
|
||||
};
|
||||
};
|
||||
overlay = evaluated.overlay;
|
||||
|
||||
final = pkgs.extend overlay;
|
||||
in src.overrideAttrs (base: {
|
||||
# attributes required by update scripts
|
||||
pname = "nixpkgs-wayland";
|
||||
version = "0-unstable-2024-06-12";
|
||||
src = src;
|
||||
|
||||
# passthru only nixpkgs-wayland's own packages -- not the whole nixpkgs-with-nixpkgs-wayland-as-overlay:
|
||||
passthru = base.passthru // (overlay final pkgs);
|
||||
passthru = base.passthru // (overlay final pkgs) // {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version" "branch" ];
|
||||
};
|
||||
};
|
||||
})
|
||||
|
@@ -1,5 +1,6 @@
|
||||
# XXX: this is in the bootstrap path;
|
||||
# i'm pretty much restricted to using just `builtin`s here.
|
||||
# this means it has to be evaluatable using only builtins,
|
||||
# though i'm free to include optional functionality (e.g. update scripts) so long as i gate it behind availability checks.
|
||||
#
|
||||
# branch workflow:
|
||||
# - daily:
|
||||
@@ -20,34 +21,48 @@
|
||||
, doPatch ? true
|
||||
, localSystem ? builtins.currentSystem #< not available in pure mode
|
||||
, system ? localSystem
|
||||
#VVV these may or may not be available when called VVV
|
||||
, fetchzip ? builtins.fetchTarball
|
||||
, nix-update-script ? null
|
||||
}:
|
||||
let
|
||||
unpatchedSrc = builtins.fetchGit {
|
||||
url = "https://github.com/NixOS/nixpkgs.git";
|
||||
ref = variant;
|
||||
rev = {
|
||||
master = "716a7056386dcc67eb3b813289499d6329d4befc";
|
||||
staging = "da9d22446697971278edcd4af92f63221f7d21f6";
|
||||
staging-next = "5aa86ae5585cd46299ee46682fda8a9b76baf2ae";
|
||||
}."${variant}";
|
||||
lock = {
|
||||
master.rev = "37c6554b22af24d14f4ce44490d7f4c5f759d80a";
|
||||
master.sha256 = "sha256-nrWZK5CSQyXcwOMreVYUzslR0eRCtt+Bf6hqiTNbT7A=";
|
||||
staging.rev = "4f537018d08bbaadc9d8f7f54c04b1b06a1ffff6";
|
||||
staging.sha256 = "sha256-QBcprLKV6rAJD6knsLYmBeNuecuF4HU7vO01YSpcbFM=";
|
||||
staging-next.rev = "4f537018d08bbaadc9d8f7f54c04b1b06a1ffff6";
|
||||
staging-next.sha256 = "sha256-QBcprLKV6rAJD6knsLYmBeNuecuF4HU7vO01YSpcbFM=";
|
||||
};
|
||||
unpatchedNixpkgs = import "${unpatchedSrc}" { inherit localSystem; };
|
||||
|
||||
patchesFor = unpatchedNixpkgs.callPackage ./list.nix { };
|
||||
lock' = lock."${variant}";
|
||||
unpatchedSrc = fetchzip {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${lock'.rev}.tar.gz";
|
||||
inherit (lock') sha256;
|
||||
};
|
||||
commonNixpkgsArgs = {
|
||||
inherit localSystem;
|
||||
# reset impurities
|
||||
config = {};
|
||||
overlays = [];
|
||||
};
|
||||
unpatchedNixpkgs = import unpatchedSrc commonNixpkgsArgs;
|
||||
|
||||
patchedSrc = unpatchedNixpkgs.applyPatches {
|
||||
name = "nixpkgs-patched-uninsane";
|
||||
# version = ...
|
||||
src = unpatchedSrc;
|
||||
patches = patchesFor {
|
||||
inherit variant;
|
||||
date = unpatchedSrc.lastModifiedDate;
|
||||
};
|
||||
patches = unpatchedNixpkgs.callPackage ./list.nix { };
|
||||
# skip applied patches
|
||||
prePatch = ''
|
||||
realpatch=$(command -v patch)
|
||||
patch() {
|
||||
OUT=$($realpatch "$@") || echo "$OUT" | grep "Skipping patch" -q
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
src = if doPatch then patchedSrc else unpatchedSrc;
|
||||
args = {
|
||||
inherit localSystem;
|
||||
src = if doPatch then patchedSrc else { outPath = unpatchedSrc; };
|
||||
args = commonNixpkgsArgs // {
|
||||
config = {
|
||||
allowUnfree = true; # NIXPKGS_ALLOW_UNFREE=1
|
||||
allowBroken = true; # NIXPKGS_ALLOW_BROKEN=1
|
||||
@@ -57,7 +72,24 @@ let
|
||||
# so avoid specifying hostPlatform.system on non-cross builds, so i can use upstream caches.
|
||||
crossSystem = system;
|
||||
} else {});
|
||||
|
||||
nixpkgs = import "${src}" args;
|
||||
in
|
||||
# N.B.: this is crafted to allow `nixpkgs.FOO` from other nix code
|
||||
# AND `nix-build -A nixpkgs`
|
||||
src // (import "${src}" args)
|
||||
if src ? overrideAttrs then
|
||||
src.overrideAttrs (base: {
|
||||
# attributes needed for update scripts
|
||||
pname = "nixpkgs";
|
||||
version = "24.05-unstable-2024-06-12";
|
||||
passthru = (base.passthru or {}) // nixpkgs // {
|
||||
src = unpatchedSrc // {
|
||||
inherit (lock') rev;
|
||||
};
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version" "branch" ];
|
||||
};
|
||||
};
|
||||
})
|
||||
else
|
||||
nixpkgs
|
||||
|
@@ -1,5 +1,4 @@
|
||||
{ fetchpatch2, fetchurl, lib }:
|
||||
{ variant, date }:
|
||||
let
|
||||
fetchpatch' = {
|
||||
saneCommit ? null,
|
||||
@@ -8,7 +7,6 @@ let
|
||||
hash ? null,
|
||||
title ? null,
|
||||
revert ? false,
|
||||
merged ? {},
|
||||
}:
|
||||
let
|
||||
url = if prUrl != null then
|
||||
@@ -19,21 +17,13 @@ let
|
||||
else
|
||||
"https://github.com/NixOS/nixpkgs/commit/${nixpkgsCommit}.patch"
|
||||
;
|
||||
isMerged = merged ? "${variant}" && lib.versionAtLeast date merged."${variant}";
|
||||
in if !isMerged then fetchpatch2 (
|
||||
in fetchpatch2 (
|
||||
{ inherit revert url; }
|
||||
// (if hash != null then { inherit hash; } else {})
|
||||
// (if title != null then { name = title; } else {})
|
||||
) else null;
|
||||
);
|
||||
in
|
||||
builtins.filter (p: p != null)
|
||||
[
|
||||
# if a patch has been merged, use
|
||||
# merged.staging = "<date>";
|
||||
# merged.master = "<date>";
|
||||
# etc, where "date" is like "20240228181608"
|
||||
# and can be found with `nix-repl > :lf . > lastModifiedDate`
|
||||
|
||||
# TODO: apply this once it's fixed for aarch64
|
||||
# (fetchpatch' {
|
||||
# title = "libvpx: fix cross compiling for armv7";
|
||||
@@ -42,9 +32,15 @@ builtins.filter (p: p != null)
|
||||
# })
|
||||
|
||||
(fetchpatch' {
|
||||
title = "networkmanager: 1.46.0 → 1.48.0";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/316417";
|
||||
hash = "sha256-LfQyB3tzQa3UNyZl9HWCuoyBznIhinodlTL6TnPn0Uk=";
|
||||
title = "unl0kr: 2.0.0 -> 3.2.0";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/319126";
|
||||
hash = "sha256-IfGayn+othMzp5Mc+0klBvUmykFwq95OKIJDvWL96d0=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
title = "sysvol: init at 0-unstable-2024-06-07";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/318440";
|
||||
hash = "sha256-OX1OP2m9LJYjVcryhpt520XJmdK1XS0KKaEBzMjdpNo=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
@@ -57,8 +53,8 @@ builtins.filter (p: p != null)
|
||||
|
||||
(fetchpatch' {
|
||||
title = "trust-dns: rebrand as hickory-dns";
|
||||
saneCommit = "a7613d50c58b5612a7b806ce1375d8bf0485ab55";
|
||||
hash = "sha256-N4DfNhCeg9etVeTPVzJ73CwiZzf43SozK8nrfXIm0uQ=";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/316466";
|
||||
hash = "sha256-LJr+z7pgEXnPGqgsWLgMGmCJii1rh6nfIeEMHat4Xg4=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
@@ -69,7 +65,8 @@ builtins.filter (p: p != null)
|
||||
|
||||
# branch: wip-ffado-cross
|
||||
(fetchpatch' {
|
||||
# TODO: send out for review (after jtolnar's stuff is merged)
|
||||
# TODO: send out for review (after jtojnar's stuff is merged)
|
||||
# - <https://github.com/NixOS/nixpkgs/pull/306407>
|
||||
title = "ffado: support cross compilation";
|
||||
saneCommit = "001fe13a735cb9c6fad80525531e863f949e1495";
|
||||
hash = "sha256-rVsFR8vRTHqFJgDQFHI/E0LtllqKr79FyR92HPeLUb8=";
|
||||
@@ -89,8 +86,8 @@ builtins.filter (p: p != null)
|
||||
hash = "sha256-IW+0u5lytIPU3xhgGtYgexXUrS2VFXAV6GC50jJS5ak=";
|
||||
})
|
||||
|
||||
# 2024/02/25: still outstanding
|
||||
# (fetchpatch' {
|
||||
# # 2024/06/08: still outstanding
|
||||
# title = "hspell: remove build perl from runtime closure";
|
||||
# prUrl = "https://github.com/NixOS/nixpkgs/pull/263182";
|
||||
# hash = "sha256-Wau+PB+EUQDvWX8Kycw1sNrM3GkPVjKSS4niIDI0sjM=";
|
||||
@@ -175,18 +172,6 @@ builtins.filter (p: p != null)
|
||||
# hash = "sha256-oQEM3EZfAOmfZzDu9faCqyOFZsdHYGn1mVBgkxt68Zg=";
|
||||
# })
|
||||
|
||||
# (fetchpatch {
|
||||
# # stdenv: fix cc for pseudo-crosscompilation
|
||||
# # closed because it breaks pkgsStatic (as of 2023/02/12)
|
||||
# url = "https://github.com/NixOS/nixpkgs/pull/196497.diff";
|
||||
# hash = "sha256-eTwEbVULYjmOW7zUFcTUqvBZqUFjHTKFhvmU2m3XQeo=";
|
||||
# })
|
||||
|
||||
# for raspberry pi: allow building u-boot for rpi 4{,00}
|
||||
# TODO: remove after upstreamed: https://github.com/NixOS/nixpkgs/pull/176018
|
||||
# (it's a dupe of https://github.com/NixOS/nixpkgs/pull/112677 )
|
||||
# ./02-rpi4-uboot.patch
|
||||
|
||||
# (fetchpatch' {
|
||||
# title = "gnustep: remove `rec` to support `overrideScope`";
|
||||
# saneCommit = "69162cbf727264e50fc9d7222a03789d12644705";
|
||||
@@ -215,28 +200,4 @@ builtins.filter (p: p != null)
|
||||
# saneCommit = "7a4191c570b0e5a1ab257222c26a4a2ecb945037";
|
||||
# hash = "sha256-FiPJhHGqZ8MFwLY+1t6HgbK6ndomFSYUKvApvrikRHE=";
|
||||
# })
|
||||
|
||||
# (fetchpatch' {
|
||||
# # doesn't apply cleanly. use build result in <working/zcash>
|
||||
# title = "zcash: 5.4.2 -> 5.7.0";
|
||||
# prUrl = "https://github.com/NixOS/nixpkgs/pull/229810";
|
||||
# hash = "sha256-ProoPJ10rUtOZh2PzpegviG6Ip1zSuWC92BpP+ux9ZQ=";
|
||||
# })
|
||||
# (fetchpatch' {
|
||||
# # disabled, at least until the PR is updated to use `pkg-config` instead of `pkgconfig`.
|
||||
# # the latter is an alias, which breaks nix-index
|
||||
# title = "phog: init at 0.1.3";
|
||||
# prUrl = "https://github.com/NixOS/nixpkgs/pull/251249";
|
||||
# hash = "sha256-e38Z7sO7xDQHzE9UOfbptc6vJuONE5eP9JFp2Nzx53E=";
|
||||
# })
|
||||
|
||||
# fix qt6.qtbase and qt6.qtModule to cross-compile.
|
||||
# unfortunately there's some tangle that makes that difficult to do via the normal `override` facilities
|
||||
# ./2023-03-03-qtbase-cross-compile.patch
|
||||
|
||||
# qt6 qtwebengine: specify `python` as buildPackages
|
||||
# ./2023-06-02-qt6-qtwebengine-cross.patch
|
||||
|
||||
# Jellyfin: don't build via `libsForQt5.callPackage`
|
||||
# ./2023-06-06-jellyfin-no-libsForQt5-callPackage.patch
|
||||
]
|
||||
|
26
pkgs/additional/sane-kernel-tools/default.nix
Normal file
26
pkgs/additional/sane-kernel-tools/default.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ lib
|
||||
, newScope
|
||||
}:
|
||||
lib.makeScope newScope (self: with self; {
|
||||
parseDefconfigLine = line: let
|
||||
pieces = lib.splitString "=" line;
|
||||
in
|
||||
if lib.hasPrefix "#" (lib.head pieces) then [
|
||||
# this line is a comment.
|
||||
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
|
||||
] else if lib.length pieces == 1 then [
|
||||
# no equals sign: this is probably a blank line
|
||||
] else [{
|
||||
name = lib.head pieces;
|
||||
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
|
||||
value = lib.concatStringsSep "=" (lib.tail pieces);
|
||||
}]
|
||||
;
|
||||
# parseDefconfig: given the entire text of a defconfig file
|
||||
# parse it into an attrset usable by the nixpkgs kernel config tools.
|
||||
parseDefconfig = wholeStr: let
|
||||
lines = lib.splitString "\n" wholeStr;
|
||||
parsedItems = lib.concatMap parseDefconfigLine lines;
|
||||
in
|
||||
lib.listToAttrs parsedItems;
|
||||
})
|
@@ -22,8 +22,8 @@ then this updates the tags on-disk to reflect their path.
|
||||
DIRECTORY: specify `.` to scan the entire library.
|
||||
|
||||
options:
|
||||
--dry-run: only show what would be done, don't actually do it.
|
||||
--verbose
|
||||
--dry-run: only show what would be done, don't actually do it.
|
||||
--verbose
|
||||
--album ALBUM manually specify the tag, rather than guessing from path.
|
||||
--album-artist ARTIST often combined with DIRECTORY to tag an entire artist or album.
|
||||
--artist ARTIST
|
||||
@@ -31,7 +31,7 @@ options:
|
||||
--trackno TRACK_NUMBER
|
||||
|
||||
fix-tags options:
|
||||
--force: apply path-based tag to each file, even those which already have tags (only for fix-tags)
|
||||
--force: apply path-based tag to each file, even those which already have tags (only for fix-tags)
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass
|
||||
@@ -118,6 +118,10 @@ class Tags:
|
||||
return f"artist:{self.artist}/{self.albumartist}, album:{self.album}, title:{self.title}, trackno:{self.tracknumber}"
|
||||
|
||||
def union(self, fallback: 'Tags') -> 'Tags':
|
||||
"""
|
||||
substitute any tags missing tags in `self` with those from `fallback`.
|
||||
i.e. `self` takes precedence over `fallback`.
|
||||
"""
|
||||
def merge_field(primary: list[str], secondary: list[str]) -> list[str]:
|
||||
# primary_lower = [i.lower() for i in primary]
|
||||
# return primary + [i for i in secondary if i.lower() not in primary_lower]
|
||||
@@ -159,6 +163,9 @@ class Tags:
|
||||
if v.count("/") == 1:
|
||||
trackno, last = v.split("/")
|
||||
try:
|
||||
if int(trackno) == int(last) == 1:
|
||||
# track 1/1: useless; clear the field
|
||||
self.tracknumber[i] = ''
|
||||
if int(trackno) <= int(last):
|
||||
self.tracknumber[i] = trackno.lstrip('0')
|
||||
except: pass
|
||||
@@ -401,9 +408,14 @@ class Tagger:
|
||||
path_tags = Tags.from_path(path_)
|
||||
additional_tags = self.manual_tags.union(path_tags)
|
||||
if self.force:
|
||||
# additional_tags overrule old_tags
|
||||
new_tags = additional_tags.union(old_tags)
|
||||
else:
|
||||
# old_tags overrule additional_tags
|
||||
new_tags = old_tags.union(additional_tags)
|
||||
if additional_tags.tracknumber == [""]:
|
||||
# special case that `--trackno ""` can be used to delete the track number without `--force`ing all fields
|
||||
new_tags.tracknumber = []
|
||||
new_tags = new_tags.union(self.manual_tags)
|
||||
new_tags.trim_fields()
|
||||
new_tags.cleanup_trackno()
|
||||
|
@@ -118,7 +118,7 @@
|
||||
, yarn
|
||||
}:
|
||||
let
|
||||
version = "7.8.0";
|
||||
version = "7.11.1";
|
||||
|
||||
ringrtcPrebuild = fetchurl {
|
||||
# version is found in signal-desktop's package.json as "@signalapp/ringrtc"
|
||||
@@ -165,11 +165,11 @@ let
|
||||
repo = "Signal-Desktop";
|
||||
leaveDotGit = true; # signal calculates the release date via `git`
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CBcLk54cu4PGGZbQsPeYjjWnRFmFPxM9+mxLdQKCPP0=";
|
||||
hash = "sha256-A+VcVo+avtIg7IbO1NWaG2nitnFG5mRfB55wgSiDsbA=";
|
||||
};
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
hash = "sha256-ImkJyphN0YfXOUuU14HII/3798kbQ4iwgXr600k4PHU=";
|
||||
hash = "sha256-q9kBoGXti37sgNhhYTqw+w8NHO35zp+v77mxKQTqv7g=";
|
||||
};
|
||||
|
||||
nodejs' = mkNodeJs pkgs;
|
||||
@@ -400,8 +400,8 @@ stdenv.mkDerivation rec {
|
||||
passthru = {
|
||||
# inherit bettersqlitePatch signal-fts5-extension;
|
||||
updateScript = gitUpdater {
|
||||
# TODO: prevent update to betas
|
||||
rev-prefix = "v";
|
||||
ignoredVersions = "beta";
|
||||
};
|
||||
nodejs = nodejs';
|
||||
buildYarn = buildYarn;
|
||||
|
@@ -1,12 +1,13 @@
|
||||
{ pkgs
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
}:
|
||||
let
|
||||
src = fetchFromGitHub {
|
||||
owner = "Mic92";
|
||||
repo = "sops-nix";
|
||||
rev = "d4555e80d80d2fa77f0a44201ca299f9602492a0";
|
||||
hash = "sha256-8Q6mKSsto8gaGczXd4G0lvawdAYLa5Dlh3/g4hl5CaM=";
|
||||
rev = "c279dec105dd53df13a5e57525da97905cc0f0d6";
|
||||
hash = "sha256-psA+1Q5fPaK6yI3vzlLINNtb6EeXj111zQWnZYyJS9c=";
|
||||
};
|
||||
flake = import "${src}/flake.nix";
|
||||
evaluated = flake.outputs {
|
||||
@@ -15,10 +16,21 @@ let
|
||||
nixpkgs-stable = pkgs; #< shameless lie :)
|
||||
};
|
||||
overlay = evaluated.overlays.default;
|
||||
final = pkgs.appendOverlays [ overlay ];
|
||||
final = pkgs.extend overlay;
|
||||
in src.overrideAttrs (base: {
|
||||
# attributes required by update scripts
|
||||
pname = "sops-nix";
|
||||
# nix-update-script insists on this weird `assets-` version format
|
||||
version = "assets-unstable-2024-06-11";
|
||||
src = src;
|
||||
|
||||
passthru = base.passthru
|
||||
// (overlay final pkgs)
|
||||
// { inherit (evaluated) nixosModules; }
|
||||
// {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version" "branch" ];
|
||||
};
|
||||
}
|
||||
;
|
||||
})
|
||||
|
@@ -3,49 +3,47 @@
|
||||
, gtk4-layer-shell
|
||||
, gtkmm4
|
||||
, pkg-config
|
||||
, pulseaudio
|
||||
, nix-update-script
|
||||
, wireplumber
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
stdenv.mkDerivation {
|
||||
pname = "sysvol";
|
||||
version = "0-unstable-2024-04-11";
|
||||
version = "0-unstable-2024-06-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AmirDahan";
|
||||
owner = "System64fumo";
|
||||
repo = "sysvol";
|
||||
rev = "a26809de285ee194436bc55ef701476765c5b15e";
|
||||
hash = "sha256-WiFm5SRQV2up9EBCR9oF0p9F+DQHDQZhxsaUuvpbMw8=";
|
||||
rev = "8e374e596803944ddaa5db3af20124732cdafa89";
|
||||
hash = "sha256-GAbOfiF0LXtiunKiGnMKh/SD23BfdjpT9LQhg7yNvIM=";
|
||||
};
|
||||
postPatch = let
|
||||
# i don't know how else to escape this
|
||||
var = v: lib.concatStrings [ "$" "{" v "}" ];
|
||||
in ''
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail 'pkg-config' '${var "PKG_CONFIG"}' \
|
||||
--replace-fail 'g++' '${var "CXX"}' \
|
||||
--replace-fail 'strip sysvol' ""
|
||||
--replace-fail 'pkg-config' ''${PKG_CONFIG}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
wrapGAppsHook4 #< to plumb `GDK_PIXBUF_MODULE_FILE` through, and get not-blurry icons
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4-layer-shell
|
||||
gtkmm4
|
||||
pulseaudio
|
||||
wireplumber
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
install -m755 sysvol $out/bin/sysvol
|
||||
'';
|
||||
makeFlags = [ "DESTDIR=${placeholder "out"}" ];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version" "branch" ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "A basic GTK4 volume indicator";
|
||||
inherit (finalAttrs.src.meta) homepage;
|
||||
homepage = "https://github.com/System64fumo/sysvol";
|
||||
mainProgram = "sysvol";
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ colinsane ];
|
||||
};
|
||||
})
|
||||
}
|
||||
|
@@ -5,12 +5,12 @@
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = "uassets";
|
||||
version = "0-unstable-2024-05-27";
|
||||
version = "0-unstable-2024-06-12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uBlockOrigin";
|
||||
repo = "uAssets";
|
||||
rev = "deb1f47b49461e1c2f307931fc6a02c76137168b";
|
||||
hash = "sha256-IhzNUSkGnGuY9YBq9rN7l2rwxHzRMQTp3aPJ6xF46lU=";
|
||||
rev = "6a81d022e56b26921a84ad8ec59a5703652c1bc5";
|
||||
hash = "sha256-8Z31V6ykScTiIjx2kpPZPy7ay6Z0oXHrRltVhbyNWqo=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@@ -14,7 +14,7 @@ let
|
||||
inherit (py-final) callPackage;
|
||||
inherit pkgs;
|
||||
};
|
||||
final' = if final != null then final else pkgs.appendOverlays [(_: _: sane-overlay)];
|
||||
final' = if final != null then final else pkgs.extend (_: _: sane-overlay);
|
||||
sane-additional = with final'; {
|
||||
sane-data = import ../modules/data { inherit lib sane-lib; };
|
||||
sane-lib = import ../modules/lib final';
|
||||
@@ -28,7 +28,6 @@ let
|
||||
chatty-latest = callPackage ./additional/chatty-latest { };
|
||||
codemadness-frontends = callPackage ./additional/codemadness-frontends { };
|
||||
codemadness-frontends_0_6 = codemadness-frontends.v0_6;
|
||||
delfin = callPackage ./additional/delfin { };
|
||||
eg25-control = callPackage ./additional/eg25-control { };
|
||||
eg25-manager = callPackage ./additional/eg25-manager { };
|
||||
feeds = lib.recurseIntoAttrs (callPackage ./additional/feeds { });
|
||||
@@ -52,11 +51,12 @@ let
|
||||
libdng = callPackage ./additional/libdng { };
|
||||
libmegapixels = callPackage ./additional/libmegapixels { };
|
||||
lightdm-mobile-greeter = callPackage ./additional/lightdm-mobile-greeter { };
|
||||
linux-exynos5-mainline = callPackage ./additional/linux-exynos5-mainline { };
|
||||
linux-firmware-megous = callPackage ./additional/linux-firmware-megous { };
|
||||
# XXX: eval error: need to port past linux_6_4
|
||||
# linux-manjaro = callPackage ./additional/linux-manjaro { };
|
||||
linux-megous = callPackage ./additional/linux-megous { };
|
||||
linux-postmarketos = callPackage ./additional/linux-postmarketos { }; #< TODO: rename -> linux-postmarketos-allwinner
|
||||
linux-postmarketos-allwinner = callPackage ./additional/linux-postmarketos-allwinner { };
|
||||
linux-postmarketos-exynos5 = callPackage ./additional/linux-postmarketos-exynos5 { };
|
||||
mcg = callPackage ./additional/mcg { };
|
||||
megapixels-next = callPackage ./additional/megapixels-next { };
|
||||
@@ -64,10 +64,12 @@ let
|
||||
modemmanager-split = callPackage ./additional/modemmanager-split { };
|
||||
mx-sanebot = callPackage ./additional/mx-sanebot { };
|
||||
networkmanager-split = callPackage ./additional/networkmanager-split { };
|
||||
nixpkgs = import ./additional/nixpkgs {
|
||||
nixpkgs = callPackage ./additional/nixpkgs {
|
||||
localSystem = stdenv.buildPlatform.system;
|
||||
system = stdenv.hostPlatform.system;
|
||||
};
|
||||
nixpkgs-staging = nixpkgs.override { variant = "staging"; };
|
||||
nixpkgs-next = nixpkgs.override { variant = "staging-next"; };
|
||||
nixpkgs-wayland = callPackage ./additional/nixpkgs-wayland { };
|
||||
peerswap = callPackage ./additional/peerswap { };
|
||||
phog = callPackage ./additional/phog { };
|
||||
@@ -77,6 +79,7 @@ let
|
||||
sane-backgrounds = callPackage ./additional/sane-backgrounds { };
|
||||
sane-cast = callPackage ./additional/sane-cast { };
|
||||
sane-die-with-parent = callPackage ./additional/sane-die-with-parent { };
|
||||
sane-kernel-tools = lib.recurseIntoAttrs (callPackage ./additional/sane-kernel-tools { });
|
||||
sane-open = callPackage ./additional/sane-open { };
|
||||
sane-screenshot = callPackage ./additional/sane-screenshot { };
|
||||
sane-scripts = lib.recurseIntoAttrs (callPackage ./additional/sane-scripts { });
|
||||
@@ -172,7 +175,7 @@ let
|
||||
sane = lib.recurseIntoAttrs (sane-additional // sane-patched);
|
||||
}
|
||||
# patched packages always override anything:
|
||||
// (lib.mapAttrs (pname: _pkg: final'.sane."${pname}") sane-patched)
|
||||
// sane-patched
|
||||
# "additional" packages only get added if their version is newer than upstream
|
||||
// (lib.mapAttrs
|
||||
(pname: _pkg: if unpatched ? "${pname}" && unpatched."${pname}" ? version && lib.versionAtLeast unpatched."${pname}".version final'.sane."${pname}".version then
|
||||
|
12
scripts/check-nur
Executable file
12
scripts/check-nur
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd ../integrations/nur
|
||||
# TODO: should include `-I nixpkgs=</path/to/an/unpatched/nixpkgs>`
|
||||
NIX_PATH= NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-env -f . -qa \* --meta --xml \
|
||||
--allowed-uris https://static.rust-lang.org \
|
||||
--option restrict-eval true \
|
||||
--option allow-import-from-derivation true \
|
||||
--drv-path --show-trace \
|
||||
-I ../../ \
|
||||
"$@" \
|
||||
| tee # tee to prevent interactive mode
|
||||
|
142
scripts/deploy
Executable file
142
scripts/deploy
Executable file
@@ -0,0 +1,142 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nettools
|
||||
|
||||
SELF=$(hostname)
|
||||
|
||||
usage() {
|
||||
echo "deploy: deploy a nix config to a remote machine, possibly activating it"
|
||||
echo ""
|
||||
echo "usage: deploy [options] [host]"
|
||||
echo "options:"
|
||||
echo "- --action copy|switch|test (default: 'switch')"
|
||||
echo "- --variant light|min|''|all (default: '')"
|
||||
echo "- --pre: alias for --action copy --variant all all"
|
||||
echo ""
|
||||
echo "common idioms:"
|
||||
echo "deploy all: deploy all hosts, sequentially"
|
||||
exit 1
|
||||
}
|
||||
|
||||
info() {
|
||||
echo "[deploy]" "$@"
|
||||
}
|
||||
|
||||
action=switch
|
||||
host="$SELF"
|
||||
variant=
|
||||
nixArgs=()
|
||||
parseArgs() {
|
||||
while [ "$#" -ne 0 ]; do
|
||||
local arg=$1
|
||||
shift
|
||||
case "$arg" in
|
||||
(--action)
|
||||
action=$1
|
||||
shift
|
||||
;;
|
||||
(--help)
|
||||
usage
|
||||
;;
|
||||
(--variant)
|
||||
if [ -n "$1" ]; then
|
||||
variant=-$1
|
||||
else
|
||||
variant=
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
(crappy|desko|lappy|moby|servo)
|
||||
host="$arg"
|
||||
;;
|
||||
(--pre)
|
||||
action=copy
|
||||
host=all
|
||||
variant=all
|
||||
;;
|
||||
(*)
|
||||
nixArgs+=("$arg")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
runOnTarget() {
|
||||
# run the command ($@) on the machine we're deploying to.
|
||||
# if that's a remote machine, then do it via ssh, else local shell.
|
||||
if [ -n "$host" ] && [ "$host" != "$SELF" ]; then
|
||||
info "running on remote:" "$@"
|
||||
ssh "$host" "$@"
|
||||
else
|
||||
info "running locally:" "$@"
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# deployOneHost $host $variant
|
||||
deployOneHost() {
|
||||
local host="$1"
|
||||
local variant="$2"
|
||||
|
||||
info "building $host$variant ..."
|
||||
nix-build -A "hosts.$host$variant.toplevel" --out-link "./build/result-$host$variant" "${nixArgs[@]}" || return 1
|
||||
storePath="$(readlink ./build/result-$host$variant)"
|
||||
info "build $host$variant -> $storePath"
|
||||
|
||||
# mimic `nixos-rebuild --target-host`, in effect:
|
||||
# - nix-copy-closure ...
|
||||
# - nix-env --set ...
|
||||
# - switch-to-configuration <boot|dry-activate|switch|test|>
|
||||
# avoid the actual `nixos-rebuild` for a few reasons:
|
||||
# - fewer nix evals
|
||||
# - more introspectability and debuggability
|
||||
# - sandbox friendliness (especially: `git` doesn't have to be run as root)
|
||||
|
||||
if [ -n "$host" ] && [ "$host" != "$SELF" ]; then
|
||||
if [ -e /run/secrets/nix_signing_key ]; then
|
||||
info "signing store paths ..."
|
||||
sudo nix store sign -r -k /run/secrets/nix_signing_key "$storePath"
|
||||
else
|
||||
info "not signing store paths: /run/secrets/nix_signing_key does not exist"
|
||||
fi
|
||||
# add more `-v` for more verbosity (up to 5).
|
||||
# builders-use-substitutes false: optimizes so that the remote machine doesn't try to get paths from its substituters.
|
||||
# we already have all paths here, and the remote substitution is slow to check and SERIOUSLY flaky on moby in particular.
|
||||
nix copy -vv --option builders-use-substitutes false --to "ssh-ng://$host" "$storePath" || return 1
|
||||
fi
|
||||
|
||||
if [ -n "$action" ] && [ "$action" != "copy" ]; then
|
||||
info "activating profile... "
|
||||
runOnTarget sudo nix-env -p /nix/var/nix/profiles/system --set "$storePath" || return 1
|
||||
runOnTarget sudo "$storePath/bin/switch-to-configuration" "$action" || return 1
|
||||
fi
|
||||
}
|
||||
|
||||
parseArgs "$@"
|
||||
|
||||
failedDeploys=()
|
||||
if [ "$host" = "all" ]; then
|
||||
for host in moby lappy crappy servo desko; do
|
||||
if [ "$variant" = "all" ]; then
|
||||
for variant in -min -light ""; do
|
||||
deployOneHost "$host" "$variant" || \
|
||||
failedDeploys+=("$host$variant")
|
||||
done
|
||||
else
|
||||
deployOneHost "$host" "$variant" || \
|
||||
failedDeploys+=("$host$variant")
|
||||
fi
|
||||
done
|
||||
else
|
||||
deployOneHost "$host" "$variant" || \
|
||||
failedDeploys+=("$host$variant")
|
||||
fi
|
||||
|
||||
if [ "${#failedDeploys[@]}" -ne 0 ]; then
|
||||
echo "FAILED DEPLOYMENT:"
|
||||
for d in "${failedDeploys[@]}"; do
|
||||
echo "- $d"
|
||||
done
|
||||
exit 1
|
||||
else
|
||||
echo "SUCCESS"
|
||||
fi
|
30
scripts/sync
Executable file
30
scripts/sync
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p rsync -p sane-scripts.sync-music
|
||||
|
||||
usage() {
|
||||
echo "sync <host> [passthrough flags]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
host="$1"
|
||||
shift
|
||||
|
||||
case "$host" in
|
||||
desko)
|
||||
sane-sync-music --compat /mnt/servo/media/Music /mnt/desko/home/Music "$@"
|
||||
;;
|
||||
lappy)
|
||||
sane-sync-music --compress --compat /mnt/servo/media/Music /mnt/lappy/home/Music "$@"
|
||||
;;
|
||||
moby)
|
||||
# copy photos/screenshots from moby to desko:
|
||||
rsync -arv --exclude servo-macros /mnt/moby/home/Pictures/ /mnt/desko/home/Pictures/moby/
|
||||
# copy books from servo to moby; delete old/untracked ones, but keep KOreader state files (sdr)
|
||||
rsync -arv --delete --exclude unprocessed --exclude '*.sdr' /mnt/servo/media/Books/ /mnt/moby/home/Books/local/servo/
|
||||
# N.B.: limited by network/disk -> reduce job count to improve pause/resume behavior
|
||||
sane-sync-music --compress --compat --jobs 4 /mnt/servo/media/Music /mnt/moby/home/Music "$@"
|
||||
;;
|
||||
(*)
|
||||
usage
|
||||
;;
|
||||
esac
|
155
scripts/update
155
scripts/update
@@ -1,91 +1,106 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix-update
|
||||
|
||||
showHelp() {
|
||||
echo "update: updates flake inputs"
|
||||
echo "usage: update [flags] [input [input ...]]"
|
||||
usage() {
|
||||
echo "update: update rev/hash for one or more packages"
|
||||
echo "usage: update [options] [attr-path]"
|
||||
echo ""
|
||||
echo "flags:"
|
||||
echo " --help"
|
||||
echo " --dry-run"
|
||||
echo "inputs:"
|
||||
echo " all: update every input"
|
||||
echo " safe: update inputs which rarely break the build, or are trivial to patch"
|
||||
echo " unsafe: update inputs which may be annoying to patch if they break the build"
|
||||
echo " nixpkgs"
|
||||
echo " next"
|
||||
echo "options:"
|
||||
echo "- --dry-run"
|
||||
echo "- --verbose"
|
||||
echo ""
|
||||
echo "examples:"
|
||||
echo "- update nixpkgs: update only the nixpkgs input"
|
||||
echo "- update sane: update every package under the 'sane' attribute"
|
||||
echo "- update: update everything i know how to update"
|
||||
exit 1
|
||||
}
|
||||
|
||||
inputs=()
|
||||
dryRun=
|
||||
warn() {
|
||||
echo "$@"
|
||||
}
|
||||
info() {
|
||||
echo "$@"
|
||||
}
|
||||
debug() {
|
||||
if [ -n "$verbose" ]; then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
hasEffect() {
|
||||
if [ -n "$dryRun" ]; then
|
||||
echo "dry-run: skip $@"
|
||||
else
|
||||
eval "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# usage: getPkgs outVar prefix
|
||||
getPkgs() {
|
||||
local -n attrsArr="$1"
|
||||
local attrPrefix="$2"
|
||||
if [ -z "$attrPrefix" ]; then
|
||||
attrPrefix=sane
|
||||
fi
|
||||
|
||||
local attrs="$(nix-env -f . --query --available --attr-path --no-name -A $attrPrefix)"
|
||||
attrsArr+=($attrs)
|
||||
}
|
||||
|
||||
updateOnePkg() {
|
||||
local attrPath="$1"
|
||||
local updateScript="$(nix eval --raw -f . $attrPath.passthru.updateScript --apply 'builtins.concatStringsSep "'" "'"')"
|
||||
if [ -z "$updateScript" ]; then
|
||||
warn "don't know how to update '$attrPath'"
|
||||
return
|
||||
fi
|
||||
|
||||
# make sure everything needed to invoke the script actually exists on disk
|
||||
nix-build -A "$attrPath.passthru.updateScript" || true
|
||||
|
||||
local UPDATE_NIX_NAME="$(nix eval --raw -f . $attrPath.name)"
|
||||
local UPDATE_NIX_PNAME="$(nix eval --raw -f . $attrPath.pname)"
|
||||
local UPDATE_NIX_OLD_VERSION="$(nix eval --raw -f . $attrPath.version)"
|
||||
info "updating: '$attrPath'"
|
||||
debug "$updateScript"
|
||||
# we lose spaces inside the exec args... could `nix eval` without `--raw` to fix that.
|
||||
UPDATE_NIX_NAME="$UPDATE_NIX_NAME" UPDATE_NIX_PNAME="$UPDATE_NIX_PNAME" UPDATE_NIX_OLD_VERSION="$UPDATE_NIX_OLD_VERSION" UPDATE_NIX_ATTR_PATH="$attrPath" eval $updateScript
|
||||
}
|
||||
|
||||
dryRun=
|
||||
toplevelsToUpdate=()
|
||||
verbose=
|
||||
parseArgs() {
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
while [ "$#" -ne 0 ]; do
|
||||
local arg=$1
|
||||
shift
|
||||
case "$arg" in
|
||||
(--help)
|
||||
showHelp
|
||||
exit 1
|
||||
usage
|
||||
;;
|
||||
(--dry-run)
|
||||
dryRun=1
|
||||
;;
|
||||
(--verbose)
|
||||
verbose=1
|
||||
;;
|
||||
(*)
|
||||
addInputs "$arg"
|
||||
toplevelsToUpdate+=("$arg")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# if no inputs were specified, assume "all"
|
||||
if [ ${#inputs} -eq 0 ]; then
|
||||
addInputs all
|
||||
fi
|
||||
}
|
||||
|
||||
# add $1 to `inputs` array, after parsing it
|
||||
addInputs() {
|
||||
case $1 in
|
||||
(all)
|
||||
addInputs safe
|
||||
addInputs unsafe
|
||||
;;
|
||||
(next)
|
||||
addInputs nixpkgs-next-unpatched
|
||||
addInputs nixpkgs-staging-unpatched
|
||||
;;
|
||||
(safe)
|
||||
addInputs next
|
||||
addInputs nixpkgs-unpatched
|
||||
addInputs sops-nix
|
||||
addInputs uninsane-dot-org
|
||||
;;
|
||||
(unsafe)
|
||||
# these tend to break more frequently
|
||||
addInputs mobile-nixos
|
||||
addInputs nixpkgs-wayland
|
||||
;;
|
||||
(mobile-nixos|nixpkgs-next-unpatched|nixpkgs-staging-unpatched|nixpkgs-unpatched|nixpkgs-wayland|sops-nix|uninsane-dot-org)
|
||||
inputs+=("$1")
|
||||
;;
|
||||
(*)
|
||||
echo "unknown input '$1'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# exec $@, unless we're in a dry-run in which case just print what would be done
|
||||
doEffect() {
|
||||
if [ -n "$dryRun" ]; then
|
||||
echo "dry-run: $*"
|
||||
else
|
||||
"$@"
|
||||
if [ "${#toplevelsToUpdate[@]}" -eq 0 ]; then
|
||||
toplevelsToUpdate=(sane)
|
||||
fi
|
||||
}
|
||||
|
||||
parseArgs "$@"
|
||||
|
||||
echo "updating:" "${inputs[@]}"
|
||||
nixFlags=()
|
||||
for i in "${inputs[@]}"; do
|
||||
nixFlags+=("--update-input" "$i")
|
||||
pkgsToUpdate=()
|
||||
for t in "${toplevelsToUpdate[@]}"; do
|
||||
getPkgs pkgsToUpdate "$t"
|
||||
done
|
||||
|
||||
doEffect nix flake lock "${nixFlags[@]}"
|
||||
for p in "${pkgsToUpdate[@]}"; do
|
||||
hasEffect updateOnePkg "$p"
|
||||
done
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDdDR3YitDWkxvVFpOWTFS\nQXNrbHZHSzZzanpnR1Z0bE82aFpiUmNMR3djCitYT0J4K0daZmlXTzhJbWR3K0tY\nZFA0QS9rdXV5bVVXRXVuUStVd3RMeUEKLS0tIExicUdTcEFMZHZEOEFmdkV1T0tE\nc01seHdzS3RyMjc4dXF0ME1seEUzUFUKvctFuHiqCIBYGqIKQhMO7imfylxlKXBY\nezzfi0MMlfoSMmz8XqkCYT1kdgYVM1cCOwtBBmTzE2muhWK7o0zPCQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnTVJOMHVUZkFydmp3elo5\nRHlETmJUZFhpbVhpOUJPRzFXMVdGOWR6d0ZNClkrdWJBMkQ3ZHNkMWlQZDlVMWxk\nVXFrT2h6R24ya0F6VFRMTDNXaHkwZk0KLS0tIElmdTU0TC9QSzZXb3Y5ZUpLenl3\nN0gwbWVuMnQ3bGpqeU94V3kzVlFyT1EKJqdCjXhQchEXOB02EwtqmNE0TWiaR7Hz\nT8FKJXMM+2ZX7kuhv0rp7bdS+mp5Guv2vO0aIF0rDmE1/7ety2OLfQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxWnhldzk0UFdIcU03UUtE\nZ0VRVzBBRHp2cFA5Q2RjbU9kT3V4eHR1SFE0CkJRSndMZ3JOVjFRVytXSXBIbEk1\nKzBUR2pZWTVXTTRhQ2J5VlR0ejRpa00KLS0tIDZveWl3dUJZL0tIVUhKTDJPalBF\nVFVWcDBDdUt4ZlBZejQ4MGNJTGNzSGcKM9jHMEkRCmil2GO4DRVJMdPd4wikyNyP\nbI86+Z7llsMSWZdl+M/ZcTuJSq9Lh69hVNzKObuuW2GgApwoju9Lsg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBadnFScW1Zb0FKU1ErTXBM\nS01mMzNqZ3lRdDBQMHg4OFM4c1A4MEFPb1FNCktseFpzVVQ0SzZ4ZHVncm0rZkwv\nVnIwbkV5OW1TbGEveHlqenFSblRRblUKLS0tIGw2V3lYeHR6MnFQUjFqVzBKRE1P\nQ0pqVHNNekJzdWxFckdwUDBOQkt0UUUKN4/UFM2Po0yoQQNuhjh7E+kHUMqeyj3M\nxnH4ZEq4DK1VG2E816dKrsPjo6Zy4/FA6WEezPRkQ/l3j/OmtlzpHQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5NUJpc2hpY0Vwb09GbHUv\nRWRjbjRHS2xxWWNhN3BlbHlOcUgranYxZG5jCnhQOWdBM1dKdGNTL2ZuamxjSlNS\nU2VCYTZQZVJTOE1sWEYvV0cyZUlNMmcKLS0tIHk0WXNyZHIxaHJ1Wm1xVk5ZZ1lj\nL1JnTjZrK3JjK25FdEFEdzlvTURrV0UKL0HMaRQBg4KJTW+pb8RWe6iZVMJhtwrI\naH83tABhElaf1JKx8YiCG9+RHkis35nzxqSoJDN0bN5jRgVVG6C1iw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKYVh3dUZ4RFA5TmErc0Ry\nL0NGR1o2L3ZzZDhHcnFTM3dwYVl0UTFyakJZCmhxVGNTWFRRWDhQODd5c25rdGN2\nOTk4M0Q3VHp6TVQxRitkOTVZcllPTTAKLS0tIDY5MGhyZ2xqZ1B6ZDZVOGdVNkhI\nSHhSQjdFbHpXSzVQN3g0bmZLS3BQUVUKvofjws2goszgGwS9l/q6EB7C4IprEkv3\nTnAvPF67F7sneWA5nEW/VnToJWKfdGuOHKim8BEiqfPB1CC9dMke9A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxbGt3d0k1SlZCemd2V01z\nd2R2NVAxZVlJdWpkVVh3bXBUcTZ0T05kTmtFCkQzWFVqd2pQelAzNGE5MnFSeVQr\nbjRjaUJKVVN6aGlQSWdTUGdHRjR1QWcKLS0tIGdrTTF6eUl6UHFlaTlQMENiMzFP\nQlJJWlZwMjdvNUdhVnBiRlRKL3hzcXMKNF9IEoY0seK15jiJqxWrOtMSPmBUU0jS\ndSY9KXeYLQNHuCzSC2T01UHmq5FDxDszRH3O8JQ+rBSLxNx3dLpetg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSdDhQbE9mY0Q0T3Y0WDdF\nNk9QbWVCWnNvWVRmNm9EbzBFSkJrd2xiREJzClJoOHYrQ25mVTlWR0tSRlNHQXdO\nRlA2bWZIL3JpSkxQNVc3bWhpbFpuK1EKLS0tIFFEVTRKaWxDU0tuejNLL0JuV1gx\nNHA3MWlOVzJJMDMzVGtubjg0b1h1UG8KVQ/tzduOz0P6pfVSnzBf8Bnd4bXA9sqy\nOWlSeB9HmFbHkqJx825r4lmbwozOqLHMMSc7c7HUPDsX7PUs7lzAJA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHd2hBcTBubGRXeWlWekRi\nTU52OE1pVVdWRU1ENkdJZ3dWWlFCNitYSlVrCnJXdGtnZUtyLzhrZ3FTRzdOMHhM\nL21iMzVpb1ZjR3FoRkUwT3A4c1VHczQKLS0tIFh0c25YSXNmcDBsZnlJNmVJbklp\ndDBhckVOakp1WFp1bGZ5QTl1WDZ6WVEKy0UHGQWGgPZ5sO3XsdMEqkFAz4Pl1pHq\nBRnpnl2oJ2SnwzkaS0Z/Ul+a456yPXHVFQbc3chYYwHlnD6cxt6EZQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCMEdCbHhFNWNuODRSNDU2\na0FzK09MME8rUWw0QnhpNG9NK0twNVp5RWcwCnBxZXJrZCtMRkFSR0lnRzl0TC9s\nUkpoQjFiU2t4djJNamt4NzQweUdOR1UKLS0tIFNoQTB4ODM1RTkrdGJxaCtSOG1D\nbFNUWktMRWZueWpDc2dkL2I0OTA3V0kKhWPOoRDueGpQntCeofze8yKgMtXH7Hn9\n04tlU0BFAWML7Rv2n9OeHAFcPe+n1DBoIZDF6U7ChItomIVmsYQZcg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3c0MrdWpneUNSMVlSWE96\nYlFJNjZpMkxTOFVuR1Z1d1BrQVlBN0piTUJJCjJkOXNjSm5meG10RENCUXRtMDRs\nZ3I2Q0lqZUo4TTY5Vi9sMEFxYmpRQncKLS0tIHJhSkV5dGZGamppUkFPcFFiK09z\nYXNGanF5SlN1bHNoeFhqQ3F6K01nUHcKeA4FMD01eAJ2jqkzwuOD5ZZIuooa8yPg\nGIboavpLao2xumV/3P7JCKrF8RTX+5YigaC2ZqrHR3Fgg/sCujAHBg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2cFRvc3BVOVFwb3QyaFBs\ndURLUlFWRGhqV2lpRkRrdDA3dFQ5c2V3aEhvCno2QmFDWEt1SGVRTGtkWnhHRUJn\nWTNmVlh4Tm8wZUpYSG11czBxS0hIRmMKLS0tIGZmd2NHWlhmTTVhSVVmS25XL1dp\naFVsQmJPdTF4K1g2WnBCKzJ4aDg4R3cK27ztxAUVvTFhaKvO4RorZaHNFtJ3LPv4\nFzpsko2dXTaksBHukBLsESCF89NlvxIJosgOMSqJzHwhODUeBPYwIQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWbmsxNmt6NTRHYXQzazdM\naWNScVNOZEo5eDJvclhsSno4aFNDakdoa0hrCjNpb0xKMWxuZWRUVW00clIvK1pJ\ncnVqQWQ0cVh6aDBHWU9pZGEvdHRNbG8KLS0tIFlNbjdPc2NpMzM3NjUzUWFsMkRV\nTzZHbnY0MExiTUJPd1U3N1lHK0tYU2sKOo5f+aJ9b9JVCWcSug+u9phwh2B4tk0v\nGslRh0FffQyfhDCPbe8RZTGZXatw9gxM8Sbl/CVWaUR2ULD4iYJKKQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4SXZDNFgzL1VBMFRlWlhx\nY21SYyt6aVdSdW41a0RYU3dIOXM4OThPMXlVCjllbk1VbVNpRmc0QkZwMGtmZERR\nMitjWjI0bkQ3ZlVLcWhjaE95Y3lFdnMKLS0tIGxYTnlEclhkc3dub2kvalVyUHZC\nak5IVTdaTjI5NHU2VHVWSWw3K004OG8KK2E91q5yKGXCqtjC49f7snkvZtfSRQhM\nh7d7ZcudW4OzrFaPFzmoj9OdD1kBMHR5QQQHu/aCV+ObFrp+by0utw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzMk54cU5sY0h3Y1dLS1pT\nSXgweTJMNmxtRXp2MlpwejFEYWEwZThjVVJvClQvUXVBLzdLUWNTWENlT3lQeGNx\nZWJWbk9BRmx6RTlVVjlxSGpKM3V3M1EKLS0tIExCbjlqR2xiYnVxbW1xMmxJWEZ0\nRjNrSkROd3JmUXpwM01hYlRTTEkxWUEKj+g43whHMLHcRuSAonSs8PnyHxzFi/7z\nOtYmmewimxLhRVowYWXxM7owm7ZxGqWw3jzdp+Xwl2FVIL8nxPgyrQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWU0xDUFRJZXVocGwreEVo\nSVFqRWpLSktBaFpoTXYvMTNYMHEzZjRraTI0CmoyN2pHL003TnBUdnFpSE1NdnJZ\nd0k3Q1ZvaXk3aWZtNEo2dWpTU1N5Y1EKLS0tIHdRNklxOWI4YytWcC9NSVVxTkhn\nTnZ5SzZaMnV5Rms5Q2NrZFkrSGRtT1UK/yBKQzkC+HQveQJtAJ+qulDCxjEhwJ1/\nSqEojNY/OV8q7YSR+PNJBsllQYS64z72hCyPpkQ67v5C2Xk5LCd+PQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z3dkRGZFczZubFpGU2M0\nUkN4TDh1VGdiM3h2MWRLcEdBbHRtUWcya2dJCjQ5c20wc1hxMGlSVGVDMWVBWTU0\nRERVUjVReFRTSDRJWjhzMW9nRmpsbE0KLS0tIFM0bGd3eHlqb3VRV0dhRGlHR0Fx\nMG9wWmtOOVlYMHg4dXhqVEljRTV0ZVkKNkuFVZ9yWgXy69yxGBJ9R4x2x762HbFg\njWrNW5HtDYyB8Q1vHVPaeG7beIbF6KbvK1/HfD0GVoQFkCk/XWjlfQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-06-30T11:08:58Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhRW1DZmVTVCs0Ym9vLytG\nUm1DWGZHaUhsZkNSTW9RWURDWmxhRFY4QkRZCkMvbExwWGplTFFnQUdDdG5RdFhY\nYWNEM1cxR0hIQS90dS9nVE1rMmhSdDAKLS0tIDFjcEVTZ3pQc2pwVU5yeEJDQjFl\nUmFLZGlQN29saTlramcxejFaWDcyamsKX3GnzkjF3Yqc3T2g0sw+8d0MHUCUDaGg\nG/HBpGBS2ESTH+jAVxv5PFbnS5VFpf4nlPxhUzdE3j7KTikvmAJoAA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVGtlZFE4clZJdVFyczlY\ndjh3Y0pEeEdNaGpsTlpNQUloSGdqb1BQQ1RjCm1ScVNyZElOMG1iYjNRWmlZczFM\nR2RDMTN1aDgvZTlhSmZPQWFpWTFWeU0KLS0tIFpENEtobFZ0cFRURFZ5MjJ5THNj\nMGFDeGM0RmNxSXoxOVJBTmxwUzVYUzQK4Kc5JyoDCN0/rVEjg39QdHSivd2gpxdV\nXbn/KCXVTox05VnKpqflucWuegpSXgGYuvJ7DucljvgItVXyxEa28g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6eWhOc0xNTDY4YUdyYmcv\nQWQ4WEFFcVpmZEhNbGthRVlVcVM1RzQraFZvCmN5L00zTTV2MXFTcWxaWC8ydytu\nQ0NTbDVsRXBaWTVMSzI2VTFCWGFxZFUKLS0tIFoxSTUvREVreEo5dmdmYmExSDB1\nckp5ZnUrOGZxSjB0SHFMaTB2VFFEUVEKqn/1aXfZ/WHtDDVOmGjOT/PUas+5eZ/S\n+QY0qc6mjeJ8yn8ULOmm9M1E4zk5dJGiOIHzJ/rSFZDO0ayR0tcbwg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhY1R6SGU4ZTNFaWlkWkZ5\nSUdFVHV2RlFYR0c4RSs5VldLSW1TK0ZaV2pVClNDeEZScUlnSVN6QlBMOXBCSEFH\nZmFNVHdNSWNYam03MHdYUjI2eUxSTG8KLS0tIFlhN1Z2ZitFeU5Md1pwTTA5NjIz\nWmJYMThYMGVIaENBeGhYWkd1WWNxWmcKQNtQgvPWYhm03zkE+uFNbzXXIN+8C4nz\nZiZlTVWV+I4FcnGwo0J80ZtaHrNxCBfRVgJmXYc5W0aXK3z9Pja6jg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiay9zZ3lCYk9oOVk1bzVi\naEhCeU9WOHFMdE5xb0RxeEhoTEpPT3B4em5RClhrWjN3YXRsd1E4WTVVc2RPMzJ1\nai94Y0RsUUxOSTlCTSs0SXdTL3ROVGMKLS0tIHBIcXFGc2h4WmtPZGxNM1hQamFt\nM1I3U1cySWtGK29BS0lXZ3paRXhVVFUKf/blwoKGYVgb1YbvDU8/gZbcQJaArKTw\n6oFb7R4bVAkmTtTuSEjRylGomu4tde562zuT3IiZ/ReNnNdcQOSi2g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQ2JOajJ4K29xeE0xelgv\nQUdGVHhydjA0dXN3RGZDNzIyUXVMS20yeUNrClpRWUt2VHRodjNIdkVrWkJpWEhE\ndW9XV2FvYVY0MFhFWGVpbDRDTmNKeU0KLS0tIFhCREJSRFBoYlVGZFVocnpIYTl5\nYVhuVldtaXpsOUFrWDN4eHZ1eEN2U0UK1EP1VbD7bwAirOrmBZ5zAzkJYLx1ZEKF\nX7kfjcuWUMDGYx9ed0/tfJqAi0BVBi78MRlKHRs6D+s9gQbKVe5klQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSaVpFTHVlTjJYdEJVVVp0\ndTZobFc2dlorTUx5STd4c3k3K2VzTTVSMlVjCnBtaDdaMjAzOUQ1ejlUMGFmQjJO\nM1hPSXJMa0NmYmgza0lYeWRkaHc1VWMKLS0tIFZJTTM1TFRSZU5GejlRSTQxMlVW\nMXJ3VTNzUjJET1dpaEg5emk0T0xrbEUKBBYPgzSCKXU9jMD9Sc5YRNqBxoxN340R\njf4sBD2LWTofriB1E+ltrd82o0Gz3+JH21/+0cEI0MTD8H5o1r6Sqg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcmsxRjZyK2JEK3dTb3p3\nejVQWkVIWnV5MTBGYnlxazZ0UDBSaUcyelNFCjhCNWxMOTl0a3BWMUJhNXNWL2Z5\nbHBNU29ySmJpWk1ReU9uS2xhLzRZTWcKLS0tIGwzWTdEVE1sSTd1Z1ZUcDVpZnR6\nbTdEcHJaSTFsZGdWK2NOT201amlWMDgKhPa8GRkNpyf7DJ7FWMYt1Jgffe3mtPNi\n7emn/1gCCtaoYwyLmoG3K+QNH0QuF4uK2dkOFZOhASt38BVH4iyyvw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxN2RtQ2ZqMzA4alpmRGtl\nTERGL1FzdmNmUERNeGlOczAwZ2hXb3piYTBRCktVa2JudlNUOE15aksvb0hDS0tI\nQzFzSXUxdTZ2LzZtOEhNOFlIV25FSTAKLS0tIGJ6ZTRtaGpKVzcwR1c0ekhPNkRQ\nanVKSnUza0R3MUdySW5sdExJZ1lCdmcKqp8hsFxhTjs27PLyuHYb3WV34yF3KUJd\nWaeKyUEDkbDwcjykJHz0O3D27YsSIRg5iBR7qVDN5jxxuuZcnO6Nkw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMOVR3S1pDZzlmZVJibENs\nU0k0M1NEQWRacW1oOXY3eVREWE5LVkNaN0NVCk9DNE5CVnpvcGFGSWxZOUFCQ1hn\nS1BQdXBVWm9ta1pMWFZlMm43Zm44WGMKLS0tIDViYmdYWENhc3Y1eDdXYXFDWUR1\na1dBQWtHRTJRTjFySytzSHliaGJ0MlEKKN+Nrqi2NHhV9debUfIIbgYo0eClSUkY\nb24VJc1vj9WBHu6xP0fOfhDaue5oOk0g+7w1RQE7yI5lYBR7DQyxJA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTdWZtN0Fvd1NzQmpSSjBZ\naUZQd003bm1OdWtjRHI2eU0vWW8xUTlPVDFVCm4wekNyUndJZE1IcG5XUnZKNlhG\nRzYwUGVHZlgrdkl2cUVSYlBrSXhsbm8KLS0tIFd1ejllaWc1ZUN4U1c4TC9Da3ha\nYzN5VzdBRlRTN29IUzJsbXFOU0VvVTgK2xxoAvCtV1Px8m6pgLoJjmYsqg49rtS5\nKnt+SFcpXY2uMMNwTEk0aaK+yDqlwlIL8rDhWBPJXwa9c9DxywytIA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6U1B4aHRyem9INTIzU3py\nby9OS1AxYkRlbVlHSTFCVVdRU21INGdVclY4CllvQVZWTVVPajUrSDBFaFdPaGFR\naVhRU0xpNExreVFQZUNzVUlyTzdTbU0KLS0tICtCVVBCWndGNTQvSm1naGY2OVZ4\nY3BDMzZuek5XeXIySEI3MEF2eHhNOUkKPVFHVOVyatt141Nb4EMXR7KdrVIIoDNI\njb86cX3Nq4CyrajmnXKJmBbNoSMHdiehUEaFoimMccnTmQhhxtXKVw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFQ1hobEVQdTJOT0dlUXZN\naUwrT2FzUm9SaHcxeTFGODRwWmdNQzNoaTA4CjdZSTd6UHA1RjAzb3FPYTk1cFBz\nZUE4MC9GcFhPQmFLV1JTa3lUb3IyajQKLS0tIEtGT3duRXRYU2swdTVQSEdpMlhO\neWRla3AybzRJeVgrL2tIZU4rZnhUM0EKDwmpESRyY8vZbQ8WexrxYEv9eCf0YqiC\nRqAg6Wmd2xafAtlo0HWZzLtG9wYmHgeeZycYXiY8xWv8ps524AMHvQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtbFNpQy9XWTlJTThOUmFD\nMWYyNEs5ZkVESkp3TFVPOXpIRUJrYTkzRXlvCndzZ1JsOXphZkRSY1BPd3NWdjFB\nY1dzQ3FZVi9rM21QNE9wRnVKdzB0a1EKLS0tIEsycmRiYTJGRFVUNTVoU1N5c0RZ\nTDlKclFZQVkrYXVaWEJtenRXcW5hOEEKFhbLhR2HH5j8iId1PEt2Qr4uLIcSSoiP\nmka7YtK2fe1W9012xKUqKtqZvjtbuFrHb/L7p+UfvCxBXy2c+bXG8w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmSFUwUklRVHUxZFh5RG9o\nWVlUay9RN2FpVDZ3NW1LcVAveDRHWTZiUkFVCnFTanNJTlc5cURaTWlEc3JlUE4w\nbDE4NWVmbGhVc1lkNDMwWUtrSXI0ZHcKLS0tIDN6R1loaTg4M3NZNEkyRW5MUDc2\nald2QWpvMlQxblRpWXdEWTRGNERMb3MKzECmbE1RX92YrvRBfRApiPKtjbj5Z9h5\nYOxmHnb2QWe4p+FiO7qTmNVrTD9OQ/VKt8u1gbclcjT1p0q+xPVM4A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQW52MVVRell4eWVnMzZt\nenFqbnVtVGpGRlpVR0NnNkVvUk9Ed25qTXpZCjhlaTFzZXlUZHRsS3dHWDNUMUVI\nOVlmbkdiZnN2RnhVY3F2OWRqQUJBQzgKLS0tIHRJMHJ2d3RJV0JUVUdJTmMxYk1U\nTjQrUkZuQ0xVbWQxZm8xMm5RYzB1WGsKovG+0ueoZS0CQbTsC44upsX1tAXBtxn/\nxgdkUe7EiDX5QLq+AldVc0UzvEY5/ROBBf4d2LzSqp3jJPtEJbYc9Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHZjhZSzQzT21GUHlJT0Y0\nTG92dUs4bVphU0VIKzFMYXRoOWdNVzNCMEI0CnJhZ0xzZlNBU3pjTUs5NEQ5M3l0\neGEydllJMDFSYTFwaXhjb2hRZzRrRzQKLS0tIHVTaVJleTlXSFpXd2x5NjhGZUo1\ncVFhMlozNmpnYVd5dGRxQWxhbXBLd2sKg3fhvpfcOkUQIdlNmmqT7zJ+aB86QqqG\n+f2Mo4AtTx+lzf1En9KzeaIIHn4rbNpwsMMzQkTgbooPCe7svntwww==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2022-12-04T10:55:44Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrVGl5WEhVWEtGMjNZSUMx\nMStIUGpaQ2ttdmxjNUtyS1J0bVViY1k3Snk0CkhZMmhMQVQrM0lQL05hcFlTOTdv\ncFU2N01VNmlwWS9Tczd1aVlkUUpRem8KLS0tIDNXQ0xLVmUwYW5Edy8rSW9CaWhW\ndUVYRFdGMjVwV2w0My9PT0NHS1JtakEK/KjEcC0Ubci8hInUqc2G6uFs2hd9TN76\nPgMDTi8Mt1dM1cGNj7uiPeTo8/ft26yuAtikybpLGMdayuEXp6aTPA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBscVFva0cwbjh2QzN2WUNo\ncCs1QXJIWDhyN1NmNVVPU3dyN2kwTVFsMG1FCjMxZHNHTHYyaVQ1a3hkOHQ4ak1p\nUUdQWWhwL1ZodWhmT2FDcy9PbENwTUEKLS0tIGtKb0xaNjJUYm1YWHdiVk1yZEdp\ndHpTMTU1b1UwaklUQXdpZlR6c0dJZjQKmvMqC6v7NjlNijmvg9D4OjbVozPMwPPp\nC/hgv/PDLaH+y8VAd0tJTch6w5B5b6lCbOL1bySIUkqSs9gqRmFkWg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCTkNzYVowcGxwek4rdUow\nc3VYbndpSWVscVdmaXB2VFdVS3JpYWdPbGprCmtiQUJzSStjeTVpdGRodDRjcVlQ\nb2NFczZjUzNxSVd3Y0puYUV5WnM1V28KLS0tIC9HdlgxUVBFZ2hPdlBVcVRha05v\nb05hbmRqV29scGE5bjltVVNHZ2V5UU0KfKu9wvY0EfTxUB8Qiy7jc4eI5zoUBtIT\nDUdb6MO7OUHJxtq5YzVJcPui5krR4ehJI7vB5IRWXxT/Yx+BjUd2qw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIdHBNVE1SUG1MVlBHMW8r\nM21qNTFYcis0TWZuNW1pLzRIMFc5M3JDM1RRCmprbmJVcURzVEpWeWNHMkdGUzUy\nOUpualV5WnpJRWZYdEJkeVlzR1c3clUKLS0tIDZYSzNPTDRsQlVZWEI0SVArbDBF\na3A2TVZDMWRmOFBnOUlNWGxDbmllOW8KqGYOL/mXBMEFepD4qjOMSMPYmUJmLpx4\nAeR9gTeXr4cp0HkEtabo+EHLX2hZt9sg5Y4S1w7nIjy/o7yWzE5o5A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzUEZmNHBmTlUrSVNON0Vx\nU0kwRTNyQTY0UTdjaDVwUjZFSzdPaWgyL2trCkJCZU1MdFlhSndHNjZZb3VBdE9V\na3Iza3FyTUhEcTB3azBURXJKS3dkakkKLS0tIFNMNkZtWXNralFRM1FKVlZuL09p\ncHJGeUJxSXFSMDA4MU1lNU9jWWl4OXcKK71tw9/Xg9uCANFgDQ+kC9sgVP5UEa9S\nqaWPn+VGCMMiGb3TAb9BoRonfmj9eI+NxA/er5jpyT5g2GxKymTN9w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXQktYNmFYQXppRHVsYzE0\nNW9hQlFIMStzZWpYc1lBdUdjQ0VQalVlVldjCmQ5TGpKeTZySkhKZ3IzbTBiSS8x\nWGVoeVpnczVJWmxOZXNlYWR2eXFxTWMKLS0tIHM2OURCQ1FBakY4N0wxTFJyWmIw\nMW95UVpXTzB0TXJxRnQrM3pHWkxsUkkKNushqbOZqHca5f1ZUdf3YAurqeTW8Zgs\nzcmMZ10YQjhyPzH4cN325wG80EP+DX17GDhP5Ke+2ZIUtIlmv8o+tQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUThqL2k0ZW9maHMzSVhm\nbFBBUEl1Vzh0ZW52S1ZxM1BBTG1ZdUxFQ0ZzClV6aE4zTzlkbW4vMjczMHBJNjRS\nUEs2a21xMndxK1FDMDZqN2xUTHFka0EKLS0tIG5paTZCUmJnN2Z2Y3JncWxPWTli\nSmd3dHZzT3l4MDBIeS9FMC9Bc1F2c0EK4jplLargqOCN5eSpsAqU7zmdEvZzN6Bd\nTLgiuOPwFeQwCJ28lPFXNtPYFQzXhoASatd4Sn/MOKWCQJeVJOhDog==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwTnFIdEQ4SzhEdXdDSmk2\neGtVN1Fhd3pLSGl6ZTJYOE1XTlFuMDExTmhBCmtQdUVNUDUzdzZTS083SFcrR2w2\neHBuMk9KUHZGcGY0WFRRT3pkeXBMMDAKLS0tIHpYdXN4a3FqTm9xVDNCdms3UHR2\ndVNQckw2cjk2dkswcSsrdFdzN09qRUEKOg55hpkIba7uqGBjwsW7ACN4Wxh7V98b\n3x7iR0TujTLDYyNmu2IqWQbKjsDi9U/V4au40luLnWwcQ0qMuy6FNQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvM1hrNGwvZXVFZ1Awd3ZE\nejNkZUN0NmY2THFTRU5CcHI0cVBPTnErR2pjCkg1VGE5M21PSVBIL0h5cmY5ZFRU\nZFdsZllDSFVhZk5VTWRRZW1OOWVqc0kKLS0tIGdiU0ZSQS9Sd3dzMlVGeG05L2VL\ndkhaUmUybHZCTXNnTmFERFlpQncyRDgKqy9AQmZvZ0zf3hgVYYOEE5yM/Xrf1zqv\nV+wdNgPNPyn0DraYKbiFBV2f4J8yk8xLG8II5T08WWlVH1Br3Zb9/w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSb1hNd1k2ZUM3U1REVTlo\ndkhLUG81WGFxQlRVd2cvUU9WVmNSb09Ub1RFCmhINEdhT1I2WS9rUE9CNlppbDRa\nVlgwNzB6RmIra2NRUjU0Ni9abVNSd1kKLS0tIG5pbityUFc2RVJGQTlTend1YTV0\nbStYSWIxSjdGYU0rMHQrTHFkSGNjd2sKBymQa50r5Uo727VI+nM+qc3YAGzM+ZDI\nU6T+MA8L5noCb/ZzKYZFAEN8z8a/xHT7nRiqp8NWQ8OJ0KJDzQvE3w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHOHZZYVJJSzFRbnBSTE5j\nYmxEY3lzK3NYMHVhWkFJN3JGblJXT1diYVRnClJxV01mVWFLOGtCTnJNMDh6c0w0\nd1kzNlQzRmpWZm9ORVlxWVAyU2xNcW8KLS0tIHVZVE5LL1M3OEpWRy9PaUNNVkhP\nMjJyT0doZ1Bkc2NFRThkRUNDZWV0VDAKBES6A/o7BomJ0v+XaeFTahVv7Q6hyTLw\nz0cGUZKfVJKd2lt05Jhd6Z+nfrZbx2FEKGBIGMhaU7gOPyxviGvnaQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSHJtWVpWVE5mVmZ4RVV0\nS3J6MGhQY3NsYTk2S2FFbGJTQTBjaUlaNWc4CmZRamZmZ2l2OENKZWpOWU1IQXdo\nN29TSVM4dUJXbmZISkVyL0RCTFBrZ1UKLS0tIHY2SDBndG1PRVZqcGxJSjNXUWU5\nL3RyZ0JIblJPS0lmc1pDc2pGK2dTeHMKB1T/43hZDb4lP+seHsKt+aB1TdNyP6FZ\nOt8rezQZqeJ+GnHwV6qsdEtX1DE30niqe3upUS+igkHJ65RGd5TAuQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlb09Da2FmZGVBYVpjY2Rj\nNVBRS3FvV09zUEk4OWludk1vRHMyL051SURVCk9OVXdkMHdjaFN2WVRqTGt2dUdP\ncjhqSFhHcHpXekhMUmF2NlFFeFpCSUEKLS0tIGhNU2FCU0dGSFVpSlhLNXJTNHcz\ndk1ZSGxsYnlZblJTREFnckRFS2tCdjAK2oDI7PpNapR+ko835T2PwJpGTYq9zK7x\nswo56rL8y4rOKkARn5JS5L6/2ltcF91OC4/zMVg8HkEoSjBWmKYeXg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFOU9TWXlCRFh3Sk9aZkF3\nTDVUMWhzQkQ2OW1YbVlQSHUvdHBIWGx1R2tnCi9ubVJyV0lnUHYreDQwNFYxNTM0\nMEk0M1ZRQmliL0ZUVlZlYTM3aG01eXcKLS0tIDZxR3V1ZVpEWHRJajdCcU16NUZS\nNFpGanJxNlpKcm1VS1cxWHNieHVmbTgK0ggrvlCvK+j8F77b4gl1RsWGDfGiFmg/\ns0cMGtIflPT/0D43R/jczrJ/Xp1aBL0TeHyf9YxZu254QeZ5ZPa5kQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBreklVVUkwQ3h5VFpsYjAr\nUTYxZm10a29BcjN6aEtGZHpVS05kdUhQM1FjCjJ1Nm10VzZQMUs5dlpZT2xrNXNQ\nQldSdFFncUFHcUpManpJak1YMVUxWkUKLS0tIFVtMEIzY3VtWGVZaFRZVFhyaHF1\najNXMHZNU0RuWndDZG1jMlVUNHFKUVEK4PAvUJt2ayy5iXCEi5b/veaxnyFvVohl\nRhbhZR58hFzsTRSwqy2pIMqSO3tgtErr9B/KYPlQNOifgPamMbR4WA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXTVg0YTFFL1owd1RNUEEx\nMWJOeGttbTI1elhZMTU1VXcwcWt4ZzdJSW5VCnlQRk5OakJJU0grczlHRnhJTWxI\nd21pTDdVTk1vc0dsdVpuWGNrVUpEVDAKLS0tIGNYQVNjellNajR3czlKc0ZYbWpL\nbkt6QnZ1MGRGL0hSS2F6aktXMzB3aVEKb/XnuAMiB6Zn2Hr+LUlPdCii5G7TKYgp\njE7Loh9mPY/WPK2KvCAPYFcjNCmu0JYzCYgpU/i+4Wm7ObsrXh+lGw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOWFFJb2F1NU5TL2k1aGdq\nNGFYcWtveXd2WGxFRVc4RUVLbUgydVNUaGg0CkFhT2hVWlpoTExnWVhhKzJQSWZp\nWFFFV0lrY3lSU2lCUEMxdk9DTzRVVlUKLS0tIDM4REg4QW4wZWNUM01nbkJoWnkx\nYzhaN0VMRTFZWTZheGcrS2V0dU9hNHMKgmKgF1py9n9Ez49RDlsyDakNTiac0bB1\nkg+44Kb3aO+R/KOEHw3klHc+TetPWXgHPnuP2phmq/arSwpYyogAzw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2022-12-04T11:32:25Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqTXp0RHN2bW9wUDdvWlJa\nNFhyMEJ0OUhSS2RvLyswejc3ZUx2SW1rdDFVCmtZVG9wZitidEZMaE1rdjZSZito\nclB1N2s2bU93S0IwK1UrYlk4NjU1UFUKLS0tIEdvcytSOElhRHlKY1FyRTlTYUlR\najdHeGh6d2FROUJab3d1cExkYlJLQUEKJQUv1/2YuAOEQGaaJ5itEtXrfwB18RcI\nC3V0MXuLqpQpVzsMz6tBU66+343gPTVMZXi/cLLKjpzARKUCPJ3ghA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ZCt2UzIvQ01pQ2dMamd3\nVXF2WnRmMDB4MTZsYzhlclcyR2k4TVhtdUJvClZtQVVYOXpuZnlOY21zTWltU2E0\nQmJ1cDNVRGsvV0xKbk9KNHJ5enRmMGsKLS0tIFhMcXhzazBlN0lTc3gwbmZpVEhJ\nTlZqOFVxOUl2NFl5QXhyUDNhMEk4NlEKvrWdvyL9lQ8kc/QJQKFBlAXw+NLmVO2W\nYo44HNxj+jbWFLhimV4qsdaZKb4w0z/YSSLPwP3cfAOblOVYHh8eRA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNdmtuT0NaUEplbzQ0WWV2\nQUsrOFRYN0ZET2lwNkhMeTE3bTV6OUUzWW5jCmtsT3dNbXdlSFQyTmlNdndqT0V6\nSGFDM3BaY1plUVYrRkZRSXQ3eno4dWsKLS0tIGRBSzQzVVdCQ3Q2WGpwdTlsSHJO\nZGR5NjRrbW1lWW80NCtVUWtIUEhGcTAKSRPJHEUFWCCe4v2nLnaDY3FIeWvc75jd\nMb8+grC61jBRO3kpMLrHb5dn3/okLX33nZtJNnkCA8jDlR1tyCXUuA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBONmxhcGNHN3BKcUlITkdX\nUWlCZ09ER0xlN2w1MXVNSVFaNkczeVoxbDJZCmdaOVFBakdJZzNYTkFnYUVxT0xN\nVmN4eHBXMkpTNldKYk1yL2V4cENaSFUKLS0tIHhSYit2YVVYbEd1WEVTcnNBclFu\nVytldE9XUlZPVmlnQWxCMHVEWVFWeHMK0r/c/cV4CyIc3HnKiPvHXwOUOdBj8lu8\nHMjdK+QMcZGSiSW87gmDr1wUf/aROYA8LTYZbuqkaf5zPYhFUpYykg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvRWZFWkVWVWlpWjBWenE3\naHp2d1RVcmNrQVVYNkVuWHRUcGRBNTBFbmdNCk4zUGFFSm5lWXhzR05RelNvbnBX\neHhoZDZjZTJPWndQT0dJajh0K2xhWGsKLS0tIHIyeUVoQ0szZHpBQkdBc0hVbFVF\nU29JWFNPT2VtaEFTSTc0OEpsYVVRbWMKLq33uUYhelMgkz/zuI3wmYTPbn+fv4uB\nkwUX2KDOzunPkfznFJ0/uGDHBRgTj5kYKid53IPPAByCGrWemXbbBA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmVHExL1U4WWVZK0hNcGpl\nUGJFc3R5cURxYzdyeTVSM3FESGNRayswVWtvCjJKMU9OWDNHenFNVy9DZ0RLTFN0\neFdUcXBTWFBvQ2NzYTJmbk45QUFQVU0KLS0tIGJQNlRURzZUL2xoZHhMNU01TTY1\nYXhvYXhkTFB0NGpzWkY2MTFBUjNJYlkK6CBy8Jkue18ru8eIl2ad0ud7FuRiEIf4\nKBkb15yhF+RlPOfpaKrmLgynEZILPfaiyNEaj0YOlIYP1qas5TNYyQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNlFGNGZyZWdLQnRkSE1z\nTUgwOWFvL2ZQSWVOVTBBOHJOM0RSaHNFOWlBCmljOTdKQzB1UTU3ZFFENDJFRnps\nYi8xa0czTTNvTFFGc2QydWVmTmN2bEUKLS0tIFJQMkNQOUhDazlsRTlrRDR3TFJP\nLzl3UGRSakhITXdnYzEvMXdsZ3M2RjgKbXJw6e5aFsrL52zknH5vva3y7sLvqVTd\nsyOnStwaTwBWEMRAvG+vtEhgLIJDVCJGEYqKIBzzoOOujJ9ojuzOqw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacm8xcklMZVZnRzBLWFhC\ndTljclRNU1R6clhObW9KZUFzRFNteWhmK0Q4Cmx1dzg3bWtQT0ZtUUhCbndDa1dl\nS2VwU29LaFQzeU1wVmpVSWJqTXU1UHMKLS0tIDU5WmU5YjRhTjFuZWRzcE1waGRx\na2t1cHliRlJ1aEJnNjQ1SFo0OFllcmMKIuaI/OnYpIB3RSU2zZWazLnNPdYJcWUk\n1oD8pEOZDqiu4Cf8ZqqhLmkN+jBLZuBAi0IJLIgbRvVjbaN0j7NtvA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtL2gvV28vMVEwbDdhcFNq\nNnBqTS8xZnFGMXl0dndiZUJLa1diV3ljbG1nCk5QV2grR0Z1TnRta1FBZzl0MnJo\nYlZ2MGlIUi91ZDhoM3FNdmU4Mk1vT2sKLS0tIEJSUEsyQStlSzdoTlJuR0JETWFY\nUmxBUXBYN2g5eSttVE4zNWxFWnJpb2sK9SQTiCHz5eQ2RMrydMZCoXAFCIl40f7i\nfsskeK45e9lgstetJfu8rDLOrCKr2GnIpR53wiJyPAq5TscGUBlcNQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRRmh3R05RNXhjclRHYnB6\ndmxIV1dPQTNud0htRFFHN3ZveUd3NSt1RENRCkRmQzJvNUxZQzc3enlvZjRGTE9x\nWmFxaGRrYzNTUm5WNUtkaHJzbmo1Q3cKLS0tIFVJdXliL0xnZHRnYVBwYkcrTnhx\nc1M2bzQvNmxHcEsyZmZNVUYycDh5QTQKyOSJlIwrwUaglkvdAw24NxxdZnmy88J5\nNWo04oEImdlMCEZQBQ3/o1xyftU8BNY+ovNy7Nym0darKM9f8ka1PA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRZTZMN0Y1VklpczdDTnFh\neEs5c3hLb2Fxd2Nkc1VOUjVkdWpBT0o2NkRZCnp0dlZpUXloMitlNFFiL3F4WEZn\nUS95cDRvRXFiTDVWSzV5cmlPY2JBME0KLS0tIDVxeGY1YS95ZDJrNUtVYnlteWU0\nL1E0SDVnYkFvdTBGZHZnV2lSYWVKZ2sK1N3lvvQP9DdPsCGYJXtjoqv4gLjSF3xW\nq0VmAQFynm3mSPfF+hOfF23+msudWcObHu818YjPshyjOzQXHXURWg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiR3VhRUZybjJuVVFrNXVo\nMkJwNDgweFFmb3BIeEhSZ01RNWk0dEQ1bHlVCkI5Wm42d3haTms3bjlJdldpSGtW\nSGN5cnlkZmlpSm11VjBFeHI4blI0aUkKLS0tIHhESkdjbGFPZis4V0tQcUpXaVJ1\nTEpadHlVL3NUeUZudU15WldZWlpKNXMKVxsLBUb7BwJJ0lJRQk1ZppMID8bt/cbC\namvKeagoT6QDR42FyA6W2Rp8+tBrrkBD3CGRAcXMfUSPIzN9p6kcQg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCQ1E5RXo1RzI2MkVudXhS\nUGIrbkhMS1NNb29kaWg1c3cyYWdFbnhtSzJRCjdZWER2NmRBTTJaS3RWd1gvOFFR\nZjZQQXBWQ0lPQnJlYytNNzMxODh0UncKLS0tIFRxNzdoM3RJWlkzTXZHL3R5UWpP\nV1lPcUNyRHVCOHprRWJJQWNTYUxZT0EKNcCmkEcxPd+V4MLnE20qUMTrCc5ibmoV\nZHGDbkGuy1dBYZhbbOlVucXOppovyLzT+yH41mnt0GV38BR252E4+g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPSXRPbW9OeGFpYng5RXR4\nT3BUMDZmOTRoNlVsVlp3endKOEJCWno2TjFZClpYWklWbDU3OGoySFFJUkRjS2tw\nUFhtZ0puTkV2ckRPMUhLY01MVW1kR2MKLS0tIGJkdHhaNzQ3WG9JRXF6OTNMNnF5\nQ3FVU2FVVDJyYUNqaVlhSkEyZmd6RGcKMRxyVMpxCYxoWXK6zlAPyo3YcPJtTWIO\no2RUlS8oSTB05G7sGkjq3VSFRSgNnekvXOBE513Qmym/cDDbusxpAQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYRHM3NE5Qa1JxRGZmbU9v\naEdVS05ZL2FyN0VKajk5emp4ZDQyTnNDMmpJCnRMbWNFRmlVNGdaM3FRa1NXUG80\nbzdRZUNuMndHS0EyYmV5WFR3WUs1S2cKLS0tIGdUY1BRM1pNT1VmNFVxRGZ3OGNy\nWjY4MXpCei9MV3BmTkRoTCtBWDBXV1EKzfx+IgDo4Dm1PchA32mv1gRGOE+4dI2J\n0iTQPkHeHCX3UwtQteyNKccoA1ztSRVwjV6gZXAmuhLy4Za7i9bnhA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzYnMxbDNUR2xyV3B5VzFQ\nM1IxQzV5OXM5L1VYdFRYWUt0cWl4ZUdsQVNJCmRjUjdPMmhoaEFmUUxrVmJCRlFl\nNzZqY3p0YUF3T2lYdysvakx4WVg0bFUKLS0tIFFlazJzb3hmVXNyUU5leUFKL3p0\nNlN0TGxVbGtoUHFtK3hBS2RiYUViVFEKii4w04zeDD6HWURzmAhJdxNdNmQgsPw/\nawI6HSVbbmEGXyL23Pe0oultY8k/ZVE4oHRKBkHh00XoCZM/Ye6neA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3ZHNES3BDYUhGcGlyTFQ1\naXVnZm1TeVovOFppck42Q0ZaRnA2dFJHTkVVCjZUY2h3MG9RS1g2aTdoeW9NS241\nWTJZbk00ZTMwSVpJOWNRMjRmdzdpV1kKLS0tIDFiS2tJRHIrMVNrZExKWE5EMzNt\nNGJCQXFMVk1zM0dIV084NHB5b0VLa2MKINozqIGHiddSjRXkcTLFRBR7HjRnseUP\nuu52jRstFcMEGmToXhNWsl0g3S4VOqNcA7jAGz7PMPTrD5l5sQ6w+w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-01-07T11:04:42Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVZXVTQmg4YlFEWlRKV0h4\nZm5mQzRYY3VoUExXRkQ2MC9FSGFXdnJnUFZFClBJMjFOSzdxc1R3NDJvUWZXb1R3\nc0E0WjRkNUpIcStEM0c5SzAxRUVoMFkKLS0tIDB2WDJ0cjdMa0FEbEcvTWxmczhP\nblE5Rk5Dc0RKUWlkc3EyWEJFa1V4ck0KEH636R2nV8u3YWL/Hfz2cXwLZMlkanMs\nVLDSUv99DlT0LoZGb2/bBweH7XR9eYuNeicyS+5uzopxG4ExK8t6jw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdVJ6WmVyR2pUcjhtWTFX\nZzljQ1ZObGhzWjlYVjBERTlTZzBnbm1melZFCi9kVThDWFNKQnl4bFQzQXVyRTFZ\nN1Q1OUtjT25NS2pBNzFMY3hvaTVuVjAKLS0tIE13bDRTTENWRnZWNmNrTTNUUSs2\nQUNpdm9ITEFrZWtZMVhGU0dpMURlVDAK+x+tlgDECioZsiWdsaSKtmddQsl97SRb\n12mUcsvG4Fd6DQUQ0SWeu6gVo7tZgm6o7j86mdm7ECj9NzOgHrijxA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzZE9pUFZnVU9laTZWWGo0\nbUJoTHdEM3pab3JOcjJob1ZxZ1BGRWVKR2hnCjdXM1RIaW1sdjVaM1BVU2NzdkRO\nK1NnR3FJWWJKUkRrRFo1ZjhhMjhBMWMKLS0tIFhBZU85bk84K0JmdEhZSkJ6aFdD\nL2d0S3U5SGZjd0tCY3laMWt2dGg3TGMKvGZTW3UJpRFeBF7A86BpFzxl6cHMyoLB\nyZlsaK4Xk8fxaIg/W2PIYGzNGmiNPQ36IKJygBDdN/hz7eWMdbDpcQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOTlZxdU5md3hUSXV6Q0Vt\nRVZacnZDV2txd3hFM0p1eTNNZnlBSk1DWDJzCkhVanEwT3JKbEQwSEZCK2xqaVBI\nZEJ4d0ozQmV1WE5xeWF4RUxLbkFlSlEKLS0tIHpWcmdjZkZkQmkvNHRTdFVaT2cz\nU0poT2d5ei85TVBndWcrMFpTVWFpVm8KfPCOuicVZW+vp01owIfxkgN0V5MgfqGl\nE9K/WcJ3aDu2jLi1RQaYCmEeoaJbGsyjiOqIxCNcf0VomAqx0eIooA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYeHphd2JkeVNMOUdrS2c0\nSGZhQTNkTHBoSERCWnkrUmU3WWwwSStzWVY4CkZJMkZxcmtVQmFMWHhmVDNGeitI\nVVJVYytoRE8vN1QvMEFqZHRHSXBUNkEKLS0tIEl4MVc3aW5KM1I2MTVzbjlvNjRY\nVUZRdE5LMDMwb0lpVUVPekJqMHRjb2sKpAElXfn5q92FXNWlRKm82CTkzDwT/mgs\npXhGAQf6PWRxcQ2sonwze6JJGosS7dW8ULdxlkhg5KhZMbeuaBtKCg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1OHRid3FESkNJbTljMFFO\nVEg3WUhHOWdTaXBvM3lHOEdBamN2TVAyT1YwCkMyY1RhYlFFVk1FK3VvZHhoRXVO\nSE9CQ3UzcGxkTTJwM3VQVzFMOUJQQ3cKLS0tIEFTQldldTN6bnFzVS9QV0JaZk4w\ncGMvd0d3QWJ2SHJSMGZ3cnc1T2d4d00KBzNCz3oe78DS5zBu2Bth3qznHYKMFEBn\nCS5uZy/Or0U6CI7p1+ykoLBLTjVWV2bwYJOQzZAQmTmuSidbe4UKZw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrL2xKbkMvditBZzFrZlRm\nMS84RDN4VVlESEhzV3ptczFkVWd6cGJ2VUJrCnh2dVhBcnkwMjl6ektsRitoNXNS\nYldxcHh5ay9ZdnVrWFFzWFpNakRzeDAKLS0tIGtiUC9Rckg0d3JBbDhvcGFMMTBk\nUTVYbktHS3pMaHVpLzlSU0VKVVB0QnMKVJ/j1+L+fr8RiBTgT5J0gaeKSLzu1+lF\nPUMfnO/ciEmqa6uQW0YC5zplupSYCbtQa4FpCcz2ZZI2WORXd6jADw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTcHNUc1A1Rjc1S1J4aEVk\ncUxYYytQb1lWZmViQ1F2OUFaTXptZk9Ea0hvCmdvbmRNNVBBcVh2ZDkwOWFiZ1JS\nRzY4UDFnd2hSQml6OUp0QWlvQ3F2WncKLS0tIGxSNDBXWUlJdVFFWHBqY0FPbFpK\nTW1pL0c3bk5iTEVibDZoTW0yRkNaMlEKuHLkB/9dWPOXxcTyXW0WduEcnF2YRUpo\nEZNwre0P/62xX3RAjG6g/JSUwAt2cST9z+9K3SgxXUyunkPG0XDv+w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGQ3E3SEU0Sy9XbmQ5N3pa\ncVpqeFBmaEY2ZmtEbU5CTHJZZU1Db1ZxL0R3CnpNand3UmZISXJHMVVPUTlqeFhn\nWnJqSGdsSU9HWHU2YXU5Y04yN3hnbXMKLS0tIEUzSCtWTDdpUGx1WVZXeTRBRFRx\nNlhobUFuWllFcXhaVldYSXZJbjI3dEUKSl9Z1lKMurwbLtTqivGSLvNV7t3y+5z5\nImGeXwA8UE4PmQWwQPDD48kOmo4yf9fD25bVfps78NNjW2hGMBJ2Ig==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Rm5ZZ1MyZWI0MU9OdHFt\nTElKMVJKTVpNMi9FVTBuWDV4eS9rZC9aNFdBClZRMFpUeHlKMHJZc0VDa1ErZHFa\nSVovQXpuV3d1ZFFMK3M3bVNmVGsrc3MKLS0tIHpFU3p6ZlJYQno3dlBCd1RFWDhy\ndDExSTFKTFA5dFZkdDhJaUNuTVJMWW8KH8w/rBCkcDMoAhyqDu+AdyOgqI2e/JZe\nfLLnpaSQ+Ss96Tr4rvY3Fmf8PbttyJN2Hmbxjba0FAxHP0RdQhoVww==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1Rjk4RkoydDg0ZGF3OENI\nNVYvVCtCRncwRmUyQnJjVnhEalFrU1BtWXlzCjg4ZXZ0K1BmaGkvMVZ3WWJNSEVZ\nRWFndE14VWxMWFVDTlJDMkg4endiWmMKLS0tIEdMS2hYMHJRK09UVGFrZncxQ2tU\nWFBOalR0MXFGeE1tOWRZTWhqRjd6R0EKTJlLInIJGek9GsNSlpz44M58m0KyJjYJ\nJG39R8sByUuRVGLCw8JH4cNfKfKFxvCsAaWFzSxJjqo7K00d1n0dEw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjMGZkMy9QdEk0K25hN3RU\nM1JZdXpKVUVvVXBObGUzWlBHM1NNWDNXekdJClVaMC90dGJ6ZmJaTGN6KzhsRHB4\nRCtuWHAraDhYZHNnQm5yYmpiejJzYTgKLS0tIE02d05mdVhjYlhseDhOZjRBMlB2\nT2hVeWxHeWZRbkp5TFNPVDIwQ0NrNkEK9++qo227xeA2dTCuoUZozpokp9Ldjh32\nKl+4OTR2ivVgMJXN0sQ1y9EjkOk+lsK0jGSkcKxkw1OoEirzMCPUPg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1dDFoUkRCenRDNzh2U2dM\nRlZVNVIycmE4RmtZMTg0eHJwemRuL3hjT3dnCk9YaUd2dERFc2FDUHRyQ3A2dFlU\nZWFBTlNkV1lyWnlxKzlCQkhsUnZqNlUKLS0tIDVaWHE3QjhCTExHa1EybVNKc1Nv\nVk95WnNEL0RnTk41ZU5mamdnYnlHdlUKJNDsuMM5KrvW2JLTdaATtw6oS1LXnXT2\nOwsGm6aep93Pq2lvwLIUb2+KU+NJ2xrpZF30roVjXMMdpcpNsQWWRA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyd2ppUHZEcC9VRnp3Y0ZW\ncXl5RGl0UTVmK3djSlY3Qk1IV1NhU1dpV25jCnhacVRmOUpWWDNqY1NvVHNMYkNy\nTk9LWFdaR21WaUN4TFZhSEsyQmFRWG8KLS0tIEhERmFuZDB2TFR2dU1lNGZCUFlV\nSmtIMlhqVEFwWWRYcjYxQm41YXc5WEUK85kHEESZXk82GAbJtxxc8g5ogT+tMu27\nAE/Nk1geTylCD+F9CoZNq96AkNYLf04gh2FZ/oVR/z+9wd4T5c5DhA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOXl3ZVdzcG1zZTVBUHNE\nTGFGRmlsZzlNNGxtTVJ6RE1JMEx4a1RDdHdNCmxGWWFCYndtS3A0RGN5TFNHekRh\nU3prTTlRNEJoeFdGbUc3Q0NjY01HZGMKLS0tIGVFejh2R0l6Y3pjU3lHMTh6QjBN\nOUt3ZlI5SENhUWg1TFZ2SEMyWEE1REUK3tt4C58+lk95ztX7KbRt/nT15XcEaglj\nX9llxVse8npEDqfn6vf3SCegcexUZlc7BD/Ti9RJzSw8QPjtwKkTlg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBERnB1bUExMDJ2TDZ5dm5L\nNXMvZEJGWlloZmE1ZFJNUE9WUWc2d2dacUFRCjNMM3hVVkVvbUNiYnVJMGRINXlP\nNzF0VkVSQU9UbFhNUEdZRjQrdzY4a2sKLS0tIHdwMndHOW54MnlNT3gwMWRrdVU1\ndW1ucENid3VxYlhtcTF1dWp6K3Z2UTQKjAZd4uw3kChy5aM5qTFxbGYN0oFs41J7\nsrSpgwxzx+hu1kDRkBIQJZ/QfiF68NFd6qfX6zk8baF1AdML58U1Rw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvTzkvcExIaWhrcG5EenJD\ndVJGK0kxdFFHNWRaNU9KVXFqYWFZcVBQUkNnCnV4clNNTnJBUEw3Vm0xeGZlZERa\nKzUzdVhsVWtrR3NTMWtZdDBKYit4UEUKLS0tIGFXWmplVnhNbzhkdGloZnRjdDd3\nY3dia3FOOEZGRjJQekpFY1M2dENlcXMKrfkvzKJXnw+vwytqC5HUDKQXHX7jF+/i\niatE7sfxzJOhnrmcEfEdDzMF1Uh5RmtF2AeqB05GmC78r2//nQga6Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-11-27T07:45:58Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxVHRGWEJ2T0pZZW5CZXE3\neFpvOXd4RC8ya3JhbXl5eVZtYkFZUERsOUIwCitncXZrVXBXdWpZVjJJN1pqK0sw\nTm1ZRG5Ga2VBaytLbmFVeTcxY2tRbVUKLS0tIGhyajNjSUF1dFZyOU4vUjJtcjQ0\naXAzL0kycTROSkVMck01UlNURmZPVjQKZ1lYv+tjIi8LvYtkFcfHUprNM2+/Nyab\nVOf28VE6p8H4Qfre8+KvUcfIch2guWGPpqY/IKGZaanszFtplw8UBQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIQTdTMVIzUDNDUTM0Mmh2\nNFZhcnlVTGJYRkJveGxxR1R0NTVNMEM4ZG1VClNmTGZBZWVWU3hVbWQzMG9lc1k4\nVUVaYjdoYXJsUHhVQTZzdlBqc1YxbkkKLS0tIDIwOGlFbjBHaXNwNG9MeUtBaElV\nQ29IK3ArS25sU3FRK21jMmhsNjl4SlEKCB5Lt7TuGwgNqh7/4NpSRjR+TUrHDYwl\nDkVMEm96VludN+QpmD7P/WhZvkTZG2rt+jFcA/f6JNEBVMJxEw9SeA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBielNxYTBpNklVeWkxY3pq\nL2RrUUZnSll3dGxVL1AxOTlEeGNBMlpFbndNCk94N2xsQkZhaGdsQ1BYa3lTZDVE\naG5KSDRyYWZ3MlpYYTN4Uld4Wi9vak0KLS0tIEVINHRLNnhlVjJTbzVjb1BSRWlN\nZFdPcEZoa3VQbHpOQWZTRVFESFE3TGMK4UqfVpy6tDlZaE9t8gays8KX6cN8Gt77\nRWZYbBKYhotlDCEAOQ28J8DQZwBVEPZNPp/KTCQs3DA5cQi5esiVUw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtcVFucjJERWlQekhnQ0J1\neCtyV1VoU3R4blV4cGd0V2loWmxYQXRxRDNVCmtUdGNkMGFNNU9xQk1qajhHMjlF\ndU1yZ2pldUdRT3F5ZzdtQ3IzWVV4ZFEKLS0tIGN3WklIbTluUVVObGJ0ZWFKaVVM\nRktNRjhEekYrczFPajBEV1ZVeWlvQkkKYGHFm7IYxnRW58CRUHE4p1bnVvQZrMpp\nWX2Cdi/ZV9DBMUsQ3hOJlVBbZP8F6ODvXRkH8fipjNuQylJNWeG4Tg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwWGIwRmQ5cFZ2VjRBNXpa\nYVYvamVWN3Jsd0Y4amE1R1JnVjM5U3c1eEJjCjRxRXNKMmFtZkRJamtzSUlpVHVq\nVnV5cDVtUzY0SUVuNUU2eGdKUHd5UEUKLS0tIFY0aHN2Y2wraXR3cHZXWERoK1dJ\nWm8wS0wzSFB3ZzJVbExaczFjTjZwOUUKasub5axckBoqLwTzM2zEjg7j8nMl3xgh\n5ttxPBXZDpMAi6ORRNnIHKXleYaRcHCN7rvLOSWCYC3QEnemwGEQ5A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvcFZCUnBDZ0UwTjVIRmJS\nZFBDaHBPQnBtT1dxRGlwaEtBZFBJdksvYVFzClBMRVd5TUdqSk9GbXNJMDBaai8w\nd2RRb3VrMzZ4aTNTSEVJL2NTYnB3N2MKLS0tIDNlREpUMTVtVXRZeDBXeitybERq\nN1h5TXkyZFNLdzhvZEd2SkxveS91VTAKzI4lJfFtD+MFpCFxoyYmTV+137rL90Fi\nPl2itQrDSC6epx9dInc/fpdajOcToDoGamNRXC2sMC8WqHAI92buvQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAydUt4aHY0bm9FbjZOTGQz\nTUxYM2RhL0gyYmdYQ3pabnN3cTJBUFMzeDBJCmo0MVNhWEs5OFBzZ3hNd2VVT3Q3\ndFRMbC94WXR1Qng5NldEZHVFK0owQkkKLS0tIG45SzBLd1V4R1RWTlFObUN0NGdD\nWkFFbkZMRnN5SU95blV3cVZsRzI0MTgKpqqeHrlVZDoeCSUgVB0n6GQF2BGDF4cs\nJCqZJd3XrPq28tqzfc8xwgGrX3JDKUSB1mnNHKT6oj858W2MjD5+Hg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGTWpvTXVYRmVQV1Y2d0g1\nL2Q5R3NKRXl5NWZubGpJdUppQzUzRjIxQWhjCnB2ZFgvMUhEb3l3cDNXc0dIMWxm\nSTI2bUxqY0F3RWo3RXVub0hhT1Rrb0EKLS0tIGt1TTFaU0RmRjFFRCtEYXUzMHRB\nd29BUWVzOUJXYU9EK1JSVlpiVXl4eVkKJK/f29Uoyd1v8GIdzgXlqkZpd4TPwwtn\nwHMPE8u11e0YVZYxovGZAqxyrnuywhWu2BXhtkc0ZCRc6r7OYbH7wg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoV0VqWklIbHZCaW8wM0Qy\neXhpaFFSZHlBL1VndmN6dThqdFJGNUxsUlhnCk1tMEs2eDNqaTBCaHdFZmxaUldP\nTXBzTXI5dE4yaldVa00xZUx2UHFyaW8KLS0tIEpuLzJ1SWFTRjZ4UWtHb0FaUi9T\nQzY0UmNaRHJZU3hVd1hNS1hoaG9zWEkKa5vaqYn3YQ8y2UEP4BHQYKUCrJmSHn6V\nuL7L/kP9H4rloroudvxYdiQXLK1VJYn2MyG46xn7/KvH6vx+HHL94A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSVpRYlpIc0ppN2RVRU02\nenR1aXQ1bnFLeWVEc3FnTHpTaGNaTk5LY3hFCk5rUVBLNTM0ellwTDltd1ZvaHNj\nQUxZVThFT2RlWS9WdWlQYTFPMUk3L0UKLS0tIFJsaTZTRUhhc3JmWlI5QytheXVw\nSnlhUG5jOEJJMjhvT0tnVDltR01kaDAK4sWF7asgU/8VxQeNqMfKtzhEGxHFozO4\nu5OG8I4SP9ev0+nEytDP+hg+iWK8/MQPT8iPUuxfROVaVflyjr/hTw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIRlgwOUNZTWhyQ0s3ZlNW\nYkFLdHJXSnRyVGRJdmx6ODJqbXFyQ1pCdHpBCm1DK3BjRWtWUDh4L295bThsUGFX\nK1ArQ2ZJQjZMKzNrendOcFQwRHJJRVEKLS0tIHIrMjBYc2t0WmRpMjdTdDhnaXFy\nUm9ZNDhHMitRekl0SWVLUGlNSk9taFEKe/z+tEwjuARxuzFBW0vfrg4+GvMt919Z\nrYnIWVWR3cjHDI5UMzROjB9mVLdJxyBQAr8CzcPu+aatGGS+VsFonQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZmJDV1hEUnhoNnlIVFRD\nY1d5Q3lZV3VtN0FTVzhkaC9WVHd5TVZtZmpjCnlJcmpYUjlNeTM4L0lRWjNzNW5T\nUmF6TzRYd3plNzJxd1hWMHlTY0RaRjQKLS0tIDFvRlcvUVE3S1RYbFJTMktrRWFh\nMjlONG5OcWRjOG15WHhpcVJ4QzNHMDQKDS1AjMxuf/mYTviqUgpNC2w8b1WOuU/E\nU/H++S6xRNtMDyPxQ3dlp5C8s6kxTYmQ6Fr9xV7ffXzOQ8rIiXg7TQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzSmFmdkhDb2hhNHhMbVVN\nWGxvblliZkh4eEJ5b1dZcjJjbVZ3M1I1d1NrCmJQS0hnMGI0T1F5aGZaK0dJQlkw\nVjY3K0JoT2tiRjF2eWMrMG9CTENvbjgKLS0tIDgwanErVDFXZE9OQUx3M2NudWVO\nZ2xrOFFtblZDQk95bGJ3WDA2V0VRRlUKEExB40RDfdHavKZWnDEMrzkJ8DI4iv5E\nvSxlX+IHjNXld1BmjIUdf/YN+ld7WAQwEKi9DfLWEsYLwVAPFHQsnQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtSTJVc2RLRmdSaGRCUUVl\nR0dWY2lsREhTL0Z1bDNJY3lzbXN5OHVrTkFrCkF1VVB3RWliakx6Kzg3bVJoMFln\nUzZVMXgvNzE4TS9iTktVZlM0T1dEN3MKLS0tIHBDaDFvVFQrZmZsNUdiQmVCM2gv\nOHF3TWJ1SDFuNE92MEtKTmhkK0ZNWkkKnuUh5MIkiedv8tTaX6LDSdkjTb/hvZg4\n0RYk6HQL1fZ5udEfPNxAu08tQwMXlb1RNpJAriMw+WXOvar0q8lyKQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2bDNiMEsxVFZhS0hpVXhO\nSThEcC9KZ081bVAra2lwYmFlUHVVS01PclZRCjJMTktJV05yNU0reG1mOWlrM0Nq\naHN1VmxkQkNadlJCdmVMSzBjcm5zaFkKLS0tIHRIM1IwOTJFaEZwZnl5SWdnTE9i\ndXZCcHFyeGtDSkZmZnNZbXg0ZEJQS2sKwWQHUg8OxQlHF2/SH17/whioqLV1vV61\nSRYGCrQhNzXxgZ/uLsk5O8o4r1qat0XT4GPX9zvPWH5GztS/op1+KA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzejNMN2U3b0ZyVlhnVHJ6\nL0QrWGFzNitLVE9kZXAxd1V1M3pRTjBZOFN3CkVuL3p2bGZDY2dMWGthZDg2WXVR\nWUN6R1p4ZVhvWS9XaU9XN1A4OCt4T2sKLS0tIFhzRTMyTlRpS0pxeUFwUGR4cUtM\nMG5rU0JKZlVPQ3pHYnI5aksrUVZuUnMKPatZ8cN058GwYeM+iizhVbE9xxDOBvvw\nnNNeWkKZoND7lboNu1r6UWqhcXh6kR1xBgutLMjFQaJBfu9XivurRQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YjJaQXNGd1pEa05WRS9q\ndTF6VDJPRGpJRDBUUHgrMUh5eURFQjZhamdjCkhEWG00UTVGZnhyNG1UclNwZDhq\nR21aMW9tUXU4MVFhSElTTUhma1lYdDgKLS0tIE96RHhzOWphZlFsZENMWWFid2Ro\nVGhRcUYxL2I2TTQ2MHBZWjQ1YnJQMGMKkWYY1Cs8bfdeGm0baKZS83Hl5kdhZ6yY\nGCtPpx0QfRLqT/aXgwGb/rYsnbGJmhcqyaXCautFzpq1+sjgrgsynQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-09-17T05:47:50Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0SzNaeExweSs2bnFSbWRn\nMFFubFZHMDIzbVprZ1lMWjhFa2JmNk82R0hVCnJKdGdUWElQeG5FUFpLcmV3YURS\ndW1hQTgrN2hINEhBaUY3M1JTUi85QUkKLS0tIE8vM2pRWHdneEwvanBVMmoxaEV3\nM3BBM2QvK3hsZXl6K3VBaEZDSGxXeW8KLUdwhY10aDwFxWs66EVfDNKB4U4mLmeg\nplp68lCfCSIsU8nddPudAY9e9rKYOqyIEfY1+5xki4dCTJurq5F4aQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiNFp4bWhmanJtMWpGTGFs\nUjRUMFI4TjgrVW5lQnhxMm1ESVg4US8wVFY4CllwOFdtOHNsWjVxa3NzdS92SzNY\nYjViekJpd2h6dlFGdlMwZlFqQ1hZeTgKLS0tIEpHWUdkMFhlOEl1ZTRpOVB1QWov\nSy9xVThmQkd1cHhSMXg1YjIvWEUwU0EK3eF7waxzs0T7eTXGRz5rYlRixd4kU21b\nvoIskWz2e3HHWFEAvuaxU7rw1YGgDOm9hjKdhEy0YniAimKT3auExw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwV2dzeFZNeVA3SzF4UkpD\nU2xsSkF6ZEp0RlBOaUxOQVgvUnljTlVRYjNzCnByeDZLWlpqRmdzZzJSQUU4a2FH\nbk01djYvRDFhTUhaRlFCVE1YdU80b2cKLS0tIDVENDRCR3R4b2k3b3FxSmRreTdW\nRWt5eFpGVnQwNjJjSU0wN3FMVTJVRW8KY0oLtP087AZkBvG+JcGOBRs1a6P36W/F\nq/zhK/dMWJNCbOHEXyZxsn0I6Az322qCyRIarcnd16zQd0/ZW7kbaw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrVXBqSWt4REFqRjh6amMx\nMW5sZTNQSzRZUG1ONFpkcUxDU0pxczhQd2xRCmtRRTBKcnZJZjdnMFNwMjlBazdx\nOFlHMWNyYWUwRjhaTWZQcUhTY3U1MkUKLS0tIG9FQUpWc2tJOUkrMVEyOXBmdjFv\ncmxuY0JQUFg1bDBGRU9KVG42UWxxT1kK4OSJU5GrzPamKdQFPcKbCgNdNeuZBL/W\nZ7bmxD1YRGmlqtz9RS07dr9L6HO7TLlbkk9Ya4n5LLo9dFF9ev3lag==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2MjBpU0Fld0dsdlBCWmkx\nejFmdGhPSW1VckxYSzI2cDIvZi8wTHY2UzFRCjFaazA2MFgyblc4emc4SjN4RURr\nWnlyWGJNMnRmNys5M20wWGNSRGJRZVEKLS0tIHhLQ0pyTVRvRS92cFlabFRrWFpO\nelpxcndPQkN3bWllTUtpZXpOMzJ1bHcKmdHYvaUWpuLLznSZ9lK9zBpRUyZQJEmA\nxyEaIFRQrSDPs3MrAo9+oCvkYkJXTTe2Fnt3XZiBpSVU4Gy6doN+gg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzRDFLOFptQ3dxZ3FtaUk4\nL1lhODgxUnphWHJmTVlEbWNmLzlZamdVVmtFClE3RXB5elljeDlyUzZGenAwRTdE\nV3lGcUtmelIvNE9pMXJqT3dLWldjU0kKLS0tIG5KZ25XWGhXMjdsSi9XWFJBSUVO\nOXFVTjd2c2lET1loZytvVS9UNitHV3MKnzzEfokZnb6p7Z6ORAw19s2TZaI8u+53\nKJ6VQp0vjkp29LXLJiS+S8uqsdV4Dn/tkwXRhQV8CFfQHkqfKe4KMQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0UVpNenh0ZWZkRnBnWXF1\nbnUzQng2ZnRnU0gvUmFmOVRlRzRGbnd3cWtJCmFuc2ZRL0VYZ1dzZXE0REFmbURS\ncVZiU3IyVnBPQTZXS2diZXU4Mm16b3cKLS0tIHNsWTlZcWN5Y1JBbGlVa2lvZkpY\nQkEzcnk4Mm12SnIwZ3RqREJxSkVsU28Kg3wnYRmr+Ut/6Gq0AWzh8V7LgYpm6nsQ\nu7aUU7oOmvYb089X+/D7PtTINWMRXUR7fCmNVQ9AgQG2MydK5G2i7A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNlhoaURJdURxNlp1Z0Jm\nbWFYYTlpcnNmZUZqWmRDd3RVSk50ZDRUcUdBClFzQ01GSmxwOStJVnhYMzJhZEdD\neS9Oa1JERFROc2N3OXZCZmowUDhUdlUKLS0tIEtKSEFRWmRyYlhVMk1lU1dvK2Fu\nSHpWWUkzNzg5T2hSWDlhMzlOSzlEZkkKNi4oVwsv8y2qpLeT7DvuCABsNyd03M1H\naHyrXTpE5v94cdkUuMTgS63+LeV3v1i/FzbaTd5IPZNMFTB6lyAVLg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMSFMrVTBxM1hUQUR0SU1q\neVY1NUVHd1MvWDh4Mm5JbDR1aURQRFdMdmg4CmxNZXFKeGgxVGJxR0FiTkkrRWtR\nNlVpTFg5RUpETytsTEo4Q3J3NGtwdG8KLS0tIGdkTHdOeDVuQndmZ3I2eTc5Z0NJ\ndTFRVHNteDErS05MTmRlU20zRkg5K1UKCN9+YK9I3MZXC/cIpnKKHUjI2/msLoNg\n9ANRBrqYe9YEbGffnd5U63XWxPRLD0lJO4NW3MOvnPSA6Wyrqx2eyw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKaWdhU2xpVm1vTkk5dDJx\nT3pIZ0ltUWpCemdackZ4TjBiTlQyVDFGbDBnCmhzTjQyeHJaVktwUjd3TzVHc1c0\nOHhKUUpYMzh5WXRvTnd6cUtDc3F0Uk0KLS0tIFJRU1FHQVljVURaRzd0cDVPOTBD\nd3FZVG9tWGpLeTIybHV3TUJNUjcwSjAKXcHCF5PO0QjlVJgGFstDo/LTwxDzRCaU\nyXdxyq/t7TiJo9ACWHoyYQECFfgM/Mx/4jOPFlSQtJYIzgSFXLKyZw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvKzRZeUlsVDJBVWVpTVQ1\nT1pZZ1E1SVhnR3lUdXp6MDhmaUkyTGlUY1Q4Cm5Jempnem5ralJ5cUtWbVI3dld1\nb3RTcHpndXBVV3Q0enVDQ0QzWUVPSzgKLS0tIC9WUEQ0ZkdidnJpa0c0R2lsMDZF\nbVBWaGZGL1VRaEVYL3UxMGVlSTFwOUEK4cLU3Mo2CeYLMlyeNH2t56BgzJPdq3d+\njgVoF9PMKzZiMa4UjUozNOXAqRygNcFSY7BBcjX/CRJ+QFYAid5tMg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUVN1RjlHVEFDVzdIY05K\nT0o3M0FXOWl3c3FydjdqaEFJN1ZuQW5ocFRRCjdLNHlMYUcwL3JJRDI4cTMyNFYr\nZFcrbUhZN1BneXJaZElNK1o1eEpYancKLS0tIFhPSFJBL2RNRzd5R3ZVcDVYR1V4\nbHMraVVGQmV2TEJHM3YzWlhCWWx1OFEK1QCIKqng6nLwgzqqjwFXSrw7ownjM3xZ\nQsOR+6cKgrTHKSI0jYOUtAtLIkSpoxBipsKhtdwNapvs80uMyrcsyg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjT1U4TmJJZ3lJdkdwWmN1\na0Rhd2swY250QTNDajBKRGoxdkdhckpORUIwCjJlVkJqM0EreXl2bWlpREcxT3ZU\nNDZaTldpQ1RqTHFBLzV4OXh0RStaN2sKLS0tIDQ0NWpTdXlsNEJ4RFFRb0tBN0JX\nUEVHdGJYYzNBVkZzTkpHdWtpNnpqQVEKJe3DZrlb/9hFFnqquHVWWifSDiINn7hR\nFCdkA7/eqqu2fdH4tGFHz4tG25b+H55soDQHvFUPH/3nBB9il6PwLA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRUDBaZ3JKdElhYkFNN2g2\nRFJZWEdvVjRmTnhHVG5weFlLalF2K3BvWW5NClZERGtjS3ZYUHlVMGx6SkJRWnFh\nMTNFVk01VmlHMlgxcTQyTkJiSFNLa0EKLS0tIHkvbGczaEdiN1VQQUJkVEJVaXJM\ndmVFSnY1TDBnWEtzR1dVaEpTbVVXSFUKoYbEHnTx1zLbr+L+8Kv7GFJ8uJcyJc7+\nMPk5uJob4GJXKAxNlklJpM7z9RuZTZslf/pXeW+rrehy7C/DbWweEw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxcjlOcEltQ080Tzg2enpR\nV0RmblVva2FDS25uNmlJWDdiTHQxbXFKZm5RCkZRaDFXUFRxNFlPQ2JxZzdwbFE2\nQm5xR3FZUjFCcU9VUldCcElqWFREWWsKLS0tIDRMZ1g4UEhJMmEvL2E3dTlsSURR\nY1ZMYjRQSU0vN1BLQmVlTGpDMnZGM2cKvsBhl+entE8HvdWtO6+f0Se9J/psoGST\n5sBTUSj/F1OUwVMAnSZPWsnSjOMpJqoy3GemcCO+hqNORJ3DxxnHDQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwNy9FaFNpVUNMaUpaQkhU\nbklaM3UvSnd5U1ROMlNBdGZ1VlVLUllGRnhFCnJobUh5ODN2OWwzUGJkU1pOYjVt\nS0EwOVNwOGhnaE16WlM4b1dyc0Z6NzgKLS0tIDVKbXR1Sm9mWnlGR0MySi9YK1pw\nV1FVRlJncVZXdXpwWGIxRi9CUnFvbWsKEAKVX9SZ1c8PnkpRQi7b5J9INS5YWLNj\nRsJk1kCXCJKIS+49EJc8Pt0CrvET4sTlnxEl9KKA0WJu/ZixBLcq5Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVVTdybk1ySitMUmlwcVJo\nUWh1Nk5zL0kvbEsvNy9kNGZ3RzVVZ1diZmhJCm5ZSmR6bUdKOXB2cVlJeDhYRXNW\nY2J3aWdvc0tmM01yZzlEL0o5Q0VRdncKLS0tIEJaS3FER1gybUM5NzJaVWJuWGln\nTmdTMzdBOUxTNy9tZFlrVzUvMzg2azgKVPlWpt6EqzFn0FARLM847yCqeWb/dJH0\nggnHAMbzqhKaq/H9ZFyXvl0VCxlJ/5E4QZj53SAGeG10DfezlWLUuA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-05-14T08:02:16Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTY1loeFVEYkRYclRuMVZl\nVjVKTE53ZUZUV29wci9hZU9acG1EVVhZOHhvCnR5RGo3OE5CN0Q4R2FOV0ZaMXYr\nOFVTYTVmbkxxbmZqajlGaFR5cm9VSlEKLS0tIDk4VVVkVjVxci8xakN0R1Q3TEpn\nd3hwbk4zUDlmK3lERWkzajc2Sk1zT2MKstjQeXTdt7HJlhAeHInk+yPxcOmPv+zE\nQ8tB8do8lvSpDGVA8tWzCE0dXiX8AGXp2eW9Vu8dDLkToT9V7MDVeA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxV1RwRTlzR3dYZnJtSXp6\nWEhTaTJHRmtYaVF2bW1WOFhBWWw3UElKb1NrCjZTWGpZMVp0UlJHWnR4Z1pJR2VJ\nYlJpbElRZ2IxSVBWR1FFYkZadU5wUlEKLS0tIExxck93dUdyYU9ZYXRINVJ0MzBV\nVG43NkFLNElqTW5UL1NVT1F2UDZmeHMKSX30kfXXKNrbwmc/Tps4F44uvrlNWBPw\naivJSN3/o4qvrpsvnQ6HHx4/FS3Fvy88liW7qDA9IMtTpYChDo/Qbw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFeGdTV2FzS0pMZkFWRjVG\nbkxhL2pOdG9peUJZbXR1TGhOSWtoRzlvS2pBCm1LRXpqV3BqekVQejk4ZzcydEFs\nRk5tM1dLYS93dmRWMkMxR3R4T0dRM1UKLS0tIHN5U2ZwaVBCcmZSa09GSTlTZmxI\naEZ6SE1KODd5SUU4bDQzbXlldmRMOG8Kw3VGUaRVi/rdo7PsVDS8+TELqZYuQ91u\nknpWJyliPG+Yhst1FmxDTZGksRZcYBiwt3gYuHuBKm1WTwYVUevWEw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWa3pyK09vQmNuaXhnT2do\nUmpnN2JTVzdVUlFMQWdJR05tdTZQbHBxMkFzCnAxTytSbENWTGhQNHVWK1JTSzNO\nSllaZHIzSzBJMi9rSkZIczRsYk45K2cKLS0tIG83Ny9TYnpBVzUxYTllY2IwMlZo\nd2JpbEhpRkNUTXdWRi9XNWYxS1BvRjgKDu/vq8LyxpjvCG5yE5k2JeNfgTpP3yPc\n2Hv43IsvYELnpgYZ3DqCASFsk0dbP5R6vEcqMC1A+4Av5EsjW91dqA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOM0NVS1V0MEVrSzFkc0Q3\nb3dSUzcwVDNWVmFyVEVKdkdEZGdoY0lHSVNFCmZqVjRiSFZrb3N6NndFTG8rMXJS\nbkdzeXlOTE1qUFBtM05uMjJsakdKcFEKLS0tIHJPQTFwdVlWTlVYTEM4bmc3eHQ5\nSHVYeFZ3ZVAvUW8reHBjMkVVY25acVEKY9XbOaFURubHh4fTpVVkuTpQnYoABgxy\n/XyA79WpjRlzvXa52ac9K9QgE8R/HSIeIH1j2M3yRWXs+Jw2TtGaGg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYWVzaGhVTlNFcVF0d1Vh\nSmdMVnNhTmVZMDV1Z21LcThDbUVYdWlwTXlJCkhzd1VraUpmMWVaK25kZ0VtUVhl\nZmdOeVhVYzBMTC9OWnp4ZEtYNEVqRUkKLS0tIE1SS28xS1ltUk02L0U4aTZFLzQ1\nR1VTenhtQTNJd3M5VCt1WHpkWHBKS2MKOsRIAgc7LoTdgjW1JnCGO5qNzBUYId+F\nNQ4cU0FDJyu5MSimQ2tMgLYjo1tHh/AKGT/niydx3d+uFpVrjUmUQg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZC9SWGhUdzlYNWdLc21w\nbkVlUVZvbjJCL3pPOEJ5Rk5pQVVLRUN6clFrCkphUVUvOHc0OCtIRnNWWVRaWlNV\nQ20xSGo0b3htd1NlUXJQa2E3bFZSZFEKLS0tIHJhTkNoeC90RlRyUWlCNGtReTl6\nanNjV1NQeG1PempPOVNaMjJ0S3FLTTgK0EcUFCHfm47HEBHiEvs3TbylsSxAJ15p\nNOwgCIMFeaTNgkLuXDEYurNN0H6ioXaBNV2ecy7aHNLLgOyayW/jew==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZVFJcCsyOGJCTHo0Mmpv\nOFdjQmI1M3JmeDE3c3d2OFdFa24xR0pzem1NCnl6STVYRXRydmgwMlBsMGx5TThq\nUHZ2SEI4MEJhZGpuZzhFMHU0clVSdkkKLS0tIHdyVWp1VGhDZDd5M0JaVmI5VS9E\ncHd4b0hFNEo2djJLaGFnaVpGbWdzRTAK0XNX+8xOfmR2JPe1syZ5hTSqhp6pUGdg\nEL7yIhoyVLedyDHTZLAk1XFfodXnbjMB+r3eSBfBHwS0PJRYdgnNxw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBadUlZUXhublJvVXFNdG1L\nWkJUSkR6OTdJOUpWVTE4Wk5ISTFtT3d3cjJNCldzcTl5R21FUlNyUThGTTdhUDNh\naDlKcDVlMlJtR21xVGlyTHgyeTBmUUkKLS0tIGMyYitnWnpzM1JhcXFGbUtTek81\nTUlFVzJEMUZFNVFCUkNicXh1aStXTTgKderfUTU74b4NA9vScYiMT8FwyWx/DoGZ\nYcdCp1ciEuC8j08QeLcPAyGrWtZBkKlZU/HxEA/QDM+PvF2I2GYNag==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1THg4QlVXQ2dFSG0zL29h\ndW1ubnpzeWt4cE8xMkVQbTU3QU9wQlkyWmk0Cm02VmlVTGRnVmhDdytuQ3VxdGRS\nTWh6UkpKajRiUnJxU0YvaWdhMmN3akEKLS0tIHJvYVAvMjl6eDltSWZsNjFvOHNX\nbzQweHc1d3FRK2VaVmQ1UjN1R0pEbFEKU/nabtnnzwoTjrJ7Rib44Fwfcce52Obl\nsoz5ZSOSGJSn4h/usUg/WoEJYe7Ill7skxlUXExAdnvIpMrBpQlcbQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqUUg4M3hVRm1UMzBzSkNt\nVFU5bXNMaW9LU0ZpRHlITlQ1dTUzemhEMmwwClF3d29xVDQxVFpuc29kMUYvUk1w\ndW91dDFYbmwyQmJ0T0Z3alVncUIzazgKLS0tIERGek5Oc3pMaTRDNmJXRjY2V0Z1\nM0hMa1RiWVFDeEh4UTlRa3FpSm80L0kKU6uM8MAztxg9v0kGRChJu/DkTF/rnu0j\nxFU0VqCP9VhLMXCkyr+DxgwGRvTkWbKwlSmpffi6WxhOj/GWkY457w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCUkE5L2RPRG4weUVBVGcr\nam9FVm0vYSt1NFZJVjV1ZStNRi8zUFZsSURRClRkY1d4R0xLaUw3ZWpZdnZUUFM1\nVmF3cFF5OWY3enR6TVNiOVhwOGRNVTgKLS0tIFhXdzZzTlN3VCt6UHVncTB1bHZK\nRkY4YjU4QVpFTU16VENMVnR0ZVl0QjAKMbnsrwvGcAVVpMMVmKR1XANWoI3ZmuCI\nXHQh+XzKcCOQ1tRG071RthuptK8ALxxXuGzNfXYqAhjF02v6U5SBmA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TlpZM2doelowYmE2NklE\nR3UxK1oreHJ3Ni9LMmN4UjRrZGxtOWVJZlIwCkNVL3ViRGJybEh5L2JzS2ZBOTVU\nQkMvVGRYbGJsS3FXVTNTVCs0WmFLcW8KLS0tIHJLc1Z1dFlVTlFxR1FpTXluQ0JW\nVVVmcW1XdGhMTU9XWlhkUE5SRmNnb3MKyAjvmUuoFQmowdUPdvjWncfcmLTAQso6\nzxwgarw/Aj3h/ed4TYcufGOGjPPe3EBDEUaOnmRiaSOQ4IKqFYn30w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQ2tTSHJiV3FreXFnTGdn\nM2xsWHdEeTY0U1VwaERzTlM0UlhkZ3RERXdZCmFHdFRrTC9wOHdLazNBVDhHcVM1\ndkZFdnZIV3VUZWtXbjFkNkF6SjhLWTAKLS0tIFppaUxZM3ZSamFrR3RCSlJsWXRy\nYmtPa0UyK3JlbHZ2VVUyeUE5VEJDdW8KO6AE2G7E08C+TAhEa0F25kD4fm/VLftT\nFrkA5KoAwv5tbtrLbRN7hS1JPoh2zktuH/v4o+bXhoKBOcftcbTa2w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNHRycW9UK01XS01yZXhM\nSko4SXdlcGl1dFF2Q2hmZ1FTcHZiUkFyaVNnCjJLazZmWGFWSTN5dVNMQjVMblRY\nWVQySWtza2FwTTNrdzJ1aGlRd1F5ZDgKLS0tICsyYlNTam83Ym9kajViZnZ1aEVT\nVCt4M3hrUHp1cWZoQkpPa2t6ektOeVkKurB5LWVwA5Mc3iDe3DK91lLtEQUs3pRB\nrRAdrLhQqZUGFKTN9layYkjXRSt/tdTjhUlVZG/VvKwnNHJiVAlU0A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUGZJckY2Q3VqSXZYQWp5\nNEc0WkFsSitmWEwvaTFWUW82YUlYMm40eW5zClBOeDBsb3Z3a1I3OHFMT1RxTHZ1\nbnNBRUZlaE5jcnVvQjQxaktkaTZkT1kKLS0tIEcvK0tieTZvdjEyTHVVckFZUERj\nQkFxc3dLQWd4dERiZGhza2NMM3JoSTAKkm3T5FYSo4DU7Pw4wjVoDtMk3WognNH0\niJ8f6kW907ypotbAH0NZffQtikzhO63F0cPI3zQxbx2/7Bf8lw6QjA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5SE02WXpFWVNWa3hUTGNr\nL2k4d2h1aENCNG1LQ21NeGdtQTd4VHRqOGhNCk1IMFphWGRhN3NMQUcrc1BzNmJQ\nS3FWT0lGQVRGL3FQSGVFQ0xnYkI3Y0EKLS0tIEt3aEkrUzRWdnhlR3RBSXBIN1Vp\nSWFoVldVZ2NtaWlxZm9oWUovUTdDTDgKRSA8p9CYvnnNEX2WARCJyqzMXKwQ1CBk\nKMh00D15+nQZO4Z2VCeOm3s1m7h9AuYzjYLK/igWGy0ZgAMfrpo9Hw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-06-13T04:08:00Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQSGNFU00rSERHQXJJTnpL\nRXNoYm4xazN6Z3dvMDZ1OTA2Q1g3OURrRFdjCkgxaUZaN3k5RHFGM0hTWkRybFBV\ncnVZVkFiV0NWeXJoWGloV0c5Um01cncKLS0tIGZFODFxeXVpNmkyRFN0SE1ZK2J3\nTkd6dzFNT0F5dTJ6VGVVYTJwY2xCL2MKTDHVtRp1uojeHJ2dILTvjQTXtWU0A2ZT\n6KEe5pkoadVoI3lu70RLyGGQuImGgc/ZsEJiV2CHIuKG17J3bexBBw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0SGlxaVB4enJ3QjhmcC82\ndVlyc0JYUmhBbmQ0a3ZnSXRVUURmalZqZ3hjCm4yekRSeHZTc1A1dy9iL3c2WkNB\nSTIyNVVEWkNkRGlWSlVoaVZCNlo2WFUKLS0tIG94dFVNdzd3UDdBbStHWVhNTGp4\nYVFOcDNOaTFJN1hYZXVFSUh5WVpWSEkKzxXo3hCvdIROwi1v6nt73B+Sj03o5Mzx\n6di5nQH8X70hype2vEr85zfI92ON4fU6HdQXbJLVzyI1nrh5s9ZkiA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TWYwdmQxVzRESGR4Q0J1\nN0JXK2V3SXB1SWJxeHJKNjFpOXI3ZkFTbFNJCmNQeHRiM281MXliNDVHNExVMGtX\nR3FZcmtTdWhtaU1NSmlwbjdkcUJtVGcKLS0tIEtJaXBsZXVBSFRnZjRWRGdVcVBQ\nQ0RqQmhMZEJ5cXBkVk1CdWZsMFROSTAKx+uAnbpXblkJi8zSiyJXO3UtHTydGbM4\naSN58lAR3yCuSuNHdUlDXr9TQfF4rTHEBGMBFh0ey/CmX8hzoJXiDQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxU0xIQzNHOUF5bVdua3hN\nY0ZzZkpKYzN2ZmZtd0VZN1ZMcHQrZjFnTndNClVMUmFzdWdxMk1LZnJwNFFKdkdj\naVlucjZibHhyY3Vxa0VjUyt4QVd1cEkKLS0tIEN3WkRzOG9XVEJDSzBvZUFEcHor\nVUZSTUJaSktuUDN1dkMrdHAzNU1udGsK90HcoYT9ojDuTux4LHBafFo2iTRVq9iq\nrcyJpnJnquLtyhK72CnRkfHNrXYWMOT5k6b0DTwvKERcLtyrbOnU8g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpZllMSHRDN0tUajdwdzR6\nOTdadjN3L2JFR2RNcVVob0NLWGlycFdMNm5RCk5XbTExc09leGpsMUxUTWFBYjhy\nMnNDazI5WHprMFRNWVc1QkdKTkppZmsKLS0tIEJWRzhBb2lKeDc5bHl6OXdvMDZD\nS0UxSXM5R2xOUU1Ud2s2UmRkVE5uNlkKAHjY/gUahrkgAbb+2Q43asvVrgdaKfWC\nO5JPHo+krBydvNZ2k4261lBF8zwJ++D+qZK396WxChMH/RhiiPUBSQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNUFhCY1FpeGhjRkFWUjdL\nclFpU1VYQk94bUFvMy9seW53em04d0xrTFQwClNGUFZlOW1tU0FJYjlBdDlRM0RX\nRDBQVXVSRFJ1VXVOcnJFdmE1bVdiU0kKLS0tIE9WSDJxWHZuLzhFa09QZFoydlNM\nVDZsUUZKU1BSOFg4dlZGVDkvYmFmc2sKf5rZdc/grXqm8HHSKoDqkjVaJV/ayIt7\nSlGFHu8W3TES2jsKZr/2BtXxGBQv9D5i9Upm2xM8MWn2mx/hWDf2uA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxYVJYL3pmVjRmczJjaTlF\nUW9OOGU5dzdWTHg1bzh2OHR5d0tNTGF0NmdRClQxNVF4b0Z6ZzF0YndvWmZoMlBD\nQXB0dmZhQ3N6S2VjRFh5bko1LzJYR3MKLS0tIEgxS3kzWHJSUStUcDRDRG84bGJ3\nYmRNeEMybDB3b1dFV1QxNmhJeTNCM2MKywwuf2TNR0VuEQcaZB4uYdxSyG6dzNiy\nX2/ke2xG8yApIKW5WIrOO+UgGB9i7ZdiGKUx73YUKgm/4IECfbHxSg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZR052NWQrRExVRGMwWlJ4\nV0lIQlI4bW5Rc1ByK3lTT3prMmc1azBoVUVvClpvaFRDdG5QQXBxNmlyUEF5N24x\nQS81QTZyRS8xT2V3RFVKZWY0YzdhRVEKLS0tIE00aDdzRm1sWmpVd21XY3dwZHBz\nWTVYaU11elB2S0JxK1lvUFF4NWRMVVkKqTMfsdlWzzpbSR54W8VANzIbzYQtZ/11\nwHF2cZHlrwTnucpoIWugynGsvu9R8x5i9lFjaNlavUwIJ2VR+BRMhA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0SlJWRUk4Y3R3MitrbjRy\naTQzTHlUR095S0VSTkdIVE1ualJibVVML1RJCnZtVlJjUFpkYXZhUElGZXo4TEZ1\nanFLcmtnNm5aSWI2Wk5OYXpyMlBPTW8KLS0tICtRcWxDd2c3ZHUyV2gweHdoNTlv\ndG0zTWJUa0d1U1RuN1VSbHc2VVNjeVUK4a5tW0cqY6su54HRDS+ZNdw+DB8ipxxA\ngMOE7vQwCzofvME5Vxg5Yf09nlsSwdhkoBZwegM/0vTTREM/oiwznA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLdmtEWXJDUUdKdjF6QmNY\nUGd3dW5BNXY0NnB3WE9aSWF3RWxiNi9TMDJnCmhxaDBEVHRWelpLdEgvT2d5Uy9Y\nOUFBK1ZNdHl1Mi9kZ0dZSmpVUVJyQzAKLS0tIFNpeDBFa25wNmhqZk5vT0dOYk1B\nSWhKV2JKMmh4RllQWC9EQ08wVmZ4UmsKQVCwHKBSFOTrG7z3njR7HV1CC/ijQksT\nB4iYhs8Vt91QPLvVte7P9PYk5yNu3cjeV65h4jHn9G/RzfUnnNyfPw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0L25BcUNmTmNqTldjc2xV\nVnB5bWxsNzdXWnI2MmlBOHVQamJqeU5ac2dRCmcwMUw5VHFuUUlGWlAxTlhaNC96\nSUdVcXJ4QUlGWS9xSmQ4ckVMMEJNZU0KLS0tIEpsRys5MVMzVnk4LzBFWElWV1N6\nRUVRMHVheGp3MXpsVlR2SjE1VDcxYUUK/eum+yorcNj3CuAhZVL7vUqGTNHW6yBO\ntF2RpTpIXp3dje+LH+o4wMFdFhi7x8EiL+o11NvTwOfDU4nyWWn73w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBRm9PMWpxMjlsTHpnMVk1\nRmFNclNqdFRPc1N0bU12VEpPcjhDS2JIbXpVCmo1TDdKYTZrNW8vSUdScnRSQnVP\nMENQUGg4Nm1ocEpYS2JGaCtsdloxc28KLS0tIHNjaWE4dFFyU1FBakhoa0VMZFBT\nTG1FODZGYUQwb2w5Z1pvV2tuS0xFajAKAADHxS6UTmdsAxtbR7ioemPLmxVqTEd/\nD1rhXomfMQ7NSkb5SUh8z7axGxY8BziVheQJWGwdIn6+u2KiI8b1ow==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBONlVFVkV5bzNud3FLdzhh\nYUJFbWxORTFaVTlOK2pscllub1Z5K05SMGk4CjN5cG5sUlY5VEpGd2w0M2VFc0M0\nT3FtTnBIbk9iNXh1ZlVaZ1UzUnRRY1EKLS0tIDhMWjhZUFhXYU1BNVdTVUhjRG5W\nY2NQamlDcjIyNW5tTkRWdVFCZUQzeWsKkms0SeBMI3MVdOPSq6e3QcTrLrDmuEOn\nOVK1NHeV7wYspVXjRMcCUX3d86Asf0E7rV942vlVxHX+rq9ueP6O3A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYYUp4VjV5d05xQWFXRjR2\nd1crNVZyRmtuM05aZHAzNE02NC9zVER4SVRFCjN2c0VlZjh6NUJheEFuSFE1cVlW\nTUhTdjhRNXJXanJFTEhlbGhaRUczVWsKLS0tIGlwRTZBWEhQSzFhY1BYQXdyMVVk\nRUFZcHQ5c1MyaVp5ZVJNamxuc1pXOUEKTsSzOuNOReMPZ99ICOW8/TCQBt8jjP6a\nO9DnwjImazq0i3HKjT+dgNYNlwG+MaUqUNdqIixjbE7s7pskSZlgjw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqODRqeEY3ZHQ5cHYzTUdv\ndXVrRmZIaEdrTGdKRGIwcDcwSVQzQy9RbW00CjJrQ2RFL1ZPSUMvQURZMTV6NkFt\nSUxvd3lkeTFYdnpsc1pGK1ByY2doUm8KLS0tIG5SRVdCcTBPTHgxdnl1TVFGR29z\nb3FPVWNzWGxxdWNlMXVVbDRmajVyMUEKWHTmJz7z2kHgHibJcy7258NY09T5H6Iw\nz6piXOYaZmFRDjj27HPz5pTEI4VXnO/7oWXcqodjGSvh2+427NSLBA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUGlWNkg3aVpwZnppTUpY\nVzdaeXlHWUhFeTZsTDNkY1B2a1RRajQ5YUJvCmI1a0pOTjlnai91MjIrM1I2d3hI\nd0ZkOGk2WWo0U0hOdnRmaW1FQm8zR3cKLS0tIHBYdnFqdHRHbTM2OHpRcXFNN3Bz\nQUZVNnZSQkUxZGhRM2liSXZTRVRHcWsKGMhYTWmtcRy/WjxD9uWe+iQCEMncebzr\nnkOmOPHOdnvJY+WynTAbHs7nYKKRLizchN7WHLxWah39C5KzmTSQyg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmemhzSU45SE9VNzZwTE94\ndDQ5cUJBRDZPQ1dETGNZTGxUNEFaTGo2VzNjCmdBSndxQTB4eVhxejQxWUlSaDAy\nU2dEMFRlYlFOQ05ubEFXSVVJeHdudTQKLS0tIHk4VG1zWXBLUXpNVjNUMDRUM3Vn\nMUtueXJ4U0o0UXN3b3ZHaVpZOUJrTU0Kbs9GkyKT7efYaUpbt6bPFmtCb4sS9uM1\nJIINWHrWaa1QqVC1eCswuH/LVO0xPNxfnDU8i0Hk7HEcVCcBKjLtEQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-08-13T10:17:15Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcEdPbGJ6RWFZYUVKRUtZ\ncDFYQUxEYWhIYUtxQ1FFZmtrbWdSTU5GM3g4ClFXdE1GQTZiM0ttZTlMVlQ3bVpt\nY2w4blVpRFppclp5WFlSWnNzRm5JT1EKLS0tIFFvZUdqUHE4VGVOR0RxR3BUQnJo\nVngrVlVtTHhCd1NML3ZpeC9XdHU4c3MKDXdy69z+LjN4qpVyoGDdCxFJBrJpNYY5\nr7eD0LXGxQ7Z5/YemPzc2FJQ+IUkxnwB1z7o0hYGQIrvX0TvpjlHig==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwSzRTVHN0TEJPeU5MRDdn\nOUV4UjM1TlhoY2E5eklMWVFWa3JmYjdnekJzCm90dDZOS0sxWnlqbE5tY2NGL3FV\nZWs3Mm9WZnJIQWpYeW8xQ0gyZWRVazgKLS0tIHk0Wk1YWG16dFJBTXp1OS9wSHd6\nZ2RrWlMrdjk3UG1YeGlZYWpydWxkUUUK1TPTtHRwq4ET1cNY5Ioq9hni+0wqzf7+\nBh8k4DFP+ana376xkL0JolJebZJk/pKiQwo9Ts4irZPSujDcIlUZEg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRUEZCdmdmZHJmUjhUTUV1\nZnFBQzl2M29MY2tKcnRyeGhNYUZlSEEyT0ZnCjRuMGgzZWtYQWZaZGpYWlJHMHVo\nNi9WU1grK01lVGZkdGZENU5XOTBCbWMKLS0tIFN5SkNhbXZTZDEwbE84T1Z6M0RS\nQmhlbHQwN2ZzSXR5Q1ZsbHBvOUdiZ2cKSTLrKPM0TELStaqGZ7PvTyQeotREzYll\nbVNpxfpHadfOYTu0Qn2d/H8haY58hYia6tzKrMFRrnxl8r5fnk4jeg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkTk8xWk56dkx5N3RXZ1Jt\naSs1a1dscVExS3VZK0M2bEJodWRhQnMwMDFRCnFuQ3Z2eDMxQ3dpeFl6MmpLYW9C\nM2tFTkhYNHZVMzVJbDBydkNqODRsUmMKLS0tIFN6UnM3MEFEMUFzNjRIZ3p3Wlpl\nQ2JoOEs4MDB3a0pIdzBka21DL2JsTEEKX1/oYpk2uNxfaMd5UDApN4/5wJAlybvY\nWKHCHctWxd8GFMHR9r0vQmy91zEkeXpCSGUTIe8fPD0hfJfSnbeGfQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjMjV5WjI2YmYzdWNtU1Fw\ndVNlUFZQYmVmallCNFYvOWxxdHVZRjgzWWxRCmovenJqL2JpRHMxYkZXS2RBcUtL\nWmRndFZuaW5WMFlGSWgrVFZuaDJid0UKLS0tIDVpaGZhVmFSYVkrQzlSeGFxQkFQ\nMklCNDlndkFTb2l1aU5Pa0FEZ2UveHMKQnm7zJxPNvCw92Jog76nDaDQYUQpSXZ+\nmbIf0daqIu4yQhKlen/I6p4hWvr8a4mvmVqIkwL13MNRS4hzKb3NLg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0RGJoYTZnS3ZGc09Sek9K\nS0NibFA4VFZGSXlCbnRCQU53WkR1ZGZPdG5rCnhmdDVEYmxVMXUwcmZLYzhJMzh0\nUFcwS1U5QTI4ZHZDdVNTSXhYZ0xNNncKLS0tIFV5eitHVGtUWDNIQkRJTVp4QUhm\nQjRjQ0NpNittcHRtUnNGa05wUzExS1EKU0GbPeVaKjhp+wBbF36EmAuAcYLSSDCF\nGat1MvC96CjULlWrTKVZkjMN4TDA5akPObij7PcsWHVRawaYM0bOpQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYTEZONjRZa0FvWVcxSkMy\nYjZKaFpxcnBYbFI3SFVzc2Y0cWVEZGlCVHpVCi9tZGFnazVOeHZEZVdnSmUvL2FE\nQnJJbS9KNmtwNElvcWE1WGVQcG1Rd1kKLS0tIFpzQXp2ODBiaWtCbnVtTEZyYlRD\nSU5KTWdJdW5oNUpLQmVIZXM5bGxMK0kKNMTR3OpNL0POPmS9SbMAPFzW33uaz5EJ\nnOTnSlaSe/50bBPiHY9P5UAmNSr6prA86FV4sneGDz9C8yxFGaA0fw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtQW1vUU5WZWovcm9zMUVs\nY0xXN3h6SlFuR0pPU1YzNC9QWERSVEgrVmlRCjZKTFhaVE11SWM2a0hLN05TbnBC\nemk0VnlveVVhNzdtQms2SUR5c2I5eDAKLS0tIHY0S0lueE9xWEw3dGRxS00ycmZ1\nYWNoVFVhVjd1a2oyeWc5cStLekoxSVkKs2GtyhNYE9ZfskfxBf3Y8nJN87Hh1baU\ns5pRlp5NTNKwtLwXUp5Cn7jBHd8KmiBIyJ/GMqaLJO5AP5+6KNJwGQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIQkxLOGk0ZVBPL3hFVjAv\nUytSZm1iR2dCcDVvUWEvOEtCcHpQdm9VU20wCndDZXRjQlBtT0MzOE1YNVR2R3Vm\nSi9FRTJkeHFLNHRjbjMwUHNLRjZzMFEKLS0tIHY0MWhveVg3VWhxekhWTTZ6NnBJ\nS2xtanlweElyZ0RKUUJDSHNtdFlYWEUKVgQS1G4mCeDrfA6Ugyj7qRF6aGho2AfR\nUpEp/Zv3SaWLRLGiqtwV9+6l0yDj+L7As6c3ldkLVPrNnXfWEMshcg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtS3JDY2NpeFpJNi9HZHF5\nVkViTkJvdUsyTmVEMUN2UVFBQ0dybUFLY1UwCnl1L1RTdGlkYlhSTEQ3N0xYQzBj\nV3lTRGFyVzgwWDhJTXMweVhsWm1nQUUKLS0tIEErL1k5QmpkektkNm1ocjJ0Mlg5\nakpySVdjQ1c4Y05PUi9uYTR5V3p1bU0KCM7XHKnwS356DuKE/P0uOXO4Yu6Eyi58\nDtmgsaojXMnD9+dIP0Y1+2BY6L/uXizEakdfLTaGJcELq2sZX9Qmdw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjT3hWMzVaMTh0RFJkRGND\ndC9zUHpJYUcrQllFVkZRZWVBNmFRa3ozZkZzCkxtNDFacmMzTWtiV1VyZXdzRkg2\nZUhhV3Mvc2FYSW9nWkp3eVRKTjdCOEUKLS0tIGUrYjlCQXBLcVhHWmFTV3BRc0FR\nZGVEUjVYSVEwSmpuVXpSa3Z2UUw4SE0KzuTxHeZ0eODvQvHzgjop5FOWhDTR8MeO\nkF9Kv6kurpZuRNRmWZ5hlaMoyT2D94SV/YtW+PGvC/7ZeqTObSiUNA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiK24zS0h0Q1FEZDBKM2t3\nUHdlWXpaYzNQQzQrN0NPUXVVdWo5dmY4dVZrCktNRXNvVDZpejIxT2FvZmlHWlRU\nWmRZb1N1VFJ0ampRRVhuZGJIQU9pL0UKLS0tIEFXZk1zLzh1NFFKQnF5RzVSM2J1\ndlRXYnFUTFVDS1pybjRzNWkyaUlyQmcKysTv+9YJ7E+KBBtzlAlilZlkGg94nWGE\nE773pduaDN12ojMfc+JPdOU5oTISZk4/QvBL+kmAQI8AlmSap9Ix4w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaVENPRTgrUUNZYnovalk5\nUDdRbmdSVW9kdUxrZ1dpeGp1K2YrSjJGZ1FRCjZJT2p6L0lRTkhTZmlOWUkyZjh0\nS1Nqbk05L2krS2xTU3B4L2JJQWMxOUEKLS0tIDlyUHB6d1pURHN5TjRaWU1GS0o4\ndXVldWJGVmpDVExNcHA2NHpYSHAwZDAKfqXzRXCTAhCYme3Wf+bJqQU4kFCy1wT7\nPPqjex3eeYBSFkwTzx/cPNOAJkTXwIPziVGjJ1dvqaI4LKPel9QZ8Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhciswMkkrRDVBZmdSeml4\nTkhHeUh6UkVUb2tielkydmh5U0NmaGVWUEFVCndra0ZLeHYwaS9lMHladzVybWNX\nL1hsYlFPTzJCMElJZ2hWVGcyYTdCZkkKLS0tIHI0b3lyaldqNS9WT3BZUjVKMmZu\nZzBmakRFeHFxT0RMWCtONVIwV0VpT28KizkDpls5SVyypJY7aUF4v1DGdVLTMLLM\n2efp7mQB5YYvjKzXCiG+hYRWSbIS/5sHtE40ofmcCPijj7jY3wegUA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3WVlGdXFFVGo0RlZiYzFn\nZzdiWUpaV3ZhVlJEWkVmM2NZUlpBbGNWcUJrCnlITTBNL000WE0zY0lVeWplZmRh\nU0cxTnhWeVpEcEgwWnRzWDFiVld1ODgKLS0tICtHNFpyVEx1aGZIWnBhWXhCTElG\nNmVqeWgwNlFWbzkrd3FTcVo5ekRZbDAK8yGUHZbfwBgKuhY9lJN6X4ZewQLGqNjN\nysEAeLppIqLoz96lmFmhuIOju+z40wBq/lLn4YoAwkaMV9z0dvKA3Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHNHlhMkpscUJzdk5JMXVI\naGpjdEYxV3BvdFd5bjJLaUNQVndRWERkOXk4CnU5NW9aS0NNVEM4b2xvemtEc05V\nT3h4UjNOZ3F3ZW9VclQvOTNtcER0dU0KLS0tIGN5WisxWHBNQk9sYWlDbUp2eE8z\nR2RweVR4ZEo2ek45N0UwQWM1eVBFdUkK4e2noR5Xn8evKxh7GbAi7szT8uXBfn8K\nqgWlCWkUusUanRqJkmdi0y3zJxjtgs5bMU8JSF14hTwWveoIc/Ec+A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeUovMXBJRTQraUt4NGd2\nL2JkdWIyYWo0S1RJT0hlZlVaTldadFNRSTNRClc3c0QwYVJ2bkZBWmE5cG55TnQ0\nbGxOS21id2lrV2pia05XUW9nKzRaTXcKLS0tIG5tQmdXVkh4czdzRDZwa1l0bmN6\nSWcvRlpNTFNpZEdQRnBIclJiaUhSMGsKgEOyyfSggqWUrS9hW1t0e1nOFxXzHVq8\n3tTEiMwpQTtJ8WSC1H+gPBUxoSBt/5S56XCHDQrLCojIseYW8FFR1g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-06-30T23:57:28Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNcmNwbU14bnFkTjMzYTZp\nblRGR0R0cDlrMDl6VDRRZmFGanM4NHY5Q1MwCjg3U2dtSGhHUmgrRzZVREZsL0ZH\nQTRyRTMxc05NaC85eW5Pc0ZJdHdFYzQKLS0tIDZFdGI0cTUxSlEwN1ZpMzFzMHlk\nWlJKNzZGN3N5bVk5cUI4T3Fya2NaMm8K3R99wPFdFiEtPCen2Wa9YzwxXnEcJobc\nuG8xvQUfUY/n0C2Ch4NJ5m9r+76WrnY3uG8f5o3OgWE9AiY1PUSZfQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZbjRLeFR2eUJzUENSajh6\nblFTMkNBRU5yak9BSUtnRnJpRjk1b1I5VzNJCk1ZVk8zaURnd3dISE1FWkpiYi9W\neFpXb2tvdExMT1ZlWlJoemdMUHczZEkKLS0tIGxkSGk5NzNOcVNNU0N4c3YxbFdE\nZGlMRzlRZWxaZ1ovSnU2Mlp1Qzc3Uk0Kf/jxKZF0dsYUFJHMXlk2mRV25s44nkOR\nxNHN9+Oq7h8fcPsE3dpFTajhVlbYNNY0Bkp1eBf6AVTfSQM5vhJUIg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzQnBHM0JJc0FJRUtnK1dV\ndmVwS3dnN2pKOHd1dU5SZ2hDT0grZEFHRFQ0ClRxcWw3NlM1Q0ZNVnY4N2JlUXpK\nb2l4cWVDNzViU1lYaStyK3pUM1Z3R28KLS0tIHhoVGtNUHVUUFJ3bFUraTJDdGY2\nMEc5ekh1a3hkTHZCNTRUVytieDhtNVkK7MR1CCPii79Yk3xJ4A+6oYnI54ykEXQM\nquEYdontLyX5s061p3PmHutEHOIGpQDQDDunbAnfIdSKngZuX/kY/A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxWGFIMFNOK1VneTk5Mkx3\naEQzdlo5WnFSQkplVjdyZFRveC95MVBHUTI4CmJDd200bnhUekRWOGExcWltUXUr\naGNmZERyT2FZQUNQN0JPU3V1MTFpSVkKLS0tIDJDcXgyN2trc29EcElRbHArWVdt\nSDdMT2xJS0J4QURiZFVjaU1ud2ZzY1UKecdHxE7a63R4qXg0sEPZ8K4JY3Opix2W\nVGs5fE6uV4NqGmOyiC+wAM+b5/5PJHX9TnhN1/QOwOUt5KNHljHV1g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUUTJLbEFsUW9LWEJrRjIz\nQ1dhZ2dGZFF1TDFSYUFmcERMemhaT1RXYUZzCmhCN2dSM0RJSDQ4WEtDcVN3RGhK\nUldnWHpnc1FWV2FOOGVINjZydCtBZ2MKLS0tIEJpaHB1KzBnQWg4ajA1dE9zU1FL\naHUrMnJQYk1BM1NpbEsrNWVBa1hXOGMK2gLe3Ddj9ErlzkR0RjlsmnEiY84VBMj8\nKV0NklDpxRdhYgrEKcJi6b+RZEKDLu1vlwGj70AzJUv3OK5uZoLCSw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGN3RZQUZUcThqWUpnQnhp\nc0lSK2lIbS9LSmpLZitnMGVkZEVJdjJaQ3pNCkZ6cG1mVm5kMzdhcHdVTjBuR0Nh\nNXZidDE0Z0greTZLanhrdm1ibHNzbWMKLS0tIERrQ0d1cEpUeit0UkkrbVBRU1dn\nSHZ5aWVkUWVNVSthOGp2eEtHZFM4L28K0fgqEtTV9z6IDRK7MXvgkIn3L+IZpVfP\nhJCcy1Qu48UZ8eCDaxPkG0VQwjdEHQXh+a+goMDaX+fmfpshQoF4qg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0WkhZZVlFaHFqeFp6aVdB\nMGRJSGVPRmJJeCttRjIva1pKM3EwMGVkdDFZCnFGTDdMc2ZURXR6NmRDTkRVYWg5\nbmd2V0FhdjNmQUx4b1NCRXEyU0lxL0UKLS0tIHJQRy82V0RkS2VNUGg0cnFFdHA4\nYUdMUStqM3NmRnVHQys2dzJ1cmhWYXcKxWRun88b2lClrI5zKl/XC8glXbE7nUFH\ncPdqSz4mYsPO8f5KZ8GZ8UZ68HBjrlS1vW6Zt1WmkUfXK3wOh2oKVg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0QjNKbGY0ajdnL1NDNzBU\nTlFuWnFWSFBManRTVnc3dHlER3c3OVQvTFdnCi8zVXplbzI5cktYOGxoUjdOY3BJ\nNC9jRlJwejZYQ09ReFBxN0RvSkpMcFUKLS0tIGxnczdZMnAvdm9PZWpUcGNSWndQ\nalFTM3VEUVhYeC96MTlZdFF4WmVZUUEKzEt0CxX88E7UggFs8zYARCC45L9aL8XM\nZdvAWnFmgEStZZUMb2pLUihGW97mjuOyyCQPzwrFRiu23HjHgoU0ZA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySFBJSklZTHo4dE45K1I4\nUlExQnFTYW5MRTVVSVRJWEl2S1FRaWp4ZUU0Ck9jTzhVUlo5RWZaMFQ2KzVONjJa\nalVtaGhQS3JIOWhsVE1MYm4zZjZ0aHMKLS0tIHpqUFV1VDc2bmpuYVp1ZzAyNmFW\nY01lL0RiYzVkWXd0RmlOcFNKc2duVW8KltSO3djgCUNcSZTHH1rWYqVdgVfZayGQ\ndCuL6pBM2wH2qJrPnVJ+JpwIFKiw+8cT8GKWUsnTqzbuvcLPrP0Yjw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIWXZXM29MWVlzQ2dEdi9L\nSkNlTXhUMkpwUC9UdXNwZTFsWjF1M0pZNzN3CkFKcHVyaHRzbVVNK3ZvRXBrTHNQ\naEhLL0puRklJbkgxK1VoaHZkRFF2ZzAKLS0tIFh2NVFJbTBmWnFueFlDWnkyVXBE\nZGdGTkhMQzdUQmpCdGFyRjVXeWZoMU0Km9gc4GdQFFL3+O54TT50YtqkDtFYQggF\nqbVBXNjX8saxODceotz5+Kb2M4nkNl9k94K0dPIdbckLZasTfFHuWw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnb2ZweHF4TUdBVHRrN2hJ\nQm5hSVlhelVYTEN1dWxvdC8zR2s1eXFDZ0hnClh4cFdqeFE4ZzdOVTRXZlJsaGtk\nc1NadHhhNVYrc0xBc3BmNk9Qd3k3T2sKLS0tIFVlcDV6c0UwL2R6Qm93a256UEpJ\nd0MyWC95NmFwdWw1MUlNajhMdzF0TVUKVbkgJowUZhmUWZxlcpxvnpobNRcKZSjj\nL6gIV0pBc0eDlTokgDSdQXfODckZLu4pH8m3ki6SFSfdEUKPQia4ew==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJSDQ5TFRXOTkvZmZLS1JP\nYkh5M2pXNjRoakt1cnd1R1hpZnREUEtJVUNJCldCTEhMaUVDY3pHOU9IUFh5Yml4\nN1VLd2w3Z2dFZFdqNjIxa2pWTFBKLzQKLS0tIFpXMDl3bitkaDJIYWxFaWdibSth\nRDI2SGpxVFdKSmIveFIvLzQrMEVySVEKUOwds3HEfKN1KtmkU1z3Q8c9RUkYH8my\n3+1vjanX2pgYhdEd4X0N6Yfn0JohFQWUbc2k426D0OSQQal3V38zqg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUDYwTUhkczVtQWIvM0Fq\nYTM2RGtDakd2dW5ZTk9jL2pBMUllVFJ1QkN3CkdqemhWYm1MWmE2YUdxdW9tVG9k\neTAvTHBQZm5rWFd5UjgvWUZPbU11ZjgKLS0tIHg3REMyc3RjMkNxZWkwd3lDc01u\ncHZPMjVhaVU1Y1d3RDVRMFIzRzk4d3MKL/kyWl4hR8iOI1/7RbDw20WKmKHf6xNM\nzc/rs8OVgOcLjjVLFq3XaQ65kI4uQ7NdbKJNv+PpDMg/7T/M5icEJg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN3BzeFU0d1lOSTVLWWw0\nZ21POE53bXRtVVcxbEZyY1dVMUxrNDdvd1FZClZmdk1MQVhXMDk4Zm8ya01lWURx\nSGRBVEp3RmQ4MldVOFE3OWlnbXkzQmMKLS0tIG82MGg4TjhGV2cvbEJtak1QdkpG\nUnMwM215WWF2UU5aNlhsUHpOcGQ4RkkK5V2ldURjODktz57kq/Sw95HM5xt+qsZb\nkt51MqxZvVfOqBTtBljwv//7HofLj2i7igz8L2NC2xOMJfNLT+SCrw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSWlXeWp2bmYrV3RTK2RX\namhyVmIxOXlENndPa0FCWUIwS2RoUkVHZG0wCjNva2IrbmhZU2lXanBuWDQ2Y1E4\ndVMxaTV5MmkrWDFjaWJtK3dyL3VmRm8KLS0tIHZ0bG05Nk93ZTlUTCttamcrK3B6\nbWlzendodm03M1VmYmJCVGJsKzJBalkKgVhZ/nmbqVhL+pBVOnM4pCPev6do+GP1\nSSeycSfnrLnxfSNFB7FXcq0VNshzeMo9RD/3qNjRfehXvXgzD5MnDQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2bjdDQXJYRythVTc0bDhD\ncWtWUmpBQXZrSW1PRThKS0VmK3A4V1FPa1JRCnhLVVFRT040bVdyZWVXRi80cS9j\nK2RvRjNWZ0ZieTh0WlA3aGxHZUdYWUkKLS0tIFI4TG84TVJnaXJEcDdYS29SZTRy\ndjYya1BmT0JhWVZQZ01FbTJsNGVvcnMK6yi1gBnKlXgEk/EzJUXMeXmsocDHF0ZM\n+yxXP/8YnBwpvArxO2hSNjjOrbU2NFfug4S1UAlYcBlK3Z7/tRAF9w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYmt3UWpVZHF0VDV3WCtj\neEpndlZkVjVsS3FiTXBUMWMxc04ramZndFNZCnQ4empHUTBCUEh1SWM2cEkya2Fn\nRk9FYlk1VmFzSURrWUg1djU2elpuNWMKLS0tIDIrOWpmQVZaVG9wc0VSa2Y5ZU5K\nZnNSQ1BGT2VYUVUvNzZZSkNJY2xBSTgKLHMhtBgBYxxoGQ7GfLzc0tR0rvccqCrX\n2Ibez3//z7MeF2ZDhx98m2i+JQ07/l8S8T0Y0nqDeuv8KWbvszCkcg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-04-27T21:10:14Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOHRvZ21vQzNJeXlVRjA1\nMzV0R0ZLN1JlbS81N2pnaEdsTGlCK0ZUeHhFCkN2T01DclNDbWtpQVQwbnZJazE5\nVVJtVGROdzJWOVQxeDc4eE5LWnpQZFkKLS0tIFg3UnFyOS9NeC9Wa3lJWWhmQWQ3\nbXpZMzhueE56VWlkRTFqN2EzMTJkelUKfikoZKm6z+nLooKWlHcr5Y204yPjWiuL\n8mezDTBk3c6YJ5vEGVWbrWoWPGqQ7kPPBUE1oJhoufGbtGOYNoMvcA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSZXVWT0U2T0ZncWNBY2Zp\nUFFJVExzVGttVWRlUVl6eGlEd1o4U1piSzBNCkxMNVlhRUlPK05WZTZURUt6R0po\nOEtscHRISmtuWU1wKzF2Z2tGZ0l0VUkKLS0tIFZnNnpRRXJPU2EwRlA2YTVaNnRj\nZEVFZWgzUWhCRndzZUJ5RDMvQmljUGcK6YWOAZmXSnoIwpBngkK7AHyzc/VGct+y\nEUIfj9K9DAEdkZZ0CfPMAOy6au5HvcWJ+ihmxfrDdtIyBdpaFmNrSA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2enNxVDBvNTl2REhpZkhN\nVHloWmpXYWx1YVZ2NEJNZkNNT0d2ZzdWUVRNCjdFVUlZbFIvRXNsZkxjSG1ITWZ6\nd1YyQmp5VG5hc1QyQzlhdzlpMDRxUWMKLS0tIHIrR215WWU4Vk0rYzEwelJOdXNG\naFZnT1doTmc1NGRvNEFLNUxScTBoZTgKKho/h/I1LlzOy5ZbEljQ9Q/3QNI9p9nN\n+g2lfENI4ZVbHJSWX9gQnj2DLVxW5hATUvl/3A4j6eUcPYU2QUQ+bw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDSVUwbE5uYWF6Nkc2bUlH\nbjdqcXl4dEhIS01idWVyUUFKOUwrOXdienpVCjk3bG5qN1YvRDBpemx5OFdnaGk2\ncHZRVXhKaTBzRFhqaFY4dUJUaHU4V2cKLS0tIE1kWVA1RXJZcFlzZEZ2T2NZVVEv\nVG1BM1pNc2ttcFdSUFdPcWkzdk5LVW8KaZm8fGw9SHPN1j2LWOs9WN7YIJ2k8fJK\nAfW7kmdKxW3zbxQfgjdfBPEeFg0fhOndsMWroF4u9kPWSnVPujC1gQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXdS9BL1FHSGhXQ2xZZWtD\nNGVrYW13aDgyaHpkMUFOTFpxZ2ZXYzFEUFNRClYwKy9DL1BvaE5MVzZDamdsc2sx\neDhaS2hjOWJreFFWb25NWjU4cE1ZQkUKLS0tIEhzUzJ3R2QwajJybG5aRE1QWEhs\nY3N4dU10N2R1VjQ5ZVByQnllSCtGTmsKy4CZvTIqEu7WuHixy8zuF4y1OmeCOplB\n5RscLEV3x45KRBnQRN/awO4cC4BD8O1Dm8nvgrhyQk/6uuZIZs8M0Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Vmw4c3ZpVk5acGZ2LzBE\nR1JzcDQyUDRqczJGZTRxRVdMRlBzTzJ3MUVVCllsNHJQTWFFU2xHRVVxM0Nka214\neXhHVDQyakFOeDkzMzZHZHZHZmZKVU0KLS0tIHBIclgreHFVYnBsK0JXd2RaR0tX\ncnRUUDRkZ09KMFRjVFh0Nm91L0R3TFUKfmspzS6jsU+2FjD7InLGw8i64dA3dB8L\nNhnHOkynnO2NjWNMvkP3ten7qXo38v6m1jCtJ50nkFjbaoCJboTbJw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaQUlWbU9Lb2s1emFTWTFa\nSHVhMUZLbzRnQ0ZtWnU3dnBqdy9TWjZrWHk0CnBMQk42NUh0Y2dvZTJvN1pTZ01q\nT1dDM05qKzJSallzM1NpZmJRR3hCQzgKLS0tIC9ocnVzREZzcUVRODc0VlUxUGJC\nZDFkQ3grOTRWQnRMTkY5dGROZjNtazgK80OFLrUqPic2aOHxDUEV6Re8AqOsrvt3\ni6rwinsrV+ppTvY5A6xFpxTq6LwopC9ATYjVjHJiIMYRxv+qjPbQbQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5YjdQSHpXTXM0MXBsNWEr\nWG04V2VFcDYzMUVYbWRDR2xHRGMwSnBudnpzCkJvRXBROXFuVUFwRDZXQmZqZ29u\nRUJLcGZKWnR1TDUrRnJrRmV0UEk0eUkKLS0tIGtnZ0YrckdZR0NSN3c2ckJ1ODhG\nRHRGSWdjakNDdFBkSkpGQm1SR2RnRGsKqfkVvM6OoIzogrIMJq86PHDHuM/JNAni\nOZegNK0WpYmq4/LpdE+09R0BRmpFWOyTJEpZ98okJAM8aKGtRh1Vog==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaa2lHdms3RzE4ZFZDNmFM\nTXZvU0g1dm9od1pIWVRwbXVvbFdSOVhJYVQ0Cm1TbUhkeE9kL3BVaGhRYjAzbERo\nME0wRHZjVHJQNFNGNm11S1I4OTB6UTgKLS0tIEorRU41cC84cVJaaGd5T2k4Sm1j\nRG9pRW50S3RwYmo5VFpGRWpvTkZRcTAKgnt43ZSC4QoNicEHTddUuM9UNYxwY4Jf\n/izPmE9vSRvv6O/WCuGDcbhRZpqXnEZKqTpFtVmhAcPwfEz0OzZfOA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTDVkblJVMGw2YUliQmVW\nK2h6Z3RVQS90L25vQkNLVDI1b2duWTVpaGlVCksvWENsMWwvWkRrQW5keG9tMlJa\nZW9KbmFyNTlyOXJ0M1pWM240ZHl3ancKLS0tIFFmQVpnOGlzeHdMb0F3RFltZGNW\nclBsczZBQ05LM2IrNlhCbEVoN3VMMDQKR8LBe0G9jSplKVwrHo+wuYT9UZM5QKks\n0JzgoewZYaWE6GoGuynCmgkJaKrU2WMEax2UcAn7LrWLwlx7zA+F2g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbGFaakZoZ25ESzhNUmxR\nZWZYR0tDeGhXNzQ3UGRkMzJNTkp0b1RvMW1VCklLZTl3V1ZKVUlXZHp4MFpxUENU\nTFBmVEhqV1NoRk4xTmcwYzU0SGFYNEUKLS0tIGRQWHNsR2hqbThHODFZTHdTRkNj\nd2F1MjFBdjNPU1BJbUNJK0FibVdsVG8KmqaQb+r0YFvEJzvst66xB9HKYkRw0Zj7\nnMkAwiijAVcWjX95Sqvuo6jN2e70SmxZmRTnyZXOL11sR1U4/U/qGg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOTU1YnM2cStJSUYzRDFh\ndER2RmRNeWFZWW5YQ0dZY3MwWGlWWFJ2T2hFCjRNT2VSMExBYlN3blArd1NWY0RO\na3NUdkZSTzFwWUpjTUN2c3pKaHZHMVkKLS0tIHBkUUpLSGh3bTFTbUc1ckJPUHZv\nWUlQS1ZNVlA5Q3pqSnRRV1pkR1ltencK3RHk2lrcWcidkRO/MBmYgVllqP+ZTwmn\nNKj1gydSbtkboPTDu7tashWA54OY8OUEDFUERN0ZsMF+5wn+xCrzbw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6RzE0OWo5aTZQdlJnOWtz\nTjRzWlZlN3IxK2U4RWdYMFVId0FielZ5TUVFClJreXFRbEdGa2tNRitRc0licHJn\nMzIwVzRWL295d1IrLzZKMFRLUVY5bk0KLS0tIFpuVVVpa1gya0JmNDhvbDR1Mmg2\nQWxrVGUvTnNwWlJycHJXYktkNWJoRVEK2lkqOwiQCKBiCBToAuisVxN+Zk7KPZlA\n1EkBhG9BiD6udJ82cKJS3OJdaZ0rXu8XbIejwkSuyb4vA5tcgR1VOA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTnc5bzh4MS9rQnFXRlFy\nUmlJb2YycnB2ZlA0WnFmL0ltYUhMaGVqVUNJCk9Xa2ljSk1YVEF1dDRvajFhT09a\nY0RiMDd4MjRCdU1QTE1RbU53dEkrQ0EKLS0tIDlObjEvMGFQdkRmSHpSamhlMXd6\nM2FUeGo3am5SMldoKzZ2cDR5TjRGYTAKV6YX7BCK7U1y0OOX3cyHl3PwTcXdzs+C\n5Za16Gt3zpY1De5xuOGQSdLtuhbc+j2TXPP1BjS60KmZp3/benTH1A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUbzQrYmtpUWJQWmg2QjlI\nY2I2QVg3ZmFKT1NDdzNmR3d1cjFEZFVZNmxRCjI0b0M0UkFjWC9BS0NYOUNxaTVj\nUE1HWmFYUzhmdmxaRWVRNWVPQ1RDVzQKLS0tIFBMdHJ6Ykp4YTJqYUtxbitqa240\nMVozY2RNY3Z5RENJTk9zc0J2bXpFSlUKnQvUIA22JlVfEeWrnn8y3UiJ+Rqf1m5v\nFqxQ3ndh+j9rINpt3LvhuGdZqaTkewETdlTowVT73gLITieyRQUxDw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMXhCRzVmNGFCZVZ4cjZn\ndEdqK1htOWczL3M1bDVrb1hqeE1SNkY2Nm1ZCkdoeThESTZHNUhpZTVwa2kvV3lD\nMnF4T3dDTG03cU1SZ1BuY2pzcng1SncKLS0tIDkyS0NsYm44RkE3NG9MditRKzBD\nL2o1dFBURUI2T3lKckdHVllzb3FWUE0K+qzPZWUIXMeXWuzpAhNES9Hqi98Qj4jT\nU/uff1VLwjE3SDwaFwW7rVur8gews4Bxph1qzJfZVnRFvON6xGqzjQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcXlNMlFUaWhXbmlPc0Ir\nT2hRd3BMQUZ1TkVkWGlrdjJ5ZnhPdWhPbTFBCmdzazV5bzV0aTNNaTFpaDlBOWU5\naUdBTFlEeWM5T1Q3UGhrZWdGZkVPUzQKLS0tIEloSFVJd2JCNmY0VkpqTGppRE1p\nQ2Mvekx0RWN5dlhxWmwwaDVnUUVDdFEKJgyAed3yBaIBwfxypG7RKV+u80SiQV89\ntU4YMw0j7GvnkVhPenB8q0w3yrslCh35GDvKkaMpfp8jVFIpcrRXtA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-10-28T10:34:31Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2QnFzT1FabkJvWVJtbWdH\nWU9nQmp2cUlMNTRWM09HNGtibmNhNTRhT0JNCjNMdm5ScHhlWUN4d0R4cjRNVStz\nd0NLbkJpUHJtY1hYYWdmNjdTcWEwZk0KLS0tIDFmejRkQ2kzbGczc215QTluS1kv\ncHJtTHZZTmFIaDUvZHQ0UkVmNUlmVVkKoDh96fosdZ0W3FmnTkubzn648sSE0bPl\n+6V7njBcitIulPtv7vJS+RRe6CTI0hCATLw4wK08wj6y/QXUbeoI9Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBValk4T0NhN0lmdTdKa2lV\nSFZ5SFdES3Jva1NQNnpvNjdBNDVPYzdTb2trCmV0V1N0YVc0Z2hoMTNaZkY1ekRO\naUVIVG1XZ1BXTHhmaWNZSGNYTG1iR3cKLS0tIFNUbHRNSWFoN3ROc3VWQ1YvOUVW\nU1FZZXgwQzh2M0x6ZHFrb2M0OC9ScFUKqe0SbtfPJTkwevFZxdM/0Ts7WEGTwXmu\nnMf3r1e5G/QWHKFUL1KraoVD5Xt/GVqwUjfGJ0WPPPheI+yv42JXJA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQeEV4SEhsd2ZTUUtpMDVR\nNXVJYjBIYXlZNFJId3Q5aitmRk5jRExsMkVzCnRoMkQ0VUQ0RmEwWnpSSWd5cUdQ\nZ1dQS1BNM1Z5SW5MS3hvcVcweEdjZ0UKLS0tIElORFRxMWdKZUo3SzhxcHZFdW5D\nemxrYUxUUTQwRkJCSzZuSjd3SVgweHMKNyPLaqWCs6z5CkKin+pOezTQNuoiIqvx\nW5YyrphVL7q08LQLdATSRNRcaImxP0P0N8fhSVw2rvklYKRzTJOa4A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJNVVOT2UzeGY4WWpVWTYz\nTlB2ZmptekZZc3JYRVpBWU1tVTRDU3JKeHlrCmxYVkt0RWdJUkpRL2laaXVPNm8r\nTDRsWC9WRHpYOXlaZzhLNWFPWlBTWUUKLS0tIDRaemhtbmY3YU9RV2N4STAwcEZ3\nSHIydm40SENmdlBzamZjTTMvRWl5ZXcKMmbN8vCcY8Zr+UhmAHWit6D3TE0YTQ06\nwYsWQuQwvxmgf6k8BMpkaMt3Ech2RQJHCjpjHaLn3S92M3GeW4iymA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqT0lQTFVoV3FWenZhbkJ0\nNTlqUS9yV3JpU3VvbVNlSmF5RklFMTQzeHlFClM3K1duVXlkbHkrREQzQmYwYkNj\nU0ZvZEc2YlJxa3hSSFdwM3l3L3EzcnMKLS0tIGdub3d6NjVtaFV1OFhldDRqNnYx\nQ1NsOWxDZEFzZmswTVNmMkU4Qjl5cjAKIzP/HPFcomIOnkRSv6EQOmk2c8onhcxi\nLaG6xIjydye6W8sGRJxatthmRaxA0SsQKROwHj27EiW6GRZodSjKMw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFY2pTTWZSb1hWNHRUN0tt\ncEY0eHp5MzlkWDJFdnBRRTRQMWhLSk1zbmo4CmVtQkpQWjFIdWE0d3VTaU04QWY2\nMml1Y0RWVlUrbkdDZUJ0Y3QySkRDbU0KLS0tIE5PcmhhUitEWXpaaVlQSG01YzJs\nTkhpWFdUa0JDemh2eGh6dUcvbUxTMm8K9J9ygBOhYYHQmeFp7G4g/tlq5lFIplCd\nO63/B59Lv1tR+D0WMQCyTAIptocDZBUiBBWoGnrs3XSCcJ67ckbodw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCNVR1aWg1N3lnbHNoUlhK\nTjk0QkQ5aFFZMVhXeEtpa2ZQbkU0RkFxTVNjCjJEcjBHVXVLZWRMYVpwTFpMUnNN\naythd3BOdmgvekp0MUZCZmpmblV3UkkKLS0tIFRpZHFRLzhSdjBCN09rSUY5VUNT\nam1vQ3R2VnhUMThCN0dPU0ZlLy80Q28KehP5t4kIwUs9eu+8KWn5SCpvEKVnSHlJ\njR8RhRX7+f6hRP/OvryFxzGFmey3YApdHC3sDhvYjU8qDzs4xj7zAQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBESWhsQ2ZQeUl1Nk8zQ3NY\nVkdDU0FyQ09rcUZtWk8wT25tM252dktaT2s0CkJhWm1Qa1lXbG4zKzY0ZXRaSE5O\nNFVoQjZwSm9XeWc0OWZZQUFVUHFlOVUKLS0tIHY2bVJrWDhhdU95ZDZuU2VYQ3Bx\nMFZZek1GMVdXU1ZKUHBtcXRiaExRZUkKnC0H3LZVf1EFABg58sZDBXn8SEDbClVR\n10hSQFxe3XNQLFopJKdChTSeu4z50s8qgUPRCyqJYlPsrtSPqV8Odw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByMEVYTjlPVlBNeVQwSXBW\nMUxlQXlNMGhWRXlZdjBGdXRXWWlrcEI4U213CnFPQmlCNnQyOVg0KzBlQ0JvSS8y\nMXNibXlvWTNCcjVVYzdMczlQY2dONFUKLS0tIGh6REJWU3pxZDQrRWhqekxtd1hr\nSUlOK1Rka3ZsalgxRS8rWGdBTkZtcVkKfKlkXsWLtyAA7C0mPaJWyw6w4D2CjmfC\nMwLIYpKEUD2TIwkQZK7c0iY9m+KvsXtlh14cg+aasLpWHOYZ0ZLYww==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUVXFRRXNuTVJaUWRyRDIr\nV1FMcWlCUVluNWZZNUJxbU5UNzNsbHRLd1ZVCnlsUEYrWGtWem5DRElGaWxEN3d1\nWVNpT3d6d253RnhDamQ5Mkg0bDBQaWcKLS0tIHBiTDlMQmF4RVhqc2N1bDF5c0p1\nd3FiQjB6ckhJd3pSYVZHNjdhaEZEWnMKWdweoLlZg2CoB3VCjCo2J+injACNNXFp\nMjvWqzfibFetLNtxBpfCZY+7rhDDlT1njUBw1q1Dy1ZaIWOuJPYOwQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ZzFpcnJXV0dLTmo2VFpV\naDgzMk1kYk12N3hWbWsvSXhEVHRjVm11QkJJCnlkdXRvekJpY3lEdHlCOHZxUGlL\nbU1DUWY1Q3E3b29FODVxVE1ROWlYUXcKLS0tIFVUNmFxK21IMWtueXlBc3plMndm\nR3NtT0NucVdKNFBYdlBoREgxT1ZsYWsKUAU+e2Jcz4ZPQpFcZbe62MS4dAx/xKny\nLInxd6oJEefUaVmSOnRY050qdnig1vpE7yMkX52dhgj0xsTwGwN3qQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnVVRFWnVBNVp3Qndyb3p0\naDFnRHUrWlB3akg0WnRuNHNNQWpySFVWUEUwCjRYOWJxRkVEYmpoV2ZSR2RmcGdr\nTk9rN2FJOGIyRWpaMUpFUXJ6YTZmYkkKLS0tIE96djFyeitLM2Z0MjdaUExQS0Fu\nNlRhT21mWHZ4WXBJSDY5MDlKZnhQNTgKzjHbxqT2oiGl5jR1F52CWf4MSICdAJng\ndZwTQbtwUNfwhzxCdQ8a8qWR+mOGsd0WtBlrT3c6Yy83HV+PAePFcQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TWhwUWNDZVNudm8rOHpk\nMC9pL3pQWmhObFkrdk1zREZCeWxlL2pjeTA4CnBaVTg0LzRXVmt1Tm01VEgzWG9S\nY0NWaVY1QjdHL1EvcTBiZ2lrYnlEancKLS0tIERrT1RwUWNzZnNtQnVnb24wdnZY\nY2pmYUxBV0tzUWliSTg4VDFVK2kxOFkK6P3wplwx+ZDQdYh0H+BMZFA7qvV+5Z1b\nsakv5flbOXOAZxvIvFaDmSktIQnYdgMOmRoIW8q3gewCh1ddwkoxTg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4dTNwNVVmMUpCN1I2M25K\nR2VsY0c0Y0htbE15MktUZEt4bFlHU1BUaVcwCm9BK2EycTZFOEJBZ1VUZVdFZWhl\nY1dORGpXVzZwYml5c0tOUWZDVnEyWkkKLS0tIFdwNFFlVmhtVVZGRytDUWExU3BY\nWXgwbldKREdQUUVWSTRoR1AyNDc2VUEKy+b5IaoHLOha+kgVXlyOf2RuoXGvrMGJ\n1mYms2SLs+3/aUtz+nxGKm5H9aBSIf7wzjam6w9ASFIlQqd2Orpc9A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKODRpdWdQQW9vWGtCK20z\nS3pCSWY5eEN6SlBrWUFYQkkyWWhwcEk1a0ZJClBxQmd5ZWVXcXEwQUpzVWtWRWRE\nYW5vNGdRdHM2ckU1ei9NUmxldkx0TTAKLS0tIEowTElUMGpPN2tkeDY3U3JtOWpY\nMW1CQ0dQTTltdVFNK2hFaVlNUGI4dU0Kke+1y5EVssU3ze8jBuz+9hQ5BspwI8MC\nzlz5+lpZyfriHuLo8RmBmeRaQhfWMrXm42ah1VlasJj0xy9AJf5E/Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaeU5Bdjl6dDFhMXRuL3N1\nMVJ4V0VuQi91ZVZWTW9GbzVJR0FxejMrUEZvCkxxdjFzM3p6cjh1N0NFS3c3NWI3\nOHR0dWpUQ2Q1MzFyU2V6NlN5ajZqc1kKLS0tIGY0bG5BRG9zaVpqdWJZL0FhWS9o\nWi9Tend4c1RUK2QzVCtHalJBQ3l2THcKqUHi7CoHeUqRP/Dr/ZvLT2NgJJV3xC1D\nidZZgCRlrDnbcWnnx16tKyPNk/8pNGdnXbQrlgMMazkZEFqmznRZOg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsalRzRVFNVUlIdDBKWHF5\nMUJoTDNhd01SdFhkTVV6YmlUaGs3UGZ3VnpzCm8yY1hKNFczb0tWcUlsalNidmk5\nTWtUWVg4RE1TR0hrRVRPbEZSNEpmbE0KLS0tIGxuZzVrNjdRSmJsYUNwYkhabWxy\nVVYxVFV4V0VDbzV6VWVNaDVsNjVOMnMK4WjQZHawOgrqh37WvvEdOIqDZqMbrKSn\nQjZrfufh2+f7xy/vvAods2mYZAeNSGQJkc8vTsro/wLADhAuVqHl8A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-11-23T00:57:17Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvN1Nza3hHWm1pVzlpMGxX\nUWZJZUIxZHhRSnh1OXVtRWhEZVYxUGluUEdBCkZlQ1NNTjNLLzQ0MXZseTk3V2ZZ\nWGlSclRsTHBNV1ppVkZHNEpxb1dtQjQKLS0tIGxlUm9NRXA2WHhaYW5LZ2VHbjMy\namJHeFdsaVR2amkrdmo1b1RiL1pDeU0K5E8Ps6QI+8v3X9xJ1gvw7Rp1nv2G0V2i\nlWM0U8KG8qnh8rLf4Izal+68Zpi2MCKQ8cfyCrW/ga+GoxDq6cc+2Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmQUhjbjJlSmhodmVySnps\neEJYQmZiRjZFWHFMWFNWRXFZTmpjYkJiNUNjCk1DZ3huQWdrM2xFUlBpUGlFTHNQ\nM00vMHlrN01KUzh0bnpzMGk3YkdqaFUKLS0tIEpUYXJ6a2ppc2d3M1d0UnVLdHZP\ncnhKNDQvMUc3Z0Npa2NJWmlwMWxxZW8Kj20MRuKlcaiuBo0ftD8ceqS1Zd46M0x7\nXaG2C1WVZEky1/n2xr/g5/Xh4Jdb0+4kcCvHUv47085Qb5cgI5GuPA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnckJVVTdsT1U0ZVU0YVJB\nbGJHeGdJTTlmNy8xdGxGT2hmSWNpeTBWbUNBClNOdkZFL0x0d1NNaHFYZXlIV1g2\nY290dDUxVTBSblA5K2NzZ2pxOEtoZmMKLS0tIEw4YzJDK1lCMENlYW9tRllBZDND\ndUVQbURuSkJxMmRoakdiUDJ2ZzN2aEEKqXLx7YKJJ5/Z7tAkoOHqaMoTOpzHW+bQ\najRypOcADmw82uKq715djN+WAq5Xj8/v+94jBCZFmE0/Z0dSTb6I4w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZFN5SHpvS212b1RRZnRm\ncnJnRERvMndQWHhEdUgxVndLK29QYWNnWUF3CjI2NDZXZmxZazZBUG81dWgzaGsw\nNVdiYUxLQ3JNY05PYTRIYndHcytFUHMKLS0tIHoxRlhsZ3pITDlFdHRyWFRHMys0\nRk5hemc1aTFNVUQrajNjdHJ5Z1YzYXMKYOhinxnU+BTtsVisXDlfSdPl3SatBpO6\n1seSMvik/sPYH7J6D1PufOzHuSPi5bclEOANfN7Bvh2/cp6PoVwD7w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqRERDY0QzNkZtUDRMUkJU\nMVdUQ2FFNytKdW55WTdPT0tiV2JaVDNXemlvCjhhV2ZGTEYyU0dYNjdQMnBDMjAx\nMmkvL0JGWGh2UjluSFNZWVMrc1JpWTgKLS0tIGZnU1FOZ253bGFncE5UOXBKMVBz\nUHJ2NGloNjNKNUJha25jdXI3djg5cUkKD+k+RiS7LtDa8JlubZt/Tv3rlegqVjYF\nqlrundR3oVFJ+Y+VZh6a0xAtJexZ5BrdKtCAIgbdKAJUHF8lIB06WQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrYU1tclVUcjdXa0hYU3dQ\nYU5MVk1iZ2V6VXFOK2pYcnlUYi8xNmJjMUhjCmtkWXVDSkhKaEN5SXJLbk1EWksw\nSUlHZUVhbUQxQU41L2kza0hXSzdHY1UKLS0tIFpDZWJKTGt3bFh2VHpyelF1dUM4\nNW4vWkdsSExZOFY5QnAyQlJKQ0VwSGsKlHbOelGqu3KoznFoUdTD6CaEuV2p93yM\n2/oMEueWAy7pYldkHPEBg8cZNXdtvHOMEOU7sQcRyDB1ppXsMlIZMA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZktDRmpmb3JtVHQ2bUor\nWElQYkdCLzVPYWJUa1VXOThrMVo5SDBKcEFRClhaWHAwZHBaSU53OUsySEUyRG4z\nNS96UFFlSnBTR1EvbFBqOVhISEtXWVUKLS0tIHdKWGp3UmZ4akFwVlNNNnNWU0hH\neUdZUkpMQWMxS2JHUGhWMnBZSHRvZmsKP6Fv+Opk7rNK7SBcqvMgQ0/hfv/PXRYE\nALCySAJpo8oEZ5wVxucJgDsn/1pWWQe7LvownV0ZoVwTe83/Gr7+sQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXYXZmaHBwU0xGeWp1eWZi\nS3BVMUMxQjFOcWcyYklrSW1JSk5PZFlTYmdRCm80NVk5QzlBMTZBM3FNVTF1NlRQ\nVVBUVm14clJmTG80VVYyUGxZNGgzQU0KLS0tIGE2dXR2UVpOeTUxSGF5YzZDSHdw\nQ1h6YmJhdnBRZ082b2ZQV2JZeFV0ZTQKTmLPhr/zH99UvHilzOav2YfdkQOxATLO\n9HcliaQkix7LLasS8FnLQ1ttg59QDlXfkTkWhyMu5XI7O81Xj3oGvw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3b09vMDh4Y0hBQi9KWVB6\namRzeVdsN0h1Um5qWnJUci92UVUvWVBZVzE4Cnh2SkdWV201OUhrdEpvdTJDN1JQ\nR21VeE52VDZFZ0ZMd1BteCtoSGh6S3MKLS0tIHFld2tabUJJU0FjeW5QWXlFNkRs\nR2tGYkE3SnBlbmg1eVhBU25iMEk5L1kKNeoho0Nd74Uz0n+i16sg9G6gqPdlf7QT\naLzSlmTfYWHL5M8iX5drzrz9zRzU8GGV/q0w9jeUApXWniaDPLfZHw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYM0hnSE4ydTVIbE9aRGtC\nRlIvS1hxZkxLOU9PZ1N6N2N2RzRHWDRpK3hBCjNDVmdwaFY4M05SVy8raENzaFlE\nNVFiMzg0TUF2REdUZHM5N20wWjlHb0EKLS0tIFN1dmdTS2g5ZXZnY2NIWWZ2TS83\nOXZmWTN1aXZONTZ2NTB1endoTmxBYlUKZ6pl9sDpp2puQ8UYZhd0/JmFusTfdbWr\nhxpDyMQ+4kdXztFqVZd3/MRMPGpJrlsMIHsCVdFBu0hquHGZgph9rg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWSmh2VGxaRmJFbGM5Q0w2\nUU9WMHc1Vkw3eEltNUdpOGVMcUJyK3dicXk4CnRyQlJIMWxiemUxQnlyaHNZWFRW\nRDkxbnlOK0xBSmxtNFlqdU0wVERUV2sKLS0tIG1VZmlNUGFSajM1Z1pVSWVxZ3pv\nUWQ3VjdLS2tRNnRJcjZ1YnBtNGV1YlEKd6JrmzdBOYYOOH0RlxL+RBdFrNfkKVbw\naDXCfMinYw23jFF7ZWUJ5N+WXj0O012tHgco2IidQyoaTnRQ6aikjg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2NFlUYThYU2dDcjZHckJB\nSVB1T0RlZnJRclRtRkt0Y28wMGdIZnl1T1ZNCkxNT2I0SFUrb0dISms3eFJoZnor\nSjdNai9pa0I0aEFNSlFsdnVWSzFnV0EKLS0tIFYrWlM3elVIMkFxdTd6VEJ4UVE2\nVFQ5Si9nUEptV1BZU1pETnVHTk40d2MKDupPEAcm9smyOOCbv9TF74wA+gr2rBAf\nPYoKhUPfa+KkahdUQDu19DPrGHfKgUO44hAR+sMqKPM9+0r72La+BA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZQmRiK01oOEN3ekM1L1hX\nd0dXSnp3VFdBUVhhUE1YTnM0dDl5ME5Zd2dvCkNKVkJjK1F5OXpxcmRYSjFuNVQ0\nUG92QXdMTTNCZVdIYUtram1Vb1pNcEUKLS0tIEdGclhOQVlGT3VydjFUa29VdFRE\nNVhzR2kxU2V5VnFKUmRIaEJMWnVxZzgKAhIQZJypVZy16g5UX7s3gXzwUGP1p71V\nzKCzCRUYvY6XUXIpGbXUmZyLqpUxM1wDlTbngfFTAmWjFzJTUm2MqQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAybXFsQTdyV1hpV3lteGxl\ncC95eko1MHoremczOEo0dklHM0FqRlBjdG1RCksxck5kWlp0ZTIxUzAxWGhxdGMv\nUS9LRHc0T0l0NDV2bTVCTkFqTER0Z1kKLS0tIEZXaFBWVU4zOEJSVDRPWlVya1pW\ndEdUbE9WSmZCN01uaTdjekNuSmNOY2cKMIeJFfDJVDJPj7sXWJKRQIEmFrZzPm7f\nmM6F3C1oT5mJF8GSkZ7HMrdbVTi/JL2t7yqZpeC34HMnLXMPHPTayw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmSjg2aHFObDFhZzN0MWVT\nSE9PZTN1ODhwVHRuY2MwcHpDS1BqZGlCWlJZCjM3WkdVcjBVUXFXUi9tYU5qSDU5\nTVlBMVhJOHpCWThTbEd0cmI0RjJYcmMKLS0tIFlXOElrTnRDeGd2MlZIMHhsRmhF\ncU43czlWbE5ISkFNRDFzOS9ObDdJVzAKUOCvf2sPfLgDYKKbpd7chLZIBalBv3F6\n4ASwdtBe0/PIgLqFIT2XCf9tzVRCRjM8c7wNKC5mZD0KIUU1uIIQXg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyaFRxQTZpUUxnZXdKQ3dP\nRUVlNkEwT2N0N1FGbWZDejVLM3dPWks1aVNFCk0vTVU5UjlKWUI5YnhUb2QwK2w1\nYjMvYXA0NnhRczBZWGtZeUxQTkJBdUkKLS0tIEJWcm1OMjdMNm83dllSQW5yRnNl\nRWdudm43eEY4SVdpVkhsWjgwTjlhWlkKSprhV93WhL6uLPeW/dW2ZibXMghLMI9t\nTm50jEzcg+kp7AIxSUOdTjnPM5TG05q8edq1TLYOol+cbh0fPBH02g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Rld0T0Q2dlo5dFdmRThC\nVUNOQVE4U2x0bVJKdUdiRURneVVEd0QyalRJCmFLVGQ3YUtKcXVESitpamJsZmly\nbU5zcE83MGRsRW5IZWFMaEsyUWNFVUUKLS0tIHl6dlZXeEJRU1IzNDFZbVdpZWx0\nZ1JuNktOdDBoSDEzT0dwSGZhSHJUc0EKxK/tsnz1VJ6KyBRL2A/WAZGdlb5M9dRR\nhwvLhrkV19Yjxq/GVWCyKabkjM2DgisFmdKnsgCRnml9isVOSiAVRA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-09-25T16:35:34Z",
|
||||
|
@@ -8,35 +8,39 @@
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Wmx4QUZSZVFYM1NjRGxO\nRzhmSGV1RTViTjljM0kyaitsV05Jc1dQcXpNCjdFR1FWTFY0L1NkclVJQ2t2bk1P\nNk1WeDA4TE9Zcjc2MkNTeDltQk5TSW8KLS0tIGIvcmNVdDN6eldMamxrWUJ0ekZF\nWlcyN0haZFpmQVcyWS9vOFBHVmFiamMKwROo4FD5Y6TiSDK8byxAq4T9Rtvy1Dr+\nExZFzLeJxXBukLJgzxV8UpBNbcGejetyOZiH+GPwdwO4QKlMGiCsog==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTzlOSUpBMzJqWXlKb2pH\nQ0kzRi81SFc2eVFnVU9BWHV0a1dBNDdOSmdJCmE1N1ZwbkdvTmFxcGNia3dJOVlj\nUTBEK2tLSjgzNzFiYjF1WWhKUE5TancKLS0tIDZJMS91R2ZXVjVDb0xrS3lsYnZG\nd2IzNkREZC91ZlpXcFhHYUN6eSs2bVkKti3pFasMPr4WoUri4z5OGs1RGfBnnIHe\n73JH8C7kQjfvH0LlH6/C4vGtL0bdWwBvjJN1tc2FQ2n+8HrAaigrXA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEYzhiZjFVWEZidGJpRkpl\nOSszdUNiWDlIMVVTaGFVdi9oZjFoYVhwOFM0CjFNR0ZadExxZDBnOEU1eEJXaHda\nK0NyWmhHZzdSOHFHbEYrQnhwMTcxdVUKLS0tIGd0WjFOczRCSkpkZFpOSDdlTFhG\nQUFQMlRDa1YwM0F0N2U2ZFdxa3YrMFEKXNdULEzPEh3Wk+PxgRt0fypVNAaa682u\nMZBfQbNnAOVU5xlM66+YGWXY/ENWwr3nEauNKq7pWLZqQOCA9RnvvQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZdlMxbUpLbTIrdTFzOExu\nZ1hvNk5oKzRSb1hhTytHWVZ4UVliYVovQ3o0CnJpdTBnNUl2TUNnbk9XYzhSaThZ\nbGh4MU1UUG5qUFNDcC9ybTVLMmVodG8KLS0tIEF4ZFc3dE13R0FOSlNROXJGY2tq\ndFlnU2NlalBDbEpvQk8xbXp1eUdKWDQKxWGTu7pCg+RaXP6nXh+txalInuIZQxwk\nkAQ1OCRDvny1qbdiJUHXL1RLFyF+L5035LAxMF07WV1As5bUAxgwWg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1TFcvWll5RGZDeU5RYnpS\nb1hHcG4vbzBxL3RiRjl2eUhGbHFjSTJYZ0hBCkhyQUtacktuR0ZZNkM3cEdyMTd1\nVnpMZlNPL1NzcUZzWnd0VC9veW1jL0UKLS0tIHdQalI4N3ZRVFdsMEtCUllBREZG\nUmdQYVVqUGZ0QXJKODFvblgvYnRnZTgKKMmEswejP1HdEtg9hK10pRlt89Iz2iF8\npcZTBFjMnahLvxI4M8HCF7ESxI46jebyna43ZzELQQLPGLuZG0n3Bg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhL3RMWEdSM0c1bGY3dHkr\nenMwUzdLWFUxaE9YRHAzQU42ODN5WWRoYnhBCnU3czFnYlVmbDlSRE5WMGhkVjdS\nUzdMZkJGdWN5WU5nUkpKRDU3OWk1MEkKLS0tIFRrWWRDUitnMTVUYlMvYTZmYVBr\ndmRXZk9xQkZCaVZnU0pPRVZ4R3NxZ1EKzJh5qtYcEVntuIgqRar4GSEpmt0nkEfB\nL07HhgEYcSxnw84kMgesQPqkwgju6trMJr3+3+ZyhgAEp564UqgO2w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScXJpV2NkMFhJaDNGVHRZ\nVlRCZVkzSWFyTFRCUktYNFNYekwrNkpITUMwCkZlZm14Q2dZVGlFd2VZZWpmSFU4\nelhNVmE1b015YWYzcGRRa2VMS1ErMDQKLS0tIHFxaEJ4M3cxSHlNV2ppaFUzcTlk\nZWVuN085TnRES0ZGZko3Ym9vOXRhSEEKU8YZFKtDzokS1OXlqA3vBe2C5N7Em+Oq\nDh5N+2qrvqKUzT/YVg9j/YIPswrn2WMJ2xgMgT5VVK+2kn38fk4n4A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1UkxWWDNSckZhQ1gvY1Nx\nSUlGZmRTV3EwaHg2ZVJIbk9nOG5UbVlDRlNFCmppT1dMUWtjZmo1N05WVlcwZmhN\nd1Bicm5aU2VQZWtBUGdnazVEYkdGT1UKLS0tIGFCYjk0VkcwUTQ3YUZ5bFdhWVJI\nMlNyaml6M2Z5QTcwcEdhYlNNVW9lRW8K3jdNQP3erbNCQKLZ1/gh28ohYijR1q5R\nK+4F16oo0vP0BgPckee9ymtcd+VCtP/TzwOklRIXT06qTRUTv7uDXA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPU3dCNlBYOXNFSlpFek1z\nS2w2Q25CaFZQU3hRRzZvUDEya2ZCMXBUUmtjCmh4RGNvclBMU1BlZmdGcjdSeXEz\nN0Y0ZFZuVFprazVaaE5jTlRQbHFYZE0KLS0tIC9RTDQ3bVdkUFE2ekptSkFJY2Zy\nMURtcGtpWG80c2VSRGNqdCt6QVZ1VjgKh9v1SIVvcMksZ+hSU4EILcoklauBTRyB\nS1BWRi22VvghCxVZfnG/fTYiu5ANc22GS8OpjM11r+SCtGkgLh5WEw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZWWFFZGVPTEVlc1hvQ3Qy\nUTNrc1Y0ek9ONlQ0RzlkbTNWangrdnFVZ0hNCkovNCtkaG9JUlpnRFJBMFE0Nmkz\nNXByUjlLRUd6RUV1OU53UjBEZnNjTUUKLS0tIDd4S3VrVDkvanlzZStkYllQT3NN\nYWxyYW1pVmt3djIyWVhtdEZCVlducmMKI94q+UTXpUGa/up0lVbWqmBYcPpuoLZD\neW2KbX2MTzotJVXlJyckYvaylEyyN1pKO37OViPnzik2cJYCyD8QSQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCWE9BKzZUMEw1bzhTdFhP\nWnA1RTA3b1VzaktORW4yWkdmcTVkcUtFL0ZrClVuZFZuM0RSU2NUcWlrQ1NVRTBX\nUjRWMVZsRU4ycHJkbUZ4ZGJMbDZKUVkKLS0tIGxJbHdHRGFxcHM5bFN6RUNtc2RU\nVE52bDlaSFFwWExUdktNdytoVDBtMmcKQVs4Z5qS7zkrGIDUhyRf+gWYUN9mFT6a\nYKpNTIBouycwPs6zQlsTPiuA+k8woqi83VOiTWC4+eye0YJrLNJjDQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN2ZkbzB1K0g4V0NPQ21x\nckQ3MFVwZzBwNDMzVk9mb0YvVmJxYm5hTTB3CkgzWTR1dUkrdkFKeDBjNWpCcnl2\nY2lCU0dPcUh1VXdWbExST29nRFFQcHMKLS0tIEFucEpGc2s4VGhGYWlQQW9Kd1pt\nTGY5YURVa1NYUit1UHpPVm4zTHNTVVUKTyKPabMpXBkiV9MSfoJr41DfJjzW6FVP\nHWVfUwoVeKEYVJEPYIcso4kywroBWJ5tBpeOdsbth9en3TOHHlBXCQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4VUJTcWx2UmRKQmFtb1V3\nMWd4dnpzUDlrSFdNcktlVjZYN01GdDNSQVJvCjZJb3VzZ0oxT3JsUTZPSVV6RnpV\ndHpBRSs4Nk5MdUt5QkREcEFVNTdBazgKLS0tIERIaXpnYjdYUW00bURqQ3dvdG5n\nRlQvZUkyYVpiUXFmVmhUM3krZnlQdncKFPHSykUf/Yuup+Hi6YrzEjfX8g0OnEL3\nNwaXWlY2/7vvbobaml79wzDxKaDRyyiXBANokQMg++trFaGn7Zd0Kw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvN2dvUDRXUWc2eVVoQ2xK\ndXc2anJZVjhobjJrODVlbXNuZjNhZ2lpNERnCkN6V0Y2QmlGNHVJM3JoQ3hwbHJo\nTncrVVN3R0wvQVAzb293WFpCV29BNUEKLS0tIFdhV3RSbkZQVVBxVWpuYzk4bzZt\nekhxSEFFMHRBZWZaOWxUVnFUbkluUFUK53HBDttykEO7lB/86d/ey4I4AZsLrvLm\n7J/rItqQeNJ1qYp/J3HSilbDZmQBI8jM95SP75tUPsmWndK1i9gHlA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuckxCSjYyam1wTE5IcGJ6\neGd6bXZBQXI3OFcwN0ZGREk5NlgyUjVVY0ZJCmg4MGJORkVsNU1FZVNCbnBKVis0\nZmhzSlZKdHVvRFJ1WkRJZlIwNnk2dzAKLS0tIFJYdGZjTU5Qc01XTTFRcCt0OXpJ\nbXdSb29qSkdPZjJreHM0YWYyUjlWR0kKVl9wkGFA5ol8+UU5B5uWn/429vR0kS9f\nuYR28B8lBQSsg1MwKK5RLfx49iBJ7YMLMSEYP8/D86i+MY//jSmv8A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHNXB2dkJoMzlJRlJxbGRS\nNTl2YmRUb3YxdEcwRnhuT1RHMTJMNm1MQUZjCkMrNGEzV05sdWc1OUROU2V2UVlJ\nSGl1bGxNSzBZalRZd0YyMElEbGlXZWsKLS0tIFRVQmpqRGNmTW9YaTN2Y0JtNHp6\nbkw0dTlmNVFwQkl6Q1ZIcUNxTGp2TzAKaZawNzF3mYl/m0X/IbfWL8WhLllF6fkT\nl5BQg3uMLC4pTnRcZHmBLrzRHhoOy9qLLkiimkQaseUhI+hAUt9bAQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NWlBd3RXQWk5NjhGZmJF\nSllscWJLbjVTL2NqRDk0bk1JckI2NVh5TkZvCjhZVFYvNlBnVHJQQ0lPQ3lMYzV2\naXFaMUpxQjVkeEdDYldCMW9Jcy9YeUUKLS0tIDNuK1FtZE9zSEhvMkt6cXBtc09Q\nVmorTVA5ZktFd0hEZnp0ajZyUkt5NEEKu7IV6PElauOcMthMP11os8/Y6mjTYHXv\nTw5/VAzPbttzkgvOyYlk3rCKuH1RzOh2Vty835cJzBFUAXlu3EIJSw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2023-03-03T08:41:07Z",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user