• [gentoo-user] Re-implementing systemd conveniences without systemd

    From Pramod V U@21:1/5 to All on Sat Apr 19 18:40:01 2025
    systemd is a convenient service manager (and much more!!).
    It provides too many things, which work well... for standard windows-like use cases.

    Seeing my post title, a question you might get is "Why not just use systemd? It just works better!..."

    (Please read below, then this; It is just a TL;DR)
    TL;DR by analogy =
    - X, which like systemd, did eevrything in a giant sphagettified mess. (But still missed out on the sound... and used VTs)
    - wayland (library + compositor) + libinput + pipewire + wireplumber + whatever-else is the future.
    - We needed a desparate solution like X(systemd), but the *real* solution is wayland(split-up components)
    - We need to learn from systemd, but be more "clean" and "agnostic".
    - Initially the systemd replacement will be broken just like wayland was and X was fine, but it will improve, to be better (not for everyone).
    - That's it. Period. "text-only => X => wayland" is (almost) exactly analogus to "sysVrc => systemd => dinit + 66 + turnstiled + (a new acpid) + seatd + whatever-else"

    See some issues (NOT THE UNIX PHILOSOPHY)...
    - See `xz-utils` secutiry issue for example..
    - And `systemd-tmpfiles` fail to run in a package postinst (of sddm) because I don't mount my `/` etc... the systemd way (because I was bootstrapping my system in a chroot).
    - Same issue with `kernel-install`
    - In general, while it integrates well from within, (`user@`, `logind`, etc...), it *doesn't* do things cleanly, it's just hacks (moved internal to show external clean). I needn't explain this, just see how the whole thing works.
    - A clear example is how `dbus-broker` "activates" systemd units using a bespoke undocumented interface, while it could just `systemctl start ${SystemdService}` (not the command, it's DBUS equivalent). See the issues caused due to it.
    -
    - Lock-in into systemd:
    * See how `sd_notify` works, it *can't* be "shim"'d by another service manager except dinit, as it is practically feasable only if the entire supervision infrastructure in in the *same* process.
    * Every "distro-agnostic" tool by systemd meant to replace distro-isms is made highly systemd-specific.
    * D-Bus is **not** tied to systemd, kdbus failed, now they have `varlink`, which is a *new* IPC. It is part of systemd, and it's API is `sd_varlink()`

    I am packaging the `66` service management suite for gentoo in my overlay: <https://github.com/pramodvu1502/66-svmgr-gentoo-overlay>

    I will also package an alternate `tmpfiles.d` parser written in `app-shells/fish` interpreter. (Package name not yet decided)

    The opentmpfiles CVE issue, BTW, could have been fixed by adding a `-h` to all `chown` calls. AND `sysctl` `fs.protected{sym,hard}lniks=1` (but this is default anyways).
    The *real* issue was lack of maintenance, many new features weren't supported.

    I will write `kernel-install` similarly, once that is done.

    `sys-apps/obsysusers` is a replacement for `systemd-sysusers` (It doesn't support the `r` identifier, although that's never used in practice as far as I know.)

    I am also packaging [turnstiled](https://github.com/chimera-linux/turnstile), a service-manager-agnostic session daemon, with user-services support. (No functionality covered by `seatd` and `acpid` BTW...)

    The rest of systemd:
    - `systemd-boot` (maybe `systemd-ukify` too) and `systemd-udevd` are pretty much the *only* pieces of systemd which have any requirement without a replacement needed.
    - All the TPM-related tools... well... are needed too...
    - `systemd-journald` is a nice concept, but poorly implemented. Re-implement is properly or throw it out of the window.
    - `systemd-networkd` and `systemd-resolved` IDK, *might* be needed. I use `NetworkManager`, `iwd`, and `unbound` (and `openresolv`) for my purposes.
    - `systemd-nspawn`, well, is a wrapper around `unshare` but with too much of systemd-isms. `nspawn` is a good name for a svmanager-agnostic script too...
    - `systemd-sbsign` and `systemd-keyutils` are there just because "the code is already there"; The developer forgot that the no. of bugs in the systemd project is growing, so he wasted time here.
    - `sysext` might be needed for immutable systems...
    - `sysupdate` etc... is for windows, not here.
    - The misc "standards" etc... in 100s of markdown files in the repo, well, are useless, the developer could fix the bugs instead. (Some are useful BTW)
    - Maybe some other internal tool might be needed, useful. But the other useless tools...

    Missing pieces:
    - CGroups, well... can be implemented using a helper command...
    - `openrc-settingsd` needs to follow the "standard" files... and needs a CLI.
    - `turnstiled` is yet to have a session-info-query library, and a CLI
    - A new `acpid` is needed with support for simpler configuration and modern features like inhibits...
    * And a configuration interface to avoid hacks like in systemd-logind (A DE like KDE inhibits *all* ACPI functions in logind, as logind has no other way of allowing someone else handle it (logind.conf is not a suitable thing for KDE-plasma to "handle"
    ; Logind has no way of showing a power-menu to the user on power-button-press) ).
    - `66-dbus-launch` is for `66`, a replacement for `dbus-broker-launcher`. A similar but service-manager-agnostic thing (or service-manager-specific things)
    - Similar service activation framework for `udevd`...
    - Maybe a "svactivator ${SVCNAME}" command, managed by `eselect svactivator` to allow multiple to co-exist. The command is used for activation by *all* activation-related things. (You can use it in `cron` too...)
    - What else? Please let me know.

    Fact: Other projects related to RedHat/Fedora, which modernise the Linux distros, actually *follow* the proper clean methods, (but they unfortunately depend on systemd-isms for now; but fixable):
    - `tuned` is a power-profile-daemon which provides only mechanism and "default" policies are just supplied like external policies. It uses existing systems like `powertop` rather than to replace them. It's "profiles" can be extended by shell scripts in
    the profile directory.
    - `cockpit` is a system for remotely managing servers via web, it uses SSH, existing D-Bus interfaces, is easily extendable, and *doesn't* replace any existing thing.
    - `pipewire`: Just provides an API ("mechanism") for managing audio and video devices, in a highly advanced way. `wireplumber` does the actual work of "managing" them, that too highly policy-configurable.
    - wayland: You know, it's just an IPC. *Every* thing is just "protocols" which the compositors have freedom to mess with.
    - * But systemd, you know...

    Irrelevant fact: `synit` is a "core OS framework" which provides from the init, IPC, network-config, upto a really high level. Basically systemd+D-Bus+NetworkManager+iwd+everything-else-at-that-level-including-mostly-the-libc-too-but-IDK. Alteast the
    internals are clean and no sphagetti as far as I know.

    NOTE: This is also posted in r/Gentoo on reddit, under the same title as the subjec of this mail.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anna (navi) Figueiredo Gomes@21:1/5 to All on Sat Apr 19 19:50:01 2025
    --f8bc666f2add3fa8a64f28d92b93dbae33db380a77047effae6de742bedb
    Content-Type: multipart/mixed;
    boundary=29627b272fcbc472f7c8f7805116b867f98ac6a904a7aaaa76256637ee3e

    --29627b272fcbc472f7c8f7805116b867f98ac6a904a7aaaa76256637ee3e
    Content-Type: multipart/alternative;
    boundary=e27cf1790c68688ba969b21251237d1df0520fd37d308bd0e77fbe852614

    --e27cf1790c68688ba969b21251237d1df0520fd37d308bd0e77fbe852614 Content-Transfer-Encoding: quoted-printable
    Content-Disposition: inline
    Content-Type: text/plain; charset=UTF-8

    TL;DR by analogy =
    - X, which like systemd, did eevrything in a giant sphagettified mess. (But still missed out on the sound... and used VTs)
    - wayland (library + compositor) + libinput + pipewire + wireplumber + whatever-else is the future.
    - We needed a desparate solution like X(systemd), but the *real* solution is wayland(split-up components)
    - We need to learn from systemd, but be more "clean" and "agnostic".
    - Initially the systemd replacement will be broken just like wayland was and X was fine, but it will improve, to be better (not for everyone).
    - That's it. Period. "text-only => X => wayland" is (almost) exactly analogus to "sysVrc => systemd => dinit + 66 + turnstiled + (a new acpid) + seatd + whatever-else"

    and openrc?

    The opentmpfiles CVE issue, BTW, could have been fixed by adding a `-h` to all `chown` calls. AND `sysctl` `fs.protected{sym,hard}lniks=1` (but this is default anyways).
    The *real* issue was lack of maintenance, many new features weren't supported.

    this is simply not true. `-h` only applies for the final component of a
    path, not anything else inbetween. there's no way to prevent the cve
    with posix shell tools alone, c code *is* necessary.

    The rest of systemd:
    - `systemd-boot` (maybe `systemd-ukify` too) and `systemd-udevd` are pretty much the *only* pieces of systemd which have any requirement without a replacement needed.

    neither really requires replacement at the moment, there's no issues
    with them except "but they come from the systemd tree!".

    - `systemd-journald` is a nice concept, but poorly implemented. Re-implement is properly or throw it out of the window.

    let's please not do binary logs again.

    Missing pieces:
    - CGroups, well... can be implemented using a helper command...

    most if not all cgroup control can be done directly by shell, or c
    filesystem functions, what you need is integration. openrc has some for
    it's services although it needs improvements.

    - `openrc-settingsd` needs to follow the "standard" files... and needs a CLI.

    feel free to list what "standard" files it doesn't follow, i can
    implement that.

    - `turnstiled` is yet to have a session-info-query library, and a CLI

    turnstile is really incomplete at the moment, i doubt it'd get anywhere,
    and i'm somewhat unsure about it's direction.

    - `66-dbus-launch` is for `66`, a replacement for `dbus-broker-launcher`. A similar but service-manager-agnostic thing (or service-manager-specific things)

    dbus itself needs better launcher integration, dbus-broker is linux
    specific and most users don't run it.

    --e27cf1790c68688ba969b21251237d1df0520fd37d308bd0e77fbe852614--

    --29627b272fcbc472f7c8f7805116b867f98ac6a904a7aaaa76256637ee3e Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename=68990292A7A98C5E.asc
    Content-Type: application/pgp-keys; charset=UTF-8

    LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgptUUlOQkdOMWVrNEJFQURSZEZa cUgzM3JZay84eUhwblM0U25UUUlGZnNTN3hNUy9sSG9JWVBUcXVUK1RHL0dwClFOQnZxZXh0dDhS c1duQ1k2WEE1dEdNWVg3Y3V0VFBqRjg2WTJwWWJMbzd5N010L3hnZGhDeUYzeUZsSGdGWXIKL0R5 eFFlbVJoOHFISTBlTXQ1Y1VYR1NqekNEU2YrUzhZRlJiVUplOFE3clhNNDB4RVhvcUx1a04rM1Vk bUQxZQpuWTlVVk42TXYvbVJMQVJmS2lCUVpEaEJYUlJOdDdBMlpqUTdubkpEZnY3b3FZUXdhS1p0 QXNrcVc5OG93TnA3ClFYTzZjdWtuOFV3VlJVNUV2QW1Ec1I5YVZkYjQ0NnkrMEh1Qk56SHJqbjE0 dENZcFEwUzZFYkFmL1FBT09UemsKaENaZWtjUTVPVC9oWGZ3YkRmd1N0ZmM2RWI3Qi8yemNmVnlL aGR2emV1eTB2MlJRc0lPR0N1anRidWk0UE9RcApMcm0wTWh4SG1ZTTlEWlZQMW1CM3Vnd3JEcDRQ UVJVcmZaVlBWQmxQd25CbmxBMm5MMlFHbDFiSUxyblZCSXRCCjBuZCtMR0dub1JWTHV2aEdYTi9Z dHE4SU1aaUx0Y09QOUZJajRqSVZCRUZIalpubHI5dUNlMjZGUEN4Yno4UmMKZlhYeWZJTjhsVDdC K1p3VzVvRlVtVk5RN3c5NnZWZXdYZ3c3Yy9xNGlrRER0ZW9yZlQ1OVpXQ0laWUtDWnowTgpvaWha ZEF5NFlyTDFsN2JsSit5Y3I2QkZJejR5NmZnV1FGWCtQdUZJczdvSm1GUlBFMW5qN3dxT3pTa2xK WkFsCjRXcjVjTlZyTjlGTEsyOEpPMGFnZEgvbDBzd1ZZK3l0SktHQWhLb3NjTVFaZmY5SkdRM1k1 ODFaQndBUkFRQUIKdENWQmJtNWhJRVpwWjNWbGFYSmxaRzhnUjI5dFpYTWdQRzVoZG1sQWRteG9i QzVrWlhZK2lRSlhCQk1CQ2dCQgpBaHNCQlFzSkNBY0RCUlVLQ1FnTEJSWURBZ0VBQWg0QkFoZUFB aGtCRmlFRXJvN1hiczdNc25VTzRJZDJhSmtDCmtxZXBqRjRGQW1kSG81a0ZDUWVVa0VzQUNna1Fh SmtDa3FlcGpGNEkwdy8rSVowS25IK1NtekxvSXN1ZUVRUFgKN0JSbEczODFtUHBiODRUZ0ZPRVlX VXpPVnpIVjlneUlBM1VWaHptb2t0ai93NW41Y2wyNkxhZ2tkNVdVZ2lORApicytoT0tEZml1UFo4 RVhlQVN6eml4bTh4dlZUL0hTL1A1bUphYTcwdFhKQ3pxWWJic1JyVG5iMnEvZUlYbzFDCm9pM2Va N3MvSG9URjBnWUMrMlhYZ2MyQmhQSHNreXdDUUpudEdFTkNJeHlwVWRjanVHZWtvYlh5bVo1VUI2 cVkKOWsxQ1dUWmNFTHNtYjFCZEc2R3g4SDRwYXhtQmg2ZkVlZ3dXV2k4REZ2cFR0ek51TlZsZC8v MGRJZVErbFBXUgorVWVic0ZmL1dLWXFKcXYxU2d6N1NkbUFHRm9DMnFTZHJHL09jTTZnL3dIb05G WDVReVhMd0xQRDkycWluSEpUCnIzVitLOUJqUXJSSmt5N2hsVkxGQzFJeW05ZGhCNVVLV3FkSjhj bG5WaFQwOXNTVkRWWkRJR2VucUpPeFJ0dm0Kc1BJWHBLbnFjcjlTS0ZoODJPMVdwK0VtTllyRTBW OEtRVUpVSWhRSkxuK3pvQXRHMXBYNjdVdDBaR0pFQ2dOOQovYy9HSjN2OHFsWXptL3o4RDVjL3g0 NncvZ2tyOHJCdHJyRUF0WEVIdDRTWlhrV0Y5MFkyMU51VHc5b0xUTjZ0Cm9yYUtyYStqbHZVZ0dj WkFGcXc0OVo3S2g3S0NTQUxzTGlCdTFmbnhkcFBRYUdMUXNNdG5YRGNlb3lieE16blIKTjZvOGpK TitnTkhlV3NKN1IvZHVtUXd6d3RMZWtHM1lJQyt0aXhIVVF2a0xwR0hwQ3NqYWlXNEpjVkdzblI5 YQpYdmdnVUhIQkwzbS9tbTlmOW8zREFxVzBMRUZ1Ym1FZ0tHNWhkbWtwSUVacFozVmxhWEpsWkc4 Z1IyOXRaWE1nClBHNWhkbWxBZG14b2JDNWtaWFkraVFKVUJCTUJDZ0ErQWhzQkJRc0pDQWNEQlJV S0NRZ0xCUllEQWdFQUFoNEIKQWhlQUZpRUVybzdYYnM3TXNuVU80SWQyYUprQ2txZXBqRjRGQW1k SG81OEZDUWVVa0VzQUNna1FhSmtDa3FlcApqRjRoWHhBQXJReEZqZjhReXBmVHpLR0MrTE1oODBu a3BxR0hrZm02UXlLbGgwSTJtN2U2dHZiVDZTczd4blVFCmcyQ256eDUvSDNzY3FDeVRjbHE3dHVG T2MxWEUwNlJ4TEswSXRNL21rMk13NmFTNGE2UWtpbXRWQlhVR2VWQ00KSEgvUUpSUmR5Yk1FaEhE YjVxVElLdEhZNVR5ZnIzdXIxU3paamJFb2g1TkE4TFl5MUVoWTFjaUxwYTdBay9FbQpSVzEyNmFx TTcrRVlCNnIrTU9VV0hZWjM0VXBUUmExTkQxR3QxU010VFk1cTFrMnhlaTVmMU9pYVZLZjlkOFZU CkZLNk1pT2RZMklZL0YySC9IZzJHajJKbHZ0c29UWnArZ2p2UU8yY0hWaXNDODJzRGtYaXlLZVJM TG8zTXQ2bzQKUStyZFZMdWIyUjlZWkxPWHhQQWZtYXN3cUZSQnFrMUxYSzZqOVFNYlhvcVZvRDhw YWJnOWJMa1RBb1B6M3JYUApPYW45SHRkVVRQQ1BnbTNhUEJUT0t2RnZuY2VNS3VJV0NjQ1pUb1Bo a245Ulg3K0NyWGREYlFCbzAvcm0xZHdCCmRGeFBJTm1WMVMrZngzVVhYZmRpc2JxRlE3NDNIVks2 SjhnZ1Z2b1RSZy93c2dUOEtJYkNrOXlYSGJZblVUTmMKY2lXY29LTlk0U2RwRUZTVjBrMlJtZmE5 U1RNNW13UFE5c0R1NU9kMTdYa0Q0OUVVMXVvQzQxMkRMenBhU1NXdQpYOWJEOFZSK0dhRzdmMmxC anRTdkdERjVJdEJIQU10N1BhdEFtaVZYWEx2V0dkc0I4bm9jM3phNEQzOXZVd2Z0Ck53QmdIVUhH M2UxTjRRYTMyUmVYM3pjYXZWQ3hjLzVVN00yR3g2YVdlV3RFRWJ2dXlqMjVBUTBFWTN1RFJ3RUkK QUxReU9vcm8vRFZHTzV0RXJXdUJyd3BmY0lPMU8zT05iclV2UUYzQVZQbm5UV1o2NGVtaVJwbkVT ZWk4UUtBNAp0emdLSnZETDd0UVM3MlRrRllSaFh0djlWYm5VQk1VWHJCSFJDMkZwdWtMMFhoT29B dFd1TTRnWW0vVk16ditnCjV6eVBBbTR2ODVqRkpqOFdvbEJDOHA3Qm0yT3hWdWdvTVh5SFZxalFJ YTl5SHl0NVZJMzcyUGk1RzdPUStwK3MKTlFsdDdxZk1reElSMXNhMGFVRytKL1BIa0FTYXNVcis3 MkhKZVVOYjlZODZheFJsdWFKc1duSDF4R2ZDZlVWUApZNVd4OXdUZHQwdlA1TW54U0dEOFVzcTJQ cXpLTWRYa3pqN1dBZjBTT3NVWS90NlNrRHJ5Z1hLcjFaT2ZSTG8zCmk1UEVqaTlqcFFsY2lpZzVs UnRGV0FjQUVRRUFBWWtEMGdRWUFRb0FKZ0liQWhZaEJLNk8xMjdPekxKMUR1Q0gKZG1pWkFwS25x WXhlQlFKblI2UGFCUWtIam9lVEFhREExQ0FFR1FFS0FIMFdJUVE1QmtsRytSR2JHb1RkdzUvQgox T25Wck9oU21nVUNZM3VEUjE4VWdBQUFBQUF1QUNocGMzTjFaWEl0Wm5CeVFHNXZkR0YwYVc5dWN5 NXZjR1Z1CmNHZHdMbVpwWm5Sb2FHOXljMlZ0WVc0dWJtVjBNemt3TmpRNU5EWkdPVEV4T1VJeFFU ZzBSRVJETXpsR1F6RkUKTkVVNVJEVkJRMFU0TlRJNVFRQUtDUkRCMU9uVnJPaFNtbUR2Qi8wZmtC S1NTZmZiWkRsTTROK2hTMElzYTdYNQpXVXhMZDVhUkh3cENjeGh3RytsdG1zU0dYLzB0TGtwYmdh Tkoya0JSQ0pMbGQzTlVQYyswWEthbVZ4UUVXUysyCllnU3J1SWF5aHVMdXdCM0tTUFZGZ1N4TkNU VVhRczBuOUFTaWp6dlJPWS9NK3VGSHY0bjl1aVlSQ2ZtY3p3dnAKR3ZodWluYVBuOWNhWWFOUFh5 SXF4VTRBNTFlN1ZvM0dWRjF5eUlWR1JOK3RSQlJCZFAzeEJDRkYyYTZVOXRsNwpzaUJDQXJHWU1Q NTJjQlM3ZCsvV3hpaEVBQVFONTVNTm1Hc1dyVnQvaHRHRjhIam1rZ1B4T2FHakJYTWNtb3R1ClVt RjBSVFJtYmwrZElxZ05jZjZOM2h2NnlRcUNSaGp6UEMwMGw0MUlCblkwaktQQU5zZFpZOGV2MUw5 NUNSQm8KbVFLU3A2bU1YbU5ZRC85cGx3cGlUMElFVkUvb3dxMFFzdzk0R0p3S3dEamhGSWFzUjRY RmFDcWxMMWlUS2cwaQpucy9haCtrcmxLVVdoN056aTVhWTNQbVlrWGVtZkxYWFF2R1djanIxdjJC cWxyR21XNmZXeXllTzBpZ2dWNTZjCm1sRTUvOHJ3YkdPR2dlZFBTQnlMVFVtWVBPRWFiV21tYmdn a0laWGlabzZ3Ymd0SVc3WFA3bXNEbmFNMnQycVUKMm9janE5UmFYbHNDOU1YdzN6THpnTU0xU3Mw ZHFTMTNzdWlPb1FjdU0rbEtrMlRuK2NtaXZ1VFpnWHQ3dW04NwoxV0VIb0hJZnJxazQzYmtrN3Mx VUMwQXRBVU1FQmpKVVlLMjIxV3F4dHhST0x6SFNPTTBZKzZwN3VGdGtEcGlSCmpSbUxYTlZwVXJs eHlXQ0N4VTNHL0JYbWNZVHViRHkzb0ttMWNnd0U3ckhSdTkrcjh0Ry9pajNkOXVoTG1iTFMKNTNq Y3d1c001OUtCNWtPdHA3akMvSURERDVvbVkreG1FdGUva2FjNXRPRk5RSFBBbGI2RFJwNmxmeTFI NldvUQpuR1hiMy9pSEk4dCt2anROL1VSbW9FTkp0dHV4R0l0Wm1BYzJMSXJtQTk3WHVWR1ByZmlj dTlReU5NMDY3ME81CnJ3NjdpR2ZneUQ0cnM3OHJlNDZ4WDJxQTlmcVFEM2xvSmtlOVhHdzZvQTZM TEpmUEV1RFdrRERoL1k1WTJDUU0KNXJyeThtSVB3bWhhd2N2cTFXTFRGR3ozcVo3TlUvS3RvWXpv S1ZvaElXNjhMV0hCcFZHeVNOcWMvd0x0dHAzTgo2ck54cHhUTDFZZE43ZHhGam1xd21FR2FFT1dS NnhrS3dySEJsWWpxK1A4OHhNalFzYnFVdEUvbXZMa0JEUVJqCmU0TnpBUWdBMFBtSklHcHhnYjlq Y1V5cTRWUHZYMXVuQ3lGdU0wcVBFMytaTUNSM3BVWWJTRGJSVE5DOWVlYXoKVURzWnBvSDhVNkhB UUhsNmxjZXB2cE56aWRvWGxJcXdHOG1NVEdxWHJ1WUFuQ2tEWnBld3VvdnFZR0hOVVpvMgpHTCt0 V3M0ZVdTVkRjcWtjaE9TZHBkSFZzaDdVZG5vai9odlpjY0ZsbUxwdGQ5MmJXR3NtOTVBenR5MTdX NjdICllmVmZhQlVXTmYzWVVuV01JVm0xSlVHSmdnVVh0Z0dLdjBrVGRzVnJZaEMwZk85VUhGTlY0 UzI1L0o5aGVjZFcKb3ArKzMrODdyTnl4WHN5elB1Y3Q1TXJSQW8zOUt2LzNZNXhnd01rL29RTkJI RHIrYmErU29yREdYdVJqVnNiRgphc1ExcVpoOTJSdE1vZ0o0dGJmd2w2WnV4WldkUlFBUkFRQUJp UUk4QkJnQkNnQW1BaHNNRmlFRXJvN1hiczdNCnNuVU80SWQyYUprQ2txZXBqRjRGQW1kSG85b0ZD UWVPaDJjQUNna1FhSmtDa3FlcGpGNWtFQS84RFRqelBkYTYKZlBIcmp1OXo4TGhHNGtxVHlXU0hP ZVVYMmlOcy9Hb3RXeUNKZzB3U3o4TERkUEFwVUpOY21uTVBaYW4vY3YzQwpHMytLWmttNHFpSlY2 L3hJNGNBRU9XdE1uQVA4Qk80cGtCc2pKSmtBQW9NT0ljMm5nWlB2ZzNnekQzbjE0WE8yCnRiMnFZ dzNOcExDYWhPWlNKRmlncUNQQUs5cmY0cWNkT2J0bk9weGZ3V0VQeW9IcDMvem9lNThCc2p0OEg4 ek4KYkppN3B0Qy95L3lLRk00UGFCblR6Nk1hT1B3dFhZRWtNTkdtcnRyd3ZTVnRXWGNhRFZ3MGE3 dmlDRGZXOElhQwp6Vy9QYnhaa0g3NXhTYkd5ZEVVYzQzTHBYMEdBNjVRNS83UE5Qa0FNQ2JEakQ1 RElxcTYvdnZKR3Nmdk13V0VRCjBITTBSb3JuS2svbGdSRnNLTVJ6eEVZOHdlUXhtc0wvempkUHd4 R0sxMTBCUWtmOVN1azhsNDNVak1KSUxDQU4KZkVzMTBrY2VsT1RsaWlwMHFQTTBSeGViVFp0TGI3 MCtSalFCdVBxUnZtVlQ4aERBZVJuVTZnZ1hYQ2pyM3VPdwo1c3ZvV2JPaUxnT2RKNUE4WjNVZytX aEFZc2paSWFqRFUzbFJvbVZwQUlZODBZQU1WWFEyRHJIdG1XYzc0Q1F5Ck53UG5KV3R3cnppakFi M1RrT1IrVnVrdHVpUW5qVFBnRWxQNWJGNlZxbTRwRzZwZU1udFJaWkdHTW9uM0ozSFYKUWg0YkdS bTJrajhGdzRRVmVFNWljZkJtdUFzcDhsQWFpbDBBYmNkT3FYclVPQ0xBSnozUU1YL1R6Y1pGQU9o VAo3Mk5nN2JvMUlMUjJsSk1YMDNkM1dKTE1XWENvdmlpUnhCTzRNd1JqZTRVdEZna3JCZ0VFQWRw SER3RUJCMEE4CldGazdXRElta2REbk5PMFVaV2o1S09LSCsxQlE0d3FIWmdxRTE1KytjSWtDUEFR WUFRb0FKZ0liSUJZaEJLNk8KMTI3T3pMSjFEdUNIZG1pWkFwS25xWXhlQlFKblI2UGFCUWtIam9X dEFBb0pFR2laQXBLbnFZeGVzZThQL2lrcwp4SlIvMUlhaTlUTGVpb3dPKzZKZU55SkoxaDNWNWYr UGp2ZmpwcDF2Y1h6TEtPdGtwOXpKUEcvWXBkdDI3MUM4CmZDdHZvMEJQcmhncysyeG5ZZDZmYisv S2JjRjdHazdyblRkRWZqVS9BTHdBYk8yNTFwaUpRcHVTY3FyUGNtbXMKL1NkUzdhYzB1MThaZFY5 WUE4N3BXbFNIUytnaHpQOUwxMzNmL0hDNGhTTHByMTYzOFozd1VpNlRhWGFOQVNqeApCVi8vQzJr T0ZWenpBcjRyR2ZPMFN4UUZ3NFlPMFVCWTZESGxmNFRXbTlkTTZONks1ZHJyNFFheVh3QXdzWGRX Ckt1Sjg3VTZ3Uk1rdzZqZXQxSXpqZFBwRUszSzRFejdXbUx1TlJLUVR5UUNoNjZQTHVzMGtIcEdS VWR2L0h4NnYKaFRmbmxYWk5TRGVKc3grOGxvQnpiOW1EUFdGQi9pVCtZYmlJY2R6TVZ6bzc1UE9C cFh3TnNZcm5SQ1JCckFSLwo2L2pyRmY0aXVDUVJmK29NWDhCUlJsUVNXVlZPSnQxZGRKeUZmbHhl MEpWd1RONG5sekZ2Yi90ZGF2YzZMeFg4Ck55Vm1MMkxxeEhWT3dVZHV2T2RuL25iVzZmdTlHNGU4 SDhlWGdLTnNVYnZNSW1rQ1d2UUZUd0EwblUyaFVUbXUKVkc0cFBENWxuWS9QRDhCWXhRN2R1YmZ0 WlZVZmdvVTl4VVM5Q0F2RzNtTG93eTI4UHVwVEtFUDhvdStETzNFVApCY1pRRUtYdmpPLzBYZmtJ bTNCTFNnVThXRDZPU3NpWnhQcEFBQ0pic09OQnNpRmdZZ2dTM3c3LzdYRGtPSGVwCktFU2REYy84 VHdjUFhCOVpRRzROdUM1c05YRjV2Z0ZBU1FwUnN1dzQKPUpQbXkKLS0tLS1FTkQgUEdQIFBVQkxJ QyBLRVkgQkxPQ0stLS0tLQo= --29627b272fcbc472f7c8f7805116b867f98ac6a904a7aaaa76256637ee3e--

    --f8bc666f2add3fa8a64f28d92b93dbae33db380a77047effae6de742bedb
    Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iQGiBAABCgCMFiEEOQZJRvkRmxqE3cOfwdTp1azoUpoFAmgD4V1fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDM5 MDY0OTQ2RjkxMTlCMUE4NEREQzM5RkMxRDRFOUQ1QUNFODUyOUEOHG5hdmlAdmxo bC5kZXYACgkQwdTp1azoUpoa2Af/VnJiVrDDnVaUAVUkWLyZtevwbkNzMQPON/7Z j3WqfMHWpI+N/BRl/u/rjmUkZXSnJ2yVK/Pqf4AoWx+NJ7285tAUMTa4AcIqAuNo rXKIvarMGJZwmOoXbg36iwJ+xqiFWNvrdD3ehaugNz154Qk1rvjMzmw71TMA8kgb GNiyM2pWPqgArSpg6u8Eb6krnp4XypaciKr4nIjhAWGKS/p8//y8FOAtwd12p1e6 BrraX5lXrDAYPiWYPfXa91GGNc/LU9al7OayjqlF4NU0rjj+gh+eUTHtcIyGWZl4 hdF2n9xyggwsK0fj4qLGhjmC4lOFsr3USNbEStUxxJaydqAI+w==
    =6ZJc
    -----END PGP SIGNATURE-----

    --f8bc666f2add3fa8a64f28d92b93dbae33db380a77047effae6de742bedb--

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)