xps16: init

This commit is contained in:
Oystein Kristoffer Tveit 2024-12-04 20:06:57 +01:00
parent 3bf91d810f
commit 3315535a2f
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
14 changed files with 339 additions and 42 deletions

View File

@ -4,6 +4,7 @@ keys:
- &host_kasei age1eu2a6m3adakfzelfa9pqpl74a5dz0wkyr0v7gegm5ajnx7aqmqcqsp2ftc - &host_kasei age1eu2a6m3adakfzelfa9pqpl74a5dz0wkyr0v7gegm5ajnx7aqmqcqsp2ftc
- &host_dosei age179y7apa80p9unvyjtsphpzyhve90ex986vlxkx43xt9n6m7en3csqnug7c - &host_dosei age179y7apa80p9unvyjtsphpzyhve90ex986vlxkx43xt9n6m7en3csqnug7c
- &host_europa age14mer45e52r2q4uz8n3fmv69tvk8gvwany4m4ndudud8ajv3jm4nqdj9m6a - &host_europa age14mer45e52r2q4uz8n3fmv69tvk8gvwany4m4ndudud8ajv3jm4nqdj9m6a
- &host_xps16 age1np3fg9ue2tp4l47x7waapvjxh5zcaye2j54laapy7uklamve2c4qv3gytm
- &home age10f4a5acpar8vwz3v298r3nv7gggfpmyh4wxpkc2hwq9paq0scf8qee8lau - &home age10f4a5acpar8vwz3v298r3nv7gggfpmyh4wxpkc2hwq9paq0scf8qee8lau
creation_rules: creation_rules:
@ -16,6 +17,7 @@ creation_rules:
- *host_kasei - *host_kasei
- *host_dosei - *host_dosei
- *host_europa - *host_europa
- *host_xps16
- *home - *home
- path_regex: secrets/home.yaml - path_regex: secrets/home.yaml
@ -25,6 +27,13 @@ creation_rules:
age: age:
- *home - *home
- path_regex: secrets/xps16.yaml
key_groups:
- pgp:
- *gpg_h7x4
age:
- *host_xps16
- path_regex: secrets/kasei.yaml - path_regex: secrets/kasei.yaml
key_groups: key_groups:
- pgp: - pgp:

View File

@ -199,6 +199,7 @@
}]; }];
}; };
kasei = nixSys "kasei" { }; kasei = nixSys "kasei" { };
xps16 = nixSys "xps16" { };
europa = nixSys "europa" { }; europa = nixSys "europa" { };
tsuki = nixSys "tsuki" { tsuki = nixSys "tsuki" {
modules = [ modules = [

View File

@ -37,8 +37,8 @@ in {
time.timeZone = "Europe/Oslo"; time.timeZone = "Europe/Oslo";
console = { console = {
font = "Lat2-Terminus16"; font = lib.mkDefault "Lat2-Terminus16";
keyMap = "us"; keyMap = lib.mkDefault "us";
}; };
networking = { networking = {

View File

@ -0,0 +1,89 @@
{ config, lib, pkgs, inputs, specialArgs, ... }:
{
imports = [
./hardware-configuration.nix
./services/btrfs.nix
./services/docker.nix
./services/libvirtd.nix
./services/logiops.nix
./services/tailscale.nix
./services/keybase.nix
./testconfig.nix
];
sops.age.keyFile = "/var/lib/sops/age-key.txt";
system.stateVersion = "24.11";
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.binfmt.emulatedSystems = [
"x86_64-windows"
"aarch64-linux"
"armv7l-linux"
"i686-linux"
];
nix.settings.system-features = [
"kvm"
"benchmark"
"big-parallel"
"nixos-test"
];
i18n.extraLocaleSettings = {
LC_ALL = "en_US.UTF-8";
};
console = {
earlySetup = true;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [ terminus_font ];
};
boot.loader.systemd-boot.consoleMode = "1";
machineVars = {
headless = false;
gaming = true;
development = true;
creative = true;
};
networking = {
hostName = "xps16";
networkmanager.enable = true;
firewall.enable = true;
# hostId = "f0660cef";
};
services = {
xserver.upscaleDefaultCursor = true;
xserver.dpi = 192;
tailscale.enable = true;
};
environment.systemPackages = [
pkgs.webcamoid
];
hardware = {
bluetooth.enable = true;
enableRedistributableFirmware = true;
keyboard.zsa.enable = true;
sane.enable = true;
graphics = {
enable = true;
enable32Bit = true;
};
# ipu6 = {
# enable = true;
# platform = "ipu6epmtl";
# };
};
}

View File

@ -0,0 +1,119 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=root" "compress=zstd" "noatime" ];
};
boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/88bbd92a-88b5-4175-9d6f-c14033607b70";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/34BA-6EA6";
fsType = "vfat";
};
fileSystems."/home/h7x4" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/.snapshots" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/snapshots" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/git" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/git/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/ctf" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/ctf/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/downloads" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/downloads/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/pictures" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/pictures/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/music" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/music/active" "compress=zstd" "noatime" ];
};
fileSystems."/home/h7x4/music/.snapshots" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=home/h7x4/music/snapshots" "compress=zstd" "noatime" ];
};
fileSystems."/var/log" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=var/log/active" "compress=zstd" "noatime" ];
};
fileSystems."/var/log/.snapshots" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=var/log/snapshots" "compress=zstd" "noatime" ];
};
fileSystems."/var/lib" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=var/lib/active" "compress=zstd" "noatime" ];
};
fileSystems."/var/lib/.snapshots" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=var/lib/snapshots" "compress=zstd" "noatime" ];
};
fileSystems."/var/lib/docker" =
{ device = "/dev/disk/by-uuid/178502e0-0481-47ed-842c-2d6b1cf81ac5";
fsType = "btrfs";
options = [ "subvol=var/lib/docker" "compress=zstd" "noatime" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s13f0u1u4.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0f0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
home.stateVersion = "24.11";
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
services.btrfs.autoScrub.enable = true;
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
virtualisation.docker.enable = true;
}

View File

@ -0,0 +1,15 @@
{ config, pkgs, lib, ... }:
{
services.keybase.enable = true;
services.kbfs = {
enable = true;
extraFlags = [
"-label kbfs"
"-mount-type normal"
];
# enableRedirector = true;
};
environment.systemPackages = with pkgs; [ keybase keybase-gui kbfs ];
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
virtualisation.libvirtd.enable = true;
}

View File

@ -0,0 +1,23 @@
{ pkgs, ... }:
{
# TODO: remove when merged: https://github.com/NixOS/nixpkgs/pull/167388
systemd.services = {
logid = {
description = "Logitech Configuration Daemon";
startLimitIntervalSec = 0;
wants = [ "multi-user.target" ];
after = [ "multi-user.target" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.logiops}/bin/logid";
User = "root";
ExecReload = "/bin/kill -HUP $MAINPID";
Restart="on-failure";
};
};
};
hardware.logitech.wireless.enable = true;
}

View File

@ -0,0 +1,10 @@
{ config, ... }:
{
services.tailscale.enable = true;
networking.firewall = {
allowedUDPPorts = [ config.services.tailscale.port ];
checkReversePath = "loose";
trustedInterfaces = [ "tailscale0" ];
};
}

View File

@ -0,0 +1,6 @@
{ ... }:
# NOTE: this file is a space where i put new configuration while i'm testing it.
# There shouldn't really be anything here, I'm not planning to commit any config here.
{
}

View File

@ -23,69 +23,78 @@ sops:
- recipient: age1c92j4w0gqh32hwssl5m2mfrggssxax9pge8qxwytv9lmrnfttcvqdrgsst - recipient: age1c92j4w0gqh32hwssl5m2mfrggssxax9pge8qxwytv9lmrnfttcvqdrgsst
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpdjRzYzVQelFCejYvbUdu YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXaStDclprYzNYbkR5SUsv
RDJSemN0VjJMNXh3ayttNTFiN3JSOGpEbzA0CkVtNmw5cTZTNnM2NlBnS2VuWTRN U0d1YXR6RzNaeGdyV3dKNHdpMnYySnJoMUdJCmp2dHNHSy9CZVpQQ0JMZEZHTzF4
S3VIKzA1VGE4aUxEWWdYNnBIbGMzMDAKLS0tIE9CaVdJQ1RGZVh4VktXWTZNRnBO cHRpOXY0NUIvNGEwU3VhZmtneGJMQU0KLS0tIE55ZllIaUNBazZPOWFnUFhMRWVV
Qjc3cVNiVEkzK3g0dFptZWx4VUsvTFEK5f9MFIMBCKZzTz8N9ojOKI9VJ9R+m3Ln U21KL3dQS3BEa3ZWVGluRDF6VzNSU1EKE/sbmHOL70KxgtJlmUkuv0kRKkUZ//Fq
wVIRMHSWSRoMrIFVhOq24qFPvKJ2y8c9j42N/AYETYZ1MaQkTVeAvQ== d/UfvyHA+50YpRfMH+HMcJZGMqOv7Ait7tz+JgLQACIjsPgz+mJhjg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1eu2a6m3adakfzelfa9pqpl74a5dz0wkyr0v7gegm5ajnx7aqmqcqsp2ftc - recipient: age1eu2a6m3adakfzelfa9pqpl74a5dz0wkyr0v7gegm5ajnx7aqmqcqsp2ftc
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoZSsvZjU0Q2U0R2ZqZ0NO YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDYndBdE10eGdDZ3ovQkhq
NW1YVUFieDYvZ3k0dW9vd0NhT3NiQXdFNWxRClRXMWpTdHZ6d2c3alpVcXU0SXpZ SXRzdWdHdzBhdGxSMVRzSEQ0TWZVaHR3L1hjCkJ3WkRvc051VjBhWTkxUThCQm44
ZE9NZnY0dFRJcEkxa2NuZ0tUNHVqNTQKLS0tIC81SVdsQ25ZQ0hxQkZlM0VkVGJX elBUMzZHa1NtMXdKaTlUMExNSUFpa3cKLS0tIEJUL1BEbDFPOU02aFpvby9aM3Zl
S0kyZzYxNDdHVy92NFVVVnpYT29MVXMKfGgQZvp8nZBjs7ToWsODwia0tT40h99X ZjI2WkVVZnZFWlBTcG54V2E3M0M3Y00KdmD2GrdA9So121ITI5Dk22MwX/WuzaUi
ZOQitYNJKPQ6CAtruWUrRi00OuvChEg+oJJ+U0gfwcWJKBkUKuT2Qw== jDuhLT3ZJo9k9tihWq0n4+tTAkSKXjX09kDFtW1QezjMWcrC06SdVQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age179y7apa80p9unvyjtsphpzyhve90ex986vlxkx43xt9n6m7en3csqnug7c - recipient: age179y7apa80p9unvyjtsphpzyhve90ex986vlxkx43xt9n6m7en3csqnug7c
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBERjM5bEpySWMzUFdidkk4 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhWmpHejNCV0ZyUGE2aXlt
cDJUVGUralN4RjZoN0E1QTh2eGVHazZiQmxjClB1QnB2ZmVvbVo3SnZLNnlPejV1 STQ5KzY0aUFDQmpnQWhLK1hldGtnS09YS1E0CjZJVC95Wml4Y0Z5Y081dDRjWUI3
eGZjUDhDVVRNUVlXdVJDWSsxQlR4S00KLS0tIGtDU1R4UnRwcEJJcmtYei9nWHFH OWFMZDQwV3JkTHpYR2NldngrYzdaUjAKLS0tIEZ0am5peUhxSUpGMzBzUjdIcks2
M0VPbTdsTU4xRll1ZG1LcndTZmx3NHcKwA6fUauOTUHadUaion9dfjQPvUxwUIdt QVprOUt3azczazE0QWhQQmlnRnZhSzgKsp5nt1AnRUnmvJRBgrYufniM+7tm2JGW
ZaHSpuj8usrKd901BvDRxVGv23FAxBb9Ylr2Az+MhHYaVGU/kbQ9mA== Uojg7j8zr0kUpu+OhVXiBYNi4oS+Uscgt2faS62Jubl7Q7in/W4rrA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age14mer45e52r2q4uz8n3fmv69tvk8gvwany4m4ndudud8ajv3jm4nqdj9m6a - recipient: age14mer45e52r2q4uz8n3fmv69tvk8gvwany4m4ndudud8ajv3jm4nqdj9m6a
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmZGk1TVVFZ3NxV0NqUEtD YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqYnlXbU1OdTJsTEE0WWd2
bUNaWFpic0JBQTY3YXRRNmM2SmVzRVdlS1YwCmx1R2tCSndFU2VnU2VFNC9TNEVt VW5UUk1tazEzYUF4R0xOSlpueFphUndaL0NVCngrUHB4LzZremxpNGJoSXUwa2do
R3diVE5LK2Q0Y2FrZUpUUDQyQldNYUkKLS0tIEE2SWU1NmlkcE8xMHJhaHNhRHhT L3lydVJNTk1sWXNLUmJENkVRR2JIalkKLS0tIHJUbHpUTTlkMGo4UXBQdVl6NGU0
enl1ZlNhNjZIU2o5ejh6TjJUWVJQLzAKhhm88Am5Dfng4SRmEGEbsYne/9SrtNxW K2U3c0JvSHBRVnM0RVNGcVg1L0hCREEKwKsonjIjHvFerhsu6qX5StFh9NvOd4CB
5ntmc8AEMN3v1g8hEIOvllms5gqiZP1LUrTAvYddI0+ykwPuTY06Jw== GfgNQsvhEGWMV2i195ERzGd2T61GpqLb/iYx8Tx2WQQ52n0aDbZO+g==
-----END AGE ENCRYPTED FILE-----
- recipient: age1np3fg9ue2tp4l47x7waapvjxh5zcaye2j54laapy7uklamve2c4qv3gytm
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBic0I5dExTYWtUSllMUEFv
WGJwTkw5UkJCd2ZYejFZaUprdnNhSXRVOUNBClQxeFFnQVR1THVSR3gzWklySUww
U01GLzdZQ1dxN0VEWEYxMW0xSDZxUmsKLS0tIGwySmZSQ0xPdHExZVhYRXZ4RHh6
dGppRHhuZVRGVGZNdWVjRHhaL1FDMzgK23NeGYX8616C/XT4TXuDDu7ZE89z0/3B
6jR2N2/d1rTPxwCSdympTyLLSczQeMkULODM6iezz79MSlbSFwtObw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age10f4a5acpar8vwz3v298r3nv7gggfpmyh4wxpkc2hwq9paq0scf8qee8lau - recipient: age10f4a5acpar8vwz3v298r3nv7gggfpmyh4wxpkc2hwq9paq0scf8qee8lau
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBka0tVODhFWHo4Q3RSZG5h YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQQW9ORktON2d5aEg1RTZ6
K0dwMEg1SVVtTUljamxCNEMxdGg5a1IvRVhnCmpnNEdEc3BPcVRVS1VzOUFNZFBU SzZySE9lYmViVWQ4enpZQWdVWDg0YWVUOUQ0CnRycWZmVUlvR2JNMUlmQktOMnJR
bEtqNlgzWGM0Um5RMHNKUWdRZS95TFkKLS0tIFNKZ2dDS1Nnb2JKeW92djhUOWRG VWluUzlRa0czakZqSjdzeTBpTFU2UmcKLS0tIEYweklNVjcvOVVOSUw3azZsNG1F
cm15UjQ4S0xoclpLV0pYcmJzM1g2eDAKAjJUhGgicEG3dj8BdMjPvr9MC/c+oIGx blkrc0locjd0eENvcnVmVW8zaStSODQK5icytb3Ae6BmoU3Sz6yp7aAj/CtmHIS0
kPxtKQ5REb5UolEuBBsWapKhKeXLFtTsV/qGOokO34HT1PqZI37Ikw== 27xAjcGnnDmpVwo1NgjOgF1wZfmVA6II393E3KNNVs4pGeesS5C0VA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-25T09:09:38Z" lastmodified: "2024-11-25T09:09:38Z"
mac: ENC[AES256_GCM,data:virqHg0KoyhLVP9yynReVwSGhTBWz2mO5uBRXqzae7plALvRS+mzErfR+h63bX4TF/iLxQ/pJZb+KqQugweWEon9cycIyoKfRaIqaIZ4t8SnVWmDt6xEebkZC4JT7FD9xf27YTzxnamyINRdiCirTfJOeF4PKEow0EjH0WoS1DQ=,iv:giJ6JOXJQInavkdZbkDABG66B45ciNTetGHcwcz73dA=,tag:rvCbdxNFwoYjGuFi/YwI2Q==,type:str] mac: ENC[AES256_GCM,data:virqHg0KoyhLVP9yynReVwSGhTBWz2mO5uBRXqzae7plALvRS+mzErfR+h63bX4TF/iLxQ/pJZb+KqQugweWEon9cycIyoKfRaIqaIZ4t8SnVWmDt6xEebkZC4JT7FD9xf27YTzxnamyINRdiCirTfJOeF4PKEow0EjH0WoS1DQ=,iv:giJ6JOXJQInavkdZbkDABG66B45ciNTetGHcwcz73dA=,tag:rvCbdxNFwoYjGuFi/YwI2Q==,type:str]
pgp: pgp:
- created_at: "2024-07-17T14:18:35Z" - created_at: "2024-12-04T17:04:12Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA0av/duuklWYAQ//bUJNyi/KLucLpVhBV8ehdWQcJ2U4M6JEQRaJH9QOmkXw hQIMA0av/duuklWYARAAzeQVSGMJVLpE4L3/HJSTi9eyprFy4+B4hP3wLO7laCIc
TG/KH0AumC5jl8u6yCoK98nslsETRSWufpSGfgsotqs9gxMXb8KT28bKR2ZwJ+oJ OLOCZklYExSEImJXtyOmNnWVyk2ZvbAyyg48gHkQldglnn+RrWH3wV2hdUfX5qZL
KCiFn7YMma04bWjdezrNgOlIy8slGkNzeeJkqbPqcz77hRZUgzMxigXH6FphKmqN 8EGuDp2olWd3YBphH1lE9h6TEabtAfjWXywOdVqwoiQCTkBqPYkZGFx2LyUL/kE+
kZgBQTXavnDYvMUplUvm13fuHu93jONxwSD9lqkaDTPL5l0OLJoDxvVlslDVu4Wm nVh/ssoqVDdhHDhBpW1jXbWu+0/5nBgJWyfgFpFtZdfGaThYp26Wi32P/sNwHOZL
9bK0a170veBEfpKCcz6RnGvXIbKhASm8WBnWLkD+TrISkAywTMX7/YdRboPRZMGk raDyC0q/c5hojyVNhDRIJXqcDge3uZ9/LdZm+qBwpeyHhJob1x7F88f58M7G8B5j
EGdibq+8Vh117ohgIVrWYGuW/1HrdJj6EO7Wc2F59xmELN+Zc64dIvIVLXLNj5ir gA6e2kF0Xrig/4xUAhvd2/gtkhg+eWuDLnurJBuG0O8aoRZ1B0VXir5NSPN6/iFs
jJ5UjQhJ99IYC3b9iLXumMIYCFVwoozyJCAzEx70JhCj0tUSuG+q7JEu3xfJSUsi 0XOhZBzcu33xAN0CDH1qwp3gJuTwVpjAeD7y1sg6mmyqbYnY3eY5jo+RUUstTc6r
rAukG6isHJ2ENULbX7fKdWLGzi7bHbv7ObPqc7iKSlQxsKuVY0uKZ90LsPfA2mln XEXNuaKmnvZEE8QlzvVIf8Kytb2yssen7h1U6XXm4B65CHX3d42S+psoPs9EkcZ8
9eYzeSeec/0XpDG/0ipmdjsZUu0ZGSwehBHX7BGJG0CS6cj9hgiTliUWZ1kCm7js b59ix5QrPdmTU5AWG7uOYgkcgyuQmR40pICKGrAPqaiArXstFyndTGnmtqu65jal
wFDWDbkVT7ypNcnkqZ1HfHPxlXNvoMTDRQT9AJTLATCaf8QHZ/D5GQ8nqcGig5wb Hm+yZiDCz50mqqiBPh4n5wu2sxpvaqBkWIU1fn8c1PnyX3xgIQrV4nA5fewAEf74
I3roxkITIV4R8Y6eGFU+VJEImEcGTelSNuXV5/POddBkegBrzUmt9aqtgDHSa1jS 0jeVGBgPohTUpkpL4rRbSLEvH9wh1qH4qEwzH1vvArCMRPLCASaqxoTu3/e/n2HS
XgFJQeZzZq8mDnzhupP06stS+oDeZdC82IhmPnGg/PVrq8cgFqobDWBsNY+yK4tV XAGVjX/gRHHmuHpVSW+nE+lPpuLQZeMfA4rU+GCSBzrFIw/rbfWU+FoiIM8M+DDX
3ozDdn28623shx0i0+uangfl7L5BYK9oi1NJD5qsCgzFXCvs/HKcbiJXFKkqDcE= 7YIfveJLVGlPiPVpyUYrsEjTtZvcDmSrTBTP9odIois1eNXECJEZX0VRwr9B
=smFv =gSDK
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: F7D37890228A907440E1FD4846B9228E814A2AAC fp: F7D37890228A907440E1FD4846B9228E814A2AAC
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted